AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
pnp.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #include <assert.h>
9 #include "ajabase/pnp/pnp.h"
10 
11 #if defined(AJA_WINDOWS)
13 #endif
14 
15 #if defined(AJA_LINUX)
17 #endif
18 
19 #if defined(AJA_MAC)
20  #include "ajabase/pnp/mac/pnpimpl.h"
21 #endif
22 
23 
24 std::string AJAPnp::MessageToString (const AJAPnpMessage inMsg) // STATIC
25 {
26  switch (inMsg)
27  {
28  case AJA_Pnp_DeviceAdded: return "AJA_Pnp_DeviceAdded";
29  case AJA_Pnp_DeviceRemoved: return "AJA_Pnp_DeviceRemoved";
30  case AJA_Pnp_DeviceOnline: return "AJA_Pnp_DeviceOnline";
31  case AJA_Pnp_DeviceOffline: return "AJA_Pnp_DeviceOffline";
32  case AJA_Pnp_DeviceGoingToSleep: return "AJA_Pnp_DeviceGoingToSleep";
33  case AJA_Pnp_DeviceWakingUp: return "AJA_Pnp_DeviceWakingUp";
34  }
35  return "";
36 }
37 
39 {
40  mpImpl = new AJAPnpImpl();
41 }
42 
43 
45 {
46  delete mpImpl;
47 }
48 
49 
50 AJAStatus
51 AJAPnp::Install(AJAPnpCallback callback, void* refCon, uint32_t devices)
52 {
53  return mpImpl->Install(callback, refCon, devices);
54 }
55 
56 
59 {
60  return mpImpl->Uninstall();
61 }
62 
63 
66 {
67  return mpImpl->GetCallback();
68 }
69 
70 
71 void*
73 {
74  return mpImpl->GetRefCon();
75 }
76 
77 
78 uint32_t
80 {
81  return mpImpl->GetPnpDevices();
82 }
83 
84 
85 AJAPnp::AJAPnp (const AJAPnp & inObjToCopy)
86 {
87  AJA_UNUSED(inObjToCopy); assert (false && "hidden copy constructor"); // mpImpl=inObjToCopy.mpImpl;
88 }
89 
90 
91 AJAPnp &
92 AJAPnp::operator= (const AJAPnp & inObjToCopy)
93 {
94  if (&inObjToCopy != this)
95  assert (false && "hidden assignment operator"); // mpImpl = inObjToCopy.mpImpl;
96 
97  return *this;
98 
99 } // copy constructor
virtual void * GetRefCon() const
Definition: pnp.cpp:72
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
Declares the AJAPnpImpl class.
AJAStatus
Definition: types.h:380
virtual AJAStatus Uninstall()
Uninstalls any previously-installed callback notifier.
Definition: pnp.cpp:58
void * GetRefCon(void) const
Definition: pnpimpl.h:23
static std::string MessageToString(const AJAPnpMessage inMsg)
Converts an AJAPnpMessage into a human-readable string.
Definition: pnp.cpp:24
Declares the AJAPnpImpl class.
AJAStatus Uninstall(void)
Definition: pnpimpl.cpp:62
virtual ~AJAPnp()
Default destructor.
Definition: pnp.cpp:44
AJAPnpCallback GetCallback(void) const
Definition: pnpimpl.h:22
Declares the AJAPnpImpl class.
uint32_t GetPnpDevices(void) const
Definition: pnpimpl.h:24
#define AJA_UNUSED(_x_)
Definition: types.h:426
AJAPnpMessage
Definition: pnp.h:22
This is a platform-agnostic plug-and-play class that notifies a client when AJA devices are attached/...
Definition: pnp.h:50
AJAPnp()
Default constructor.
Definition: pnp.cpp:38
virtual uint32_t GetPnpDevices() const
Definition: pnp.cpp:79
AJAStatus Install(AJAPnpCallback callback, void *refCon, uint32_t devices)
Definition: pnpimpl.cpp:32
Declares the AJAPnp (plug-and-play) class.
virtual AJAStatus Install(AJAPnpCallback pInCallback, void *inRefCon=NULL, uint32_t inDeviceMask=0xFFFFFFFF)
Installs the given plug & play notification callback function, replacing any callback function that m...
Definition: pnp.cpp:51
virtual AJAPnpCallback GetCallback() const
Definition: pnp.cpp:65