Example #1
0
function widgetControl($baseurl = "widgets/wControl.php", $forcemenu = false)
{
    global $mfpsecured, $mfpapikey;
    $json = '{"status":true}';
    $errmsg = '';
    if (!empty($_GET["style"]) && ($_GET["style"] == "w" || $_GET["style"] == "m")) {
        $displayMenu = $_GET["style"] == "m" || $forcemenu;
        if (!empty($_GET["cmd"])) {
            switch ($_GET["cmd"]) {
                case "shutdown":
                    // Shutdown
                    $results = jsonmethodcall("System.Shutdown");
                    break;
                case "suspend":
                    // Suspend
                    $results = jsonmethodcall("System.Suspend");
                    break;
                case "hibernate":
                    // Hibernate
                    $results = jsonmethodcall("System.Hibernate");
                    break;
                case "reboot":
                    // Reboot
                    $results = jsonmethodcall("System.Reboot");
                    break;
                case "exit":
                    // Exit
                // Exit
                case "quit":
                    $results = jsonmethodcall("XBMC.Quit");
                    break;
                case "vidscan":
                    // Video Library ScanForContent
                    $results = jsonmethodcall("VideoLibrary.ScanForContent");
                    break;
                default:
                    $errmsg = "Invalid Command";
                    $displayMenu = $_GET["style"] != "m";
            }
        } elseif (!empty($_GET["json"])) {
            $request = stripslashes(urldecode($_GET["json"]));
            $results = jsoncall($request);
            // This method will only work if MFP is on the same system as xbmc.
        } elseif (!empty($_GET["xbmcsend"])) {
            if (!empty($mfpapikey) && !empty($_GET["apikey"]) && $_GET["apikey"] == $mfpapikey || $mfpsecured) {
                $request = "xbmc-send";
                $request .= !empty($_GET["host"]) ? " --host=" . $_GET["host"] : "";
                $request .= !empty($_GET["port"]) ? " --port=" . $_GET["port"] : "";
                $request .= " --action=\"" . stripslashes(urldecode($_GET["xbmcsend"])) . "\"";
                $results = shell_exec($request);
                $json = '{"status":true, "message": "' . str_replace("\"", "\\\"", $results) . '"}';
            } else {
                $errmsg = "Authorization failure";
            }
        } elseif (!empty($_GET["shell"])) {
            if (!empty($mfpapikey) && !empty($_GET["apikey"]) && $_GET["apikey"] == $mfpapikey || $mfpsecured) {
                $request = stripslashes(urldecode($_GET["shell"]));
                $results = shell_exec($request);
                $json = '{"status":true, "message": "' . str_replace("\"", "\\\"", $results) . '"}';
            } else {
                $errmsg = "Authorization failure";
            }
        } else {
            $displayMenu = $forcemenu;
            $errmsg = "No action.";
        }
    } else {
        $displayMenu = $forcemenu;
    }
    if ($displayMenu) {
        widgetMenu($baseurl);
    } else {
        if (!empty($_GET["style"]) && $_GET["style"] == "w") {
            if (!empty($errmsg)) {
                $json = '{"status":false, "error": "' . $errmsg . '"}';
            }
            echo str_replace("\n", "\\n", $json);
        }
    }
}
function playSongFromList($songid)
{
    echo "1";
    $jsonVersion = jsonmethodcall("JSONRPC.Version");
    //pull the JSON version # from XBMC
    $results = jsonmethodcall("Player.GetActivePlayers");
    if (!empty($results)) {
        if ($results['result']['audio'] == 1) {
            if ($jsonVersion['result']['version'] == '2') {
                $request = jsonstring("AudioPlaylist.Add", $songid);
            }
            if ($jsonVersion['result']['version'] == '3') {
                $request = jsonstring("AudioPlaylistV3.Add", $songid);
            }
        } else {
            if ($jsonVersion['result']['version'] == '2') {
                $request = jsonstring("XBMC.Play", '"songid": ' . $songid);
            }
            if ($jsonVersion['result']['version'] == '3') {
                jsoncall(jsonstring("AudioPlaylist.Clear"));
                jsoncall(jsonstring("AudioPlaylistV3.Add", $songid));
                jsoncall(jsonstring("AudioPlaylist.Play"));
            }
        }
        $results = jsoncall($request);
        if (empty($results)) {
            echo $COMM_ERROR;
            echo "<pre>{$request}</pre>";
        }
    } else {
        echo $COMM_ERROR;
    }
}
function processCommand($command)
{
    global $xbmcimgpath;
    switch ($command) {
        case "ShowPlaylist":
            $results = jsonmethodcall("Player.GetActivePlayers");
            if ($results['result']['video'] == 1) {
                echo "\t<p>Not Yet Implemented</p>\n";
            } elseif ($results['result']['audio'] == 1) {
                $results = jsonmethodcall("AudioPlaylist.GetItems");
                if (array_key_exists('items', $results['result'])) {
                    $items = $results['result']['items'];
                    $current = $results['result']['current'];
                    $songcount = count($results);
                    $i = 0;
                    foreach ($items as $queueItem) {
                        if ($i > $current) {
                            $thumb = $queueItem['thumbnail'];
                            $artist = $queueItem['artist'];
                            $title = $queueItem['title'];
                            $album = $queueItem['album'];
                            if (strlen($thumb) > 0) {
                                echo "<div id=\"playlist-item-" . $i . "\" class=\"playlist-item\">\n";
                                echo "\t<img src=\"" . $xbmcimgpath . $thumb . "\" />\n";
                            }
                            echo "\t<p>" . $artist . "</p>\n";
                            echo "\t<p>" . $title . "</p>\n";
                            echo "\t<p>" . $album . "</p>\n";
                            echo "</div>\n";
                            echo "<div class=\"clear-float\"></div>\n";
                        }
                        $i++;
                    }
                }
            }
            break;
        default:
            /*
            	XBMC Player Commands
            	PlayPause,            Pauses or unpause playback
            	Stop,                 Stops playback
            	SkipPrevious,         Skips to previous item on the playlist
            	SkipNext,             Skips to next item on the playlist
            	BigSkipBackward,      
            	BigSkipForward,       
            	SmallSkipBackward,    
            	SmallSkipForward,     
            	Rewind,               Rewind current playback
            	Forward,              Forward current playback
            */
            //get active players
            $results = jsonmethodcall("Player.GetActivePlayers");
            //Video Player
            if ($results['result']['video'] == 1) {
                //get playlist items
                $player = "VideoPlayer";
                //Music Player
            } elseif ($results['result']['audio'] == 1) {
                //get playlist items
                $player = "AudioPlayer";
            } else {
                // Nothing Playing
            }
            if (!empty($player) && !empty($command)) {
                $results = jsonmethodcall($player . '.' . $command);
            }
            // debugging
            if (!empty($_GET["debug"]) && $_GET["debug"] == "y") {
                echo "<br/>Call: <pre>";
                echo print_r($request, 1);
                echo "</pre><br/>";
                echo "<br/>Result: <pre>";
                echo print_r($result, 1);
                echo "</pre><br/>";
            }
    }
}
function playSongFromList($songid)
{
    $results = jsonmethodcall("Player.GetActivePlayers");
    if (!empty($results)) {
        if ($results['result']['audio'] == 1) {
            $request = jsonstring("AudioPlaylist.Add", $songid);
        } else {
            $request = jsonstring("XBMC.Play", '"songid": ' . $songid);
        }
        $results = jsoncall($request);
        if (empty($results)) {
            echo $COMM_ERROR;
            echo "<pre>{$request}</pre>";
        }
    } else {
        echo $COMM_ERROR;
    }
}