Example #1
0
 function openMpdSocket($host, $port)
 {
     $this->sock = stream_socket_client('tcp://' . $host . ':' . $port . '', $errorno, $errorstr, 30);
     $response = $this->readMpdResponse();
     if ($response = '') {
         sysCmd('command/shell.sh ' . $response);
         exit;
     }
     return $this->sock;
 }
Example #2
0
function alsa_findHwMixerControl($device)
{
    $cmd = "amixer -c " . $device . " |grep \"mixer control\"";
    $str = sysCmd($cmd);
    $hwmixerdev = substr(substr($str[0], 0, -(strlen($str[0]) - strrpos($str[0], "'"))), strpos($str[0], "'") + 1);
    return $hwmixerdev;
}
                // apc.ini
                $file = "/etc/php5/fpm/conf.d/20-apc.ini";
                $fileData = file($file);
                $newArray = array();
                foreach ($fileData as $line) {
                    // find the line that starts with 'presentation_url"
                    if (substr($line, 0, 8) == 'apc.stat') {
                        // replace apc.stat with selected value
                        $line = "apc.stat = " . $_SESSION['w_queueargs'] . "\n";
                    }
                    $newArray[] = $line;
                }
                // Commit changes to /etc/php5/fpm/conf.d/20-apc.ini
                $fp = fopen($file, 'w');
                fwrite($fp, implode("", $newArray));
                fclose($fp);
                // Restart PHP service
                sysCmd('service php5-fpm restart');
                playerSession('write', $db, 'enableapc', $_SESSION['w_queueargs']);
                break;
        }
        // reset locking and command queue
        $_SESSION['w_queue'] = '';
        $_SESSION['w_queueargs'] = '';
        $_SESSION['w_jobID'] = '';
        $_SESSION['w_active'] = 0;
        $_SESSION['w_lock'] = 0;
    }
    session_write_close();
}
// --- WORKER MAIN LOOP --- //
Example #4
0
File: nas.php Project: norrest/test
<?php 
$sezione = basename(__FILE__, '.php');
include '_header.php';
$tpl = 'credits.html';
?>


<!-- content --!>
<?php 
eval("echoTemplate(\"" . getTemplate("templates/{$tpl}") . "\");");
?>
<!-- content -->

<?php 
$cmd = 'mpc update NAS';
sysCmd($cmd);
echo "Update NAS mount-drive running! ";
sleep(5);
?>

<script type="text/javascript">
window.location = "index.php"
</script>


<?php 
include '_footer.php';
?>

     if (!is_dir($my_file)) {
         unlink($my_file);
     } else {
         rmdir($my_file);
     }
     break;
 case 'check_wifi':
     $eth0 = "false";
     $output = file_get_contents('/sys/class/net/eth0/operstate');
     if ($output == "up\n") {
         $eth0 = "true";
     }
     echo $eth0;
     break;
 case 'nw_reset':
     $output = sysCmd('service networking restart');
     echo "\nNW resetted! " . $output;
     break;
 case 'check_mixer':
     $output = file_get_contents('/etc/mpd.conf');
     $start = strrpos($output, "disabled");
     if ($start === false) {
         $start = strrpos($output, "software");
         if ($start === false) {
             $mixer = "\"hardware\"\n";
             echo $mixer;
         } else {
             $mixer = "\"software\"\n";
             echo $mixer;
         }
     } else {
Example #6
0
                // TC (Tim Curtis) 2015-06-26: set simple mixer name based on kernel version and i2s vs USB
                $mixername = getMixerName(getKernelVer($_SESSION['kernelver']), $_SESSION['i2s']);
                sysCmd("/var/www/tcmods/" . MOODE_RELEASE . "/cmds/tcmods.sh set-pcmvol " . $mixername . " " . $args);
                break;
                // TC (Tim Curtis) 2015-05-30: add clear system and playback history logs
            // TC (Tim Curtis) 2015-05-30: add clear system and playback history logs
            case 'clearsyslogs':
                sysCmd("/var/www/tcmods/" . MOODE_RELEASE . "/cmds/utility.sh clear-logs");
                break;
            case 'clearplayhistory':
                sysCmd("/var/www/tcmods/" . MOODE_RELEASE . "/cmds/utility.sh clear-playhistory");
                break;
                // TC (Tim Curtis) 2015-07-31: expand sd card storage
            // TC (Tim Curtis) 2015-07-31: expand sd card storage
            case 'expandsdcard':
                sysCmd("/var/www/tcmods/" . MOODE_RELEASE . "/cmds/resizefs.sh start");
                break;
        }
        // update session
        Session::wrap(function () {
            logWorker("[daemon] Task done");
            workerFinishTask();
        }, true);
    } else {
        // update session even if no task processed to avoid deadlock
        Session::wrap(function () {
            workerFinishTask();
        }, true);
    }
    sleep(5);
}
Example #7
0
function _setI2sDtoverlay($device)
{
    if ($device == 'I2S Off') {
        _setI2sModules('I2S Off');
    } else {
        $text = "# Device Tree Overlay being used\n";
        file_put_contents('/etc/modules', $text);
        switch ($device) {
            case 'Generic':
                // use hifiberry driver
            // use hifiberry driver
            case 'G2 Labs BerryNOS':
                // use hifiberry driver
            // use hifiberry driver
            case 'G2 Labs BerryNOS Red':
                // use hifiberry driver
            // use hifiberry driver
            case 'Durio Sound PRO':
            case 'Hifimediy ES9023':
            case 'Audiophonics I-Sabre DAC ES9023 TCXO':
            case 'HiFiBerry DAC':
                sysCmd('echo dtoverlay=hifiberry-dac >> /boot/config.txt');
                break;
            case 'HiFiBerry DAC+':
                sysCmd('echo dtoverlay=hifiberry-dacplus >> /boot/config.txt');
                break;
            case 'HiFiBerry Digi(Digi+)':
                sysCmd('echo dtoverlay=hifiberry-digi >> /boot/config.txt');
                break;
            case 'HiFiBerry Amp(Amp+)':
                sysCmd('echo dtoverlay=hifiberry-amp >> /boot/config.txt');
                break;
            case 'RaspyPlay4':
            case 'IQaudIO Pi-DAC':
                sysCmd('echo dtoverlay=iqaudio-dac >> /boot/config.txt');
                break;
            case 'IQaudIO Pi-DAC+':
            case 'IQaudIO Pi-AMP+':
            case 'IQaudIO Pi-DigiAMP+':
                sysCmd('echo dtoverlay=iqaudio-dacplus >> /boot/config.txt');
                break;
            case 'RPi DAC':
                // exception since there is no dtoverlay driver for this dac in 3.18
                sysCmd('echo dtoverlay= >> /boot/config.txt');
                $text = "# " . $device . "\n";
                $text .= "snd_soc_bcm2708\n";
                $text .= "snd_soc_bcm2708_i2s\n";
                $text .= "bcm2708_dmaengine\n";
                $text .= "snd_soc_pcm5102a\n";
                $text .= "snd_soc_rpi_dac\n";
                file_put_contents($file, $text);
                break;
        }
    }
}
Example #8
0
function wrk_sysChmod()
{
    sysCmd('chmod -R 777 /var/www/db');
    sysCmd('chmod a+x /var/www/command/orion_optimize.sh');
    sysCmd('chmod a+x /var/www/command/unmute.sh');
    sysCmd('chmod 777 /run');
    sysCmd('chmod 777 /run/sess*');
    sysCmd('chmod a+rw /etc/mpd.conf');
}
function alsa_findHwMixerControl($device)
{
    if (isset($_SESSION['i2s']) && $_SESSION['i2s'] == 'Hifiberryplus') {
        $hwmixerdev = 'Playback Digital';
    } elseif (isset($_SESSION['i2s']) && $_SESSION['i2s'] == 'Hifiberry') {
        $hwmixerdev = 'Playback Digital';
    } elseif (isset($_SESSION['i2s']) && $_SESSION['i2s'] == 'Iqaudio') {
        $hwmixerdev = 'Playback Digital';
    } else {
        $cmd = "amixer -c " . $device . " |grep \"mixer control\"";
        $str = sysCmd($cmd);
        $hwmixerdev = substr(substr($str[0], 0, -(strlen($str[0]) - strrpos($str[0], "'"))), strpos($str[0], "'") + 1);
    }
    return $hwmixerdev;
}
Example #10
0
            break;
        case 'getmpdstatus':
            $res = _parseStatusResponse(mpdStatus($mpd));
            break;
        case 'readstationfile':
            // misuse mpd function to split lines
            $res = parseMpdKeyedResponse(file_get_contents(MPD_LIB . $_POST['path']), '=');
            break;
        case 'readplayhistory':
            $res = explode("\n", file_get_contents('/var/www/playhistory.log'));
            break;
            // TC (Tim Curtis) 2015-06-26: TESTING ALSA-Direct volume control, requires www-data user in visudo
        // TC (Tim Curtis) 2015-06-26: TESTING ALSA-Direct volume control, requires www-data user in visudo
        case 'sendalsacmd':
            $mixername = getMixerName(getKernelVer($_SESSION['kernelver']), $_SESSION['i2s']);
            $rtn = sysCmd("sudo " . $_POST['alsacmd'] . " " . $mixername . " " . $_POST['volumelevel'] . $_POST['scale']);
            $res = $rtn[0];
            break;
        default:
            http_reponse_code(500);
            // internal server error
            exit;
    }
    header('Content-type: application/json');
    echo json_encode($res, JSON_PRETTY_PRINT);
    exit;
}
/*
 * Audio info
 */
$_hwparams = getHwParams();
Example #11
0
            $jobID[] = wrk_control($redis, 'newjob', $data = array('wrkcmd' => 'mpdrestart'));
        }
        if ($_POST['syscmd'] === 'backup') {
            $jobID[] = wrk_control($redis, 'newjob', $data = array('wrkcmd' => 'backup'));
        }
    }
}
waitSyWrk($redis, $jobID);
// push backup file
if ($_POST['syscmd'] === 'backup') {
    pushFile($redis->hGet('w_msg', $jobID[0]));
    $redis->hDel('w_msg', $jobID[0]);
}
// collect system status
$template->sysstate['kernel'] = file_get_contents('/proc/version');
$template->sysstate['time'] = implode('\\n', sysCmd('date'));
$template->sysstate['uptime'] = date('d:H:i:s', strtok(file_get_contents('/proc/uptime'), ' '));
$template->sysstate['HWplatform'] = $redis->get('hwplatform') . " (" . $redis->get('hwplatformid') . ")";
$template->sysstate['playerID'] = $redis->get('playerid');
$template->hostname = $redis->get('hostname');
$template->ntpserver = $redis->get('ntpserver');
$template->timezone = $redis->get('timezone');
$template->orionprofile = $redis->get('orionprofile');
$template->airplay = $redis->hGetAll('airplay');
$template->dlna = $redis->hGetAll('dlna');
$template->udevil = $redis->get('udevil');
$template->coverart = $redis->get('coverart');
$template->globalrandom = $redis->get('globalrandom');
$template->lastfm = $redis->hGetAll('lastfm');
$template->cmediafix = $redis->get('cmediafix');
$template->proxy = $redis->hGetAll('proxy');
Example #12
0
$_system_select['airplay_name'] = $_SESSION['airplay_name'];
$_system_select['upnp_name'] = $_SESSION['upnp_name'];
$_system_select['dlna_name'] = $_SESSION['dlna_name'];
// TC (Tim Curtis) 2015-04-29: add PCM (alsamixer) volume
// TC (Tim Curtis) 2015-06-26: updated logic
if ($_SESSION['pcm_volume'] == 'none') {
    $_pcm_volume = '';
    $_pcm_volume_readonly = 'readonly';
    $_pcm_volume_hide = 'hide';
    $_pcm_volume_msg = "<span class=\"help-block help-block-margin\">PCM volume mixer not detected for attached audio device</span>";
} else {
    // TC (Tim Curtis) 2015-06-26: get current volume setting, requires www-data user in visudo
    // TC (Tim Curtis) 2015-06-26: set simple mixer name based on kernel version and i2s vs USB
    $mixername = getMixerName($kernelver, $_SESSION['i2s']);
    $cmd = "sudo /var/www/tcmods/" . MOODE_RELEASE . "/cmds/tcmods.sh get-pcmvol " . $mixername;
    $rtn = sysCmd($cmd);
    $_pcm_volume = str_replace("%", "", $rtn[0]);
    if (isset($_POST['pcm_volume']) && $_pcm_volume != $_POST['pcm_volume']) {
        // player_wrk has not processed the change yet
        $_pcm_volume = $_POST['pcm_volume'];
    }
    $_pcm_volume_readonly = '';
    $_pcm_volume_hide = '';
    $_pcm_volume_msg = '';
}
// TC (Tim Curtis) 2015-02-25: add kernel select list
// TC (Tim Curtis) 2015-06-26: add 3.18.14 and 3.18.11 kernels to select list
if ($_SESSION['procarch'] == "armv7l") {
    // Pi-2
    $_linux_kernel['kernelver'] .= "<option value=\"3.18.14-v7+\" " . ($_SESSION['kernelver'] == '3.18.14-v7+' ? "selected" : "") . ">3.18.14-v7+</option>\n";
    $_linux_kernel['kernelver'] .= "<option value=\"3.18.11-v7+\" " . ($_SESSION['kernelver'] == '3.18.11-v7+' ? "selected" : "") . ">3.18.11-v7+</option>\n";
Example #13
0
function mpdTouchFiles()
{
    return sysCmd("find '" . MPD_LIB . 'WEBRADIO' . "' -name \"" . "*.pls" . "\"" . " -exec touch {} \\+");
}