$status = _parseStatusResponse(mpdStatus($mpd)); // Register player state in session $_SESSION['state'] = $status['state']; Session::close(); // Check and compare GUI state with Backend state // MPD idle timeout loop, mpdMonitorState() waits until something changes in MPD then returns status if ($_GET['state'] == $status['state']) { $status = mpdMonitorState($mpd); } // make sure song ist defined $song = isset($status['song']) ? $status['song'] : ''; $status['x_status'] = $status; $status['x_currentsong'] = _parseMpdCurrentSong(execMpdCommand($mpd, 'currentsong')); $status['x_playlistinfo'] = _parseFileListResponse(execMpdCommand($mpd, "playlistinfo " . $song)); // get track info for currently playing track $queue = mpdQueueTrackInfo($mpd, $song); if (isset($queue[0])) { $track = $queue[0]; // TODO check moving this to mpdEnrichItem $status['fileext'] = pathinfo($track['file'], PATHINFO_EXTENSION); // TODO use standard names instead of current xyz $status['currentartist'] = isset($track['Artist']) ? $track['Artist'] : ''; $status['currentsong'] = isset($track['Title']) ? $track['Title'] : ''; $status['currentalbum'] = isset($track['Album']) ? $track['Album'] : ''; // experimental mpdEnrichItemInfo($track); $status = array_merge($status, $track); } closeMpdSocket($mpd); header('Content-type: application/json'); echo json_encode($status, JSON_PRETTY_PRINT);
// nested array execMpdCommand($mpd, 'play ' . $pos); } break; // - library panel Add/replace/playall btn // - library panel Add/replace/playall btn case 'addallreplaceplay': if (null !== $path) { execMpdCommand($mpd, 'clear'); $res = mpdQueueAddMultiple($mpd, array_column($path, 'file')); // nested array execMpdCommand($mpd, 'play'); } break; case 'currentsong': $res = _parseMpdCurrentSong(execMpdCommand($mpd, 'currentsong')); mpdEnrichItemInfo($res); break; case 'playlist': $res = mpdQueueInfo($mpd); foreach ($res as &$song) { mpdEnrichItemInfo($song); } break; default: // execute any mpd command $res = execMpdCommand($mpd, $cmd); } closeMpdSocket($mpd); header('Content-type: application/json'); echo json_encode($res, JSON_PRETTY_PRINT);