Make ZoneMinder::Control ingerit from Object. Make loadMonitor use MonitorId
This commit is contained in:
parent
d56de57494
commit
cebe86feb2
|
@ -29,6 +29,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
require ZoneMinder::Base;
|
require ZoneMinder::Base;
|
||||||
|
require ZoneMinder::Object;
|
||||||
require ZoneMinder::Monitor;
|
require ZoneMinder::Monitor;
|
||||||
|
|
||||||
our $VERSION = $ZoneMinder::Base::VERSION;
|
our $VERSION = $ZoneMinder::Base::VERSION;
|
||||||
|
@ -42,24 +43,116 @@ our $VERSION = $ZoneMinder::Base::VERSION;
|
||||||
use ZoneMinder::Logger qw(:all);
|
use ZoneMinder::Logger qw(:all);
|
||||||
use ZoneMinder::Database qw(:all);
|
use ZoneMinder::Database qw(:all);
|
||||||
|
|
||||||
|
use parent qw(ZoneMinder::Object);
|
||||||
|
|
||||||
|
use vars qw/ $table $primary_key %fields $serial %defaults $debug/;
|
||||||
|
$table = 'Controls';
|
||||||
|
$serial = $primary_key = 'Id';
|
||||||
|
%fields = map { $_ => $_ } qw(
|
||||||
|
Id
|
||||||
|
Name
|
||||||
|
Type
|
||||||
|
Protocol
|
||||||
|
CanWake
|
||||||
|
CanSleep
|
||||||
|
CanReset
|
||||||
|
CanReboot
|
||||||
|
CanZoom
|
||||||
|
CanAutoZoom
|
||||||
|
CanZoomAbs
|
||||||
|
CanZoomRel
|
||||||
|
CanZoomCon
|
||||||
|
MinZoomRange
|
||||||
|
MaxZoomRange
|
||||||
|
MinZoomStep
|
||||||
|
MaxZoomStep
|
||||||
|
HasZoomSpeed
|
||||||
|
MinZoomSpeed
|
||||||
|
MaxZoomSpeed
|
||||||
|
CanFocus
|
||||||
|
CanAutoFocus
|
||||||
|
CanFocusAbs
|
||||||
|
CanFocusRel
|
||||||
|
CanFocusCon
|
||||||
|
MinFocusRange
|
||||||
|
MaxFocusRange
|
||||||
|
MinFocusStep
|
||||||
|
MaxFocusStep
|
||||||
|
HasFocusSpeed
|
||||||
|
MinFocusSpeed
|
||||||
|
MaxFocusSpeed
|
||||||
|
CanIris
|
||||||
|
CanAutoIris
|
||||||
|
CanIrisAbs
|
||||||
|
CanIrisRel
|
||||||
|
CanIrisCon
|
||||||
|
MinIrisRange
|
||||||
|
MaxIrisRange
|
||||||
|
MinIrisStep
|
||||||
|
MaxIrisStep
|
||||||
|
HasIrisSpeed
|
||||||
|
MinIrisSpeed
|
||||||
|
MaxIrisSpeed
|
||||||
|
CanGain
|
||||||
|
CanAutoGain
|
||||||
|
CanGainAbs
|
||||||
|
CanGainRel
|
||||||
|
CanGainCon
|
||||||
|
MinGainRange
|
||||||
|
MaxGainRange
|
||||||
|
MinGainStep
|
||||||
|
MaxGainStep
|
||||||
|
HasGainSpeed
|
||||||
|
MinGainSpeed
|
||||||
|
MaxGainSpeed
|
||||||
|
CanWhite
|
||||||
|
CanAutoWhite
|
||||||
|
CanWhiteAbs
|
||||||
|
CanWhiteRel
|
||||||
|
CanWhiteCon
|
||||||
|
MinWhiteRange
|
||||||
|
MaxWhiteRange
|
||||||
|
MinWhiteStep
|
||||||
|
MaxWhiteStep
|
||||||
|
HasWhiteSpeed
|
||||||
|
MinWhiteSpeed
|
||||||
|
MaxWhiteSpeed
|
||||||
|
HasPresets
|
||||||
|
NumPresets
|
||||||
|
HasHomePreset
|
||||||
|
CanSetPresets
|
||||||
|
CanMove
|
||||||
|
CanMoveDiag
|
||||||
|
CanMoveMap
|
||||||
|
CanMoveAbs
|
||||||
|
CanMoveRel
|
||||||
|
CanMoveCon
|
||||||
|
CanPan
|
||||||
|
MinPanRange
|
||||||
|
MaxPanRange
|
||||||
|
MinPanStep
|
||||||
|
MaxPanStep
|
||||||
|
HasPanSpeed
|
||||||
|
MinPanSpeed
|
||||||
|
MaxPanSpeed
|
||||||
|
HasTurboPan
|
||||||
|
TurboPanSpeed
|
||||||
|
CanTilt
|
||||||
|
MinTiltRange
|
||||||
|
MaxTiltRange
|
||||||
|
MinTiltStep
|
||||||
|
MaxTiltStep
|
||||||
|
HasTiltSpeed
|
||||||
|
MinTiltSpeed
|
||||||
|
MaxTiltSpeed
|
||||||
|
HasTurboTilt
|
||||||
|
TurboTiltSpeed
|
||||||
|
CanAutoScan
|
||||||
|
NumScanPaths
|
||||||
|
);
|
||||||
|
|
||||||
our $AUTOLOAD;
|
our $AUTOLOAD;
|
||||||
|
|
||||||
sub new {
|
|
||||||
my $class = shift;
|
|
||||||
my $id = shift;
|
|
||||||
if ( !defined($id) ) {
|
|
||||||
Fatal('No monitor defined when invoking protocol '.$class);
|
|
||||||
}
|
|
||||||
my $self = {};
|
|
||||||
$self->{name} = $class;
|
|
||||||
$self->{id} = $id;
|
|
||||||
bless($self, $class);
|
|
||||||
return $self;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub DESTROY {
|
|
||||||
}
|
|
||||||
|
|
||||||
sub AUTOLOAD {
|
sub AUTOLOAD {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $class = ref($self);
|
my $class = ref($self);
|
||||||
|
@ -79,24 +172,24 @@ sub AUTOLOAD {
|
||||||
|
|
||||||
sub getKey {
|
sub getKey {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return $self->{id};
|
return $self->{Id};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub open {
|
sub open {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
Fatal('No open method defined for protocol '.$self->{name});
|
Fatal('No open method defined for protocol '.$self->{Protocol});
|
||||||
}
|
}
|
||||||
|
|
||||||
sub close {
|
sub close {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
$self->{state} = 'closed';
|
$self->{state} = 'closed';
|
||||||
Debug('No close method defined for protocol '.$self->{name});
|
Debug('No close method defined for protocol '.$self->{Protocol});
|
||||||
}
|
}
|
||||||
|
|
||||||
sub loadMonitor {
|
sub loadMonitor {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
if ( !$self->{Monitor} ) {
|
if ( !$self->{Monitor} ) {
|
||||||
if ( !($self->{Monitor} = ZoneMinder::Monitor->find_one(Id=>$self->{id})) ) {
|
if ( !($self->{Monitor} = ZoneMinder::Monitor->find_one(Id=>$self->{MonitorId})) ) {
|
||||||
Fatal('Monitor id '.$self->{id}.' not found');
|
Fatal('Monitor id '.$self->{id}.' not found');
|
||||||
}
|
}
|
||||||
if ( defined($self->{Monitor}->{AutoStopTimeout}) ) {
|
if ( defined($self->{Monitor}->{AutoStopTimeout}) ) {
|
||||||
|
|
Loading…
Reference in New Issue