diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-01-15 08:14:54 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-01-15 08:14:54 +0000 |
commit | 1f5748db2b30825426e3b877699d86d543f641eb (patch) | |
tree | 38f640b900fff1cba3e97f646279b9defe083cb4 /server/ajax.server.php | |
parent | 2d5ed879bd17024154e87de22c811bbfd0e69433 (diff) | |
download | ampache-1f5748db2b30825426e3b877699d86d543f641eb.tar.gz ampache-1f5748db2b30825426e3b877699d86d543f641eb.tar.bz2 ampache-1f5748db2b30825426e3b877699d86d543f641eb.zip |
now playing stuff
Diffstat (limited to 'server/ajax.server.php')
-rw-r--r-- | server/ajax.server.php | 116 |
1 files changed, 89 insertions, 27 deletions
diff --git a/server/ajax.server.php b/server/ajax.server.php index 445cfaf5..04394f45 100644 --- a/server/ajax.server.php +++ b/server/ajax.server.php @@ -4,28 +4,95 @@ header('Cache-control: no-cache'); header('Pragma: no-cache'); echo '<?xml version="1.0" encoding="UTF-8"?>'; -function mpderr() { global $result, $myMpd; $result = $result . '<error>'.$myMpd->errStr.'</error>'; } -function volume() { global $result, $myMpd; $result = $result . '<volume>'. $myMpd->volume. '</volume>'; } -function state() { global $result, $myMpd; $result = $result. '<state>'. $myMpd->state. '</state>'; } -function mpd_cur_track_pos () { global $result, $myMpd; - $result = $result . '<mpd_cur_track_pos>'.$myMpd->current_track_position.'</mpd_cur_track_pos>'; } +$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 . '<error>'.$myMpd->errStr.'</error>'; } } +function volume() { global $result, $myMpd; + if ($GLOBALS['player'] == 'mpd') + { $result = $result . '<volume>'. $myMpd->volume. '</volume>'; } } +function state() { global $result, $myMpd; + if ($GLOBALS['player'] == 'mpd') + { $result = $result. '<state>'. $myMpd->state. '</state>'; } } + +function mpd_cur_track_pos () { + global $result, $myMpd; + if ($GLOBALS['player'] == 'mpd') { + $result = $result . '<mpd_cur_track_pos>'.$myMpd->current_track_position.'</mpd_cur_track_pos>'; + } +} function now_playing() { global $result, $myMpd; - 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.'<now_playing>'. - '<songid>'.$myMpd->current_track_id.'</songid>'. - '<songtitle>'.$myMpd->playlist[$myMpd->current_track_id]['Title'].'</songtitle>'. - '<songartist>'.$myMpd->playlist[$myMpd->current_track_id]['Artist'].'</songartist>'. - '<songalbum>'.$myMpd->playlist[$myMpd->current_track_id]['Album'].'</songalbum>'. - '<songlength>'.$myMpd->playlist[($myMpd->current_track_id)]['Time'].'</songlength>'. - '</now_playing>'; + 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.'<now_playing>'. + '<songid>'.$myMpd->current_track_id.'</songid>'. + '<songtitle>'.$myMpd->playlist[$myMpd->current_track_id]['Title'].'</songtitle>'. + '<songartist>'.$myMpd->playlist[$myMpd->current_track_id]['Artist'].'</songartist>'. + '<songalbum>'.$myMpd->playlist[$myMpd->current_track_id]['Album'].'</songalbum>'. + '<songlength>'.$myMpd->playlist[($myMpd->current_track_id)]['Time'].'</songlength>'. + '</now_playing>'; + } //end if player == mpd +now_playing_display(); +} + + +function now_playing_display() { + + global $result; + $dbh = dbh(); + $results = get_now_playing(); + $result = $result.'<now_playing_display>'; + + if (count($results)) { + + foreach($results as $item) { + + $song = $item['song']; + $np_user = $item['user']; + + if (is_object($song)) { + + $result = $result.'<song>'; + + if (!$np_user->fullname) { $np_user->fullname = "Unknown User"; } + + if (conf('use_auth')) { + $result = $result.'<fullname>'.$np_user->fullname.'</fullname>'; + } else { + $result = $result.'<fullname></fullname>'; + } + + $result = $result.'<songid>'.$song->id.'</songid>'; + $result = $result.'<albumid>'.$song->album.'</albumid>'; + $result = $result.'<artistid>'.$song->artist.'</artistid>'; + $result = $result.'<songtitle>'.htmlspecialchars($song->f_title).'</songtitle>'; + $result = $result.'<songartist>'.htmlspecialchars($song->f_artist).'</songartist>'; + $result = $result.'<songalbum>'.htmlspecialchars($song->f_album).'</songalbum>'; + + $result = $result.'</song>'; + + } // if it's a song + } // foreach song + + } // if now playing + $result = $result.'</now_playing_display>'; + } @@ -38,13 +105,6 @@ instantiation of myMpd. Would be much faster if it only loaded limited info to just grabbed what it needed. (Prolly tougher to maintain abstraction.) **********************/ -$no_session = true; -include ('../modules/init.php'); -$myMpd = init_mpd(); - -$action = $_GET['action']; -$result = ''; - /*if (!$user->has_access(25)) { echo '<error>Inadequate access privileges!</error>'; return; }*/ switch ($action) { @@ -70,6 +130,7 @@ case 'adjvol' : case ' X ': if ( is_null($myMpd->Stop()) ) $result = '<error>'.$myMpd->errStr.'</error>\n'; $result = $result.'<state>'. $myMpd->state. '</state>'; + now_playing(); break; case ' | | ': case ' = ': @@ -96,6 +157,7 @@ case 'adjvol' : mpd_cur_track_pos(); state(); now_playing(); +// now_playing_display(); break; @@ -103,7 +165,7 @@ case 'adjvol' : echo '<properties>' . - '<action>' . $action .'</action>' . + '<action>' . $action .$player.'</action>' . $result . '</properties>'; ?> |