diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-01-02 19:14:49 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-01-02 19:14:49 +0000 |
commit | 545043d3ed047037fc07b9e80688d94df7ed2da9 (patch) | |
tree | d5c60b7c02db772107d495519d930a99c1f77405 /server | |
parent | cd4d2d79166c4f6d42fe021abec921bfeed7a906 (diff) | |
download | ampache-545043d3ed047037fc07b9e80688d94df7ed2da9.tar.gz ampache-545043d3ed047037fc07b9e80688d94df7ed2da9.tar.bz2 ampache-545043d3ed047037fc07b9e80688d94df7ed2da9.zip |
wups
Diffstat (limited to 'server')
-rw-r--r-- | server/ajax.server.php | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/server/ajax.server.php b/server/ajax.server.php new file mode 100644 index 00000000..f0489727 --- /dev/null +++ b/server/ajax.server.php @@ -0,0 +1,109 @@ +<?php +header('Content-Type: text/xml'); +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>'; } + +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>'; +} + + +/********************** +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.) +**********************/ + +$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) { +case 'getvol' : + $result = '<volume>'. $myMpd->volume. '</volume>'; + break; +case 'setvol' : + if ( is_null($myMpd->SetVolume($_GET['param1'])) ) $result = '<error>'.$myMpd->errStr.'</error>'; + $result = $result.'<volume>'. $myMpd->volume. '</volume>'; + break; +case 'adjvol' : + if ( is_null($myMpd->AdjustVolume($_GET['param1'])) ) $result = '<error>'.$myMpd->errStr.'</error>'; + volume(); + break; + case ' > ': + case "play": + if ( is_null($myMpd->Play()) ) $result = '<error>'.$myMpd->errStr.'</error>\n'; + mpd_cur_track_pos(); + state(); + now_playing(); + break; + case "stop": + case ' X ': + if ( is_null($myMpd->Stop()) ) $result = '<error>'.$myMpd->errStr.'</error>\n'; + $result = $result.'<state>'. $myMpd->state. '</state>'; + break; + case ' | | ': + case ' = ': + case "pause": + if ( is_null($myMpd->Pause()) ) echo "ERROR: " .$myMpd->errStr."\n"; + mpd_cur_track_pos(); + state(); + 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(); + break; + + +} //end switch + + +echo '<properties> + <action>' . $action .'</action>' . + $result . +'</properties>'; +?> |