Exemple #1
0
             $TCMODS_CLOCKRAD_RETRY = 3;
         } else {
             --$TCMODS_CLOCKRAD_RETRY;
             // decrement
         }
         // shutdown requested
         if ($_tcmods_conf['clock_radio_shutdown'] == "Yes") {
             sysCmd('poweroff');
         }
     }
 }
 // TC (Tim Curtis) 2015-05-30: update playback history log
 if ($_tcmods_conf['play_history_enabled'] == "Yes" && ($mpd = openMpdSocket(MPD_HOST, 6600))) {
     $resp = execMpdCommand($mpd, 'currentsong');
     closeMpdSocket($mpd);
     $currentsong = _parseMpdCurrentSong($resp);
     // TC (Tim Curtis) 2015-07-31: updated logic
     // Logic modeled after player_lib.js getPlaylist();
     // RADIO STATION
     if (isset($currentsong['Name']) || substr($currentsong['file'], 0, 4) == "http" && !isset($currentsong['Artist'])) {
         if (!isset($currentsong['Title'])) {
             $title = "Streaming source";
         } else {
             $title = $currentsong['Title'];
             $searchStr = str_replace('-', ' ', $title);
             $searchStr = str_replace('&', ' ', $searchStr);
             $searchStr = preg_replace('!\\s+!', '+', $searchStr);
         }
         $artist = "<i class=\"icon-microphone\"></i>";
         $result = ConfigDB::read('cfg_radio', $currentsong['file']);
         if (0 == count($result)) {
Exemple #2
0
}
Session::open();
// Fetch MPD status
$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);
}
Exemple #3
0
if ($_hwparams['status'] == 'active') {
    $audioinfo_hwparams_format = $_hwparams['channels'] . ", ";
    $audioinfo_hwparams_format .= $_hwparams['format'] . " bit, ";
    $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";
Exemple #4
0
            // 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);