diff options
Diffstat (limited to 'modules/flash/xspf_player.php')
-rw-r--r-- | modules/flash/xspf_player.php | 34 |
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 |