// ksmedia.h
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;
} DEVCAPS, *PDEVCAPS;
View the official Windows Driver Kit DDI referenceNo description available.
The DEVCAPS structure describes the capabilities of an external device.
CanRecordSpecifies if the external device can record.
CanRecordStrobeFor multitrack devices. Specifies if the external device can record. Switches currently recording tracks off and selected nonrecording track into record.
HasAudioSpecifies if the external device has audio capabilities.
HasVideoSpecifies if the external device has video capabilities.
UsesFilesSpecifies if the external device uses files.
CanSaveSpecifies if the external device can save.
DeviceTypeSpecifies the type of the external device. See Remarks.
| Flag | Meaning |
|---|---|
| ED_DEVTYPE_VCR | Video cassette recorder |
| ED_DEVTYPE_LASERDISC | Laserdisc player |
| ED_DEVTYPE_KEYBOARD | Keyboard |
| ED_DEVTYPE_CAMERA | Video camera |
| ED_DEVTYPE_VTR | Video tape recorder |
| ED_DEVTYPE_UNKNOWN | Unknown type |
TCReadSpecifies if the external device can read timecodes.
TCWriteSpecifies if the external device can write timecodes.
CTLReadSpecifies if the external device can read to a control track (nontimecode) target value.
IndexReadSpecifies if the external device can read to an index (nontimecode) target value.
PrerollSpecifies the external device's preroll time in the current time format.
PostrollSpecifies the external device's postroll time in the current time format.
SyncAccIndicates the external device's synchronization accuracy.
NormRateSpecifies the external device's normal frame rate.
CanPreviewSpecifies if the external device can preview.
CanMonitorSrcSpecifies if the external device can monitor source.
CanTestIndicates the implementation of the external device allows testing of methods/parameters by setting the high bit of a parameter that makes sense. This is not implemented an always returns FALSE.
VideoInIndicates the external device accepts video as an input.
AudioInIndicates the external device accepts audio as an input.
CalibrateIndicates if the external device requires calibrating.
SeekTypeSpecifies the type of seeking the external device is capable of. For example:
| Flag | Meaning |
|---|---|
| ED_SEEK_PERFECT | Indicates device can seek to within 1 video frame without a signal break (like a DDR). |
| ED_SEEK_FAST | Indicates device can seek quick with a short break in signal. |
| ED_SEEK_SLOW | Indicates slow seeking (like a tape transport). |
SimulatedHardwareMust be set to zero.
Any ED_Xxx tokens are defined in xprtdefs.h in the Microsoft DirectX SDK.
All members of the DEVCAPS structure are TRUE or FALSE unless otherwise specified.
The DeviceType member can be used by an application to detect the device type or its current operating mode. For example, it can return either ED_DEVTYPE_CAMERA or ED_DEVTYPE_VTR depending on a DV camcorder's mode of operation. Also, some DV devices may not be known and a device type of ED_DEVTYPE_UNKNOWN can be returned by the driver. This happens with some DV media converters.