'; $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 . ''; ?>