diff options
Diffstat (limited to 'dxsdk/Include/edevctrl.h')
-rw-r--r-- | dxsdk/Include/edevctrl.h | 346 |
1 files changed, 0 insertions, 346 deletions
diff --git a/dxsdk/Include/edevctrl.h b/dxsdk/Include/edevctrl.h deleted file mode 100644 index 07510447..00000000 --- a/dxsdk/Include/edevctrl.h +++ /dev/null @@ -1,346 +0,0 @@ -/*++ - -Copyright (C) Microsoft Corporation, 1998 - 1999 - -Module Name: - - EDevCtrl.h - -Abstract: - - This header contain structures and peroperty sets for - interfacing to an external device, like a DV. - The code is modeled after DirectShow's Vcrctrl Sample - (VCR Control Filter). It contain IAMExtDevice, - IAMExtTransport, and IAMTimecodeReader interfaces, and - a new interface IAMAdvancedAVControl() is added - for additional advanced device controls. - - Note: (From DShow DDK) - The VCR control sample filter, Vcrctrl, is a simple - implementation of the external device control interfaces - that DirectShow provides. Vcrctrl provides basic transport - control and SMPTE timecode-reading capabilities for certain - Betacam and SVHS videocassette recorders with RS-422 or RS-232 - serial interfaces (see source code for specific machine types - supported). - - Note: some methods in IAM* interfaces may not be - used and will return not implemented. - -Created: - - September 23, 1998 - - Yee J. Wu - - -Revision: - - 0.6 - ---*/ - -#ifndef __EDevCtrl__ -#define __EDevCtrl__ - -#ifndef TIMECODE_DEFINED -#define TIMECODE_DEFINED -typedef union _timecode { - struct { - WORD wFrameRate; - WORD wFrameFract; - DWORD dwFrames; - }; - DWORDLONG qw; - } TIMECODE; - - - -typedef TIMECODE *PTIMECODE; - -typedef struct tagTIMECODE_SAMPLE - { - LONGLONG qwTick; - TIMECODE timecode; - DWORD dwUser; - DWORD dwFlags; - } TIMECODE_SAMPLE; - -typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE; - -#endif /* TIMECODE_DEFINED */ - -// Device Capabilities -typedef struct tagDEVCAPS{ - long CanRecord; - long CanRecordStrobe; - long HasAudio; - long HasVideo; - long UsesFiles; - long CanSave; - long DeviceType; - long TCRead; - long TCWrite; - long CTLRead; - long IndexRead; - long Preroll; - long Postroll; - long SyncAcc; - long NormRate; - long CanPreview; - long CanMonitorSrc; - long CanTest; - long VideoIn; - long AudioIn; - long Calibrate; - long SeekType; - long SimulatedHardware; // private -} DEVCAPS, *PDEVCAPS; - -// transport status -typedef struct tagTRANSPORTSTATUS{ - long Mode; - long LastError; - long RecordInhibit; - long ServoLock; - long MediaPresent; - long MediaLength; - long MediaSize; - long MediaTrackCount; - long MediaTrackLength; - long MediaTrackSide; - long MediaType; - long LinkMode; - long NotifyOn; -} TRANSPORTSTATUS, *PTRANSPORTSTATUS; - -// transport basic parameters -typedef struct tagTRANSPORTBASICPARMS{ - long TimeFormat; - long TimeReference; - long Superimpose; - long EndStopAction; - long RecordFormat; - long StepFrames; - long SetpField; - long Preroll; - long RecPreroll; - long Postroll; - long EditDelay; - long PlayTCDelay; - long RecTCDelay; - long EditField; - long FrameServo; - long ColorFrameServo; - long ServoRef; - long WarnGenlock; - long SetTracking; - TCHAR VolumeName[40]; - long Ballistic[20]; - long Speed; - long CounterFormat; - long TunerChannel; - long TunerNumber; - long TimerEvent; - long TimerStartDay; - long TimerStartTime; - long TimerStopDay; - long TimerStopTime; -} TRANSPORTBASICPARMS, *PTRANSPORTBASICPARMS; - -// transport video parameters -typedef struct tagTRANSPORTVIDEOPARMS{ - long OutputMode; - long Input; -} TRANSPORTVIDEOPARMS, *PTRANSPORTVIDEOPARMS; - -// transport audio parameters -typedef struct tagTRANSPORTAUDIOPARMS{ - long EnableOutput; - long EnableRecord; - long EnableSelsync; - long Input; - long MonitorSource; -} TRANSPORTAUDIOPARMS, *PTRANSPORTAUDIOPARMS; - - -// low level machine status structure filled in after -// REQUEST_STATUS command from above. This structure would -// grow in a full implementation -typedef struct tagVCRSTATUS{ - BOOL bCassetteOut; // OATRUE means no cassette - BOOL bLocal; // OATRUE means front panel switch in local -} VCRSTATUS; - -typedef VCRSTATUS far *PVCRSTATUS; - - - -//--------------------------------------------------------- -// STATIC_PROPSETID_VIDCAP_EXT_DEVICE -//--------------------------------------------------------- -// This guid and interface is defined in strmif.h -#define STATIC_PROPSETID_EXT_DEVICE\ - 0xB5730A90L, 0x1A2C, 0x11cf, 0x8c, 0x23, 0x00, 0xAA, 0x00, 0x6B, 0x68, 0x14 -DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814", PROPSETID_EXT_DEVICE); -#define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE) - - -// KS properties and structure for this interface -typedef enum { - KSPROPERTY_EXTDEVICE_ID, // ID (such as Symbolic Lin) that can uniquely idenfy this device - KSPROPERTY_EXTDEVICE_VERSION, // Device model number and version (such AV/C VCR Subunit Spec. 2.01) - KSPROPERTY_EXTDEVICE_POWER_STATE, // Return current device power state. - KSPROPERTY_EXTDEVICE_PORT, // Can use this to return DEV_PORT_1394 - KSPROPERTY_EXTDEVICE_CAPABILITIES, // Device specific capabilities - -} KSPROPERTY_EXTDEVICE; - - -typedef struct { - KSPROPERTY Property; - - union { - // Client is responsible for allocating this. - DEVCAPS Capabilities; // May need to expand on the existing structure - ULONG DevPort; // - ULONG PowerState; // On, off standby - WCHAR pawchString[MAX_PATH]; // ID and version - DWORD NodeUniqueID[2]; // Unique NodeID - } u; - -} KSPROPERTY_EXTDEVICE_S, *PKSPROPERTY_EXTDEVICE_S; - - -//--------------------------------------------------------- -// STATIC_PROPSETID_VIDCAP_EXT_TRANSPORT -//--------------------------------------------------------- -// This guid and interface is defined in strmif.h -#define STATIC_PROPSETID_EXT_TRANSPORT\ - 0xA03CD5F0L, 0x3045, 0x11cf, 0x8c, 0x44, 0x00, 0xAA, 0x00, 0x6B, 0x68, 0x14 -DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814", PROPSETID_EXT_TRANSPORT); -#define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT) - - - -// KS properties and structure for this interface -typedef enum { - KSPROPERTY_EXTXPORT_CAPABILITIES, // Transport specific capability - KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE, // MPEG, D-VHS, Analog VHS etc. - KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE, // MPEG, D-VHS, Analog VHS etc. - KSPROPERTY_EXTXPORT_LOAD_MEDIUM, // Eject, open tray, close tray - KSPROPERTY_EXTXPORT_MEDIUM_INFO, // cassettte_type and tape_grade_and_write_protect - KSPROPERTY_EXTXPORT_STATE, // Get/Set transport mode and state - KSPROPERTY_EXTXPORT_STATE_NOTIFY, // NOTIFY: Mode + State (Table 4-8) - KSPROPERTY_EXTXPORT_TIMECODE_SEARCH, // Request VCR subunit to search for a specific timecode on the medium - KSPROPERTY_EXTXPORT_ATN_SEARCH, // Request VCR subunit to search for a specific ATN on the medium - KSPROPERTY_EXTXPORT_RTC_SEARCH, // Request VCR subunit to search for a specific RelativeTimeCounter on the medium - - // - // Implemented for testing purpose - // Will remove this later... - // - KSPROPERTY_RAW_AVC_CMD, // Send/Rcv raw AVC commnad with a FCP packet. - -} KSPROPERTY_EXTXPORT; - -typedef struct { - BOOL MediaPresent; // TRUE/FALSE - ULONG MediaType; // DVCR standard, small, medium; VHS; VHS-C; unknown - BOOL RecordInhibit; // TRUE/FALSE -} MEDIUM_INFO, *PMEDIUM_INFO; - - -typedef struct { - ULONG Mode; // LOAD MEDIUM, RECORD, PLAY or WIND - ULONG State; // Vary depend on mode (Table 4-8) -} TRANSPORT_STATE, *PTRANSPORT_STATE; - -typedef struct { - KSPROPERTY Property; - - union { - ULONG Capabilities; // May need to expand on the existing structure - ULONG SignalMode; // MPEG, D-VHS, Analog VHS etc. - ULONG LoadMedium; // Eject, open tray, close tray - MEDIUM_INFO MediumInfo; - TRANSPORT_STATE XPrtState; - - struct { - BYTE frame; - BYTE second; - BYTE minute; - BYTE hour; - } Timecode; - DWORD dwTimecode; // hour:minute:second:frame - DWORD dwAbsTrackNumber; // absolute track number - - - // - // Implemented for testing purpose - // Will remove this later or will keep this for - // packet specific command. - // - struct { - ULONG PayloadSize; - BYTE Payload[512]; // This is only for testing sending AVC command from User mode. - } RawAVC; - - } u; - -} KSPROPERTY_EXTXPORT_S, *PKSPROPERTY_EXTXPORT_S; - - - -//--------------------------------------------------------- -// PROPSETID_TIMECODE -//--------------------------------------------------------- -// This guid and interface is defined in strmif.h -#define STATIC_PROPSETID_TIMECODE_READER\ - 0x9B496CE1L, 0x811B, 0x11cf, 0x8C, 0x77, 0x00, 0xAA, 0x00, 0x6B, 0x68, 0x14 -DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814", PROPSETID_TIMECODE_READER); -#define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER) - - -// KS properties and structure for this interface -typedef enum { - KSPROPERTY_TIMECODE_READER, // Timecode for the current medium position - KSPROPERTY_ATN_READER, // Absolute track number the current medium position - KSPROPERTY_RTC_READER, // Relative time counter for the current medium position - -} KSPROPERTY_TIMECODE; - - -typedef struct { - KSPROPERTY Property; - - TIMECODE_SAMPLE TimecodeSamp; - -} KSPROPERTY_TIMECODE_S, *PKSPROPERTY_TIMECODE_S; - - - -//--------------------------------------------------------- -// External Device Command event notification -//--------------------------------------------------------- - -#define STATIC_KSEVENTSETID_EXTDEV_Command\ - 0x109c7988L, 0xb3cb, 0x11d2, 0xb4, 0x8e, 0x00, 0x60, 0x97, 0xb3, 0x39, 0x1b -DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b", KSEVENTSETID_EXTDEV_Command); -#define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command) - -typedef enum { - KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY, - KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY, - KSEVENT_EXTDEV_COMMAND_BUSRESET, - KSEVENT_EXTDEV_TIMECODE_UPDATE, - KSEVENT_EXTDEV_OPERATION_MODE_UPDATE, // Notify mode of operation change (VCR,OFF,Camera) - KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE, // XPrt state change - KSEVENT_EXTDEV_NOTIFY_REMOVAL, // Notify device removal - KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE, // Notify medium (tape) is removed or added - -} KSEVENT_DEVCMD; - - -#endif // __EDevCTrl__ |