MonitorId(), $monitor_ids) ) { $view = 'error'; return; } } $Monitor = $Event->Monitor(); if ( isset($_REQUEST['rate']) ) { $rate = validInt($_REQUEST['rate']); } else if ( isset($_COOKIE['zmEventRate']) ) { $rate = $_COOKIE['zmEventRate']; } else { $rate = reScale(RATE_BASE, $Monitor->DefaultRate(), ZM_WEB_DEFAULT_RATE); } if ( isset($_REQUEST['scale']) ) { $scale = validInt($_REQUEST['scale']); } else if ( isset($_COOKIE['zmEventScaleAuto']) ) { // If we're using scale to fit use it on all monitors $scale = 'auto'; } else if ( isset($_COOKIE['zmEventScale'.$Event->MonitorId()]) ) { $scale = $_COOKIE['zmEventScale'.$Event->MonitorId()]; } else { $scale = reScale(SCALE_BASE, $Monitor->DefaultScale(), ZM_WEB_DEFAULT_SCALE); } $codec = 'auto'; if ( isset($_REQUEST['codec']) ) { $codec = $_REQUEST['codec']; session_start(); $_SESSION['zmEventCodec'.$Event->MonitorId()] = $codec; session_write_close(); } else if ( isset($_SESSION['zmEventCodec'.$Event->MonitorId()]) ) { $codec = $_SESSION['zmEventCodec'.$Event->MonitorId()]; } else { $codec = $Monitor->DefaultCodec(); } $codecs = array( 'auto' => translate('Auto'), 'MP4' => translate('MP4'), 'MJPEG' => translate('MJPEG'), ); $replayModes = array( 'none' => translate('None'), 'single' => translate('ReplaySingle'), 'all' => translate('ReplayAll'), 'gapless' => translate('ReplayGapless'), ); if ( isset($_REQUEST['streamMode']) ) $streamMode = validHtmlStr($_REQUEST['streamMode']); else $streamMode = 'video'; $replayMode = ''; if ( isset( $_REQUEST['replayMode'] ) ) $replayMode = validHtmlStr($_REQUEST['replayMode']); if ( isset( $_COOKIE['replayMode']) && preg_match('#^[a-z]+$#', $_COOKIE['replayMode']) ) $replayMode = validHtmlStr($_COOKIE['replayMode']); if ( ( ! $replayMode ) or ( ! $replayModes[$replayMode] ) ) { $replayMode = 'none'; } // videojs zoomrotate only when direct recording $Zoom = 1; $Rotation = 0; if ( $Monitor->VideoWriter() == '2' ) { # Passthrough $Rotation = $Event->Orientation(); if ( in_array($Event->Orientation(),array('90','270')) ) $Zoom = $Event->Height()/$Event->Width(); } // These are here to figure out the next/prev event, however if there is no filter, then default to one that specifies the Monitor if ( !isset($_REQUEST['filter']) ) { $_REQUEST['filter'] = array( 'Query'=>array( 'terms'=>array( array('attr'=>'MonitorId', 'op'=>'=', 'val'=>$Event->MonitorId()) ) ) ); } parseSort(); parseFilter($_REQUEST['filter']); $filterQuery = $_REQUEST['filter']['query']; $connkey = generateConnKey(); $focusWindow = true; $popup = (isset($_REQUEST['popup']) && ($_REQUEST['popup'] == 1)); xhtmlHeaders(__FILE__, translate('Event')); ?>