Turn off instantiating a default zone before even loading the zones. Implement the use of Camera->setMonitor so that the camera object doesn't have to load it later.
parent
6e9cb06290
commit
3a06ba7a65
|
@ -55,3 +55,8 @@ Monitor *Camera::getMonitor() {
|
|||
monitor = Monitor::Load( monitor_id, false, Monitor::QUERY );
|
||||
return monitor;
|
||||
}
|
||||
|
||||
void Camera::setMonitor( Monitor *p_monitor ) {
|
||||
monitor = p_monitor;
|
||||
monitor_id = monitor->Id();
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ public:
|
|||
|
||||
unsigned int getId() const { return( monitor_id ); }
|
||||
Monitor *getMonitor();
|
||||
void setMonitor( Monitor *p_monitor );
|
||||
SourceType Type() const { return( type ); }
|
||||
bool IsLocal() const { return( type == LOCAL_SRC ); }
|
||||
bool IsRemote() const { return( type == REMOTE_SRC ); }
|
||||
|
|
|
@ -435,7 +435,7 @@ Monitor::Monitor(
|
|||
|
||||
// Will this not happen every time a monitor is instantiated? Seems like all the calls to the Monitor constructor pass a zero for n_zones, then load zones after..
|
||||
// In my storage areas branch, I took this out.. and didn't notice any problems.
|
||||
if ( !n_zones ) {
|
||||
if ( false && !n_zones ) {
|
||||
Debug( 1, "Monitor %s has no zones, adding one.", name );
|
||||
n_zones = 1;
|
||||
zones = new Zone *[1];
|
||||
|
@ -1996,10 +1996,11 @@ int Monitor::LoadLocalMonitors( const char *device, Monitor **&monitors, Purpose
|
|||
track_motion,
|
||||
signal_check_colour,
|
||||
embed_exif,
|
||||
purpose,
|
||||
purpose,
|
||||
0,
|
||||
0
|
||||
);
|
||||
camera->setMonitor( monitors[i] );
|
||||
Zone **zones = 0;
|
||||
int n_zones = Zone::Load( monitors[i], zones );
|
||||
monitors[i]->AddZones( n_zones, zones );
|
||||
|
@ -2185,6 +2186,7 @@ int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const c
|
|||
0,
|
||||
0
|
||||
);
|
||||
camera->setMonitor( monitors[i] );
|
||||
Zone **zones = 0;
|
||||
int n_zones = Zone::Load( monitors[i], zones );
|
||||
monitors[i]->AddZones( n_zones, zones );
|
||||
|
@ -2334,6 +2336,7 @@ int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose pu
|
|||
0,
|
||||
0
|
||||
);
|
||||
camera->setMonitor( monitors[i] );
|
||||
Zone **zones = 0;
|
||||
int n_zones = Zone::Load( monitors[i], zones );
|
||||
monitors[i]->AddZones( n_zones, zones );
|
||||
|
@ -2490,6 +2493,8 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
|||
0,
|
||||
0
|
||||
);
|
||||
|
||||
camera->setMonitor( monitors[i] );
|
||||
Zone **zones = 0;
|
||||
int n_zones = Zone::Load( monitors[i], zones );
|
||||
monitors[i]->AddZones( n_zones, zones );
|
||||
|
@ -2802,6 +2807,8 @@ Monitor *Monitor::Load( unsigned int p_id, bool load_zones, Purpose purpose ) {
|
|||
|
||||
);
|
||||
|
||||
camera->setMonitor( monitor );
|
||||
|
||||
int n_zones = 0;
|
||||
if ( load_zones ) {
|
||||
Zone **zones = 0;
|
||||
|
|
Loading…
Reference in New Issue