summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-01-15 08:14:54 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-01-15 08:14:54 +0000
commit1f5748db2b30825426e3b877699d86d543f641eb (patch)
tree38f640b900fff1cba3e97f646279b9defe083cb4 /lib
parent2d5ed879bd17024154e87de22c811bbfd0e69433 (diff)
downloadampache-1f5748db2b30825426e3b877699d86d543f641eb.tar.gz
ampache-1f5748db2b30825426e3b877699d86d543f641eb.tar.bz2
ampache-1f5748db2b30825426e3b877699d86d543f641eb.zip
now playing stuff
Diffstat (limited to 'lib')
-rw-r--r--lib/general.js84
1 files changed, 76 insertions, 8 deletions
diff --git a/lib/general.js b/lib/general.js
index d196e8f0..c3cf40f6 100644
--- a/lib/general.js
+++ b/lib/general.js
@@ -15,7 +15,7 @@ function createXMLHttpRequest() {
function startRequest(params) {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
- xmlHttp.open("GET", "server/ajax.server.php?"+params, true);
+ xmlHttp.open("GET", "server/ajax.server.php?"+params+"&player="+player, true);
/* xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); */
xmlHttp.send(null);
}
@@ -27,7 +27,7 @@ alert ("mpd_elapsed ="+fmt_time(mpd_elapsed)+"; nowtime - starttime ="+fmt_time(
function handleStateChange() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
-/* alert ("responseText = " + xmlHttp.responseText); */
+/* alert ("responseText = " + xmlHttp.responseText); */
var props = xmlHttp.responseXML.getElementsByTagName("properties")[0].childNodes;
for (var i=1; i< props.length; i++) {
@@ -38,7 +38,7 @@ function handleStateChange() {
case 'action' : break;
case 'volume' :
var vol = el.firstChild.data;
- document.getElementById ('volume').firstChild.data = vol;
+ if (player == 'mpd') document.getElementById ('volume').firstChild.data = vol;
break;
case 'mpd_cur_track_pos' :
mpd_elapsed = Math.floor(el.firstChild.data);
@@ -55,17 +55,17 @@ function handleStateChange() {
document.getElementById (new_state+'_button').className = "selected_button";
player_state = new_state;
if (player_state == "stop" || player_state == "pause") {
- if (player == 'mpd') document.getElementById ('mpd_np').className = "nodisplay";
+ document.getElementById ('mpd_np').className = "nodisplay";
/* turn off the now playing stuff */
} else
{
- if (player == 'mpd') document.getElementById ('mpd_np').className = "";
+ document.getElementById ('mpd_np').className = "";
/* turn on the now playing stuff */
} // end if else
- } // end if
+ } // end if mpd changed player_state
break;
case 'now_playing' :
- if (player == 'mpd' && (player_state == 'play')) {
+ if (player == 'mpd' && player_state != 'stop') {
mpd_song_length = el.getElementsByTagName ('songlength')[0].firstChild.data;
mpd_songid = Math.round(el.getElementsByTagName ('songid')[0].firstChild.data);
document.getElementById ('mpd_npinfo').firstChild.data =
@@ -74,8 +74,14 @@ function handleStateChange() {
el.getElementsByTagName ('songtitle')[0].firstChild.data + " - " +
el.getElementsByTagName ('songalbum')[0].firstChild.data + " - " +
fmt_time(mpd_song_length);
- }
+ }
break;
+ case 'now_playing_display' :
+ // fix for pages where now playing data doesnt exist
+ if (document.getElementById('np_songid_0_holder')) {
+ show_now_playing_display(el);
+ }
+ break;
default :
alert ('Unknown XML reply :"'+el.tagName+'"');
} // end switch
@@ -88,6 +94,68 @@ function handleStateChange() {
}
+// the actual function that checks and updates the now playing data.
+function show_now_playing_display (el) {
+ for (var i=0; i<el.childNodes.length; i++) {
+ now_playing = el.childNodes[i];
+
+ // check if we need to update
+ if (document.getElementById('np_songid_'+i+'_holder').innerHTML ==
+ now_playing.getElementsByTagName('songid')[0].firstChild.data) { } else {
+
+ // set the songid holder, so we only update if nessicary... (no album art flashing)
+ document.getElementById('np_songid_'+i+'_holder').innerHTML =
+ now_playing.getElementsByTagName('songid')[0].firstChild.data;
+
+ // output the fullname of the person, may be blank
+ document.getElementById('np_fullname_'+i).innerHTML =
+ now_playing.getElementsByTagName('fullname')[0].firstChild.data;
+
+ // output the song name and link tag
+ document.getElementById('np_song_'+i).innerHTML =
+ '<a href="song.php?action=m3u&amp;song=' +
+ now_playing.getElementsByTagName('songid')[0].firstChild.data + '">' +
+ now_playing.getElementsByTagName('songtitle')[0].firstChild.data + '</a>';
+
+
+ // output the artist / album and link tags
+ document.getElementById('np_albumartist_'+i).innerHTML =
+ '<a href="albums.php?action=show&amp;album=' +
+ now_playing.getElementsByTagName('albumid')[0].firstChild.data + '">' +
+ now_playing.getElementsByTagName('songalbum')[0].firstChild.data +
+ '</a> / <a href="artists.php?action=show&amp;artist=' +
+ now_playing.getElementsByTagName('artistid')[0].firstChild.data + '">' +
+ now_playing.getElementsByTagName('songartist')[0].firstChild.data + '</a>';
+
+ // output the album art, and the link for it
+ document.getElementById('np_img_'+i).innerHTML =
+ '<a target="_blank" href="albumart.php?id=' +
+ now_playing.getElementsByTagName('albumid')[0].firstChild.data +
+ '&amp;type=popup" onclick="popup_art(\'albumart.php?id=' +
+ now_playing.getElementsByTagName('albumid')[0].firstChild.data +
+ '&amp;type=popup\'); return false;">' +
+ '<img align="middle" border="0" src="albumart.php?id=' +
+ now_playing.getElementsByTagName('albumid')[0].firstChild.data +
+ '&amp;fast=1&amp;thumb=1" alt="Album Art" height="75" /></a>';
+
+
+ // make sure its visible.
+ document.getElementById('np_container_'+i).style.display = 'block';
+
+
+ } // end if holder = songid
+ } // for ecah record we get
+
+ // fill in the rest with blank data and hide them.
+ while (i<5) {
+ document.getElementById('np_container_'+i).style.display = 'none';
+ document.getElementById('np_songid_'+i+'_holder').innerHTML = '';
+ i++;
+ } // end while i<5
+
+} // end show_now_playing_display function
+
+
function disableField(element) {
var element_id = document.getElementById(element);
element_id.disabled=true;