function action_getCurStatus($msg = "") { global $config; doPrint("got json status request"); $data = getData(); $data = fillInDefaults($data); $text = "idle"; if (isset($data['ppid'])) { $file = $data['filename']; $file = str_replace($config["searchPath"], "", $file); if ($data['playingStream'] == 0 and strpos($file, "/") !== 0) { $file = "/" . $file; } $bitrate = ""; if (isset($data["bitrate"]) and !empty($data["bitrate"])) { $bitrate = " (" . $data["bitrate"] . "kb)"; } if ($data['pause']) { $text = "paused (pid: " . $data['ppid'] . "): " . $file . $bitrate; } else { $text = "playing (pid: " . $data['ppid'] . "): " . $file . $bitrate; } } else { $data['playingStream'] = 0; } list($remMin, $remSec, $remaining, $stream, $started) = getRemaining($data); $pre = "-"; if ($stream == 1 or empty($remSec) and empty($remMin)) { $pre = " "; } if (!empty($msg)) { $text = $msg; } $status[] = array('artist' => utf8_encode($data['artist']), 'album' => utf8_encode($data['album']), 'nr' => $data['track'], 'title' => utf8_encode($data['title']), 'length' => $data['length'], 'token' => $data['token'], 'volume' => getVolume(), 'status' => utf8_encode($text), 'remMin' => $remMin, 'remSec' => $remSec, 'pre' => $pre, 'play' => $data['play'], 'pause' => $data['pause'], 'repeat' => $data['repeat'], 'mute' => $data['mute'], 'quiet' => $data['quiet'], 'totalTime' => $data['totalTime'], "stream" => $data['playingStream'], "version" => "WebMP3 " . $WEBMP3_VERSION, "partymode" => $data['partymode']); if (isset($_REQUEST['debug'])) { print "<pre>time: " . time() . "\n\nstatus:"; print_r($status); print "\ndata:\n"; print_r($data); } if (isset($config['lastError']) and !empty($config['lastError'])) { header("HTTP/1.0 508 Application Error"); print $config['lastError']; doPrint("Error: " . $config['lastError']); exit(1); } $jsonstatus = json_encode($status); echo '({"total":"' . count($status) . '","results":' . $jsonstatus . '})'; }
function getData($called = 0, $errMsg = "") { global $config; global $data; $called++; if ($called > 1) { sleep(1); doPrint($called . " try to get data"); } if ($called == 10) { die($errMsg); } if (file_exists($config["playlist"])) { $tmp = file($config["playlist"]); if (!isset($tmp[0])) { return getData($called, "error in getData(), playlist corrupt?"); } $data = unserialize($tmp[0]); } else { $data = fillInDefaults(array()); } # check playlist for empty entries $playlist = array(); foreach ($data['playlist'] as $key => $track) { if (!is_array($track)) { } elseif (!isset($track['filename'])) { } else { $playlist[$key] = $track; } } $data['playlist'] = $playlist; if (!isset($data['partymode'])) { $data['partymode'] = "0"; } return $data; }