source: cmedia/trunk/Vsd/vsdcmds.h@ 354

Last change on this file since 354 was 354, checked in by stevenhl, 17 years ago

Import untested baseline cmedia sources, work products and binaries
Binaries and work products should be deleted from repository.
once new builds are verified to work.

File size: 44.6 KB
Line 
1/****************************************************************************/
2/* */
3/* Module Name: VSDCMDS.H */
4/* */
5/* This is the multimedia include file that has the typedefs, defines and */
6/* function prototyes for Vendor Specific Devices */
7/* */
8/* Copyright (c) International Business Machines Corporation */
9/* 1991, 1992, 1993 */
10/* All Rights Reserved */
11/* */
12/****************************************************************************/
13#ifdef __cplusplus
14 extern "C" {
15#endif
16
17#ifndef _VSDCMDS_H_
18#define _VSDCMDS_H_
19
20/* VSD common functions/commands */
21#define VSD_DEVUNITS 1
22#define VSD_GETPRODINFO 2 /* naming consistency */
23#define VSD_QUERYPRODINFO 2
24#define VSD_OPEN 3
25#define VSD_CLOSE 4
26#define VSD_RESOURCE 5 /* fix spelling error */
27#define VSD_RESOUCRCE 5
28#define VSD_SAVE 7
29#define VSD_RESTORE 8
30#define VSD_INSERTSETTINGSPAGE 9
31#define VSD_GETDEVCAPS 10
32#define VSD_ESCAPE 11
33#define VSD_PLAY 12
34#define VSD_RECORD 13
35#define VSD_READ 14
36#define VSD_PEEKQUEUE 15
37#define VSD_COMPLETE 16
38#define VSD_FLUSH 17
39#define VSD_EJECT 18
40#define VSD_LOAD 19
41#define VSD_RESET 20
42#define VSD_PARK 21
43#define VSD_EVENTS 22
44#define VSD_CAPTUREIMAGE 23
45#define VSD_RESTOREIMAGE 24
46#define VSD_FREEZE 25
47#define VSD_SET 26
48#define VSD_QUERY 27
49#define VSD_SEEK 28
50#define VSD_STEP 29
51#define VSD_DDCMD 31 /* DDMCD information */
52#define VSD_STOP 40
53#define VSD_USER 1000
54
55
56/* VSD common Return Codes */
57#ifndef INCL_AUDIO_VSD
58#define VSDERR_SUCCESS 0
59#define VSDERR_REQUEST_BUF_TOO_SMALL 1
60#define VSDERR_UNSUPPORTED_COMMAND 2
61#define VSDERR_INVALID_HVSD 3
62#define VSDERR_INVALID_DATATYPE 4
63#define VSDERR_INVALID_CATEGORY 5
64#define VSDERR_CANNOT_READ 6
65#define VSDERR_CANNOT_WRITE 7
66#define VSDERR_INSUFFICIENT_MEMORY 8
67#define VSDERR_NO_DEVICE_DRIVER 9
68#define VSDERR_HARDWARE 10
69#define VSDERR_CANNOT_PARK 11
70#define VSDERR_UNSUPPORTED_INPUT 12
71#define VSDERR_UNSUPPORTED_OUTPUT 13
72#define VSDERR_INVALID_INPUT 14
73#define VSDERR_INVALID_OUTPUT 15
74#define VSDERR_TOO_MANY_INPUTS 16
75#define VSDERR_TOO_MANY_OUTPUTS 17
76#define VSDERR_INVALID_EVENT 18
77#define VSDERR_CANNOT_DISABLE 19
78#define VSDERR_EVENT_OUT_OF_RANGE 20
79#define VSDERR_UNSUPPORTED_EVENT 21
80#define VSDERR_VOL_OUT_OF_RANGE 22
81#define VSDERR_VECT_OUT_OF_RANGE 23
82#define VSDERR_OUTOFRANGE 24
83#define VSDERR_UNSUPPORTED_DATA_TYPE 25
84#define VSDERR_INVALID_DATA_TYPE 26
85#define VSDERR_UNSUPPORTED_AUDIO_SETTING 27
86#define VSDERR_INVALID_AUDIO_SETTING 28
87#define VSDERR_UNSUPPORTED_CONNECTOR 29
88#define VSDERR_INVALID_CONNECTOR 30
89#define VSDERR_MISSING_PARAMETER 31
90#define VSDERR_INSTANCE_INACTIVE 32
91#define VSDERR_WARNING 33
92#define VSDERR_CANNOT_CLOSE 34
93#define VSDERR_TOO_FEW_SLOTS 35
94#define VSDERR_INVALID_MODE 36
95#define VSDERR_INVALID_BUFF 37
96#define VSDERR_DEVICE_REJECTED 38
97#define VSDERR_UNSUPPORTED_FLAG 39
98#define VSDERR_DEVICE_IN_USE 99
99 /* KLL Tuner Support - Start */
100/* SetTuner_Channel return codes */
101#define VSDERR_CHANNEL_LOW 41
102#define VSDERR_CHANNEL_HIGH 42
103#define VSDERR_CHANNEL_SKIP 43
104#define VSDERR_CHANNEL_NO_HW 48
105 /* KLL Tuner Support - End */
106#else
107
108/* These are the valid Audio VSD errors */
109
110#define VSDERR_SUCCESS MCIERR_SUCCESS
111#define VSDERR_REQUEST_BUF_TOO_SMALL MCIERR_INVALID_BUFFER
112#define VSDERR_UNSUPPORTED_COMMAND MCIERR_UNSUPPORTED_FUNCTION
113#define VSDERR_UNSUPPORTED_FUNCTION MCIERR_UNSUPPORTED_FUNCTION
114#define VSDERR_UNRECOGNIZED_COMMAND MCIERR_UNRECOGNIZED_COMMAND
115#define VSDERR_INVALID_HVSD MCIERR_INVALID_DEVICE_ID
116#define VSDERR_FILE_NOT_FOUND MCIERR_FILE_NOT_FOUND
117#define VSDERR_OUT_OF_MEMORY MCIERR_OUT_OF_MEMORY
118#define VSDERR_NO_DEVICE_DRIVER MCIERR_NO_DEVICE_DRIVER
119#define VSDERR_HARDWARE MCIERR_HARDWARE
120#define VSDERR_UNSUPPORTED_CONN_TYPE MCIERR_UNSUPPORTED_CONN_TYPE
121#define VSDERR_INVALID_CONNECTOR_TYPE MCIERR_INVALID_CONNECTOR_TYPE
122#define VSDERR_INVALID_CONNECTOR_INDEX MCIERR_INVALID_CONNECTOR_INDEX
123#define VSDERR_CANNOT_MODIFY_CONNECTOR MCIERR_CANNOT_MODIFY_CONNECTOR
124#define VSDERR_INVALID_CONNECTOR MCIERR_INVALID_CONNECTOR
125#define VSDERR_MISSING_PARAMETER MCIERR_MISSING_PARAMETER
126#define VSDERR_INSTANCE_INACTIVE MCIERR_INSTANCE_INACTIVE
127#define VSDERR_DRIVER_PROC_NOT_FOUND MCIERR_DRIVER_PROC_NOT_FOUND
128#define VSDERR_INTERNAL MCIERR_INTERNAL
129#define VSDERR_UNSUPP_FORMAT_TAG MCIERR_UNSUPP_FORMAT_TAG
130#define VSDERR_UNSUPP_BITSPERSAMPLE MCIERR_UNSUPP_BITSPERSAMPLE
131#define VSDERR_UNSUPP_CHANNELS MCIERR_UNSUPP_CHANNELS
132#define VSDERR_UNSUPP_SAMPLESPERSEC MCIERR_UNSUPP_SAMPLESPERSEC
133#define VSDERR_UNSUPP_FORMAT_MODE MCIERR_UNSUPP_FORMAT_MODE
134#define VSDERR_RESOURCE_NOT_AVAILABLE MCIERR_RESOURCE_NOT_AVAILABLE
135#define VSDERR_CANNOT_LOAD_DSP_MOD MCIERR_CANNOT_LOAD_DSP_MOD
136#define VSDERR_UNSUPP_CLASS MCIERR_UNSUPP_CLASS
137
138#define VSDERR_UNSUPPORTED_FLAG MCIERR_UNSUPPORTED_FLAG
139#define VSDERR_BASE USERERR_BASE
140
141typedef MCIDRV_RESTORE_PARMS VSD_RESTORE_PARMS;
142typedef VSD_RESTORE_PARMS *PVSD_RESTORE_PARMS;
143#endif
144
145
146
147/* Device Capabilities flag */
148#define DC_TRUE 1 /* Supports/Has this function */
149#define DC_FALSE 0 /* Does not Support/Have this function */
150
151
152/* Device Capabilities Index to flag */
153#define DC_HASAUDIO 0
154#define DC_HASVIDEO 1
155#define DC_HASVOLUME 2
156#define DC_HASDISPLAY 3
157#define DC_HASAUDIOATTRIBUTES 4
158#define DC_HASAUDIOCAPABILITIES 5
159#define DC_HASVIDEOATTRIBUTES 6
160#define DC_HASIMAGEATTRIBUTES 7
161#define DC_HASTTSATTRIBUTES 8
162#define DC_HASCDCAPS 9
163#define DC_HASESCAPE 10
164#define DC_CANPLAY 11
165#define DC_CANRECORD 12
166#define DC_HASINPUTLEVEL 13
167#define DC_HASSTATUSLEVEL 14
168#define DC_HASMONITOR 15
169#define DC_CANREAD 16
170#define DC_CANWRITE 17
171#define DC_HASDATATYPES 18
172#define DC_CANEJECT 19
173#define DC_CANLOAD 20
174#define DC_HASDOOR 21
175#define DC_HASTRACKS 22
176#define DC_HASMEDIA 23
177#define DC_HASCOMMSETTINGS 24
178#define DC_HASMEDIATYPE 25
179#define DC_HASKEYLOCK 26
180#define DC_HASVARIABLERATES 27
181#define DC_CANCUE 28
182#define DC_HASCOUNTER 29
183#define DC_CANRESET 30
184#define DC_HASPOSITION 31
185#define DC_HASLENGTH 32
186#define DC_CANPARK 33
187#define DC_HASCONNECTOR 34
188#define DC_HASEVENTS 35
189#define DC_HASDIRECTION 36
190#define DC_HASVIEWPORT 37
191#define DC_CANCAPTUREIMAGE 38
192#define DC_CANRESTOREIMAGE 39
193#define DC_HASRAM 40
194#define DC_AUDIOSETTINGS 41
195#define DC_IMAGESETTINGS 42
196#define DC_QUERYMINSEEKTIME 43
197#define DC_QUERYTIME 44
198#define DC_SEEK 45
199#define DC_STEP 46
200#define DC_CAN_MIX 47
201#define DC_HASCLOCK 48
202#define DC_HASPOWER 49
203#define DC_HASZOOM 50
204#define DC_HASEDIT 51
205#define DC_HASFOCUS 52
206#define DC_HASCHANNELS 53
207#define DC_HASTEXTTOSPEECH 54
208#define DC_CANSTREAM 55
209#define DC_CANSCALE 56
210#define DC_CANDISTORT 57
211#define DC_CANSTRETCH 58
212#define DC_HASTUNER 59
213#define DC_HASTELETEX 60
214#define DC_HASAFC 61
215#define DC_HASPOLARIZATION 62
216#define DC_HASINLAY 63
217
218/************************* W A R N I N G ******************************/
219/** Insert new Items Above *** and *** Change Last Used below **/
220/* *********************** W A R N I N G ******************************/
221#define DC_MAX_DEVCAP 64 /* Maximum Number of entries supported */
222
223
224typedef PVOID HVSD;
225
226/* VSD entry point */
227typedef ULONG (APIENTRY FNVSDENTRY)(HVSD hVsd, ULONG ulFunc, ULONG ulFlags, PVOID pParms);
228typedef FNVSDENTRY * PFNVSDENTRY;
229
230/* VSD_OPEN request parameter block */
231 typedef struct {
232 ULONG ulLength; /* length of the structure */
233 ULONG ulCategory; /* Input - Name of unit to open */
234 CHAR szInstallName[MAX_DEVICE_NAME]; /* Install Name of MCD */
235 CHAR szPDDName[MAX_DEVICE_NAME]; /* Name of PDD to Open */
236 HVSD hvsd; /* Output - handle to the VSD driver */
237 PFN pfEvent; /* function ptr to VSD event proc */
238 PVOID pDevInfo; /* Device specific information */
239 ULONG ulDDStream; /* Device Driver Stream Identifier */
240 } VSD_OPEN_PARMS;
241
242typedef VSD_OPEN_PARMS * PVSD_OPEN_PARMS;
243
244#define VSD_OPEN_Len sizeof(VSD_OPEN_PARMS)
245
246/* Define for Image Rectangle */
247typedef struct
248 {
249 USHORT X_left;
250 USHORT Y_top;
251 USHORT X_width;
252 USHORT Y_height;
253 } IRECT;
254
255
256/* VSD_GETDEVCAPS request parameter block */
257 typedef struct {
258 ULONG ulLength; /* length of the structure */
259 ULONG ulMax_Caps; /* returns Maximun Capabilities Supported */
260 ULONG ulNum_Caps; /* returns Number of Capabilities returned*/
261 ULONG ulResv01; /* Unused Reserved */
262 ULONG ulResv02; /* Unused Reserved */
263 ULONG ulResv03; /* Unused Reserved */
264 ULONG ulResv04; /* Unused Reserved */
265 BOOL bSupports[DC_MAX_DEVCAP]; /* Capability Entries */
266 } VSD_GETDEVCAPS_PARMS;
267
268typedef VSD_GETDEVCAPS_PARMS *PVSD_GETDEVCAPS_PARMS;
269
270/* sub-flags for devcaps */
271#define VSD_MIXCAPS 1
272#define VSD_MIXLINECAPS 2
273#define VSD_MODECAPS 3
274
275
276#define VSD_GETDEVCAPS_Len sizeof(VSD_GETDEVCAPS_PARMS)
277
278
279/* VSD_CAPTUREIMAGE and VSD_RESTOREIMAGE request parameter block */
280 typedef struct {
281 ULONG ulLength; /* length of the structure */
282 ULONG ulImg_Buff_Size; /* Size of the Image Buffer */
283 PVOID pImg_Buff; /* Pointer to Image buffer */
284 IRECT irectSource; /* Portion of Source rectangle to use */
285 IRECT irectDest; /* Size of Destination rectangle */
286 } VSD_CAPIMAGE_PARMS;
287#define VSD_CAPIMAGE_Len sizeof(VSD_CAPIMAGE_PARMS)
288
289
290/* VSD_LOAD device with Microcode/data parameter block */
291 typedef struct {
292 ULONG ulLength; /* length of the structure */
293 ULONG ulBuff_Size; /* Size of the data Buffer */
294 PVOID pBuff; /* Pointer to data buffer */
295 ULONG ulLoadID; /* Load Identifier (returned) */
296 } VSD_LOAD_PARMS;
297#define VSD_LOAD_Len sizeof(VSD_LOAD_PARMS)
298
299
300/* VSD_QUERY_LOAD Ask Device if MicroLoad is needed */
301 typedef struct {
302 ULONG ulLength; /* length of the structure */
303 CHAR szLoadName[256]; // Name of Load File
304 } VSD_QUERY_LOAD_PARMS;
305#define VSD_QUERY_LOAD_Len sizeof(VSD_QUERY_LOAD_PARMS)
306
307
308/* VSD_UNLOAD device with Microcode/data parameter block */
309 typedef struct {
310 ULONG ulLength; /* length of the structure */
311 ULONG ulHandle; /* Load Identifier to unload */
312 } VSD_UNLOAD_PARMS;
313#define VSD_UNLOAD_Len sizeof(VSD_UNLOAD_PARMS)
314
315
316/* Common ulFlags for VSDEntry (sub-functions/command) */
317#define VSD_NONE 0 /* no subfunction requested/supported */
318
319/* VSD_FREEZE ulFlags for VSDEntry (sub-functions/commands) */
320/* the pRequest parameter is not uses on this call */
321/* defines to FREEZE or UNFREEZE the image captured by the capture device */
322#define VSD_FREEZE_DISABLE 0 /* UnFreeze the image */
323#define VSD_FREEZE_ENABLE 1 /* Freeze the image */
324
325/* VSD_SET ulFlags for VSDEntry (sub-functions/commands) */
326#define VSD_SETVIDEO 1
327#define VSD_SETVOLUME 2
328#define VSD_SETDISPLAY 3
329#define VSD_SETVIDEOATTRIBUTES 4
330#define VSD_SETIMAGEATTRIBUTES 5
331#define VSD_SETTSATTRRIBUTES 6
332#define VSD_SETINPUTLEVEL 7
333#define VSD_SETMONITOR 8
334#define VSD_SETDATATYPE 9
335#define VSD_SETDOOR 10
336#define VSD_SETCOMMSETTINGS 11
337#define VSD_SETRATE 12
338#define VSD_SETKEYLOCK 13
339#define VSD_SETCUE 14
340#define VSD_SETCOUNTER 15
341#define VSD_SETPOSITION 16
342#define VSD_SETCONNECTOR 17
343#define VSD_SETDIRECTION 18
344#define VSD_SETVIEWPORTPOSITION 19
345#define VSD_SETVIEWPORT 20
346#define VSD_SETBANK 21
347#define VSD_SETVIDEORECT 22
348#define VSD_SETIMAGEFORMAT 23
349#define VSD_SETFPS 24
350#define VSD_SETTRANSPARENTCOLOR 25
351#define VSD_SETCOLORKEYING 26
352#define VSD_SETAUDIOATTRIBUTES 27
353#define VSD_SETMIXSTATE 28
354#define VSD_SETMIXCONNECTIONS 29
355#define VSD_SETMIXCONTROL 30
356 /* KLL Tuner Support - Start */
357#define VSD_SETTUNERCHANNEL 31
358 /* KLL Tuner Support - End */
359#define VSD_SETCLIPLIST 32
360#define VSD_SETCONNECTION 33
361/* VSD_SETVIDEOATTRIBUTES and VSD_QUERYVIDEOATTRIBUTES Request parameter block */
362 typedef struct {
363 ULONG ulLength; /* length of the structure */
364 ULONG ulBrightness; /* Brightness */
365 ULONG ulHue; /* Hue */
366 ULONG ulSaturation; /* Staturation */
367 ULONG ulContrast; /* Contrast */
368 ULONG ulSharpness; /* Sharpness */
369 } VSD_VIDEOATTRIBUTES_PARMS;
370#define VSD_VIDEOATTRIBUTES_Len sizeof(VSD_VIDEOATTRIBUTES_PARMS)
371
372/* Set Brigthness, Hue, Saturation, ... on VSD_SETVIDEOATTRIBUTES */
373#define SETVIDEO_NoChange 0xFFFFFFFF
374#define SETVIDEO_ToDefault 0xFFFFFFFE
375#define QUERYVIDEO_unsupported 0xFFFFFFFF
376
377#ifndef INCL_AUDIO_VSD
378/* VSD_SETVIDEORECT and VSD_QUERYVIDEORECT Request parameter block */
379/* Specifies the Source and Destination rectangles */
380 typedef struct {
381 ULONG ulLength; /* length of the structure */
382 IRECT irectSource; /* Portion of Source rectangle to use */
383 IRECT irectDest; /* Size of Destination rectangle */
384 } VSD_VIDEORECT_PARMS;
385#define VSD_VIDEORECT_Len sizeof(VSD_VIDEORECT_PARMS)
386
387/* VSD_SETCLIPLIST Request parameter block */
388/* Specifies the Visible regions of the Destination Rectangle. */
389/* This Command is only issued by the MCD if DC_HASINLAY is true. */
390/* Note: The number of valid regions will be set to zero when windows */
391/* are moving. At this point the driver should suspend all blits to */
392/* its window until this command is reissued with at list one visible */
393/* region. */
394/* When windows change the command sequence will be a follows: */
395/* 1) One (or more) VSD_SETCLIPLIST will ulNum_Rects = 0 */
396/* 2) VSD_SETVIDEORECT with the new Source/Destination Rectangles. */
397/* This command may not be issued if the devices window is */
398/* unchanged. */
399/* 3) VSD_SETCLIPLIST with 1 or more valid regions */
400
401 typedef struct {
402 ULONG ulLength; /* length of the structure */
403 ULONG ulFlags; /* Reserved and set to Zero */
404 ULONG ulNum_Rects; /* Number of rectanlges in array below */
405 IRECT VisRect[1]; /* Array of n Visible Retangle */
406 } VSD_SETCLIPLIST_PARMS;
407#define VSD_SETCLIPLIST_Len sizeof(VSD_SETCLIPLIST_PARMS)
408#endif
409
410/* VSD_SETVIEWPORT and VSD_QUERYVIEWPORT Request parameter block */
411 typedef struct {
412 ULONG ulLength; /* length of the structure */
413 BOOL bViewPort; /* TRUE = View Port Enabled */
414 } VSD_VIEWPORT_PARMS;
415#define VSD_VIEWPORT_Len sizeof(VSD_VIEWPORT_PARMS)
416
417/* VSD_SETTRANSPARENTCOLOR and VSD_QUERYTRANSPARNETCOLOR Request parameter block */
418 typedef struct {
419 ULONG ulLength; /* length of the structure */
420 ULONG ulTransparentColor; /* Transparent Color */
421 } VSD_TRANSPARENTCOLOR_PARMS;
422#define VSD_TRANSPARENTCOLOR_Len sizeof(VSD_TRANSPARENTCOLOR_PARMS)
423
424/* VSD_SETCOLORKEYING and VSD_QUERYCOLORKEYING Request parameter block */
425 typedef struct {
426 ULONG ulLength; /* length of the structure */
427 BOOL bColorKeying; /* TRUE = Transparent Color Enable */
428 } VSD_COLORKEYING_PARMS;
429#define VSD_COLORKEYING_Len sizeof(VSD_COLORKEYING_PARMS)
430
431/*****************************************************************************************************/
432 typedef struct {
433 ULONG ulType; /* Data Type */
434 ULONG ulSubType; /* Streaming Specific Info */
435 ULONG ulReqBufSize; /* Required/Recommened buffer size */
436 ULONG ulQueueSize; /* Number of Queued Elements */
437 ULONG ulOperation; /* (play, record, etc.) */
438 ULONG ulSettings; /* Device specific structure */
439 ULONG ulFlags; /* Device specific flags */
440 } VSD_DATATYPE;
441
442/* VSD_SETDATATYPE and VSD_QUERY_DATATYPE Request Parameter Block */
443 typedef struct {
444 ULONG ulLength; /* length of the structure */
445 ULONG ulNumDataTypes; /* Number of Data Types */
446 VSD_DATATYPE vsdDataType[1]; /* Specific info for each Data Type */
447 } VSD_DATATYPES_PARMS;
448
449
450/* Supported DataTypes - used by VSD_SETDATATYPES, VSD_QUERYDATATYPES and */
451/* VSD_RESOURCE */
452#define VSD_DATATYPE_ADPCMAVC 1 /* AVC type ADPCM */
453#define VSD_DATATYPE_PCM 2 /* PCM */
454#define VSD_DATATYPE_MU_LAW 3 /* Mu-Law */
455#define VSD_DATATYPE_MIDI 4 /* MIDI */
456#define VSD_DATATYPE_ALAW 5 /* A-Law */
457#define VSD_DATATYPE_SOURCEMIX 6 /* External analog audio source */
458#define VSD_DATATYPE_SPV2 7 /* Speech Viewer/2 */
459#define VSD_DATATYPE_ADPCMXA 8 /* XA CD ROM */
460#define VSD_DATATYPE_CVSD 11 /* CVSD */
461#define VSD_DATATYPE_TEXT_TO_SPEECH 12 /* Text to speech */
462#define VSD_DATATYPE_CDDA 13 /* Green Book format */
463#define VSD_DATATYPE_CDXA 14 /* The other XA mode is an audio mode */
464
465/* VSD_IMAGEFORMAT use by VSD_SETIMAGEFORMAT and VSD_QUERYIMAGEFORMAT */
466 typedef struct {
467 ULONG ulFormat; /* Image Format */
468 USHORT usBitsPerPEL; /* Bits Per PEL */
469 } VSD_IMAGEFORMAT;
470
471/* defines for supported Formats - used by VSD_SETIMAGEFORMAT and VSD_QUERYIMAGEFORMAT. */
472#define VSD_IMAGEFORMAT_RGB_565 1 /* bits 0-4 =Red, 5-10 =Green, 11-15 Blue */
473#define VSD_IMAGEFORMAT_YUV_411 2 /* 4 bytes of Y, 1 Byte of U, 1 Byte of V */
474#define VSD_IMAGEFORMAT_OS2_BITMAP2 3 /* OS/2 Bitmap */
475#define VSD_IMAGEFORMAT_YUV_422 '224Y'/* 4 bytes of Y, 2 Byte of U, 2 Byte of V */
476 /* all 8 bit values in this form YUYVYUYV */
477
478/* defines for supported Bits Per PEL - used by VSD_SETIMAGEFORMAT and VSD_QUERYIMAGEFORMAT. */
479#define VSD_BITSPERPEL_8 8 /* 8 Bits Per PEL */
480#define VSD_BITSPERPEL_16 16 /* 16 Bits Per PEL */
481#define VSD_BITSPERPEL_24 24 /* 24 Bits Per PEL */
482
483
484/* VSD_SETIMAGEFORMAT Request Parameter Block */
485 typedef struct {
486 ULONG ulLength; /* length of the structure */
487 VSD_IMAGEFORMAT SetFormat; /* Image Format to Set */
488 } VSD_SETIMAGEFORMAT_PARMS;
489#define VSD_SETIMAGEFORMAT_Len sizeof(VSD_SETIMAGEFORMAT_PARMS)
490
491/* VSD_QUERYIMAGEFORMAT Request Parameter Block */
492 typedef struct {
493 ULONG ulLength; /* length of the structure */
494 VSD_IMAGEFORMAT CurFormat; /* Current Image Format */
495 VSD_IMAGEFORMAT NativeFormat; /* Native Image Format */
496 ULONG ulNumFormats; /* Number of image Formats supported */
497 VSD_IMAGEFORMAT Format[1]; /* List of Image Formats supported */
498 } VSD_QUERYIMAGEFORMAT_PARMS;
499#define VSD_QUERYIMAGEFORMAT_Len sizeof(VSD_QUERYIMAGEFORMAT_PARMS)
500
501
502/* defines for ulFlags - used by VSD_SETRIMAGEFORMAT and VSD_QUERYRIMAGEFORMAT. */
503#define VSD_NATIVE_FORMAT 1 /* Native Format Supported by the Device */
504
505/* VSD_RIMAGEFORMAT use by VSD_SETRIMAGEFORMAT and VSD_QUERYRIMAGEFORMAT */
506 typedef struct {
507 ULONG FourCC; /* Image Format */
508 USHORT usFlags; /* Flags 1 = Native */
509 } VSD_RIMAGEFORMAT;
510
511/* VSD_QUERYRESTOREIMAGEFORMAT Request Parameter Block */
512 typedef struct {
513 ULONG ulLength; /* length of the structure */
514 ULONG CurFourCC; /* Current Image Format */
515 ULONG ulNumFormats; /* Number of image Formats supported */
516 VSD_RIMAGEFORMAT Format[1]; /* List of Image Formats supported */
517 } VSD_QUERYRESTOREIMAGEFORMAT_PARMS;
518#define VSD_QUERYRESTOREIMAGEFORMAT_Len sizeof(VSD_QUERYRESTOREIMAGEFORMAT_PARMS)
519
520/* VSD_SETFPS and VSD_QUERYFPS Request Parameter Block (set Frames Per Second) */
521 typedef struct {
522 ULONG ulLength; /* length of the structure */
523 ULONG ulFPS; /* Set Current Frames Per Second to */
524 ULONG ulFlags; /* Flags */
525 } VSD_SETFPS_PARMS;
526#define VSD_SETFPS_Len sizeof(VSD_SETFPS_PARMS)
527
528
529/* defines for VSD_QUERYFPS and VSD_SETFPS Flags */
530#define VSD_FPS_Frames 0
531#define VSD_FPS_MicroSecond 1
532
533
534/* VSD_QUERYIMAGEEXTENTS maximun image size that Capture Image can return */
535 typedef struct {
536 ULONG ulLength; /* length of the structure */
537 ULONG ulX_Extent; /* Maximum X on Image Rect */
538 ULONG ulY_Extent; /* Maximum Y on Image Rect */
539 } VSD_QUERYIMAGEEXTENTS_PARMS;
540#define VSD_QUERYIMAGEEXTENTS_Len sizeof(VSD_QUERYIMAGEEXTENTS_PARMS)
541
542/* VSD_QUERYOVERLAYEXTENTS maximun Overlay size that Capture Image can support */
543 typedef struct {
544 ULONG ulLength; /* length of the structure */
545 ULONG ulX_Extent; /* Maximum X on Overlay Rect */
546 ULONG ulY_Extent; /* Maximum Y on Overlay Rect */
547 } VSD_QUERYOVERLAYEXTENTS_PARMS;
548#define VSD_QUERYOVERLAYEXTENTS_Len sizeof(VSD_QUERYOVERLAYEXTENTS_PARMS)
549
550/* VSD_QUERYVIDEOEXTENTS for Overlay Video Devices Overlay Video Window */
551 typedef struct {
552 ULONG ulLength; /* length of the structure */
553 ULONG ulX_Extent; /* Maximum X on Video Rect */
554 ULONG ulY_Extent; /* Maximum Y on Video Rect */
555 } VSD_QUERYVIDEOEXTENTS_PARMS;
556#define VSD_QUERYVIDEOEXTENTS_Len sizeof(VSD_QUERYVIDEOEXTENTS_PARMS)
557
558
559/* VSD_DEVUNITS Request Parameter Block */
560 typedef struct {
561 ULONG ulDevType; /* Unit Device Type (e.g.video, cd, amp_mix etc.) */
562 CHAR szUNIT[10]; /* Unit Name (abstract or device name COM1:, F:) */
563 } VSD_UNIT;
564
565 typedef struct {
566 ULONG ulLength; /* length of the structure */
567 ULONG ulUnits; /* Number of Units that can be opened */
568 VSD_UNIT VSD_Unit[1]; /* Unit Info */
569 } VSD_DEVUNITS_PARMS;
570
571typedef VSD_DEVUNITS_PARMS *PVSD_DEVUNITS_PARMS;
572
573#define VSD_DEVUNITS_Len sizeof(VSD_DEVUNITS_PARMS)
574
575/* defines for DevType (device Types) */
576#define VSD_DEVTYPE_VIDEOTAPE 1
577#define VSD_DEVTYPE_VIDEODISK 2
578#define VSD_DEVTYPE_CD_AUDIO 3
579#define VSD_DEVTYPE_DAT 4
580#define VSD_DEVTYPE_AUDIO_TAPE 5
581#define VSD_DEVTYPE_OTHER 6
582#define VSD_DEVTYPE_WAVEFORM_AUDIO 7
583#define VSD_DEVTYPE_SEQUENCER 8
584#define VSD_DEVTYPE_AUDIO_AMPMIX 9
585#define VSD_DEVTYPE_OVERLAY 10
586#define VSD_DEVTYPE_ANIMATION 11
587#define VSD_DEVTYPE_DIGITAL_VIDEO 12
588#define VSD_DEVTYPE_SPEAKER 13
589#define VSD_DEVTYPE_MONITOR 14
590#define VSD_DEVTYPE_CDXA 15
591#define VSD_DEVTYPE_TEXT_TO_SPEECH 16
592#define VSD_DEVTYPE_USER_BASE 17
593#define VSD_DEVTYPE_USER_MAX 18
594
595
596/* VSD_RESOURCE Request Parameter Block */
597 typedef struct {
598 ULONG ulLength; /* length of the structure */
599 CHAR szPDDName[MAX_DEVICE_NAME]; /* Name of PDD */
600 ULONG ulDevType; /* Device Type */
601 ULONG ulDataType; /* Supported Data Type */
602 ULONG ulResUnits; /* # of Resource Units this would consume */
603 ULONG ulClass; /* Resource Class */
604 } VSD_RESOURCE_PARMS;
605
606typedef VSD_RESOURCE_PARMS *PVSD_RESOURCE_PARMS;
607
608#define VSD_RESOURCE_Len sizeof(VSD_RESOURCE_PARMS)
609
610/* VSD_GETPRODINFO Request Parameter Block */
611 typedef struct {
612 CHAR szProdInfo[30]; /* Product Info */
613 CHAR szManufacture[30]; /* Manufacturer */
614 CHAR szVersion[10]; /* Version */
615 } VSD_PRODINFO;
616
617 typedef struct {
618 ULONG ulLength; /* length of the structure */
619 VSD_PRODINFO VSD; /* Product Info for VSD */
620 VSD_PRODINFO PDD; /* Product Info for PDD */
621 } VSD_GETPRODINFO_PARMS;
622
623typedef VSD_GETPRODINFO_PARMS *PVSD_GETPRODINFO_PARMS;
624
625#define VSD_GETPRODINFO_Len sizeof(VSD_GETPRODINFO_PARMS)
626
627/* VSD_CONNECTION_PARMS parameter block use by VSD_SETCONNECTION and */
628/* by VSD_QUERYCONNECTION */
629/* Connect/disconnect a video output connector (ulIndex2) to/from a video */
630/* Input connector (ulIndex1). */
631/* Query if a output connector is connectored to a specific Input Connector.*/
632/* On a SET all fields are input. */
633/* On a QUERY all fields are input except fEnabled2 which returns if a */
634/* output connector is enabled with a specific input connector. */
635 typedef struct {
636 ULONG ulLength; /* length of the structure */
637 ULONG ulConn_Type1; /* Type of Connector */
638 ULONG ulIndex1; /* Connector Number */
639 ULONG ulConn_Type2; /* Type of Connector */
640 ULONG ulIndex2; /* Connector Number */
641 BOOL fEnabled2; /* TRUE = Connector Enable */
642 } VSD_CONNECTION_PARMS;
643
644typedef VSD_CONNECTION_PARMS *PVSD_CONNECTION_PARMS;
645#define VSD_CONNECTION_Len sizeof(VSD_CONNECTION_PARMS)
646
647/* VSD_CONNECTOR_PARMS parameter block use by VSD_QUERYCONNECTOR and */
648/* VSD_SETCONNECTOR. */
649 typedef struct {
650 ULONG ulLength; /* length of the structure */
651 ULONG ulConn_Type; /* Type of Connector */
652 ULONG ulIndex; /* Connector Number */
653 BOOL fEnabled; /* TRUE = Connector Enable */
654 } VSD_CONNECTOR_PARMS;
655
656typedef VSD_CONNECTOR_PARMS *PVSD_CONNECTOR_PARMS;
657#define VSD_CONNECTOR_Len sizeof(VSD_CONNECTOR_PARMS)
658
659/* part of the VSD_CONNECTORTYPES_PARMS parameter block */
660 typedef struct {
661 ULONG ulConn_Type; /* Type of Connector */
662 ULONG ulConn_Number; /* Number of this Connector */
663 } CONNUM_TYPE;
664
665/* VSD_CONNECTORTYPES_PARMS parameter block use by VSD_QUERYCONNECTORTYPES */
666 typedef struct {
667 ULONG ulLength; /* length of the structure */
668 ULONG ulNumConnectors; /* Number of Connector */
669 CONNUM_TYPE Conn_Info[1]; /* Array of Connector Info */
670 } VSD_CONNECTORTYPES_PARMS;
671#define VSD_CONNECTORTYPES_Len sizeof(VSD_CONNECTORTYPES_PARMS)
672
673
674typedef VSD_CONNECTORTYPES_PARMS *LPVSD_CONNECTORTYPES_PARMS;
675typedef VSD_CONNECTORTYPES_PARMS *PVSD_CONNECTORTYPES_PARMS;
676
677/* VSD_USER request parameter block */
678 typedef struct {
679 ULONG ulLength; /* length of the structure */
680 ULONG ulLenUserInfo; /* Length of User's Info */
681 PVOID pUserInfo; /* Pointer to User's Info */
682 } VSD_USER_PARMS;
683#define VSD_USER_Len sizeof(VSD_USER_PARMS)
684
685
686/* VSD_USER ulFlags for VSDEntry (sub-functions/commands) */
687/* The defintion of each of these fields are up to the VSD */
688/* to define each VSD may have a different uses for each */
689#define VSD_USER1 1
690#define VSD_USER2 2
691#define VSD_USER3 3
692#define VSD_USER4 4
693#define VSD_USER5 5
694#define VSD_USER6 6
695#define VSD_USER7 7
696#define VSD_USER8 8
697#define VSD_USER9 9
698#define VSD_USER10 10
699
700
701/* VSD_QUERY ulFlags for VSDEntry (sub-functions/commands) */
702
703#define VSD_QUERYAPERTURESIZE 1
704#define VSD_QUERYAUDIOATTRIBUTES 2
705#define VSD_QUERYAUDIOCAPABILITIES 3
706#define VSD_QUERYBANK 4
707#define VSD_QUERYBANKPOINTER 5
708#define VSD_QUERYBANKS 6
709#define VSD_QUERYCDCAPS 7
710#define VSD_QUERYCOMMSETTINGS 8
711#define VSD_QUERYCOMPATIBLECONNECTORS 9
712#define VSD_QUERYCONNECTOR 10
713#define VSD_QUERYCONNECTORTYPES 11
714#define VSD_QUERYCOUNTER 12
715#define VSD_QUERYCUE 13
716#define VSD_QUERYDATATYPE 14
717#define VSD_QUERYDIRECTION 15
718#define VSD_QUERYDISPLAY 16
719#define VSD_QUERYDOOR 17
720#define VSD_QUERYEVENTLIST 18
721#define VSD_QUERYFREEZE 19
722#define VSD_QUERYIMAGEATTRIBUTES 20
723#define VSD_QUERYINPUTLEVEL 21
724#define VSD_QUERYINPUTLEVELS 22
725#define VSD_QUERYKEYLOCK 23
726#define VSD_QUERYLABEL 24
727#define VSD_QUERYLENGTH 25
728#define VSD_QUERYMEDIATYPE 26
729#define VSD_QUERYMONITOR 27
730#define VSD_QUERYPOSITION 28
731#define VSD_QUERYPREROLLTYPE 29
732#define VSD_QUERYPROCESSINTERNAL 30
733#define VSD_QUERYRATE 31
734#define VSD_QUERYRATELEVELS 32
735#define VSD_QUERYSTATUSLEVEL 33
736#define VSD_QUERYSUPPORTEDEVENTS 34
737#define VSD_QUERYTIME 35
738#define VSD_QUERYTOC 36
739#define VSD_QUERYTRACKS 37
740#define VSD_QUERYTTSATTRIBUTES 38
741#define VSD_QUERYUPC 39
742#define VSD_QUERYVIDEO 40
743#define VSD_QUERYVIDEOATTRIBUTES 41
744#define VSD_QUERYVIEWPORT 42
745#define VSD_QUERYVIEWPORTPOSITION 43
746#define VSD_QUERYVOLUME 44
747#define VSD_QUERYVIDEORECT 45
748#define VSD_QUERYFPS 46
749#define VSD_QUERYIMAGEFORMAT 47
750#define VSD_QUERYIMAGEEXTENTS 48
751#define VSD_QUERYVIDEOEXTENTS 49
752#define VSD_QUERYOVERLAYEXTENTS 50
753#define VSD_QUERYTRANSPARENTCOLOR 51
754#define VSD_QUERYCOLORKEYING 52
755#define VSD_QUERYREADY 53
756#define VSD_QUERYMIXSTATE 54
757#define VSD_QUERYMIXCONNECTIONS 55
758#define VSD_QUERYMIXCONTROL 56
759#define VSD_QUERYMIXLINE 57
760
761#define VSD_QUERYTUNERCHANNEL 58
762#define VSD_QUERYCONNECTORSIGNAL 59
763#define VSD_QUERYLOAD 60
764#define VSD_QUERYCONNECTION 61
765
766/* VSD_TUNERCHANNEL Request parameter block for Set and Query */
767 typedef struct {
768 ULONG ulLength; /* length of the structure */
769 ULONG ulOption; /* Options */
770 USHORT usResv01; /* Reserved */
771 USHORT usResv02; /* Reseverd */
772 LONG lFineTune; /* FineTune */
773 ULONG ulFrequency; /* Frequency */
774 } VSD_TUNERCHANNEL_PARMS;
775
776#define VSD_TUNERCHANNEL_Len sizeof(VSD_TUNERCHANNEL_PARMS)
777
778
779/* VSD_QUERYCONNECTORSIGNAL_PARMS parameter block */
780 typedef struct {
781 ULONG ulLength; /* length of the structure */
782 ULONG ulConn_Type; /* Type of Connector */
783 ULONG ulIndex; /* Connector Number */
784 BOOL fEnabled; /* TRUE = Connector Enable */
785 ULONG ulEnabled; /* Active Signal present */
786 } VSD_QUERYCONNECTORSIGNAL_PARMS;
787#define VSD_QUERYCONNECTORSIGNAL_Len sizeof(VSD_QUERYCONNECTORSIGNAL_PARMS)
788
789/* VSD_QUERYCONNECTORSIGNAL_PARMS ulEnabled states */
790#define SIGNAL_NOT_PRESENT 0
791#define SIGNAL_PRESENT 1
792#define SIGNAL_INDETERMINATE 2
793
794
795/* Tuner Types */
796
797#define M_TUNER 0
798#define BG_TUNER 1
799#define L_TUNER 2
800
801
802
803/* ulOption - Tuner Frequency Set/Query of TunerChannel/Frequency */
804/* and QueryTunerChannel/frequency */
805/* Note: these field is bit sensitive...or bit in */
806#define TUC_AFC_On 4
807#define TUC_AFC_Off 0
808#define TUC_Frequency 8
809#define TUC_Polarization_Vert 16
810#define TUC_Polarization_Hori 32
811
812
813/* SetTunerChannel and QueryTunerChannel ulOptions Values */
814
815#define TUNER_NOMUTE 0x01
816#define TUNER_NOWAITTUNER 0x02
817#define TUNER_NOWAITSIGNAL 0x04
818#define TUNER_UP 0x80
819#define TUNER_DOWN 0x40
820 /* KLL Tuner Support - End */
821 /* KLL Playback Support- Start */
822/* VSD_PLAY/VSD_RECORD request parameter block */
823 typedef struct {
824 ULONG ulLength; /* length of the structure */
825 ULONG ulFlags; /* Flags */
826 ULONG ulSizeData; /* Size of Data below */
827 PVOID pData; /* Data for the Device */
828 ULONG ulSCR;
829 ULONG ulPTS;
830 ULONG ulAudioTime;
831 } VSD_STREAM_PARMS;
832#define VSD_STREAM_Len sizeof(VSD_STREAM_PARMS)
833
834
835/* VSD_PLAY and VSD_RECORD ulFlags for VSDEntry (sub-functions/commands) */
836#define VSD_PLAYSTART 0x01
837#define VSD_PLAYDATA 0x02
838#define VSD_PLAYSTOP 0x04
839#define VSD_PLAYFLUSH 0x08
840#define VSD_PLAYPAUSE 0x03
841#define VSD_PLAYRESUME 0x05
842#define VSD_RECORDSTART 0x10
843#define VSD_RECORDDATA 0x20
844#define VSD_RECORDSTOP 0x40
845
846 /* KLL Playback Support- End */
847
848
849typedef ULONG HCONN;
850
851#define VSD_VOLUME 0x00000001
852#define VSD_MASTERVOLUME 0x00000002
853#define VSD_MUTE 0x00000004
854
855
856 typedef struct {
857 ULONG ulLength; /* length of the structure */
858 ULONG ulFlags; /* Which volume item to operate on */
859 ULONG ulRequest; /* mastervol or vol */
860 ULONG ulVectoredVol; /* Length to do effect */
861 ULONG ulMasterAudio; /* masteraudio volume */
862 ULONG ulVolume; /* Volume for connector */
863 ULONG hConn; /* handle to connector to operate on */
864 BOOL fMute; /* Is the connector muted? */
865 } VSD_VOLUME_PARMS;
866
867 typedef VSD_VOLUME_PARMS *PVSD_VOLUME_PARMS;
868
869 typedef struct {
870 ULONG ulLength; /* length of the structure */
871 ULONG ulFlags; /* mask of attributes supported/specified */
872 ULONG ulValue; /* value of the attribute specified in ulFlags */
873 ULONG ulDelay; /* delay before effect takes place. */
874 } VSD_AUDIOATTRIBUTES_PARMS;
875
876typedef VSD_AUDIOATTRIBUTES_PARMS *PVSD_AUDIOATTRIBUTES_PARMS;
877
878/* Audio attribute mask defines */
879
880 #define VSD_BALANCE 0x00020000
881 #define VSD_BASS 0x00040000
882 #define VSD_GAIN 0x00060000
883 #define VSD_TREBLE 0x00000004
884 #define VSD_PITCH 0x00000008
885
886/* VSD CONNECTOR defines */
887 #define VSD_ENABLE 0x00000001
888 #define VSD_DISABLE 0x00000000
889
890
891/* Defines for audio datatypes */
892
893#define VSD_MODE MCI_WAVE_SET_FORMATTAG
894#define VSD_CHANNELS MCI_WAVE_SET_CHANNELS
895#define VSD_SAMPLESPERSEC MCI_WAVE_SET_SAMPLESPERSEC
896#define VSD_AVGBYTESPERSEC MCI_WAVE_SET_AVGBYTESPERSEC
897#define VSD_BITSPERSAMPLE MCI_WAVE_SET_BITSPERSAMPLE
898#define VSD_OPERATION 0x20000000
899
900/* Defines for vsd ulOperation field */
901
902#define VSD_CONSUME 1
903#define VSD_PRODUCE 2
904
905
906typedef struct {
907 ULONG ulLength;
908 ULONG ulFlags;
909 ULONG ulSamplingRate; /* floating quantity for certain cards */
910 ULONG ulBitsPerSample; /* float for cards like SB which support 2.6 bitspersamp */
911 ULONG ulChannels; /* mask of channels supported in this sampling rate */
912 ULONG ulBlockAlignment;
913 ULONG ulAverageBytesPerSec;
914 ULONG ulDataType;
915 ULONG ulDataSubType;
916 ULONG ulReserved1;
917 ULONG ulOperation; /* VSD_PRODUCE or VSD_CONSUME */
918 ULONG ulDeviceID; /* Device ID of the amp-mixer */
919 PVOID pDevInfo;
920} VSD_AUDIODATATYPE_PARMS;
921
922typedef VSD_AUDIODATATYPE_PARMS *PVSD_AUDIODATATYPE_PARMS;
923
924typedef struct {
925 ULONG ulLength; /* length of the structure */
926 ULONG ulFlags; /* ???? */
927 ULONG ulSamplingRate; /* Sampling rate */
928 ULONG ulBitsPerSample; /* bitspersample */
929 ULONG ulChannels; /* channels for this mode */
930 ULONG ulBlockAlignment; /* block alignment for data */
931 ULONG ulAverageBytesPerSec;/* Average bytes/second of data */
932 ULONG ulDataType; /* RIFF datatype -- see os2medef.h */
933 ULONG ulDataSubType; /* RIFF subdatatype -- see os2medef.h */
934 ULONG hidSource; /* source stream handler for VSD */
935 ULONG hidTarget; /* target stream handler for VSD */
936 ULONG ulOperation; /* VSD_PRODUCE or VSD_CONSUME */
937 ULONG ulReserved1; /* reserved for future use */
938 ULONG ulDeviceID; /* Device ID of the amp-mixer */
939
940 PVOID pHeader; /* Header which describes data (option)--see MMIOOS2.H */
941 PCHAR pParmString; /* Pointer to device specific parm string in MMPM2.INI file */
942 PVOID pDevInfo; /* Device specific information */
943 ULONG ulReserved2; /* reserved for future use */
944 PCHAR pResourceDLL; /* Resource DLL from ini file */
945 ULONG ulResourceId; /* Resource ID to use in Resource DLL. */
946 PVOID pVhnd; /* Video VSD info needed by MPEG VSD */
947
948
949} VSD_AUDIOOPEN_PARMS;
950
951typedef VSD_AUDIOOPEN_PARMS *PVSD_AUDIOOPEN_PARMS;
952
953#define VSD_AUDIO_OPEN 0x10010001
954
955typedef struct {
956 ULONG ulLength; /* length of the structure */
957 PVOID pBuffer; /* Pointer to escape buffer */
958 ULONG ulBufferLength; /* Buffer length */
959 } VSD_ESCAPE_PARMS;
960
961 typedef struct {
962 ULONG ulLength; /* length of the structure */
963 BOOL fEnabled; /* TRUE = Enabled */
964 } VSD_BOOLITEM_PARMS;
965
966
967#endif /* _VSDCMDS_H_ */
968
969#ifdef __cplusplus
970}
971#endif
972
Note: See TracBrowser for help on using the repository browser.