Esempio n. 1
0
function do_mpd_command($command, $return_array = false, $force_array_results = false)
{
    global $is_connected, $connection, $prefs;
    $retarr = array();
    if ($is_connected) {
        debuglog("MPD Command " . $command, "MPD", 9);
        $success = fputs($connection, $command . "\n");
        if ($success) {
            while (!feof($connection)) {
                $var = parse_mpd_var(fgets($connection, 1024));
                if (isset($var)) {
                    if ($var === true && count($retarr) == 0) {
                        // Got an OK or ACK but - no results or return_array is false
                        return true;
                    }
                    if ($var === true) {
                        break;
                    }
                    if ($var[0] == false) {
                        debuglog("Error for '" . $command . "'' : " . $var[1], "MPD", 1);
                        if ($return_array == true) {
                            $retarr['error'] = $var[1];
                        } else {
                            return false;
                        }
                        break;
                    }
                    if ($return_array == true) {
                        if (array_key_exists($var[0], $retarr)) {
                            if (is_array($retarr[$var[0]])) {
                                array_push($retarr[$var[0]], $var[1]);
                            } else {
                                $tmp = $retarr[$var[0]];
                                $retarr[$var[0]] = array($tmp, $var[1]);
                            }
                        } else {
                            if ($force_array_results) {
                                $retarr[$var[0]] = array($var[1]);
                            } else {
                                $retarr[$var[0]] = $var[1];
                            }
                        }
                    }
                }
            }
        } else {
            if (array_key_exists('player_backend', $prefs)) {
                $retarr['error'] = "There was an error communicating with " . ucfirst($prefs['player_backend']) . "! (could not write to socket)";
            } else {
                $retarr['error'] = "There was an error communicating with the player! (could not write to socket)";
            }
        }
    }
    return $retarr;
}
Esempio n. 2
0
function do_mpd_command_list($conn, $command, $arglist)
{
    fputs($conn, "command_list_begin\n");
    foreach ($arglist as $key => $arg) {
        fputs($conn, $command . " " . $arg . "\n");
    }
    fputs($conn, "command_list_end\n");
    while (!feof($conn)) {
        $var = parse_mpd_var(fgets($conn, 1024));
        if (isset($var)) {
            if ($var === true) {
                return true;
            }
        }
    }
    return false;
}
Esempio n. 3
0
<div id="tagfiles">
<?php 
echo "<h2><a name=\"tagfiles\"></a>Files";
if (array_key_exists("artist", $configuration) || array_key_exists("album", $configuration)) {
    echo " <small>[";
    $letters_tagfiles = array();
    $tagfiles = array();
    $thisfile = "";
    fputs($connection, "find " . (array_key_exists("album", $configuration) ? "album \"" . $configuration["album"] : "artist \"" . $configuration["artist"]) . "\"\n");
    while (!feof($connection)) {
        $var = parse_mpd_var(fgets($connection, 1024));
        if (isset($var)) {
            if ($var === true) {
                break;
            }
            if ($var[0] == "file") {
                $thisfile = $var[1];
                $tagfiles[$thisfile] = array("file" => $thisfile);
            } else {
                $tagfiles[$thisfile][$var[0]] = $var[1];
            }
        }
    }
    foreach ($tagfiles as $key => $val) {
        if (!isset($letters_tagfiles[strtoupper(mbFirstChar(get_songinfo_first($val, isset($configuration["sort"]) ? $configuration["sort"] : array("file"), 0)))])) {
            $letters_tagfiles[strtoupper(mbFirstChar(get_songinfo_first($val, isset($configuration["sort"]) ? $configuration["sort"] : array("file"), 0)))] = true;
        }
    }
    make_link("", "playlist", "add all", $arguments = array("command" => "addlist", "arg" => $tagfiles));
    echo "] ";
    if (count($tagfiles) > 0) {
Esempio n. 4
0
<?php

$is_connected = false;
$authorized = false;
if ($configuration["use_cookies"] == true) {
    if (isset($configuration["hide"])) {
        make_config_cookie("playlist_hide", $hide);
    }
}
$connection = fsockopen($configuration["mpd_host"], $configuration["mpd_port"], $errno, $errstr, 10);
if (isset($connection) && is_resource($connection)) {
    while (!feof($connection)) {
        $gt = fgets($connection, 1024);
        if (parse_mpd_var($gt)) {
            break;
        }
    }
    if (array_key_exists("action", $_REQUEST) && $_REQUEST["action"] == "Logout") {
        eat_config_cookie("password");
    } else {
        $pass = array_key_exists("action", $_REQUEST) && $_REQUEST["action"] == "Login" ? $_REQUEST["password"] : (isset($configuration["password"]) ? $configuration["password"] : null);
        if (isset($pass)) {
            if (do_mpd_command($connection, "password " . $pass) === true) {
                $authorized = true;
                if ($configuration["use_cookies"] == "yes") {
                    make_config_cookie("password", $pass);
                }
            }
        }
    }
    if (array_key_exists("command", $_REQUEST)) {