ItalaApi  1.3.3
IDevice.h
1 
2 /***********************************************************************************
3  *
4  * ItalaApi - Copyright (C) 2022 Opto Engineering
5  *
6  * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
7  * INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
8  * FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT
9  * HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY SUFFERED BY LICENSE AS
10  * A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
11  *
12  ***********************************************************************************/
13 
14 #ifndef ITALA_API_IDEVICE_H
15 #define ITALA_API_IDEVICE_H
16 
17 #include "Base/GCString.h"
18 #include "GenApi/INodeMap.h"
19 #include "ItalaApi/DeviceEventHandler.h"
20 #include "ItalaApi/DeviceInfo.h"
21 #include "ItalaApi/IDisposable.h"
22 
23 namespace Itala {
24 
25 struct IImage;
26 
34 struct IDevice : public IDisposable {
43  virtual GenApi::INodeMap& GetNodeMap() const = 0;
44 
53  virtual GenApi::INodeMap& GetTLDeviceNodeMap() const = 0;
54 
62  virtual GenApi::INodeMap& GetDatastreamNodeMap() const = 0;
63 
82  virtual void StartAcquisition(uint64_t bufferCount, uint64_t numFrames) const = 0;
83 
89  virtual void StartAcquisition() const = 0;
90 
98  virtual void StopAcquisition() const = 0;
99 
119  virtual IImage* GetNextImage(int64_t timeout) = 0;
120 
126  virtual void EnableEvents() = 0;
127 
131  virtual void DisableEvents() = 0;
132 
139  virtual void RegisterHandler(Itala::DeviceEventHandler* handler) = 0;
140 
144  virtual void DeregisterHandler() = 0;
145 
153  virtual uint64_t GetTimestampFrequency() const = 0;
154 
160  virtual DeviceInfo GetInfo() const = 0;
161 
162 protected:
163  virtual ~IDevice(){};
164 };
165 } // namespace Itala
166 
167 #endif
Definition: DeviceInfo.h:31
virtual GenApi::INodeMap & GetNodeMap() const =0
virtual void DisableEvents()=0
virtual void StartAcquisition() const =0
virtual DeviceInfo GetInfo() const =0
virtual void DeregisterHandler()=0
virtual GenApi::INodeMap & GetTLDeviceNodeMap() const =0
Definition: DefectivePixel.h:23
virtual void EnableEvents()=0
Definition: IDevice.h:34
Definition: IDisposable.h:27
virtual GenApi::INodeMap & GetDatastreamNodeMap() const =0
Definition: DeviceEventHandler.h:26
virtual void RegisterHandler(Itala::DeviceEventHandler *handler)=0
virtual IImage * GetNextImage(int64_t timeout)=0
virtual void StopAcquisition() const =0
virtual uint64_t GetTimestampFrequency() const =0
Definition: IImage.h:30