id,$new)) {
AmpConfig::set('play_type', $new, true);
}
if (($new == 'localplay' AND $current != 'localplay') OR ($current == 'localplay' AND $new != 'localplay')) {
$results['rightbar'] = UI::ajax_include('rightbar.inc.php');
}
$results['rfc3514'] = '0x0';
break;
case 'directplay':
debug_event('stream.ajax.php', 'Play type {'.$_REQUEST['playtype'].'}', 5);
$object_type = $_REQUEST['object_type'];
$object_id = $_REQUEST['object_id'];
if (is_array($object_id)) {
$object_id = implode(',', $object_id);
}
if (Core::is_playable_item($object_type)) {
$_SESSION['iframe']['target'] = AmpConfig::get('web_path') . '/stream.php?action=play_item&object_type=' . $object_type . '&object_id=' . $object_id;
if ($_REQUEST['custom_play_action']) {
$_SESSION['iframe']['target'] .= '&custom_play_action=' . $_REQUEST['custom_play_action'];
}
if (!empty($_REQUEST['append'])) {
$_SESSION['iframe']['target'] .= '&append=true';
}
if (!empty($_REQUEST['playnext'])) {
$_SESSION['iframe']['target'] .= '&playnext=true';
}
if ($_REQUEST['subtitle']) {
$_SESSION['iframe']['subtitle'] = $_REQUEST['subtitle'];
} else {
if (isset($_SESSION['iframe']['subtitle'])) {
unset($_SESSION['iframe']['subtitle']);
}
}
$results['rfc3514'] = '';
}
break;
case 'basket':
// Go ahead and see if we should clear the playlist here or not,
// we might not actually clear it in the session.
if ( ($_REQUEST['playlist_method'] == 'clear' || AmpConfig::get('playlist_method') == 'clear')) {
define('NO_SONGS','1');
ob_start();
require_once AmpConfig::get('prefix') . UI::find_template('rightbar.inc.php');
$results['rightbar'] = ob_get_clean();
}
// We need to set the basket up!
$_SESSION['iframe']['target'] = AmpConfig::get('web_path') . '/stream.php?action=basket&playlist_method=' . scrub_out($_REQUEST['playlist_method']);
$results['rfc3514'] = '';
break;
default:
$results['rfc3514'] = '0x1';
break;
} // switch on action;
// We always do this
echo xoutput_from_array($results);