function monitorMpdState($sock)
{
    if (sendMpdIdle($sock)) {
        $status = _parseStatusResponse(MpdStatus($sock));
        return $status;
    }
}
Exemple #2
0
         echo json_encode(searchDB($mpd, 'filepath', $_POST['path']));
     } else {
         echo json_encode(searchDB($mpd, 'filepath'));
     }
     break;
 case 'playlist':
     echo json_encode(getPlayQueue($mpd));
     break;
 case 'add':
     if (isset($_POST['path']) && $_POST['path'] != '') {
         echo json_encode(addQueue($mpd, $_POST['path']));
     }
     break;
 case 'addplay':
     if (isset($_POST['path']) && $_POST['path'] != '') {
         $status = _parseStatusResponse(MpdStatus($mpd));
         $pos = $status['playlistlength'];
         addQueue($mpd, $_POST['path']);
         sendMpdCommand($mpd, 'play ' . $pos);
         echo json_encode(readMpdResponse($mpd));
     }
     break;
 case 'addreplaceplay':
     if (isset($_POST['path']) && $_POST['path'] != '') {
         sendMpdCommand($mpd, 'clear');
         addQueue($mpd, $_POST['path']);
         sendMpdCommand($mpd, 'play');
         echo json_encode(readMpdResponse($mpd));
     }
     break;
 case 'update':
Exemple #3
0
    $audioinfo_hwparams_format .= $_hwparams['rate'] . " kHz";
    $audioinfo_hwparams_calcrate = $_hwparams['calcrate'] . " mbps";
} else {
    $audioinfo_hwparams_format = '';
    $audioinfo_hwparams_calcrate = '0 bps';
}
// INPUT INFO: mpd currentsong and status cmds
if (!$mpd) {
    $audioinfo_mpdstatus = 'Error Connecting to MPD daemon';
} else {
    // mpd currentsong
    $res = execMpdCommand($mpd, 'currentsong');
    $_mpdcurrentsong = _parseMpdCurrentSong($res);
    $audioinfo_mpdcurrentsong_file = $_mpdcurrentsong['file'];
    // mpd status
    $_mpdstatus = _parseStatusResponse(mpdStatus($mpd));
    if ($_hwparams['status'] == 'active') {
        // source format
        $audioinfo_mpdstatus_format = $_mpdstatus['audio_channels'] . ", ";
        // TC (Tim Curtis) 2015-07-31: format when "dsd" (for dsf files)
        $audioinfo_mpdstatus_format .= $_mpdstatus['audio_sample_depth'];
        $audioinfo_mpdstatus_format .= $_mpdstatus['audio_sample_depth'] == "dsd" ? ", " : " bit, ";
        $audioinfo_mpdstatus_format .= $_mpdstatus['audio_sample_rate'] . " kHz";
        // bit rate
        $audioinfo_mpdstatus_bitrate = $_mpdstatus['bitrate'] . " kbps";
    } else {
        $audioinfo_mpdstatus_format = '';
        $audioinfo_mpdstatus_bitrate = "0 bps";
    }
}
// DSP INFO: mpd.conf, configured SRC output format and converter
Exemple #4
0
function mpdMonitorState($sock)
{
    execMpdCommand($sock, "idle");
    return _parseStatusResponse(mpdStatus($sock));
}
Exemple #5
0
function wrk_togglePlayback($redis, $activePlayer)
{
    $stoppedPlayer = $redis->get('stoppedPlayer');
    // debug
    runelog('stoppedPlayer = ', $stoppedPlayer);
    runelog('activePlayer = ', $activePlayer);
    if ($stoppedPlayer !== '') {
        if ($stoppedPlayer === 'MPD') {
            // connect to MPD daemon
            $sock = openMpdSocket('/run/mpd.sock', 0);
            $status = _parseStatusResponse(MpdStatus($sock));
            runelog('MPD status', $status);
            if ($status['state'] === 'pause') {
                $redis->set('stoppedPlayer', '');
            }
            sendMpdCommand($sock, 'pause');
            closeMpdSocket($sock);
            // debug
            runelog('sendMpdCommand', 'pause');
        } elseif ($stoppedPlayer === 'Spotify') {
            // connect to SPOPD daemon
            $sock = openSpopSocket('localhost', 6602, 1);
            $status = _parseSpopStatusResponse(SpopStatus($sock));
            runelog('SPOP status', $status);
            if ($status['state'] === 'pause') {
                $redis->set('stoppedPlayer', '');
            }
            sendSpopCommand($sock, 'toggle');
            closeSpopSocket($sock);
            // debug
            runelog('sendSpopCommand', 'toggle');
        }
        $redis->set('activePlayer', $stoppedPlayer);
    } else {
        $redis->set('stoppedPlayer', $activePlayer);
        wrk_togglePlayback($redis, $activePlayer);
    }
    runelog('endFunction!!!', $stoppedPlayer);
}