summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-01-14 19:16:00 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-01-14 19:16:00 +0000
commitfdb23e3779207c9a77e15c6d31441cc6314354f0 (patch)
treeef6c9e0917b59ec0faf07d652fdef0175ddfbd92 /lib
parentc22b5025d3e77325923937f293c30d85111f5af9 (diff)
downloadampache-fdb23e3779207c9a77e15c6d31441cc6314354f0.tar.gz
ampache-fdb23e3779207c9a77e15c6d31441cc6314354f0.tar.bz2
ampache-fdb23e3779207c9a77e15c6d31441cc6314354f0.zip
fixed play selected always playing everything on a playlist regardless
Diffstat (limited to 'lib')
-rw-r--r--lib/class/playlist.class.php29
-rw-r--r--lib/general.js2
2 files changed, 27 insertions, 4 deletions
diff --git a/lib/class/playlist.class.php b/lib/class/playlist.class.php
index c89ac420..51399b41 100644
--- a/lib/class/playlist.class.php
+++ b/lib/class/playlist.class.php
@@ -111,13 +111,36 @@ class Playlist {
* This returns an array of song_ids accounting for any dyn_song entries this playlist
* may have. This is what should be called when trying to generate a m3u or other playlist
*/
- function get_songs() {
+ function get_songs($array=array()) {
+
+ $results = array();
+
+ /* If we've passed in some songs */
+ if (count($array)) {
+
+ foreach ($array as $data) {
+
+ $sql = "SELECT song,dyn_song FROM playlist_data WHERE id='" . sql_escape($data) . "'";
+ $db_results = mysql_query($sql, dbh());
+
+ $r = mysql_fetch_assoc($db_results);
+ if ($r['dyn_song']) {
+ $array = $this->get_dyn_songs($r['dyn_song']);
+ $results = array_merge($array,$results);
+ }
+ else {
+ $results[] = $r['song'];
+ }
+
+ } // end foreach songs
+
+ return $results;
+
+ } // end if we were passed some data
$sql = "SELECT * FROM playlist_data WHERE playlist='" . sql_escape($this->id) . "'";
$db_results = mysql_query($sql, dbh());
- $results = array();
-
while ($r = mysql_fetch_assoc($db_results)) {
if ($r['dyn_song']) {
$array = $this->get_dyn_songs($r['dyn_song']);
diff --git a/lib/general.js b/lib/general.js
index 879da45a..d196e8f0 100644
--- a/lib/general.js
+++ b/lib/general.js
@@ -65,7 +65,7 @@ function handleStateChange() {
} // end if
break;
case 'now_playing' :
- if (player == 'mpd') {
+ if (player == 'mpd' && (player_state == 'play')) {
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 =