AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
basemachinecontrol.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef _BASEMACHINECONTROL_H
9 #define _BASEMACHINECONTROL_H
10 
11 #include "ajaexport.h"
12 #include "ajatypes.h"
13 #include "ntv2enums.h"
14 
20 {
21  public:
22  typedef enum
23  {
24  CONTROLTYPE_DDR, // DDREthernetControl
25  CONTROLTYPE_XVID, // Uses NTV2 File to control AJA device
26  CONTROLTYPE_NTV2, // Uses AJA NTV2 device serial port
27  CONTROLTYPE_SERIAL, // Uses host serial Port
28  CONTROLTYPE_INVALID
29  } ControlType;
30 
31  typedef enum
32  {
33  CONTROL_UNIMPLEMENTED = 0xFFFFFFFF
34  } ControUnimplemented;
35 
36  public:
37  explicit inline CBaseMachineControl () : _controlType (CONTROLTYPE_INVALID) {}
38  virtual inline ~CBaseMachineControl () {}
39 
40  public:
41  virtual bool Open (void) = 0;
42  virtual void Close (void) = 0;
43 
44  // These return true, false or CONTROL_UNIMPLEMENTED
45  virtual inline ULWord Play (void) {return CONTROL_UNIMPLEMENTED;}
46  virtual inline ULWord ReversePlay (void) {return CONTROL_UNIMPLEMENTED;}
47  virtual inline ULWord Stop (void) {return CONTROL_UNIMPLEMENTED;}
48  virtual inline ULWord FastForward (void) {return CONTROL_UNIMPLEMENTED;}
49  virtual inline ULWord Rewind (void) {return CONTROL_UNIMPLEMENTED;}
50  virtual inline ULWord AdvanceFrame (void) {return CONTROL_UNIMPLEMENTED;}
51  virtual inline ULWord BackFrame (void) {return CONTROL_UNIMPLEMENTED;}
52  virtual inline ULWord GetTimecodeString (SByte * pOutTimecodeString) {(void) pOutTimecodeString; return CONTROL_UNIMPLEMENTED;}
53  virtual inline ULWord GotoFrameByString (SByte * pInFrameString) {(void) pInFrameString; return CONTROL_UNIMPLEMENTED;}
54  virtual inline ULWord GotoFrame (ULWord inFrameNumber) {(void) inFrameNumber; return CONTROL_UNIMPLEMENTED;}
55  virtual inline ULWord GotoFrameByHMS (UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames) {(void) inHrs; (void) inMins; (void) inSecs; (void) inFrames; return CONTROL_UNIMPLEMENTED;}
56  virtual inline ULWord RecordAtFrame (ULWord inFrameNumber) {(void) inFrameNumber; return CONTROL_UNIMPLEMENTED;}
57  virtual inline ULWord Loop (ULWord inStartFrameNumber, ULWord inEndFrameNumber) {(void) inStartFrameNumber; (void) inEndFrameNumber; return CONTROL_UNIMPLEMENTED;}
58  virtual inline ControlType GetControlType (void) const {return _controlType;}
59 
60  protected:
62 
63 }; // CBaseMachineControl
64 
65 #endif // _BASEMACHINECONTROL_H
virtual ULWord ReversePlay(void)
virtual ULWord Rewind(void)
virtual ULWord Play(void)
virtual ULWord GotoFrameByHMS(UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames)
virtual ULWord RecordAtFrame(ULWord inFrameNumber)
uint32_t ULWord
Definition: ajatypes.h:223
virtual ULWord FastForward(void)
Enumerations for controlling NTV2 devices.
Defines the import/export macros for producing DLLs or LIBs.
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
virtual ULWord BackFrame(void)
virtual ULWord GotoFrameByString(SByte *pInFrameString)
uint8_t UByte
Definition: ajatypes.h:218
#define AJAExport
Definition: export.h:33
virtual ULWord AdvanceFrame(void)
A base class for deck control.
virtual ULWord GetTimecodeString(SByte *pOutTimecodeString)
virtual ControlType GetControlType(void) const
virtual ULWord Stop(void)
virtual ULWord GotoFrame(ULWord inFrameNumber)
int8_t SByte
Definition: ajatypes.h:219
virtual ULWord Loop(ULWord inStartFrameNumber, ULWord inEndFrameNumber)