aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.php4
-rw-r--r--pages/room.php67
-rw-r--r--template/assemblies/player/video.phtml43
-rw-r--r--template/room.phtml16
4 files changed, 76 insertions, 54 deletions
diff --git a/index.php b/index.php
index a5c365d..e3157f4 100644
--- a/index.php
+++ b/index.php
@@ -14,7 +14,7 @@ else if(preg_match('@^([^/]+)$@', $route, $m))
{
$_GET = array(
'room' => $m[1],
- 'selection' => 'hd',
+ 'selection' => '',
'language' => 'native',
);
include('pages/room.php');
@@ -24,7 +24,7 @@ else if(preg_match('@^([^/]+)/translated$@', $route, $m))
{
$_GET = array(
'room' => $m[1],
- 'selection' => 'hd',
+ 'selection' => '',
'language' => 'translated',
);
include('pages/room.php');
diff --git a/pages/room.php b/pages/room.php
index e743d30..ba4e35b 100644
--- a/pages/room.php
+++ b/pages/room.php
@@ -2,54 +2,76 @@
require_once('lib/bootstrap.php');
+
$room = $_GET['room'];
$language = $_GET['language'];
$selection = $_GET['selection'];
+$formats = get("ROOMS.$room.FORMATS");
+
+$selections = array();
+$tabs = array();
+
+
+if(count(array_intersect(array('rtmp-hd', 'hls-hd', 'webm-hd'), $formats)) > 0)
+ $selections[] = 'hd';
+
+if(count(array_intersect(array('rtmp-sd', 'hls-sd', 'webm-sd'), $formats)) > 0)
+ $selections[] = 'sd';
+
+if(count(array_intersect(array('rtmp-sd', 'rtmp-hd', 'hls-sd', 'hls-hd', 'webm-sd', 'webm-hd'), $formats)) > 0)
+ $tabs[] = 'video';
+
+if(count(array_intersect(array('audio-mp3', 'audio-opus'), $formats)) > 0)
+ $selections[] = $tabs[] = 'audio';
+
+if(count(array_intersect(array('slides'), $formats)) > 0)
+ $selections[] = $tabs[] = 'slides';
+
+
+// default page
+if(!$selection)
+ $selection = $selections[0];
+
+if(!in_array($selection, $selections)) {
+ include('404.php');
+ exit;
+}
+
+
switch($selection) {
case 'audio':
- $type = 'audio';
+ $tab = 'audio';
$title = 'Audio';
break;
case 'music':
- $type = 'audio';
+ $tab = 'audio';
$title = 'Music';
break;
case 'slides':
- $type = 'slides';
+ $tab = 'slides';
$title = 'Slides';
break;
case 'hd':
- $type = 'video';
+ $tab = 'video';
$title = 'FullHD Video';
$width = 1920;
$height = 1080;
break;
case 'sd':
- $type = 'video';
+ $tab = 'video';
$title = 'SD Video';
$width = 1024;
$height = 576;
break;
}
-
-$formats = get("ROOMS.$room.FORMATS");
-$types = array();
-
-if(count(array_intersect(array('rtmp-sd', 'rtmp-hd', 'hls-sd', 'hls-hd', 'webm-sd', 'webm-hd'), $formats)) > 0)
- $types[] = 'video';
-
-if(count(array_intersect(array('audio-mp3', 'audio-opus'), $formats)) > 0)
- $types[] = 'audio';
-
-if(count(array_intersect(array('slides'), $formats)) > 0)
- $types[] = 'slides';
-
+if($language == 'translated')
+ $title = 'Translated '.$title;
echo $tpl->render(array(
'page' => 'room',
@@ -59,8 +81,8 @@ echo $tpl->render(array(
'program' => program(),
- 'type' => $type,
- 'types' => $types,
+ 'tab' => $tab,
+ 'tabs' => $tabs,
'width' => @$width,
'height' => @$height,
@@ -68,8 +90,5 @@ echo $tpl->render(array(
'translated' => ($language == 'translated'),
'selection' => $selection,
'hlsformat' => ($selection == 'hd' ? 'auto' : $selection),
-
- // miniroom = no translation, no slides, no irc, no program
- // -> sendezentrum, workshops
- 'miniroom' => in_array($room, array('sendezentrum')),
+ 'formats' => $formats,
));
diff --git a/template/assemblies/player/video.phtml b/template/assemblies/player/video.phtml
index 1508aba..0861cf8 100644
--- a/template/assemblies/player/video.phtml
+++ b/template/assemblies/player/video.phtml
@@ -5,27 +5,30 @@
width="<?=h($width)?>"
height="<?=h($height)?>"
style="width: 100%; height: 100%;"
- class="<?=h($miniroom ? 'nosubs' : 'subs')?>"
>
- <? if(!$translated): ?>
- <source
- data-plugin-type="native"
- src="<?=h(link_stream('webm', $room, $format, $translated))?>"
- title="WebM (Icecast)"
- type="video/webm"
- />
+ <? if(in_array("webm-$selection", $formats)): ?>
+ <source
+ data-plugin-type="native"
+ src="<?=h(link_stream('webm', $room, $selection, $translated))?>"
+ title="WebM (Icecast)"
+ type="video/webm"
+ />
+ <? endif ?>
+ <? if(in_array("hls-$selection", $formats)): ?>
+ <source
+ data-plugin-type="native"
+ src="<?=h(link_stream('hls', $room, $hlsformat, $translated))?>"
+ title="h.264 (HLS)"
+ type="application/vnd.apple.mpegURL"
+ />
+ <? endif ?>
+ <? if(in_array("rtmp-$selection", $formats)): ?>
+ <source
+ data-plugin-type="flash"
+ src="<?=h(link_stream('rtmp', $room, $selection, $translated))?>"
+ title="h.264 (RTMP)"
+ type="video/rtmp"
+ />
<? endif ?>
- <source
- data-plugin-type="flash"
- src="<?=h(link_stream('rtmp', $room, $format, $translated))?>"
- title="h.264 (RTMP)"
- type="video/rtmp"
- />
- <source
- data-plugin-type="native"
- src="<?=h(link_stream('hls', $room, $hlsformat, $translated))?>"
- title="h.264 (HLS)"
- type="application/vnd.apple.mpegURL"
- />
</video>
</div>
diff --git a/template/room.phtml b/template/room.phtml
index e337eda..92f69b2 100644
--- a/template/room.phtml
+++ b/template/room.phtml
@@ -1,14 +1,14 @@
-<div class="container <?=h($type)?> <?=h($selection)?> <?=h($language)?>">
+<div class="container <?=h($tab)?> <?=h($selection)?> <?=h($language)?>">
<div class="row headline">
<div class="col-xs-12">
<h1 data-room="<?=h(get("ROOMS.$room.DISPLAY"))?>"><?=h($title)?></h1>
</div>
</div>
- <ul class="nav nav-tabs nav-justified">
- <? foreach($types as $iter): ?>
+ <ul class="nav nav-player nav-tabs nav-justified">
+ <? foreach($tabs as $iter): ?>
<li
- <? if($type == $iter):?>class="active"<? endif ?>
+ <? if($tab == $iter):?>class="active"<? endif ?>
>
<a href="<?=h(link_player($room, $iter))?>">
<?=h(ucfirst($iter))?>
@@ -19,11 +19,11 @@
<div class="player-wrap tab-content">
<div class="tab-pane active">
- <? include("$assemblies/player/$type.phtml") ?>
+ <? include("$assemblies/player/$tab.phtml") ?>
</div>
</div>
- <ul class="nav nav-tabs nav-justified" role="tablist">
+ <ul class="nav nav-functions nav-tabs nav-justified" role="tablist">
<li class="active">
<a href="#switcher" role="tab" data-toggle="tab">Formats</a>
</li>
@@ -44,9 +44,9 @@
<? endif ?>
</ul>
- <div class="tab-content">
+ <div class="functions-wrap tab-content">
<div class="tab-pane active" id="switcher">
- <? include("$assemblies/switcher/$type.phtml") ?>
+ <? include("$assemblies/switcher/$tab.phtml") ?>
</div>
<? if(get("ROOMS.$room.SCHEDULE") && has("SCHEDULE")): ?>
<div class="tab-pane" id="irc">