Source for file Ajax.class.php

Documentation is available at Ajax.class.php

  1. <?php
  2.  
  3. function action($pAction,$pArgs = null) {
  4. $pAction = trim($pAction);
  5. if ($pAction == "") return false;
  6. $lReturnValue = null;
  7. switch ($pAction) {
  8. case "loadDreambox":
  9. $lReturnValue = loadDreambox($pArgs);
  10. break;
  11. case "zap":
  12. $lReturnValue = zap($pArgs);
  13. break;
  14. case "loadBoutiques":
  15. $lReturnValue = getBoutiques();
  16. break;
  17. case "loadChannels":
  18. $lReturnValue = getChannels($pArgs);
  19. break;
  20. case "serverstatus":
  21. $lReturnValue = serverStatus();
  22. break;
  23. case "killserver":
  24. $lReturnValue = killServer();
  25. break;
  26. case "channelInfo":
  27. $lReturnValue = getChannelInfo($pArgs);
  28. break;
  29. case "tvguide":
  30. $lReturnValue = showTVGuide($pArgs);
  31. break;
  32. case "programinfo":
  33. $lReturnValue = getProgramInfo($pArgs);
  34. break;
  35. case "loadRecordings" :
  36. $lReturnValue = getRecordings();
  37. break;
  38.  
  39. }
  40. return $lReturnValue;
  41. }
  42.  
  43.  
  44. function loadDreambox($pRenew = 0) {
  45. $lDreambox = new Dreambox(Settings::getDreamboxIP(),Settings::getEnigmaVersion(),array(Settings::getDreamboxUserName(),Settings::getDreamboxPassword()),$pRenew);
  46.  
  47. $lAjaxResponse = new xajaxResponse();
  48. if ( ($lMessage = $lDreambox->sanityCheck()) != "") {
  49. $lAjaxResponse->addAssign("TB_ajaxContent","innerHTML","<br />Your settup is not correct! Fix the following problems:<br />$lMessage");
  50. $lAjaxResponse->addAssign("TB_ajaxContent","style.color","red");
  51. } elseif ($lDreambox->isOnline()) {
  52. $lDreambox->loadBoutiques($pRenew);
  53. $lDreambox->loadChannels($pRenew);
  54. $lAjaxResponse->addScript("xajax_action('loadBoutiques');xajax_action('serverstatus');");
  55. $VLCServerObj = new VLCServer();
  56. if ($VLCServerObj->getCurrentStream()) {
  57. $lAjaxResponse->addScript($VLCServerObj->getJSSettings() . ";");
  58. $lBoutique = $lDreambox->findBoutiqueWithChannel($VLCServerObj->getCurrentChannel());
  59. $lAjaxResponse->addScript("setTimeout(function(){jQuery('#boutiques').val('". $lBoutique->getID() . "');xajax_action('loadChannels','". $lBoutique->getID() . "')},1000);");
  60. $lAjaxResponse->addScript("setTimeout(function(){jQuery('#channels').val('". $VLCServerObj->getCurrentChannel() . "');},2500);");
  61. $lAjaxResponse->addScript("window.streamingUrl = '" . $VLCServerObj->getStreamingUrl() . "';");
  62. $lAjaxResponse->addScript("xajax_action('tvguide','". $VLCServerObj->getCurrentChannel() . "');");
  63. $lAjaxResponse->addScript("setTimeout(function(){jQuery('#tvguide a:eq(0)').click();},2000);");
  64. if ($VLCServerObj->getEmbbedType() == "javascript") {
  65. $lAjaxResponse->addScript($VLCServerObj->getEmbeddedPlayer() . ";");
  66. } else {
  67. $lAjaxResponse->addAssign("PlayerDiv","innerHTML",$VLCServerObj->getEmbeddedPlayer());
  68. }
  69. }
  70. } else {
  71. $lAjaxResponse->addAssign("TB_ajaxContent","innerHTML","<br />Your dreambox is <b>OFFLINE</b>! Please power on the dreambox!");
  72. $lAjaxResponse->addAssign("TB_ajaxContent","style.color","red");
  73. }
  74. return $lAjaxResponse;
  75. }
  76.  
  77.  
  78. function getBoutiques() {
  79. $lDreamBoxObj = new Dreambox();
  80. $lDreamBoxObj->resetBoutiqueCounter();
  81. $lFirstBoutique = "";
  82. $lAjaxResponse = new xajaxResponse();
  83.  
  84. $lReturnValue = "<select name=\"boutiques\" id=\"boutiques\" onchange=\"xajax_action('loadChannels',this.value)\">";
  85. while ( ($lBoutiqueObj = $lDreamBoxObj->getNextBoutique()) != false ) {
  86. if ($lFirstBoutique == "") {
  87. $lFirstBoutique = $lBoutiqueObj->getID();
  88. }
  89. $lReturnValue .= "<option value=\"" . $lBoutiqueObj->getID() . "\">" . $lBoutiqueObj->getName() . "</option>\n";
  90. }
  91. $lReturnValue .= "</select>\n";
  92. $lAjaxResponse->addAssign("boutiquesSelector","innerHTML",$lReturnValue);
  93. $lAjaxResponse->addScript("xajax_action('loadChannels','$lFirstBoutique,1')");
  94. return $lAjaxResponse;
  95. }
  96.  
  97. function getChannels($pArgs) {
  98. $pArgs = explode(",",$pArgs);
  99. $lBoutiqueName = trim($pArgs[0]);
  100. $lFirst = (isset($pArgs[1]) ? $pArgs[1] : 0);
  101. $lDreamBoxObj = new Dreambox();
  102. $lAjaxResponse = new xajaxResponse();
  103.  
  104. $lReturnValue = "<select name=\"channels\" id=\"channels\" onchange=\"xajax_action('tvguide',this.value);\">";
  105. if ( ($lBoutiqueObj = $lDreamBoxObj->searchBoutique($lBoutiqueName)) != false ) {
  106. while ( ($lChannelObj = $lBoutiqueObj->getNextChannel()) != false ) {
  107. $lReturnValue .= " <option value=\"" . $lChannelObj->getID() . "\">" . $lChannelObj->getName() . "</option>\n";
  108. }
  109. }
  110. $lReturnValue .= "</select>\n";
  111. $lAjaxResponse->addAssign("channelsSelector","innerHTML",$lReturnValue);
  112. if ($lFirst) $lAjaxResponse->addScript("tb_remove();");
  113. return $lAjaxResponse;
  114. }
  115.  
  116.  
  117. function zap($pArgs) {
  118. $lVLCObj = new VLCServer(Settings::getEnigmaVersion(),array(Settings::getDreamboxUserName(),Settings::getDreamboxPassword()));
  119. $lVLCObj->setDimentions($pArgs["resolution"]);
  120. $lVLCObj->setChannel($pArgs["channels"]);
  121. $lVLCObj->setAudioCodec($pArgs["audio"]);
  122. $lVLCObj->setVideoCodec($pArgs["video"]);
  123. $lVLCObj->setFPS($pArgs["fps"]);
  124. $lVLCObj->setStreamType($pArgs["transport"]);
  125. $lVLCObj->setBitrate($pArgs["bitrate"]);
  126. $lVLCObj->setAudioBitrate("64");
  127. $lDebug = $lVLCObj->stopServer();
  128. $lDebug = $lVLCObj->startServer(1);
  129. $lDreamboxObj = new Dreambox();
  130. $lDreamboxObj->zap($pArgs["boutiques"],$pArgs["channels"]);
  131. sleep(3); // Wait for VLC to startup encoding
  132. foreach ($pArgs as $lKey => $lValue) {
  133. $lData .= "$lKey => $lValue\n"; // Debug loop
  134. }
  135.  
  136. $objResponse = new xajaxResponse();
  137. $objResponse->script("tb_remove();");
  138.  
  139. if ($pArgs["video"] == "FLV1" || $pArgs["transport"] == "rtmp") {
  140. $objResponse->addScript($lVLCObj->getEmbeddedPlayer());
  141. } else {
  142. $objResponse->addAssign("PlayerDiv","innerHTML",$lVLCObj->getEmbeddedPlayer());
  143. }
  144.  
  145. $objResponse->addScript("window.streamingUrl = '" . $lVLCObj->getStreamingUrl() . "';");
  146.  
  147. $objResponse->addScript("tb_remove();");
  148. if (substr($pArgs["channels"],0,2) == "1:") $objResponse->addScript("xajax_action('tvguide','". $pArgs["channels"] . "');");
  149. $objResponse->addAssign("debug-content","innerHTML","<pre>" . htmlentities($lVLCObj->getEmbeddedPlayer()) . "\n$lDebug\n$lData</pre>");
  150.  
  151. return $objResponse;
  152. }
  153.  
  154. function showTVGuide($pChannelID = "") {
  155. $lDreamboxObj = new Dreambox();
  156. $lDreamboxObj->loadProgramGuide($pChannelID,1);
  157. $lReturnValue = "";
  158. $lPrevDate = "";
  159. while ( ($lProgramObj = $lDreamboxObj->programGuide()->getNextProgram()) != false ) {
  160. if ($lReturnValue == "" || ( date("H",$lPrevDate) < 6 && date("H",$lProgramObj->getStartTime()) > 6) || stripos($lProgramObj->getTitle(),"BIENTOT") !== false ) {
  161. $lReturnValue .= "<b>" . date("d-m-Y",$lProgramObj->getStartTime()) . "</b><br />";
  162. }
  163. $lPrevDate = $lProgramObj->getStartTime();
  164. $lReturnValue .= date("H:i",$lProgramObj->getStartTime()) . " - " . date("H:i",$lProgramObj->getStopTime()) . "|<a href=\"javascript:void(0);\" onclick=\"xajax_action('programinfo','" . $lProgramObj->getID() . "')\" title=\"" . $lProgramObj->getTitle() . "\" >" . $lProgramObj->getTitle() . "</a><br />";
  165. }
  166. $objResponse = new xajaxResponse();
  167. $objResponse->addAssign("tvguide","innerHTML","TVGuide:<br />" . $lReturnValue);
  168. return $objResponse;
  169. }
  170.  
  171. function getProgramInfo($pProgramID) {
  172. $lDreamboxObj = new Dreambox();
  173. $lDreamboxObj->loadProgramGuide();
  174. $lProgramObj = $lDreamboxObj->programGuide()->searchProgram($pProgramID);
  175. $lAjaxResponse = new xajaxResponse();
  176. $lAjaxResponse->addAssign("programmaInfo","innerHTML","<strong>" . date("H:i",$lProgramObj->getStartTime()) . " - " . date("H:i",$lProgramObj->getStopTime()) . " | " . $lProgramObj->getTitle() . "</strong><br />" . $lProgramObj->getDescription());
  177. return $lAjaxResponse;
  178. }
  179.  
  180. function killServer() {
  181. $lVLCObj = new VLCServer(Settings::getEnigmaVersion(),array(Settings::getDreamboxUserName(),Settings::getDreamboxPassword()));
  182. $lDebug = $lVLCObj->stopServer();
  183. $objResponse = new xajaxResponse();
  184. $objResponse->addScript("xajax_action('serverstatus',0);");
  185. return $objResponse;
  186. }
  187.  
  188. function serverStatus($pRepeat = 1) {
  189. $lVLCObj = new VLCServer(Settings::getEnigmaVersion(),array(Settings::getDreamboxUserName(),Settings::getDreamboxPassword()));
  190. $objResponse = new xajaxResponse();
  191. $objResponse->addAssign("serverStatus","style.backgroundColor",($lVLCObj->isServerRunning() ? "green" : "red"));
  192. if ($pRepeat == 1) $objResponse->addScript("setTimeout('xajax_action(\'serverstatus\')',5000);");
  193. return $objResponse;
  194. }
  195.  
  196. function getRecordings() {
  197. $lDreamboxObj = new Dreambox();
  198. $lDreamboxObj->getRecordings();
  199. $lReturnValue = "";
  200. while ($lRecording = $lDreamboxObj->getNextRecording()) {
  201. $lReturnValue .= "<a href=\"javascript:void(0);\" onclick=\"startRecording('" . Utils::JSSave($lRecording->getFileName()) . "');\">" . date("d/m/Y H:i",$lRecording->getStartTime()) . " - " . $lRecording->getName() . "</a><br />";
  202. }
  203. $objResponse = new xajaxResponse();
  204. $objResponse->addAssign("tvguide","innerHTML","Recordings:<br />" . $lReturnValue);
  205. return $objResponse;
  206. }
  207. ?>

Documentation generated on Tue, 24 Jun 2008 18:59:29 +0200 by phpDocumentor 1.3.0RC3