';
$no_session = true;
include ('../modules/init.php');
$myMpd = init_mpd();
$action = $_GET['action'];
$player = $_GET['player'];
$result = '';
function mpderr() { global $result, $myMpd;
if ($GLOBALS['player'] == 'mpd')
{ $result = $result . ''.$myMpd->errStr.''; } }
function volume() { global $result, $myMpd;
if ($GLOBALS['player'] == 'mpd')
{ $result = $result . ''. $myMpd->volume. ''; } }
function state() { global $result, $myMpd;
if ($GLOBALS['player'] == 'mpd')
{ $result = $result. ''. $myMpd->state. ''; } }
function mpd_cur_track_pos () {
global $result, $myMpd;
if ($GLOBALS['player'] == 'mpd') {
$result = $result . ''.$myMpd->current_track_position.'';
}
}
function now_playing() {
global $result, $myMpd;
if ($GLOBALS['player'] == 'mpd') {
if (!$myMpd->playlist[($myMpd->current_track_id)]['Title']) {
list($tmp, $id, $tmp) = preg_split("/(song=|&)/", $myMpd->playlist[($myMpd->current_track_id)]['file']);
$r = new Song($id);
$myMpd->playlist[($myMpd->current_track_id)]['Title'] = $r->title;
$myMpd->playlist[($myMpd->current_track_id)]['Artist'] = $r->get_artist_name();
$myMpd->playlist[($myMpd->current_track_id)]['Album'] = $r->get_album_name();
}
$result = $result.''.
''.$myMpd->current_track_id.''.
''.htmlspecialchars($myMpd->playlist[$myMpd->current_track_id]['Title']).''.
''.htmlspecialchars($myMpd->playlist[$myMpd->current_track_id]['Artist']).''.
''.htmlspecialchars($myMpd->playlist[$myMpd->current_track_id]['Album']).''.
''.htmlspecialchars($myMpd->playlist[($myMpd->current_track_id)]['Time']).''.
'';
} //end if player == mpd
now_playing_display();
}
function now_playing_display() {
global $result;
$dbh = dbh();
$results = get_now_playing();
$result = $result.'';
if (count($results)) {
foreach($results as $item) {
$song = $item['song'];
$np_user = $item['user'];
if (is_object($song)) {
$result = $result.'';
if (!$np_user->fullname) { $np_user->fullname = "Unknown User"; }
if (conf('use_auth')) {
$result = $result.''.$np_user->fullname.'';
} else {
$result = $result.'';
}
$result = $result.''.$song->id.'';
$result = $result.''.$song->album.'';
$result = $result.''.$song->artist.'';
$result = $result.''.htmlspecialchars($song->f_title).'';
$result = $result.''.htmlspecialchars($song->f_artist).'';
$result = $result.''.htmlspecialchars($song->f_album).'';
$result = $result.'';
} // if it's a song
} // foreach song
} // if now playing
$result = $result.'';
}
/**********************
The below handles a request for action on the mpd player and/or the return of mpd
player state information.
It is grossly inefficient because everytime there is a request it loads init.php and does a full
instantiation of myMpd. Would be much faster if it only loaded limited info to start, then
just grabbed what it needed. (Prolly tougher to maintain abstraction.)
**********************/
/*if (!$user->has_access(25)) { echo 'Inadequate access privileges!'; return; }*/
switch ($action) {
case 'getvol' :
$result = ''. $myMpd->volume. '';
break;
case 'setvol' :
if ( is_null($myMpd->SetVolume($_GET['param1'])) ) $result = ''.$myMpd->errStr.'';
$result = $result.''. $myMpd->volume. '';
break;
case 'adjvol' :
if ( is_null($myMpd->AdjustVolume($_GET['param1'])) ) $result = ''.$myMpd->errStr.'';
volume();
break;
case ' > ':
case "play":
if ( is_null($myMpd->Play()) ) $result = ''.$myMpd->errStr.'\n';
mpd_cur_track_pos();
state();
now_playing();
break;
case "stop":
case ' X ':
if ( is_null($myMpd->Stop()) ) $result = ''.$myMpd->errStr.'\n';
$result = $result.''. $myMpd->state. '';
now_playing();
break;
case ' | | ':
case ' = ':
case "pause":
if ( is_null($myMpd->Pause()) ) echo "ERROR: " .$myMpd->errStr."\n";
mpd_cur_track_pos();
state();
now_playing();
break;
case '|< ':
case "Prev":
if ( is_null($myMpd->Previous()) ) echo "ERROR: " . $myMpd->errStr."\n";
mpd_cur_track_pos();
state();
now_playing();
break;
case ' >|';
case "Next":
if ( is_null($myMpd->Next()) ) echo "ERROR: " . $myMpd->errStr."\n";
mpd_cur_track_pos();
state();
now_playing();
break;
case 'now_playing' :
mpd_cur_track_pos();
state();
now_playing();
// now_playing_display();
break;
} //end switch
echo '' .
'' . $action .$player.'' .
$result .
'';
?>