home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / os2mixer.h < prev    next >
C/C++ Source or Header  |  1999-03-15  |  6KB  |  156 lines

  1. /***************************************************************************\
  2. *                                                                           *
  3. *    Multimedia Mixer Software Development Kit Include File                 *
  4. *                                                                           *
  5. *                                                                           *
  6. *                                                                           *
  7. \***************************************************************************/
  8. #ifdef __cplusplus
  9.    extern "C" {
  10. #endif
  11.  
  12. #ifndef _OS2MIXER_H_
  13. #define _OS2MIXER_H_
  14. typedef ULONG  HMIXER;
  15.  
  16. typedef HMIXER FAR *PHMIXER;
  17.  
  18.  
  19. typedef struct _MIXERLINEINFO {
  20.     ULONG     ulLength;              /*length of the struct */
  21.     ULONG     ulNumChannels;     /* number of channels on input */
  22.     ULONG     ulSupport;             /* supported functionality (MIXLINEINFO) */
  23.     ULONG     ulConnectionsPossible; /* lines connectable to */
  24.      ULONG    ulLine;                /* which line to operate on */
  25.  } MIXERLINEINFO;
  26.  
  27. typedef MIXERLINEINFO FAR *PMIXERLINEINFO;
  28.  
  29. typedef struct {
  30.         ULONG   ulLength;      /* length of the struct */
  31.         ULONG   ulConnection;
  32.         ULONG   ulLine;
  33.         ULONG   ulFlags;
  34. } LINECONNECTIONS;
  35. typedef LINECONNECTIONS FAR *PLINECONNECTIONS;
  36.  
  37.  
  38. /* flags for MIXERCONTROL ulFlags field */
  39.  
  40. #define MIX_MASTER        0x00000001L  /* indicates that this is master effect for the control */
  41.  
  42. typedef struct _MIXERCONTROL{
  43.         ULONG   ulLength;      /* length of the struct */
  44.         ULONG   ulLine;
  45.         ULONG   ulControl;
  46.         ULONG   ulSetting;
  47.         ULONG   ulFlags;       /* Flags which modify MIXERCONTROL */
  48.         } MIXERCONTROL;
  49. typedef MIXERCONTROL *PMIXERCONTROL;
  50.  
  51. /* -- need masteraudio command for the following. */
  52.  
  53.  
  54. /* flags for MIXERLINEINFO ulSupport field */
  55.  
  56. #define MIX_BALANCE       0x00100000L     /* separate balance volume control */
  57. #define MIX_ALC           0x00000004L         /* supports Auto Level Control */
  58. #define MIX_MONITOR       0x00000002L     /* supports Monitor Control */
  59. #define MIX_CROSSOVER     0x00000010L   /* supports crossover change */
  60. #define MIX_LOUDNESS      0x00000020L    /* supports loudness equalization */
  61. #define MIX_MUTE          0x00000040L        /* supports channel mute */
  62. #define MIX_REVERB        0x00000080L      /* supports reverb */
  63. #define MIX_STEREOENHANCE 0x00000100L /* supports stereo enhance */
  64. #define MIX_CUSTOM1       0x00000200L     /* supports custom effect #1 */
  65. #define MIX_CUSTOM2       0x00000400L     /* supports custom effect #2 */
  66. #define MIX_CUSTOM3       0x00000800L     /* supports custom effect #3 */
  67. #define MIX_LRVOLUME      0x00001000L    /* separate left-right volume control */
  68. #define MIX_BASS          0x00800000L        /* supports Bass */
  69. #define MIX_MID           0x00020000L         /* supports Mid */
  70. #define MIX_TREBLE        0x00400000L      /* supports Treble */
  71. #define MIX_PITCH         0x00200000L       /* supports pitch modifications */
  72. #define MIX_GAIN          0x01000000L        /* supports gain modifications */
  73. #define MIX_CHORUS        0x00004000L      /* supports Bass */
  74. #define MIX_VOLUME        0x00080000L      /* supports volume controls */
  75.  
  76.  
  77. #define MIX_STEREO_OFF            0x00000000
  78. #define MIX_STEREO_STUDIO         0x40004000
  79. #define MIX_STEREO_HALL           0x80008000
  80. #define MIX_STEREO_STADIUM        0xc000c000
  81.  
  82. #define MCI_STEREO_OFF            0x00000000
  83. #define MCI_STEREO_STUDIO         0x00000001
  84. #define MCI_STEREO_HALL           0x00000002
  85. #define MCI_STEREO_STADIUM        0x00000004
  86.  
  87.  
  88. #define MIX_LOUDNESS_OFF          0x00000000
  89. #define MIX_LOUDNESS_ON           0xFFFFFFFF
  90.  
  91. #define MCI_LOUDNESS_OFF          0x00000000
  92. #define MCI_LOUDNESS_ON           0x00000001
  93.  
  94.  
  95.  
  96. /* ERROR MESSAGES */
  97.  
  98. #define MIXERR_BASE            512
  99.  
  100. #define    MIXERR_NOERR              0
  101. #define    MIXERR_INVALIDHANDLE      MIXERR_BASE+0
  102. #define    MIXERR_INVALIDINPUT       MIXERR_BASE+1
  103. #define    MIXERR_INVALIDOUTPUT      MIXERR_BASE+2
  104. #define    MIXERR_NOTSUPPORTED       MIXERR_BASE+7
  105.  
  106.  
  107.  
  108.  
  109. /* INPUT LINES */
  110. /* SOURCES */
  111. #define   IN_SYNTHESIZER   0
  112. #define   IN_MIXER         1
  113. #define   IN_EXTERNAL      2
  114. #define   IN_INTERNAL      3
  115. #define   IN_MICROPHONE    4
  116. #define   IN_PCM           5
  117. #define   IN_PC_SPEAKER    6
  118.  
  119. /* SINKS */
  120.  
  121. #define   OUT_AMPLIFIER    0
  122. #define   OUT_PCM          1
  123.  
  124.  
  125. /* SOURCES */
  126. #define   SOURCE_SYNTHESIZER          0x000000001
  127. #define   SOURCE_LINE                 0x000000002
  128. #define   SOURCE_INTERNAL_AUDIO       0x000000004
  129. #define   SOURCE_MICROPHONE           0x000000008
  130. #define   SOURCE_WAVE                 0x000000010
  131. #define   SOURCE_PC_SPEAKER           0x000000020
  132. #define   SOURCE_NULL                 0x000000040
  133. #define   SOURCE_MIDI                 0x000000080
  134.  
  135. /* SINKS */
  136. /* lad--these defines are invalid. */
  137.  
  138. #define   SINK_LINE_OUT               0x000100000
  139. #define   SINK_SPEAKER                0x000200000
  140. #define   SINK_HEADPHONES             0x000400000
  141. #define   SINK_NULL                   0x000800000
  142. #define   SINK_ALL                    0x001000000
  143. /* lad--wpos addition */
  144. #define   SINK_WAVE                   0x002000000
  145. #define   SINK_MIDI                   0x004000000 /* field name???? */
  146.  
  147. /* lad--wpos addition */
  148.  
  149.  
  150. #endif
  151.  
  152. #ifdef __cplusplus
  153. }
  154. #endif
  155.  
  156.