6#if QT_VERSION < 0x060000
7 #include <QtCore/QMutex>
9 #include <QtCore/QRecursiveMutex>
13#include <imod/TModelWrap.h>
14#include <ilog/TLoggerCompWrap.h>
17#include <imtbase/CCollectionInfo.h>
18#include <imtbase/TModelUpdateBinder.h>
19#include <imtdev/IDeviceController.h>
74 public ilog::CLoggerComponentBase,
79 typedef ilog::CLoggerComponentBase BaseClass;
82 I_REGISTER_SUBELEMENT(DeviceInfoList);
84 I_REGISTER_SUBELEMENT_INTERFACE(DeviceInfoList, istd::IChangeable, ExtractDeviceInfoList);
85 I_REGISTER_SUBELEMENT_INTERFACE(DeviceInfoList, imod::IModel, ExtractDeviceInfoList);
86 I_REGISTER_SUBELEMENT(OverriddenDeviceInfo);
88 I_REGISTER_SUBELEMENT_INTERFACE(OverriddenDeviceInfo, imod::IModel, ExtractOverriddenDeviceInfo);
89 I_REGISTER_SUBELEMENT_INTERFACE(OverriddenDeviceInfo, istd::IChangeable, ExtractOverriddenDeviceInfo);
92 I_ASSIGN(m_isAutoCloseEnabledAttrPtr,
"AutoClose",
"Automatically close an opened device if it is not found during the next enumeration",
true,
"true");
99 virtual bool SetDeviceInstanceName(
const QByteArray& deviceId,
const QString& name)
override;
100 virtual bool SetDeviceInstanceDescription(
const QByteArray& deviceId,
const QString& description)
override;
104 struct EnumeratedDeviceInfo
110 typedef QVector<EnumeratedDeviceInfo> EnumeratedDeviceList;
115 DeviceStateProvider();
119 virtual DeviceState GetDeviceState(
const QByteArray& deviceId)
const override;
127 void UpdateDeviceList(EnumeratedDeviceList& enumeratedDeviceList);
128 void UpdateDeviceList();
129 void AutoCloseDisconnectedDevices();
131 template <
class InteraceType>
134 return &parent.m_deviceList;
137 template <
class InteraceType>
140 return &parent.m_overriddenDeviceInfo;
144 virtual void OnComponentCreated()
override;
145 virtual void OnComponentDestroyed()
override;
148 I_ATTR(
bool, m_isAutoCloseEnabledAttrPtr);
150 imod::TModelWrap<imtbase::CCollectionInfo> m_deviceList;
151 imod::TModelWrap<imtbase::CCollectionInfo> m_overriddenDeviceInfo;
152 imod::TModelWrap<DeviceStateProvider> m_deviceStateProvider;
153 QMap<QByteArray, DeviceAccessorPtr> m_openedDevices;
155#if QT_VERSION < 0x060000
156 mutable QMutex m_deviceListMutex;
157 mutable QMutex m_openedDevicesMutex;
159 mutable QRecursiveMutex m_deviceListMutex;
160 mutable QRecursiveMutex m_openedDevicesMutex;
164 void OnOverriddenDeviceInfoUpdated(
const istd::IChangeable::ChangeSet& changeset,
const imtbase::ICollectionInfo* objectPtr);
Base controller component implementing IDeviceController interface.
Common interface for controlling devices.
Interface for asynchronous device enumeration.
Interface for tracking device connection states.
DeviceState
Runtime state of a device.