diff --git a/index.php b/index.php index a5c365d1..e3157f44 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 e743d306..ba4e35b9 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 1508abac..0861cf84 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): ?> - + if(in_array("webm-$selection", $formats)): ?> + + endif ?> + if(in_array("hls-$selection", $formats)): ?> + + endif ?> + if(in_array("rtmp-$selection", $formats)): ?> + endif ?> - - diff --git a/template/room.phtml b/template/room.phtml index e337eda2..92f69b27 100644 --- a/template/room.phtml +++ b/template/room.phtml @@ -1,14 +1,14 @@ -