104 lines
3.4 KiB
Mathematica
104 lines
3.4 KiB
Mathematica
|
/*---------------------------------------------------
|
||
|
-----------------------------------------------------
|
||
|
Filename: songinfo.m
|
||
|
Version: 1.0
|
||
|
|
||
|
Type: maki/songinfo loading
|
||
|
Date: 09. Sept. 2008 - 10:02
|
||
|
Author: Martin Poehlmann aka Deimos
|
||
|
E-Mail: martin@skinconsortium.com
|
||
|
Internet: www.skinconsortium.com
|
||
|
-----------------------------------------------------
|
||
|
---------------------------------------------------*/
|
||
|
|
||
|
/**
|
||
|
* This library is still in testing phase
|
||
|
*/
|
||
|
|
||
|
#ifndef included
|
||
|
#error This script can only be compiled as a #include
|
||
|
#endif
|
||
|
|
||
|
// use this function to reload songinfo (usually do this on system.onTitleChange())
|
||
|
Function songinfo_reload();
|
||
|
|
||
|
// use this vars to get song information (is faster than function calls)
|
||
|
Global String songinfo_title;
|
||
|
Global String songinfo_artist;
|
||
|
Global String songinfo_album;
|
||
|
Global String songinfo_location; // url or path on your hd
|
||
|
Global String songinfo_displayTitle;
|
||
|
|
||
|
Global String songinfo_streamTitle; // similar to display title
|
||
|
Global String songinfo_streamName; // name of current stream (station title)
|
||
|
Global String songinfo_streamURL;
|
||
|
Global String songinfo_streamAlbumArt; // _full_ URL to an image on the web, like http://images.play.it/amg/album/cov200/drh200/h238/h23853pph7b.jpg
|
||
|
|
||
|
Global Boolean songinfo_isStream; // true if current song is a stream
|
||
|
|
||
|
Global Int songinfo_streamType; // use in conjunction with the values below
|
||
|
#define SONGINFO_STREAMTYPE_SHOUTCAST 2
|
||
|
#define SONGINFO_STREAMTYPE_AOLRADIO 3
|
||
|
#define SONGINFO_STREAMTYPE_CBSRADIO 4
|
||
|
#define SONGINFO_STREAMTYPE_SHOUTCAST2 5
|
||
|
#define SONGINFO_STREAMTYPE_NOSTREAM 0
|
||
|
#define SONGINFO_STREAMTYPE_UNKNOWN 666
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// IMPLEMENTATION // DO NOT MODIFY //
|
||
|
/////////////////////////////////////
|
||
|
|
||
|
songinfo_reload()
|
||
|
{
|
||
|
// Fill vars with data
|
||
|
songinfo_location = System.getPlayItemString();
|
||
|
songinfo_displayTitle = System.getPlayItemDisplayTitle();
|
||
|
|
||
|
String metaPrefix = ""; // used for streams
|
||
|
|
||
|
// Check for a stream
|
||
|
songinfo_streamType = stringToInteger(getPlayItemMetaDataString("streamtype"));
|
||
|
songinfo_isStream = (songinfo_streamType > 0);
|
||
|
if (songinfo_isStream) // STREAM!
|
||
|
{
|
||
|
if (!(songinfo_streamType == SONGINFO_STREAMTYPE_SHOUTCAST
|
||
|
|| songinfo_streamType == SONGINFO_STREAMTYPE_AOLRADIO
|
||
|
|| songinfo_streamType == SONGINFO_STREAMTYPE_CBSRADIO
|
||
|
|| songinfo_streamType == SONGINFO_STREAMTYPE_SHOUTCAST2))
|
||
|
{
|
||
|
songinfo_streamType = SONGINFO_STREAMTYPE_UNKNOWN;
|
||
|
}
|
||
|
|
||
|
// read stream metadata
|
||
|
songinfo_streamName = getPlayItemMetaDataString("streamname");
|
||
|
songinfo_streamTitle = getPlayItemMetaDataString("streamtitle");
|
||
|
songinfo_streamURL = getPlayItemMetaDataString("streamurl");
|
||
|
|
||
|
if (songinfo_streamType == SONGINFO_STREAMTYPE_AOLRADIO)
|
||
|
{
|
||
|
metaPrefix = "uvox/";
|
||
|
}
|
||
|
else if (songinfo_streamType == SONGINFO_STREAMTYPE_CBSRADIO)
|
||
|
{
|
||
|
metaPrefix = "cbs/";
|
||
|
}
|
||
|
|
||
|
songinfo_streamAlbumArt = getPlayItemMetaDataString(metaPrefix + "albumart");
|
||
|
if (songinfo_streamType == SONGINFO_STREAMTYPE_AOLRADIO)
|
||
|
{
|
||
|
songinfo_streamAlbumArt = "http://broadband-albumart.music.aol.com/scan/" + songinfo_streamAlbumArt;
|
||
|
}
|
||
|
}
|
||
|
else //NO STREAM!
|
||
|
{
|
||
|
// resetting stream specific values
|
||
|
songinfo_streamName = "";
|
||
|
songinfo_streamTitle = "";
|
||
|
songinfo_streamURL = "";
|
||
|
songinfo_streamAlbumArt = "";
|
||
|
}
|
||
|
|
||
|
songinfo_title = getPlayItemMetaDataString(metaPrefix + "title");
|
||
|
songinfo_artist = getPlayItemMetaDataString(metaPrefix + "artist");
|
||
|
songinfo_album = getPlayItemMetaDataString(metaPrefix + "album");
|
||
|
}
|