Generate name based on presence of zone. Add loading of zones and figuring out which one is ours.

pull/3506/head
Isaac Connor 2022-06-07 18:16:23 -04:00
parent fb48c5f01c
commit dd1d194ec7
1 changed files with 22 additions and 5 deletions

View File

@ -30,19 +30,36 @@
#include <sys/shm.h>
#endif // ZM_MEM_MAPPED
Monitor::MonitorLink::MonitorLink(unsigned int p_monitor_id, unsigned int p_zone_id, const char *p_name) :
monitor_id(p_monitor_id),
Monitor::MonitorLink::MonitorLink(std::shared_ptr<Monitor>p_monitor, unsigned int p_zone_id) :
monitor(p_monitor),
zone_id(p_zone_id),
zone_index(-1),
shared_data(nullptr),
trigger_data(nullptr),
video_store_data(nullptr),
zone_scores(nullptr)
{
strncpy(name, p_name, sizeof(name)-1);
name = monitor->Name();
if (zone_id) {
zones = Zone::Load(monitor);
zone_index = 0;
for (const Zone &z : zones) {
if (z.Id() == zone_id) {
zone = &z;
break;
}
zone_index ++;
}
if (zone_index > zones.size()) {
Error("Unable to find zone %u", zone_id);
zone_index = -1;
}
}
if (zone) name += " : " + zone->Name();
#if ZM_MEM_MAPPED
map_fd = -1;
mem_file = stringtf("%s/zm.mmap.%u", staticConfig.PATH_MAP.c_str(), monitor_id);
mem_file = stringtf("%s/zm.mmap.%u", staticConfig.PATH_MAP.c_str(), monitor->Id());
#else // ZM_MEM_MAPPED
shm_id = 0;
#endif // ZM_MEM_MAPPED
@ -122,7 +139,7 @@ bool Monitor::MonitorLink::connect() {
shared_data = (SharedData *)mem_ptr;
trigger_data = (TriggerData *)((char *)shared_data + sizeof(SharedData));
zone_scores = (int *)(trigger_data + sizeof(TriggerData));
zone_scores = (int *)((unsigned long)trigger_data + sizeof(TriggerData));
if (!shared_data->valid) {
Debug(3, "Linked memory not initialised by capture daemon");