Files
eUi/subModule/Hd_HikDeviceListCache/HikDevicelistCache.cpp
T

50 lines
1.3 KiB
C++
Raw Normal View History

2026-09-20 16:01:09 +08:00
#include <HikDevicelistCache.h>
#include <QMutexLocker>
#include <cstring>
HikDevicelistCache::HikDevicelistCache()
{
std::memset(&m_deviceInfoList, 0, sizeof(m_deviceInfoList));
std::memset(&m_gentlIfInfoList, 0, sizeof(m_gentlIfInfoList));
}
MV_CC_DEVICE_INFO_LIST HikDevicelistCache::getDeviceInfoList() const
{
QMutexLocker locker(&m_mutex);
if (!m_deviceInfoListScanned) {
MV_CC_DEVICE_INFO_LIST scannedList{};
if (MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &scannedList) == MV_OK) {
m_deviceInfoList = scannedList;
}
m_deviceInfoListScanned = true;
}
return m_deviceInfoList;
}
MV_GENTL_IF_INFO_LIST HikDevicelistCache::getGentlIfInfoList() const
{
QMutexLocker locker(&m_mutex);
return m_gentlIfInfoList;
}
void HikDevicelistCache::setDeviceInfoList(const MV_CC_DEVICE_INFO_LIST& deviceInfoList)
{
QMutexLocker locker(&m_mutex);
m_deviceInfoList = deviceInfoList;
m_deviceInfoListScanned = true;
}
void HikDevicelistCache::setGentlIfInfoList(const MV_GENTL_IF_INFO_LIST& gentlIfInfoList)
{
QMutexLocker locker(&m_mutex);
m_gentlIfInfoList = gentlIfInfoList;
}
HikDevicelistCache& appHikDeviceListCache()
{
static HikDevicelistCache cache;
return cache;
}