Fixed to work properly with MPEG cameras and presets

git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@2537 e3e1d417-86f3-4887-817a-d78f3d33393f
This commit is contained in:
stan 2008-07-16 08:40:21 +00:00
parent 76345804e1
commit bfd67f69fd
3 changed files with 224 additions and 106 deletions

View File

@ -46,3 +46,12 @@ function loadLocations( element )
} }
} }
} }
function initPage()
{
console.log( "T:"+$('contentForm').elements['newMonitor[Protocol]'].getTag() );
if ( $('contentForm').elements['newMonitor[Protocol]'].getTag() == 'select' )
updateMethods( $('contentForm').elements['newMonitor[Protocol]'] );
}
window.addEvent( 'domready', initPage );

View File

@ -1,4 +1,3 @@
<script type="text/javascript">
var optControl = <?= ZM_OPT_CONTROL ?>; var optControl = <?= ZM_OPT_CONTROL ?>;
var defaultAspectRatio = '<?= ZM_DEFAULT_ASPECT_RATIO ?>'; var defaultAspectRatio = '<?= ZM_DEFAULT_ASPECT_RATIO ?>';
@ -36,9 +35,6 @@ controlOptions[<?= $row['Id'] ?>][<?= $i ?>] = '<?= $SLANG['Preset'].' '.$i ?>';
<?php <?php
} }
} }
?>
console.log( controlOptions );
<?php
} }
?> ?>
@ -69,8 +65,8 @@ function validateForm( form )
errors[errors.length] = "<?= $SLANG['BadHost'] ?>"; errors[errors.length] = "<?= $SLANG['BadHost'] ?>";
if ( form.elements['newMonitor[Port]'].value && !form.elements['newMonitor[Port]'].value.match( /^\d+$/ ) ) if ( form.elements['newMonitor[Port]'].value && !form.elements['newMonitor[Port]'].value.match( /^\d+$/ ) )
errors[errors.length] = "<?= $SLANG['BadPort'] ?>"; errors[errors.length] = "<?= $SLANG['BadPort'] ?>";
if ( !form.elements['newMonitor[Path]'].value ) //if ( !form.elements['newMonitor[Path]'].value )
errors[errors.length] = "<?= $SLANG['BadPath'] ?>"; //errors[errors.length] = "<?= $SLANG['BadPath'] ?>";
} }
else if ( form.elements['newMonitor[Type]'].value == 'File' ) else if ( form.elements['newMonitor[Type]'].value == 'File' )
{ {
@ -115,3 +111,40 @@ function validateForm( form )
} }
return( true ); return( true );
} }
function updateMethods( element )
{
var form = element.form;
form.elements['newMonitor[Method]'].length = 0;
switch ( form.elements['newMonitor[Protocol]'].value )
{
case 'http' :
{
<?php
foreach( $httpMethods as $label=>$value )
{
?>
form.elements['newMonitor[Method]'].options[form.elements['newMonitor[Method]'].length] = new Option( "<?= $value ?>", "<?= htmlspecialchars($label) ?>" );
<?php
}
?>
form.elements['newMonitor[SubPath]'].parentNode.parentNode.style['display'] = 'none';
break;
}
case 'rtsp' :
{
<?php
foreach( $rtspMethods as $label=>$value )
{
?>
form.elements['newMonitor[Method]'].options[form.elements['newMonitor[Method]'].length] = new Option( "<?= $value ?>", "<?= htmlspecialchars($label) ?>" );
<?php
}
?>
form.elements['newMonitor[SubPath]'].parentNode.parentNode.style['display'] = null;
break;
}
}
return( true );
}

View File

@ -30,13 +30,9 @@ $tabs["source"] = $SLANG['Source'];
$tabs["timestamp"] = $SLANG['Timestamp']; $tabs["timestamp"] = $SLANG['Timestamp'];
$tabs["buffers"] = $SLANG['Buffers']; $tabs["buffers"] = $SLANG['Buffers'];
if ( ZM_OPT_CONTROL && canView( 'Control' ) ) if ( ZM_OPT_CONTROL && canView( 'Control' ) )
{
$tabs["control"] = $SLANG['Control']; $tabs["control"] = $SLANG['Control'];
}
if ( ZM_OPT_X10 ) if ( ZM_OPT_X10 )
{
$tabs["x10"] = $SLANG['X10']; $tabs["x10"] = $SLANG['X10'];
}
$tabs["misc"] = $SLANG['Misc']; $tabs["misc"] = $SLANG['Misc'];
if ( !isset($_REQUEST['tab']) ) if ( !isset($_REQUEST['tab']) )
@ -46,68 +42,91 @@ if ( !empty($_REQUEST['mid']) )
{ {
$monitor = dbFetchMonitor( $_REQUEST['mid'] ); $monitor = dbFetchMonitor( $_REQUEST['mid'] );
if ( ZM_OPT_X10 ) if ( ZM_OPT_X10 )
{ $x10Monitor = dbFetchOne( "select * from TriggersX10 where MonitorId = '".dbEscape($_REQUEST['mid'])."'" );
$x10Monitor = dbFetchOne( "select * from TriggersX10 where MonitorId = '".$_REQUEST['mid']."'" );
}
} }
else else
{ {
$monitor = array(); $monitor = array(
$monitor['Name'] = $SLANG['New']; 'Id' => 0,
$monitor['Function'] = "None"; 'Name' => $SLANG['New'],
$monitor['Enabled'] = true; 'Function' => "None",
$monitor['Type'] = "Local"; 'Enabled' => true,
$monitor['Device'] = "/dev/video"; 'LinkedMonitors' => "",
$monitor['Channel'] = "0"; 'Type' => "Local",
$monitor['Format'] = "0"; 'Device' => "/dev/video",
$monitor['Host'] = ""; 'Channel' => "0",
$monitor['Path'] = ""; 'Format' => "0",
$monitor['Port'] = "80"; 'Protocol' => "",
$monitor['Palette'] = "4"; 'Method' => "",
$monitor['Width'] = ""; 'Host' => "",
$monitor['Height'] = ""; 'Path' => "",
$monitor['Orientation'] = "0"; 'SubPath' => "",
$monitor['LabelFormat'] = '%N - %y/%m/%d %H:%M:%S'; 'Port' => "80",
$monitor['LabelX'] = 0; 'Palette' => "4",
$monitor['LabelY'] = 0; 'Width' => "",
$monitor['ImageBufferCount'] = 40; 'Height' => "",
$monitor['WarmupCount'] = 25; 'Orientation' => "0",
$monitor['PreEventCount'] = 10; 'LabelFormat' => '%N - %y/%m/%d %H:%M:%S',
$monitor['PostEventCount'] = 10; 'LabelX' => 0,
$monitor['StreamReplayBuffer'] = 1000; 'LabelY' => 0,
$monitor['AlarmFrameCount'] = 1; 'ImageBufferCount' => 40,
$monitor['Controllable'] = 0; 'WarmupCount' => 25,
$monitor['ControlType'] = 0; 'PreEventCount' => 10,
$monitor['ControlDevice'] = ""; 'PostEventCount' => 10,
$monitor['ControlAddress'] = ""; 'StreamReplayBuffer' => 1000,
$monitor['AutoStopTimeout'] = ""; 'AlarmFrameCount' => 1,
$monitor['TrackMotion'] = 0; 'Controllable' => 0,
$monitor['TrackDelay'] = ""; 'ControlId' => "",
$monitor['ReturnLocation'] = -1; 'ControlType' => 0,
$monitor['ReturnDelay'] = ""; 'ControlDevice' => "",
$monitor['SectionLength'] = 600; 'ControlAddress' => "",
$monitor['FrameSkip'] = 0; 'AutoStopTimeout' => "",
$monitor['EventPrefix'] = 'Event-'; 'TrackMotion' => 0,
$monitor['MaxFPS'] = ""; 'TrackDelay' => "",
$monitor['AlarmMaxFPS'] = ""; 'ReturnLocation' => -1,
$monitor['FPSReportInterval'] = 1000; 'ReturnDelay' => "",
$monitor['RefBlendPerc'] = 7; 'SectionLength' => 600,
$monitor['DefaultView'] = 'Events'; 'FrameSkip' => 0,
$monitor['DefaultRate'] = '100'; 'EventPrefix' => 'Event-',
$monitor['DefaultScale'] = '100'; 'MaxFPS' => "",
$monitor['SignalCheckColour'] = '#0100BE'; 'AlarmMaxFPS' => "",
$monitor['WebColour'] = 'red'; 'FPSReportInterval' => 1000,
$monitor['Triggers'] = ""; 'RefBlendPerc' => 7,
'DefaultView' => 'Events',
'DefaultRate' => '100',
'DefaultScale' => '100',
'SignalCheckColour' => '#0100BE',
'WebColour' => 'red',
'Triggers' => "",
);
} }
if ( !isset( $newMonitor ) )
if ( ZM_OPT_X10 && empty($x10Monitor) )
{
$x10Monitor = array(
'Activation' => '',
'AlarmInput' => '',
'AlarmOutput' => '',
);
}
if ( isset( $_REQUEST['newMonitor'] ) )
{
$newMonitor = $_REQUEST['newMonitor'];
if ( ZM_OPT_X10 )
$newX10Monitor = $_REQUEST['newX10Monitor'];
}
else
{ {
$newMonitor = $monitor; $newMonitor = $monitor;
$newMonitor['Triggers'] = split( ',', isset($monitor['Triggers'])?$monitor['Triggers']:"" ); $newMonitor['Triggers'] = split( ',', isset($monitor['Triggers'])?$monitor['Triggers']:"" );
$newX10Monitor = isset($x10Monitor)?$x10Monitor:array(); if ( ZM_OPT_X10 )
$newX10Monitor = $x10Monitor;
} }
if ( !empty($preset) )
if ( !empty($_REQUEST['preset']) )
{ {
$preset = dbFetchOne( "select Type, Device, Channel, Format, Host, Port, Path, Width, Height, Palette, MaxFPS, Controllable, ControlId, ControlDevice, ControlAddress, DefaultRate, DefaultScale from MonitorPresets where Id = '$preset'" ); $preset = dbFetchOne( "select Type, Device, Channel, Format, Protocol, Method, Host, Port, Path, SubPath, Width, Height, Palette, MaxFPS, Controllable, ControlId, ControlDevice, ControlAddress, DefaultRate, DefaultScale from MonitorPresets where Id = '".dbEscape($_REQUEST['preset'])."'" );
foreach ( $preset as $name=>$value ) foreach ( $preset as $name=>$value )
{ {
if ( isset($value) ) if ( isset($value) )
@ -117,13 +136,70 @@ if ( !empty($preset) )
} }
} }
$device_formats = array( "PAL"=>0, "NTSC"=>1, "SECAM"=>2, "AUTO"=>3, "FMT4"=>4, "FMT5"=>5, "FMT6"=>6, "FMT7"=>7 ); $sourceTypes = array(
$device_channels = array(); 'Local'=>$SLANG['Local'],
'Remote'=>$SLANG['Remote'],
'File'=>$SLANG['File']
);
$remoteProtocols = array(
"http"=>"HTTP",
"rtsp"=>"RTSP"
);
$rtspMethods = array(
"rtpUni"=>"RTP/Unicast",
"rtpMulti"=>"RTP/Multicast",
"rtpRtsp"=>"RTP/RTSP",
"rtpRtspHttp"=>"RTP/RTSP/HTTP"
);
$httpMethods = array(
"simple"=>"Simple",
"regexp"=>"Regexp",
"jpegTags"=>"JPEG Tags"
);
unset( $httpMethods['jpegTags'] );
$deviceFormats = array(
"PAL"=>0,
"NTSC"=>1,
"SECAM"=>2,
"AUTO"=>3,
"FMT4"=>4,
"FMT5"=>5,
"FMT6"=>6,
"FMT7"=>7
);
$deviceChannels = array();
for ( $i = 0; $i <= 15; $i++ ) for ( $i = 0; $i <= 15; $i++ )
$device_channels["$i"] = $i; $deviceChannels["$i"] = $i;
$local_palettes = array( $SLANG['Grey']=>1, "RGB24"=>4, "RGB565"=>3, "RGB555"=>6, "YUV422"=>7, "YUYV"=>8, "YUV422P"=>13, "YUV420P"=>15 );
$remote_palettes = $file_palettes = array( $SLANG['8BitGrey']=>1, $SLANG['24BitColour']=>4 ); $localPalettes = array(
$orientations = array( $SLANG['Normal']=>'0', $SLANG['RotateRight']=>'90', $SLANG['Inverted']=>'180', $SLANG['RotateLeft']=>'270', $SLANG['FlippedHori']=>'hori', $SLANG['FlippedVert']=>'vert' ); $SLANG['Grey']=>1,
"RGB24"=>4,
"RGB565"=>3,
"RGB555"=>6,
"YUV422"=>7,
"YUYV"=>8,
"YUV422P"=>13,
"YUV420P"=>15
);
$remotePalettes = $filePalettes = array(
$SLANG['8BitGrey']=>1,
$SLANG['24BitColour']=>4
);
$orientations = array(
$SLANG['Normal']=>'0',
$SLANG['RotateRight']=>'90',
$SLANG['Inverted']=>'180',
$SLANG['RotateLeft']=>'270',
$SLANG['FlippedHori']=>'hori',
$SLANG['FlippedVert']=>'vert'
);
xhtmlHeaders(__FILE__, $SLANG['Monitor']." - ".$monitor['Name'] ); xhtmlHeaders(__FILE__, $SLANG['Monitor']." - ".$monitor['Name'] );
?> ?>
@ -135,7 +211,7 @@ if ( canEdit( 'Monitors' ) )
{ {
?> ?>
<div id="headerButtons"> <div id="headerButtons">
<a href="#" onclick="createPopup( '?view=monitorpreset&mid=<?= $_REQUEST['mid'] ?>', 'zmMonitorPreset<?= $_REQUEST['mid'] ?>', 'monitorpreset' ); return( false );"><?= $SLANG['Presets'] ?></a> <a href="#" onclick="createPopup( '?view=monitorpreset&mid=<?= $monitor['Id'] ?>', 'zmMonitorPreset<?= $monitor['Id'] ?>', 'monitorpreset' ); return( false );"><?= $SLANG['Presets'] ?></a>
</div> </div>
<?php <?php
} }
@ -166,7 +242,7 @@ foreach ( $tabs as $name=>$value )
<input type="hidden" name="view" value="<?= $_REQUEST['view'] ?>"/> <input type="hidden" name="view" value="<?= $_REQUEST['view'] ?>"/>
<input type="hidden" name="tab" value="<?= $_REQUEST['tab'] ?>"/> <input type="hidden" name="tab" value="<?= $_REQUEST['tab'] ?>"/>
<input type="hidden" name="action" value="monitor"/> <input type="hidden" name="action" value="monitor"/>
<input type="hidden" name="mid" value="<?= $_REQUEST['mid'] ?>"/> <input type="hidden" name="mid" value="<?= $monitor['Id'] ?>"/>
<?php <?php
if ( $_REQUEST['tab'] != 'general' ) if ( $_REQUEST['tab'] != 'general' )
{ {
@ -175,7 +251,7 @@ if ( $_REQUEST['tab'] != 'general' )
<input Type="hidden" name="newMonitor[Type]" value="<?= $newMonitor['Type'] ?>"/> <input Type="hidden" name="newMonitor[Type]" value="<?= $newMonitor['Type'] ?>"/>
<input type="hidden" name="newMonitor[Function]" value="<?= $newMonitor['Function'] ?>"/> <input type="hidden" name="newMonitor[Function]" value="<?= $newMonitor['Function'] ?>"/>
<input type="hidden" name="newMonitor[Enabled]" value="<?= $newMonitor['Enabled'] ?>"/> <input type="hidden" name="newMonitor[Enabled]" value="<?= $newMonitor['Enabled'] ?>"/>
<input type="hidden" name="newMonitor[LinkedMonitors]" value="<?= $newMonitor['LinkedMonitors'] ?>"/> <input type="hidden" name="newMonitor[LinkedMonitors]" value="<?= isset($newMonitor['LinkedMonitors'])?$newMonitor['LinkedMonitors']:'' ?>"/>
<input type="hidden" name="newMonitor[RefBlendPerc]" value="<?= $newMonitor['RefBlendPerc'] ?>"/> <input type="hidden" name="newMonitor[RefBlendPerc]" value="<?= $newMonitor['RefBlendPerc'] ?>"/>
<input type="hidden" name="newMonitor[MaxFPS]" value="<?= $newMonitor['MaxFPS'] ?>"/> <input type="hidden" name="newMonitor[MaxFPS]" value="<?= $newMonitor['MaxFPS'] ?>"/>
<input type="hidden" name="newMonitor[AlarmMaxFPS]" value="<?= $newMonitor['AlarmMaxFPS'] ?>"/> <input type="hidden" name="newMonitor[AlarmMaxFPS]" value="<?= $newMonitor['AlarmMaxFPS'] ?>"/>
@ -208,7 +284,10 @@ if ( $_REQUEST['tab'] != 'source' || $newMonitor['Type'] != 'Remote' )
if ( $_REQUEST['tab'] != 'source' || ($newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'File') ) if ( $_REQUEST['tab'] != 'source' || ($newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'File') )
{ {
?> ?>
<input type="hidden" name="newMonitor[Protocol]" value="<?= $newMonitor['Protocol'] ?>"/>
<input type="hidden" name="newMonitor[Method]" value="<?= $newMonitor['Method'] ?>"/>
<input type="hidden" name="newMonitor[Path]" value="<?= $newMonitor['Path'] ?>"/> <input type="hidden" name="newMonitor[Path]" value="<?= $newMonitor['Path'] ?>"/>
<input type="hidden" name="newMonitor[SubPath]" value="<?= $newMonitor['SubPath'] ?>"/>
<?php <?php
} }
if ( $_REQUEST['tab'] != 'source' ) if ( $_REQUEST['tab'] != 'source' )
@ -290,33 +369,28 @@ switch ( $_REQUEST['tab'] )
{ {
?> ?>
<tr><td><?= $SLANG['Name'] ?></td><td><input type="text" name="newMonitor[Name]" value="<?= $newMonitor['Name'] ?>" size="16"/></td></tr> <tr><td><?= $SLANG['Name'] ?></td><td><input type="text" name="newMonitor[Name]" value="<?= $newMonitor['Name'] ?>" size="16"/></td></tr>
<?php <tr><td><?= $SLANG['SourceType'] ?></td><td><?= buildSelect( "newMonitor[Type]", $sourceTypes ); ?></td></tr>
$selectName = "newMonitor[Type]";
$sourceTypes = array(
'Local'=>$SLANG['Local'],
'Remote'=>$SLANG['Remote'],
'File'=>$SLANG['File']
);
?>
<tr><td><?= $SLANG['SourceType'] ?></td><td><?= buildSelect( $selectName, $sourceTypes ); ?></td></tr>
<tr><td><?= $SLANG['Function'] ?></td><td><select name="newMonitor[Function]"> <tr><td><?= $SLANG['Function'] ?></td><td><select name="newMonitor[Function]">
<?php <?php
foreach ( getEnumValues( 'Monitors', 'Function' ) as $opt_function ) foreach ( getEnumValues( 'Monitors', 'Function' ) as $optFunction )
{ {
?> ?>
<option value="<?= $opt_function ?>"<?php if ( $opt_function == $newMonitor['Function'] ) { ?> selected="selected"<?php } ?>><?= $opt_function ?></option> <option value="<?= $optFunction ?>"<?php if ( $optFunction == $newMonitor['Function'] ) { ?> selected="selected"<?php } ?>><?= $optFunction ?></option>
<?php <?php
} }
?> ?>
</select></td></tr> </select></td></tr>
<tr><td><?= $SLANG['Enabled'] ?></td><td><input type="checkbox" name="newMonitor[Enabled]" value="1"<?php if ( !empty($newMonitor['Enabled']) ) { ?> checked="checked"<?php } ?>></td></tr> <tr><td><?= $SLANG['Enabled'] ?></td><td><input type="checkbox" name="newMonitor[Enabled]" value="1"<?php if ( !empty($newMonitor['Enabled']) ) { ?> checked="checked"<?php } ?>/></td></tr>
<tr> <tr>
<td><?= $SLANG['LinkedMonitors'] ?></td> <td><?= $SLANG['LinkedMonitors'] ?></td>
<td> <td>
<select name="newMonitor[LinkedMonitors]" size="4" multiple="multiple"> <select name="newMonitor[LinkedMonitors]" size="4" multiple="multiple">
<?php <?php
$monitors = dbFetchAll( "select Id,Name from Monitors order by Sequence asc" ); $monitors = dbFetchAll( "select Id,Name from Monitors order by Sequence asc" );
if ( !empty($newMonitor['LinkedMonitors']) )
$monitorIds = array_flip( split( ',', $newMonitor['LinkedMonitors'] ) ); $monitorIds = array_flip( split( ',', $newMonitor['LinkedMonitors'] ) );
else
$monitorIds = array();
foreach ( $monitors as $monitor ) foreach ( $monitors as $monitor )
{ {
if ( visibleMonitor( $monitor['Id'] ) ) if ( visibleMonitor( $monitor['Id'] ) )
@ -335,22 +409,22 @@ switch ( $_REQUEST['tab'] )
<tr><td><?= $SLANG['RefImageBlendPct'] ?></td><td><input type="text" name="newMonitor[RefBlendPerc]" value="<?= $newMonitor['RefBlendPerc'] ?>" size="4"/></td></tr> <tr><td><?= $SLANG['RefImageBlendPct'] ?></td><td><input type="text" name="newMonitor[RefBlendPerc]" value="<?= $newMonitor['RefBlendPerc'] ?>" size="4"/></td></tr>
<tr><td><?= $SLANG['Triggers'] ?></td><td> <tr><td><?= $SLANG['Triggers'] ?></td><td>
<?php <?php
$opt_triggers = getSetValues( 'Monitors', 'Triggers' ); $optTriggers = getSetValues( 'Monitors', 'Triggers' );
$break_count = (int)(ceil(count($opt_triggers))); $breakCount = (int)(ceil(count($optTriggers)));
$break_count = min( 3, $break_count ); $breakCount = min( 3, $breakCount );
$opt_count = 0; $optCount = 0;
foreach( $opt_triggers as $opt_trigger ) foreach( $optTriggers as $optTrigger )
{ {
if ( !ZM_OPT_X10 && $opt_trigger == 'X10' ) if ( !ZM_OPT_X10 && $optTrigger == 'X10' )
continue; continue;
if ( $opt_count && ($opt_count%$break_count == 0) ) if ( $optCount && ($optCount%$breakCount == 0) )
echo "</br>"; echo "</br>";
?> ?>
<input type="checkbox" name="newMonitor[Triggers][]" value="<?= $opt_trigger ?>"<?php if ( isset($newMonitor['Triggers']) && in_array( $opt_trigger, $newMonitor['Triggers'] ) ) { ?> checked="checked"<?php } ?>/><?= $opt_trigger ?> <input type="checkbox" name="newMonitor[Triggers][]" value="<?= $optTrigger ?>"<?php if ( isset($newMonitor['Triggers']) && in_array( $optTrigger, $newMonitor['Triggers'] ) ) { ?> checked="checked"<?php } ?>/>&nbsp;<?= $optTrigger ?>
<?php <?php
$opt_count ++; $optCount ++;
} }
if ( !$opt_count ) if ( !$optCount )
{ {
?> ?>
<em><?= $SLANG['NoneAvailable'] ?></em> <em><?= $SLANG['NoneAvailable'] ?></em>
@ -367,30 +441,33 @@ switch ( $_REQUEST['tab'] )
{ {
?> ?>
<tr><td><?= $SLANG['DevicePath'] ?></td><td><input type="text" name="newMonitor[Device]" value="<?= $newMonitor['Device'] ?>" size="24"/></td></tr> <tr><td><?= $SLANG['DevicePath'] ?></td><td><input type="text" name="newMonitor[Device]" value="<?= $newMonitor['Device'] ?>" size="24"/></td></tr>
<tr><td><?= $SLANG['DeviceChannel'] ?></td><td><select name="newMonitor[Channel]"><?php foreach ( $device_channels as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Channel'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr> <tr><td><?= $SLANG['DeviceChannel'] ?></td><td><select name="newMonitor[Channel]"><?php foreach ( $deviceChannels as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Channel'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
<tr><td><?= $SLANG['DeviceFormat'] ?></td><td><select name="newMonitor[Format]"><?php foreach ( $device_formats as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Format'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr> <tr><td><?= $SLANG['DeviceFormat'] ?></td><td><select name="newMonitor[Format]"><?php foreach ( $deviceFormats as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Format'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
<tr><td><?= $SLANG['CapturePalette'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $local_palettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr> <tr><td><?= $SLANG['CapturePalette'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $localPalettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
<?php <?php
} }
elseif ( $newMonitor['Type'] == "Remote" ) elseif ( $newMonitor['Type'] == "Remote" )
{ {
?> ?>
<tr><td><?= $SLANG['RemoteProtocol'] ?></td><td><?= buildSelect( "newMonitor[Protocol]", $remoteProtocols, "updateMethods( this )" ); ?></td></tr>
<tr><td><?= $SLANG['RemoteMethod'] ?></td><td><?= buildSelect( "newMonitor[Method]", array() ); ?></td></tr>
<tr><td><?= $SLANG['RemoteHostName'] ?></td><td><input type="text" name="newMonitor[Host]" value="<?= $newMonitor['Host'] ?>" size="36"/></td></tr> <tr><td><?= $SLANG['RemoteHostName'] ?></td><td><input type="text" name="newMonitor[Host]" value="<?= $newMonitor['Host'] ?>" size="36"/></td></tr>
<tr><td><?= $SLANG['RemoteHostPort'] ?></td><td><input type="text" name="newMonitor[Port]" value="<?= $newMonitor['Port'] ?>" size="6"/></td></tr> <tr><td><?= $SLANG['RemoteHostPort'] ?></td><td><input type="text" name="newMonitor[Port]" value="<?= $newMonitor['Port'] ?>" size="6"/></td></tr>
<tr><td><?= $SLANG['RemoteHostPath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= $newMonitor['Path'] ?>" size="36"/></td></tr> <tr><td><?= $SLANG['RemoteHostPath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= $newMonitor['Path'] ?>" size="36"/></td></tr>
<tr><td><?= $SLANG['RemoteImageColours'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $remote_palettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr> <tr><td><?= $SLANG['RemoteHostSubPath'] ?></td><td><input type="text" name="newMonitor[SubPath]" value="<?= $newMonitor['SubPath'] ?>" size="36"/></td></tr>
<tr><td><?= $SLANG['RemoteImageColours'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $remotePalettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
<?php <?php
} }
elseif ( $newMonitor['Type'] == "File" ) elseif ( $newMonitor['Type'] == "File" )
{ {
?> ?>
<tr><td><?= $SLANG['FilePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= $newMonitor['Path'] ?>" size="36"/></td></tr> <tr><td><?= $SLANG['FilePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= $newMonitor['Path'] ?>" size="36"/></td></tr>
<tr><td><?= $SLANG['FileColours'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $file_palettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr> <tr><td><?= $SLANG['FileColours'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $filePalettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
<?php <?php
} }
?> ?>
<tr><td><?= $SLANG['CaptureWidth'] ?> (<?= $SLANG['Pixels'] ?>)</td><td><input type="text" name="newMonitor[Width]" value="<?= $newMonitor['Width'] ?>" size="4" onkeyup="updateMonitorDimensions(this);"></td></tr> <tr><td><?= $SLANG['CaptureWidth'] ?> (<?= $SLANG['Pixels'] ?>)</td><td><input type="text" name="newMonitor[Width]" value="<?= $newMonitor['Width'] ?>" size="4" onkeyup="updateMonitorDimensions(this);"/></td></tr>
<tr><td><?= $SLANG['CaptureHeight'] ?> (<?= $SLANG['Pixels'] ?>)</td><td><input type="text" name="newMonitor[Height]" value="<?= $newMonitor['Height'] ?>" size="4" onkeyup="updateMonitorDimensions(this);"></td></tr> <tr><td><?= $SLANG['CaptureHeight'] ?> (<?= $SLANG['Pixels'] ?>)</td><td><input type="text" name="newMonitor[Height]" value="<?= $newMonitor['Height'] ?>" size="4" onkeyup="updateMonitorDimensions(this);"/></td></tr>
<tr><td><?= $SLANG['PreserveAspect'] ?></td><td><input type="checkbox" name="preserveAspectRatio" value="1"/></td></tr> <tr><td><?= $SLANG['PreserveAspect'] ?></td><td><input type="checkbox" name="preserveAspectRatio" value="1"/></td></tr>
<tr><td><?= $SLANG['Orientation'] ?></td><td><select name="newMonitor[Orientation]"><?php foreach ( $orientations as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Orientation'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr> <tr><td><?= $SLANG['Orientation'] ?></td><td><select name="newMonitor[Orientation]"><?php foreach ( $orientations as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Orientation'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
<?php <?php
@ -420,12 +497,12 @@ switch ( $_REQUEST['tab'] )
case 'control' : case 'control' :
{ {
?> ?>
<tr><td><?= $SLANG['Controllable'] ?></td><td><input type="checkbox" name="newMonitor[Controllable]" value="1"<?php if ( !empty($newMonitor['Controllable']) ) { ?> checked="checked"<?php } ?>></td></tr> <tr><td><?= $SLANG['Controllable'] ?></td><td><input type="checkbox" name="newMonitor[Controllable]" value="1"<?php if ( !empty($newMonitor['Controllable']) ) { ?> checked="checked"<?php } ?>/></td></tr>
<tr><td><?= $SLANG['ControlType'] ?></td><td><?= buildSelect( "newMonitor[ControlId]", $controlTypes, 'loadLocations( this )' ); ?><?php if ( canEdit( 'Control' ) ) { ?>&nbsp;<a href="#" onlick="createPopup( '?view=controlcaps', 'zmControlCaps', 'controlcaps' );"><?= $SLANG['Edit'] ?></a><?php } ?></td></tr> <tr><td><?= $SLANG['ControlType'] ?></td><td><?= buildSelect( "newMonitor[ControlId]", $controlTypes, 'loadLocations( this )' ); ?><?php if ( canEdit( 'Control' ) ) { ?>&nbsp;<a href="#" onlick="createPopup( '?view=controlcaps', 'zmControlCaps', 'controlcaps' );"><?= $SLANG['Edit'] ?></a><?php } ?></td></tr>
<tr><td><?= $SLANG['ControlDevice'] ?></td><td><input type="text" name="newMonitor[ControlDevice]" value="<?= $newMonitor['ControlDevice'] ?>" size="32"/></td></tr> <tr><td><?= $SLANG['ControlDevice'] ?></td><td><input type="text" name="newMonitor[ControlDevice]" value="<?= $newMonitor['ControlDevice'] ?>" size="32"/></td></tr>
<tr><td><?= $SLANG['ControlAddress'] ?></td><td><input type="text" name="newMonitor[ControlAddress]" value="<?= $newMonitor['ControlAddress'] ?>" size="32"/></td></tr> <tr><td><?= $SLANG['ControlAddress'] ?></td><td><input type="text" name="newMonitor[ControlAddress]" value="<?= $newMonitor['ControlAddress'] ?>" size="32"/></td></tr>
<tr><td><?= $SLANG['AutoStopTimeout'] ?></td><td><input type="text" name="newMonitor[AutoStopTimeout]" value="<?= $newMonitor['AutoStopTimeout'] ?>" size="4"/></td></tr> <tr><td><?= $SLANG['AutoStopTimeout'] ?></td><td><input type="text" name="newMonitor[AutoStopTimeout]" value="<?= $newMonitor['AutoStopTimeout'] ?>" size="4"/></td></tr>
<tr><td><?= $SLANG['TrackMotion'] ?></td><td><input type="checkbox" name="newMonitor[TrackMotion]" value="1"<?php if ( !empty($newMonitor['TrackMotion']) ) { ?> checked="checked"<?php } ?>></td></tr> <tr><td><?= $SLANG['TrackMotion'] ?></td><td><input type="checkbox" name="newMonitor[TrackMotion]" value="1"<?php if ( !empty($newMonitor['TrackMotion']) ) { ?> checked="checked"<?php } ?>/></td></tr>
<?php <?php
$return_options = array( $return_options = array(
'-1' => $SLANG['None'], '-1' => $SLANG['None'],
@ -483,7 +560,6 @@ switch ( $_REQUEST['tab'] )
} }
} }
?> ?>
</tr>
</tbody> </tbody>
</table> </table>
<div id="contentButtons"> <div id="contentButtons">