diff --git a/web/app/Controller/MonitorsController.php b/web/app/Controller/MonitorsController.php index b079d1683..bc6f9a1b6 100644 --- a/web/app/Controller/MonitorsController.php +++ b/web/app/Controller/MonitorsController.php @@ -4,13 +4,14 @@ public function index() { $zmBandwidth = $this->Cookie->read('zmBandwidth'); - $monitoroptions = array( 'fields' => array('Name', 'Id', 'Function'), 'recursive' => -1); - $this->set('monitors', $this->Monitor->find('all', $monitoroptions)); + $this->set('thumb_width', Configure::read('ZM_WEB_LIST_THUMB_WIDTH')); + $monitoroptions = array( 'fields' => array('Name', 'Id', 'Function', 'Enabled'), 'recursive' => -1); + $this->set('monitors', $this->Monitor->find('all', $monitoroptions)); $monitors = $this->Monitor->find('all', array('recursive' => -1, 'fields' => array('Id', 'StreamReplayBuffer'))); foreach ($monitors as $monitor => $mon) { $streamSrc[$monitor] = $this->Monitor->getStreamSrc($monitor['Monitor']['Id'], $zmBandwidth, $monitor['Monitor']['StreamReplayBuffer']); } - $this->set('streamSrc', $streamSrc); + $this->set('streamSrc', $streamSrc); } public function view($id = null) { @@ -39,7 +40,111 @@ $monitor = $this->Monitor->findById($id); if (!$monitor) { throw new NotFoundException(__('Invalid monitor')); - } + } + $this->set('monitor', $monitor['Monitor']); + + $typeoptions = array( + 'Local' => 'Local', + 'Remote' => 'Remote', + 'File' => 'File', + 'Ffmpeg' => 'Ffmpeg' + ); + $this->set('typeoptions', $typeoptions); + + $functionoptions = array( + 'Modect' => 'Modect', + 'Monitor' => 'Monitor', + 'Record' => 'Record', + 'None' => 'None', + 'Nodect' => 'Nodect', + 'Mocord' => 'Mocord' + ); + $this->set('functionoptions', $functionoptions); + + $protocoloptions = array( + 'rtsp' => 'RTSP', + 'http' => 'HTTP' + ); + $this->set('protocoloptions', $protocoloptions); + + $methodoptions = array( + 'simple' => 'Simple', + 'regexp' => 'Regexp' + ); + $this->set('methodoptions', $methodoptions); + + $optionsColours = array( + 1 => '8 bit grayscale', + 3 => '24 bit color', + 4 => '32 bit color' + ); + $this->set('optionsColours', $optionsColours); + + $channeloptions = array(); + for ($i=1; $i<32; $i++) { + array_push($channeloptions, $i); + } + $this->set('channeloptions', $channeloptions); + + $formatoptions = array( + 255 => "PAL", + 45056 => "NTSC", + 1 => "PAL B", + 2 => "PAL B1", + 4 => "PAL G", + 8 => "PAL H", + 16 => "PAL I", + 32 => "PAL D", + 64 => "PAL D1", + 128 => "PAL K", + 256 => "PAL M", + 512 => "PAL N", + 1024 => "PAL Nc", + 2048 => "PAL 60", + 4096 => "NTSC M", + 8192 => "NTSC M JP", + 16384 => "NTSC 443", + 32768 => "NTSC M KR", + 65536 => "SECAM B", + 131072 => "SECAM D", + 262144 => "SECAM G", + 524288 => "SECAM H", + 1048576 => "SECAM K", + 2097152 => "SECAM K1", + 4194304 => "SECAM L", + 8388608 => "SECAM LC", + 16777216 => "ATSC 8 VSB", + 33554432 => "ATSC 16 VSB" + ); + $this->set('formatoptions', $formatoptions); + + $optionsPalette = array( + 0 => 'Auto', + 1497715271 => 'Gray', + 877807426 => 'BGR32', + 876758866 => 'RGB32', + 861030210 => 'BGR24', + 859981650 => 'RGB24', + 1448695129 => '*YUYV', + 1195724874 => '*JPEG', + 1196444237 => '*MJPEG', + 875836498 => '*RGB444', + 1329743698 => '*RGB555', + 1346520914 => '*RGB565', + 1345466932 => '*YUV422P', + 1345401140 => '*YUV411P', + 875836505 => '*YUV444', + 961959257 => '*YUV410', + 842093913 => '*YUV420' + ); + $this->set('optionsPalette', $optionsPalette); + + $optionsMethod = array( + 'v4l2' => 'Video For Linux 2' + ); + $this->set('optionsMethod', $optionsMethod); + + $this->set('linkedMonitors', $this->Monitor->find('list', array('fields' => array('Id', 'Name')))); if ($this->request->is('put') || $this->request->is('post')) { $this->Monitor->id = $id;