AJA NTV2 SDK  17.5.0.1492
NTV2 SDK 17.5.0.1492
pnp.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_PNP_H
9 #define AJA_PNP_H
10 
11 #include "ajabase/common/public.h"
12 
13 
14 typedef enum
15 {
19 } AJAPnpDevice;
20 
21 
22 typedef enum
23 {
31 
32 
39 typedef void (*AJAPnpCallback)(AJAPnpMessage inMessage, void * inRefCon);
40 
41 
42 // forward declarations.
43 class AJAPnpImpl;
44 
51 {
52 public: // CLASS METHODS
53 
61  static std::string MessageToString (const AJAPnpMessage inMsg);
62 
63 public: // INSTANCE METHODS
64 
68  AJAPnp();
69 
73  virtual ~AJAPnp();
74 
95  virtual AJAStatus Install (AJAPnpCallback pInCallback, void * inRefCon = NULL, uint32_t inDeviceMask = 0xFFFFFFFF);
96 
100  virtual AJAPnpCallback GetCallback() const;
101 
107  virtual AJAStatus Uninstall();
108 
112  virtual void* GetRefCon() const;
113 
117  virtual uint32_t GetPnpDevices() const;
118 
119 
120 private: // INSTANCE METHODS
126  AJAPnp (const AJAPnp & inObjToCopy);
127 
128 
134  virtual AJAPnp & operator= (const AJAPnp & inObjToCopy);
135 
136 
137 private: // INSTANCE DATA
138  AJAPnpImpl * mpImpl;
139 
140 }; // AJAPnp
141 
142 #endif // AJA_PNP_H
AJAPnp
This is a platform-agnostic plug-and-play class that notifies a client when AJA devices are attached/...
Definition: pnp.h:50
AJA_Pnp_DeviceGoingToSleep
@ AJA_Pnp_DeviceGoingToSleep
Definition: pnp.h:28
AJA_Pnp_UsbSerialDevices
@ AJA_Pnp_UsbSerialDevices
Definition: pnp.h:17
NULL
#define NULL
Definition: ntv2caption608types.h:19
AJAPnpCallback
void(* AJAPnpCallback)(AJAPnpMessage inMessage, void *inRefCon)
If installed (see AJAPnp::Install) in an AJAPnp instance, this function is called when an AJA device ...
Definition: pnp.h:39
AJA_EXPORT
#define AJA_EXPORT
Definition: export.h:34
AJAPnpMessage
AJAPnpMessage
Definition: pnp.h:22
AJA_Pnp_PciVideoDevices
@ AJA_Pnp_PciVideoDevices
Definition: pnp.h:16
public.h
Master header for the ajabase library.
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::void
j template void())
Definition: json.hpp:4893
AJAStatus
AJAStatus
Definition: types.h:378
AJA_Pnp_DeviceOffline
@ AJA_Pnp_DeviceOffline
Definition: pnp.h:27
AJA_Pnp_FireWireDevices
@ AJA_Pnp_FireWireDevices
Definition: pnp.h:18
AJA_Pnp_DeviceOnline
@ AJA_Pnp_DeviceOnline
Definition: pnp.h:26
AJA_Pnp_DeviceRemoved
@ AJA_Pnp_DeviceRemoved
Definition: pnp.h:25
AJAPnpImpl
Definition: pnpimpl.h:13
AJAPnpDevice
AJAPnpDevice
Definition: pnp.h:14
AJA_Pnp_DeviceWakingUp
@ AJA_Pnp_DeviceWakingUp
Definition: pnp.h:29
AJA_Pnp_DeviceAdded
@ AJA_Pnp_DeviceAdded
Definition: pnp.h:24