summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-01-02 19:14:49 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-01-02 19:14:49 +0000
commit545043d3ed047037fc07b9e80688d94df7ed2da9 (patch)
treed5c60b7c02db772107d495519d930a99c1f77405 /server
parentcd4d2d79166c4f6d42fe021abec921bfeed7a906 (diff)
downloadampache-545043d3ed047037fc07b9e80688d94df7ed2da9.tar.gz
ampache-545043d3ed047037fc07b9e80688d94df7ed2da9.tar.bz2
ampache-545043d3ed047037fc07b9e80688d94df7ed2da9.zip
wups
Diffstat (limited to 'server')
-rw-r--r--server/ajax.server.php109
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>';
+?>