obs-studio/build_dependencies/aja/include/ajalibraries/ajantv2/includes/basemachinecontrol.h
Ward Nakchbandi b48576284b first commit
2023-03-04 20:33:16 +03:00

66 lines
2.8 KiB
C++

/* SPDX-License-Identifier: MIT */
/**
@file basemachinecontrol.h
@deprecated Declares the CBaseMachineControl class.
@copyright (C) 2004-2021 AJA Video Systems, Inc.
**/
#ifndef _BASEMACHINECONTROL_H
#define _BASEMACHINECONTROL_H
#include "ajaexport.h"
#include "ajatypes.h"
#include "ntv2enums.h"
/**
@brief A base class for deck control.
@note Not intended for use in production or mission-critical environments!
**/
class AJAExport CBaseMachineControl
{
public:
typedef enum
{
CONTROLTYPE_DDR, // DDREthernetControl
CONTROLTYPE_XVID, // Uses NTV2 File to control AJA device
CONTROLTYPE_NTV2, // Uses AJA NTV2 device serial port
CONTROLTYPE_SERIAL, // Uses host serial Port
CONTROLTYPE_INVALID
} ControlType;
typedef enum
{
CONTROL_UNIMPLEMENTED = 0xFFFFFFFF
} ControUnimplemented;
public:
explicit inline CBaseMachineControl () : _controlType (CONTROLTYPE_INVALID) {}
virtual inline ~CBaseMachineControl () {}
public:
virtual bool Open (void) = 0;
virtual void Close (void) = 0;
// These return true, false or CONTROL_UNIMPLEMENTED
virtual inline ULWord Play (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord ReversePlay (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord Stop (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord FastForward (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord Rewind (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord AdvanceFrame (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord BackFrame (void) {return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord GetTimecodeString (SByte * pOutTimecodeString) {(void) pOutTimecodeString; return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord GotoFrameByString (SByte * pInFrameString) {(void) pInFrameString; return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord GotoFrame (ULWord inFrameNumber) {(void) inFrameNumber; return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord GotoFrameByHMS (UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames) {(void) inHrs; (void) inMins; (void) inSecs; (void) inFrames; return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord RecordAtFrame (ULWord inFrameNumber) {(void) inFrameNumber; return CONTROL_UNIMPLEMENTED;}
virtual inline ULWord Loop (ULWord inStartFrameNumber, ULWord inEndFrameNumber) {(void) inStartFrameNumber; (void) inEndFrameNumber; return CONTROL_UNIMPLEMENTED;}
virtual inline ControlType GetControlType (void) const {return _controlType;}
protected:
ControlType _controlType;
}; // CBaseMachineControl
#endif // _BASEMACHINECONTROL_H