summaryrefslogtreecommitdiffstats
path: root/modules/flash/xspf_player.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/flash/xspf_player.php')
-rw-r--r--modules/flash/xspf_player.php34
1 files changed, 31 insertions, 3 deletions
diff --git a/modules/flash/xspf_player.php b/modules/flash/xspf_player.php
index 4a4d63c4..2015f8f1 100644
--- a/modules/flash/xspf_player.php
+++ b/modules/flash/xspf_player.php
@@ -32,12 +32,40 @@ switch ($action) {
// Set for hackage!
$_REQUEST['flash_hack'] = 1;
$tmp_playlist = new tmpPlaylist($_REQUEST['tmp_id']);
- $items = $tmp_playlist->get_items();
- $stream = new Stream('xspf',$items);
+ $objects = $tmp_playlist->get_items();
+
+ //Recurse through the objects
+ foreach ($objects as $object_data) {
+ // Switch on the type of object we've got in here
+ switch ($object_data['1']) {
+ case 'radio':
+ $radio = new Radio($object_data['0']);
+ $urls[] = $radio->url;
+ $song_ids[] = '-1';
+ break;
+ case 'song':
+ $song_ids[] = $object_data['0'];
+ break;
+ default:
+ $random_url = Random::play_url($object_data['1']);
+ // If there's something to actually add
+ if ($random_url) {
+ $urls[] = $random_url;
+ $song_ids[] = '-1';
+ }
+ break;
+ } // end switch on type
+ } // end foreach
+ $stream = new Stream('xspf',$song_ids);
+ if (is_array($urls)) {
+ foreach ($urls as $url) {
+ $stream->manual_url_add($url);
+ }
+ }
$stream->start();
break;
case 'show':
- $play_info = "?tmp_id=" . scrub_out($_REQUEST['tmpplaylist_id']);
+ $play_url = Config::get('web_path') . '/modules/flash/xspf_player.php?tmp_id=' . scrub_out($_REQUEST['tmpplaylist_id']);
require_once Config::get('prefix') . '/templates/show_xspf_player.inc.php';
break;
} // end switch