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; } }