summaryrefslogtreecommitdiff
path: root/includes/inc_vdr.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/inc_vdr.php')
-rwxr-xr-xincludes/inc_vdr.php204
1 files changed, 204 insertions, 0 deletions
diff --git a/includes/inc_vdr.php b/includes/inc_vdr.php
new file mode 100755
index 0000000..d36c8cc
--- /dev/null
+++ b/includes/inc_vdr.php
@@ -0,0 +1,204 @@
+<?php
+include ('includes/inc_svdrp.php');
+
+function vdrgetinfostream($stream = "NULL", $ischan = 1)
+{
+ global $allepg, $allepgfilled, $svdrpip, $svdrpport, $vdrrecpath;
+
+ if ($ischan)
+ {
+ // Fill epg if not yet done
+ if ($allepgfilled == 0)
+ {
+ $svdrp = new SVDRP($svdrpip, $svdrpport);
+ $svdrp->Connect();
+ $allepg = $svdrp->Command("LSTE NOW");
+ $svdrp->Disconnect();
+ $allepgfilled = 1;
+ }
+
+ $channame = $stream;
+ }
+ else
+ {
+ $infofile = $vdrrecpath .$stream ."/info";
+ if (file_exists($infofile))
+ $info= file_get_contents($infofile);
+ else
+ {
+ $infofile = $vdrrecpath .$stream ."/info.vdr";
+ if (file_exists($infofile))
+ $info= file_get_contents($infofile);
+ else
+ $info="";
+ }
+
+ $allepg = explode("\n", $info);
+ }
+
+ if ($ischan)
+ $chanfound = 0;
+ else
+ $chanfound = 1;
+ $epgtitlefound = 0;
+
+ $epgtitle="";
+ $epgdesc="";
+
+ // For all epg
+ $count = count($allepg);
+ for ($i = 0; $i < $count; $i++)
+ {
+ // Find the right chan (take the first one)
+ if ($chanfound == 0)
+ {
+ if (strstr($allepg[$i], $stream) == $stream)
+ $chanfound = 1;
+ }
+ else
+ {
+ // Now find T or C
+ if(ereg("^C", $allepg[$i]))
+ {
+ // Check if it is our chan too, else search again
+ if ($ischan)
+ {
+ if(!ereg("$stream$", $allepg[$i]))
+ {
+ $chanfound = 0;
+ continue;
+ }
+ }
+ else
+ {
+ $channame = substr($allepg[$i], 2);
+ $channames = explode(" ", $channame);
+ $channame = substr($channame, strlen($channames[0]));
+ }
+ }
+ else if(ereg("^T", $allepg[$i]))
+ $epgtitle=substr($allepg[$i], 2);
+ else if(ereg("^D", $allepg[$i]))
+ $epgdesc=substr($allepg[$i], 2);
+ }
+ }
+
+ return array($epgtitle, $epgdesc, $channame);
+}
+
+function vdrgetchannum($chan = "NULL")
+{
+ global $svdrpip, $svdrpport;
+
+ $svdrp = new SVDRP($svdrpip, $svdrpport);
+ $svdrp->Connect();
+ $channels = $svdrp->Command("LSTC");
+ $svdrp->Disconnect();
+
+ // Get channel number
+ $channels = preg_grep(quotemeta('"'.$chan.';|'.$chan.':"'), $channels);
+ reset($channels);
+
+ $channels = explode(" ", $channels[key($channels)]);
+ $channum = $channels[0];
+
+ return $channum;
+}
+
+function vdrlistcategories()
+{
+ global $vdrchannels;
+
+ // All chans
+ print "<li class=\"menu\"><a class=\"noeffect\" href=\"javascript:sendForm('All');\"><span class=\"name\">All channels</span><span class=\"arrow\"></span></a></li>\r\n";
+ print "<form name=\"All channels\" id=\"All\" method=\"post\" action=\"index.php\"><input name=\"action\" type=\"hidden\" id=\"action\" value=\"listchannels\"/><input name=\"cat\" type=\"hidden\" id=\"cat\" value=\"All\" /></form>\r\n";
+
+ $fp = fopen ($vdrchannels,"r");
+ while ($line = fgets($fp, 1024))
+ {
+ // Check if it is a categorie
+ if ($line[0] == ":")
+ {
+ // Remove : and @
+ $cat = substr($line, 1, -1);
+ if($cat[0] == '@')
+ {
+ $cat_array = explode(' ', $cat);
+ $cat = substr($cat, strlen($cat_array[0])+1);
+ }
+
+ $cat2 = addslashes($cat);
+
+ print "<li class=\"menu\"><a class=\"noeffect\" href=\"javascript:sendForm('$cat2');\"><span class=\"name\">$cat</span><span class=\"arrow\"></span></a></li>\r\n";
+ print "<form name=\"$cat\" id=\"$cat\" method=\"post\" action=\"index.php\"><input name=\"action\" type=\"hidden\" id=\"action\" value=\"listchannels\"/><input name=\"cat\" type=\"hidden\" id=\"cat\" value=\"$cat\" /></form>\r\n";
+ }
+ }
+ fclose($fp);
+}
+
+function vdrlistchannels($category = "NULL")
+{
+ global $epgtitle;
+ global $vdrchannels;
+
+ if ($category == "All")
+ $cat_found=1;
+ else
+ $cat_found=0;
+
+ $fp = fopen ($vdrchannels,"r");
+ while ($line = fgets($fp, 1024))
+ {
+ if ($cat_found)
+ {
+ if ($line[0] == ":")
+ {
+ if ($category == "All")
+ continue;
+ else
+ break;
+ }
+
+ $channels = explode(":", $line);
+ $channels = explode(";", $channels[0]);
+ $chan = $channels[0];
+
+ // Get EPG title
+ $epgtitle = NULL;
+ list($epgtitle, $epgdesc, $channame) = vdrgetinfostream($chan, 1);
+ print "<li class=\"withimage\">";
+ $chan2=addslashes($chan);
+ print " <a class=\"noeffect\" href=\"javascript:sendForm('$chan2');\">\r\n";
+ if (!file_exists('logos/'.$chan.'.png'))
+ print " <img src=\"logos/nologo.png\" />\r\n";
+ else
+ print " <img src=\"logos/{$chan}.png\" />\r\n";
+ print " <span class=\"name\">$chan</span>\r\n";
+ print " <span class=\"comment\">$epgtitle</span><span class=\"arrow\"></span></a>\r\n</li>\r\n";
+ print " <form name=\"$chan\" id=\"$chan\" method=\"post\" action=\"index.php\">";
+ print " <input name=\"action\" type=\"hidden\" id=\"action\" value=\"stream\" />";
+ print " <input name=\"type\" type=\"hidden\" id=\"type\" value=1 />";
+ print " <input name=\"name\" type=\"hidden\" id=\"name\" value=\"$chan\" />";
+ print " </form>\r\n";
+ }
+ else
+ {
+ if ($line[0] == ":")
+ {
+ // Remove : and @
+ $cat = substr($line, 1, -1);
+ if($cat[0] == '@')
+ {
+ $cat_array = explode(' ', $cat);
+ $cat = substr($cat, strlen($cat_array[0])+1);
+ }
+
+ // Check category
+ if ("$cat" == "$category")
+ $cat_found = 1;
+ }
+ }
+ }
+ fclose($fp);
+}
+?>