示例#1
0
$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);
示例#2
0
文件: index.php 项目: dermidgen/moode
            // 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);