Annotation of ntddk/src/mmedia/inc/ntddwave.h, revision 1.1.1.1

1.1       root        1: /*++ BUILD Version: 0001    // Increment this if a change has global effects
                      2: 
                      3: Copyright (c) 1990-1993  Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     ntddwave.h
                      8: 
                      9: Abstract:
                     10: 
                     11:     This include file defines all constants and types for
                     12:     accessing an NT wave device.
                     13: 
                     14: Author:
                     15: 
                     16:     NigelThompson (NigelT) 17-May-91
                     17: 
                     18: Revision History:
                     19: 
                     20: --*/
                     21: 
                     22: #ifndef _NTDDWAVE_
                     23: #define _NTDDWAVE_
                     24: 
                     25: #include <ntddsnd.h>    // general sound stuff
                     26: 
                     27: //
                     28: // Device Name - this string is the name of the device.  It is the name
                     29: // that when added to the name of the root of the device tree and with
                     30: // the device number appended, gives the name of the device required for
                     31: // a call to NtOpenFile.
                     32: // So for example, if the root is \Device and the Device type is
                     33: // WaveIn and the device number is 2, the full name is \Device\WaveIn2
                     34: //
                     35: 
                     36: #define DD_WAVE_IN_DEVICE_NAME     "\\Device\\WaveIn"
                     37: #define DD_WAVE_IN_DEVICE_NAME_U  L"\\Device\\WaveIn"
                     38: #define DD_WAVE_OUT_DEVICE_NAME    "\\Device\\WaveOut"
                     39: #define DD_WAVE_OUT_DEVICE_NAME_U L"\\Device\\WaveOut"
                     40: 
                     41: //
                     42: // WAVE device driver IOCTL set
                     43: //
                     44: 
                     45: #define IOCTL_WAVE_QUERY_FORMAT         CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
                     46: #define IOCTL_WAVE_SET_FORMAT           CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0002, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     47: #define IOCTL_WAVE_GET_CAPABILITIES     CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
                     48: #define IOCTL_WAVE_SET_STATE            CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0004, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     49: #define IOCTL_WAVE_GET_STATE            CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0005, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     50: #define IOCTL_WAVE_GET_POSITION         CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0006, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     51: #define IOCTL_WAVE_SET_VOLUME           CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
                     52: #define IOCTL_WAVE_GET_VOLUME           CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
                     53: #define IOCTL_WAVE_SET_PITCH            CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0009, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     54: #define IOCTL_WAVE_GET_PITCH            CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x000A, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     55: #define IOCTL_WAVE_SET_PLAYBACK_RATE    CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x000B, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     56: #define IOCTL_WAVE_GET_PLAYBACK_RATE    CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x000C, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     57: #define IOCTL_WAVE_PLAY                 CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x000D, METHOD_IN_DIRECT, FILE_WRITE_ACCESS)
                     58: #define IOCTL_WAVE_RECORD               CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x000E, METHOD_OUT_DIRECT, FILE_WRITE_ACCESS)
                     59: #define IOCTL_WAVE_BREAK_LOOP           CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x000F, METHOD_BUFFERED, FILE_WRITE_ACCESS)
                     60: 
                     61: //
                     62: // IOCTLs used in the debug build only
                     63: //
                     64: 
                     65: #if DBG
                     66: 
                     67: #define IOCTL_WAVE_SET_DEBUG_LEVEL      CTL_CODE(IOCTL_SOUND_BASE, IOCTL_WAVE_BASE + 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS)
                     68: 
                     69: #endif // DBG
                     70: 
                     71: //
                     72: // Wave position structure
                     73: //
                     74: 
                     75: typedef struct _WAVE_DD_POSITION {
                     76:     ULONG   SampleCount;           // Number of sound samples
                     77:     ULONG   ByteCount;             // Number of bytes (in SampleCount samples)
                     78: } WAVE_DD_POSITION, *PWAVE_DD_POSITION;
                     79: 
                     80: //
                     81: // Wave volume structure
                     82: //
                     83: 
                     84: typedef struct _WAVE_DD_VOLUME {
                     85:     ULONG   Left;
                     86:     ULONG   Right;
                     87: } WAVE_DD_VOLUME, *PWAVE_DD_VOLUME;
                     88: 
                     89: #define WAVE_DD_MAX_VOLUME 0xFFFFFFFF // Maximum volume
                     90: 
                     91: //
                     92: // Wave pitch shift structure
                     93: //
                     94: 
                     95: typedef struct _WAVE_DD_PITCH {
                     96:     ULONG   Pitch;                      // fixed point value 1.0 = 0x10000
                     97: } WAVE_DD_PITCH, *PWAVE_DD_PITCH;
                     98: 
                     99: //
                    100: // Wave playback rate structure
                    101: //
                    102: 
                    103: typedef struct _WAVE_DD_PLAYBACK_RATE {
                    104:     ULONG   Rate;                       // fixed point value 1.0 = 0x10000
                    105: } WAVE_DD_PLAYBACK_RATE, *PWAVE_DD_PLAYBACK_RATE;
                    106: 
                    107: //
                    108: // State flags used to set the state of a driver
                    109: //
                    110: 
                    111: #define WAVE_DD_STOP        0x0001
                    112: #define WAVE_DD_PLAY        0x0002      // output devices only
                    113: #define WAVE_DD_RECORD      0x0003      // input devices only
                    114: #define WAVE_DD_RESET       0x0004
                    115: 
                    116: //
                    117: // States returned by the get state ioctl
                    118: //
                    119: 
                    120: #define WAVE_DD_IDLE        0x0000
                    121: #define WAVE_DD_STOPPED     0x0001      // stopped
                    122: #define WAVE_DD_PLAYING     0x0002      // output devices only
                    123: #define WAVE_DD_RECORDING   0x0003      // input devices only
                    124: 
                    125: #endif // _NTDDWAVE_
                    126: 
                    127: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.