home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / H / OS2MIXER.H < prev    next >
C/C++ Source or Header  |  1995-08-24  |  5KB  |  136 lines

  1.  
  2. /***************************************************************************\
  3. *                                                                           *
  4. *    Multimedia Mixer Software Development Kit Include File                 *
  5. *                                                                           *
  6. *                                                                           *
  7. * Change History:
  8. * DATE          DEVELOPER                 CHANGE DESCRIPTION
  9. *                                                                           *
  10. \***************************************************************************/
  11. #ifndef _OS2MIXER_H_
  12. #define _OS2MIXER_H_
  13. typedef ULONG  HMIXER;
  14.  
  15. typedef HMIXER FAR *PHMIXER;
  16.  
  17.  
  18. typedef struct _MIXERLINEINFO {
  19.     ULONG     ulLength;              /*length of the struct */
  20.     ULONG     ulNumChannels;     /* number of channels on input */
  21.     ULONG     ulSupport;             /* supported functionality (MIXLINEINFO) */
  22.     ULONG     ulConnectionsPossible; /* lines connectable to */
  23.      ULONG    ulLine;                /* which line to operate on */
  24.  } MIXERLINEINFO;
  25.  
  26. typedef MIXERLINEINFO FAR *PMIXERLINEINFO;
  27.  
  28. typedef struct {
  29.         ULONG   ulLength;      /* length of the struct */
  30.         ULONG   ulConnection;
  31.         ULONG   ulLine;
  32.         ULONG   ulFlags;
  33. } LINECONNECTIONS;
  34. typedef LINECONNECTIONS FAR *PLINECONNECTIONS;
  35.  
  36. typedef struct _MIXERCONTROL{
  37.         ULONG   ulLength;      /* length of the struct */
  38.         ULONG   ulLine;
  39.         ULONG   ulControl;
  40.         ULONG   ulSetting;
  41.         } MIXERCONTROL;
  42. typedef MIXERCONTROL *PMIXERCONTROL;
  43.  
  44. /* -- need masteraudio command for the following. */
  45.  
  46.  
  47. /* flags for MIXERLINEINFO ulSupport field */
  48.  
  49. #define MIX_BALANCE       MCI_AMP_SET_BALANCE     /* separate balance volume control */
  50. #define MIX_ALC           MCI_AMP_SET_ALC         /* supports Auto Level Control */
  51. #define MIX_MONITOR       MCI_AMP_SET_MONITOR     /* supports Monitor Control */
  52. #define MIX_CROSSOVER     MCI_AMP_SET_CROSSOVER   /* supports crossover change */
  53. #define MIX_LOUDNESS      MCI_AMP_SET_LOUDNESS    /* supports loudness equalization */
  54. #define MIX_MUTE          MCI_AMP_SET_MUTE        /* supports channel mute */
  55. #define MIX_REVERB        MCI_AMP_SET_REVERB      /* supports reverb */
  56. #define MIX_STEREOENHANCE MCI_AMP_SET_STEREOENHANC/* supports stereo enhance */
  57. #define MIX_CUSTOM1       MCI_AMP_SET_CUSTOM1     /* supports custom effect #1 */
  58. #define MIX_CUSTOM2       MCI_AMP_SET_CUSTOM2     /* supports custom effect #2 */
  59. #define MIX_CUSTOM3       MCI_AMP_SET_CUSTOM3     /* supports custom effect #3 */
  60. #define MIX_LRVOLUME      MCI_AMP_SET_LRVOLUME    /* separate left-right volume control */
  61. #define MIX_BASS          MCI_AMP_SET_BASS        /* supports Bass */
  62. #define MIX_MID           MCI_AMP_SET_MID         /* supports Mid */
  63. #define MIX_TREBLE        MCI_AMP_SET_TREBLE      /* supports Treble */
  64. #define MIX_PITCH         MCI_AMP_SET_PITCH       /* supports pitch modifications */
  65. #define MIX_GAIN          MCI_AMP_SET_GAIN        /* supports gain modifications */
  66. #define MIX_CHORUS        MCI_AMP_SET_CHORUS      /* supports Bass */
  67. #define MIX_VOLUME        MCI_AMP_SET_VOLUME      /* supports volume controls */
  68.  
  69.  
  70. #define MIX_STEREO_OFF            0x00000000
  71. #define MIX_STEREO_STUDIO         0x40004000
  72. #define MIX_STEREO_HALL           0x80008000
  73. #define MIX_STEREO_STADIUM        0xc000c000
  74.  
  75. #define MCI_STEREO_OFF            0x00000000
  76. #define MCI_STEREO_STUDIO         0x00000001
  77. #define MCI_STEREO_HALL           0x00000002
  78. #define MCI_STEREO_STADIUM        0x00000004
  79.  
  80.  
  81. #define MIX_LOUDNESS_OFF          0x00000000
  82. #define MIX_LOUDNESS_ON           0xFFFFFFFF
  83.  
  84. #define MCI_LOUDNESS_OFF          0x00000000
  85. #define MCI_LOUDNESS_ON           0x00000001
  86.  
  87.  
  88.  
  89. /* ERROR MESSAGES */
  90.  
  91. #define MIXERR_BASE            512
  92.  
  93. #define    MIXERR_NOERR              0
  94. #define    MIXERR_INVALIDHANDLE      MIXERR_BASE+0
  95. #define    MIXERR_INVALIDINPUT       MIXERR_BASE+1
  96. #define    MIXERR_INVALIDOUTPUT      MIXERR_BASE+2
  97. #define    MIXERR_NOTSUPPORTED       MIXERR_BASE+7
  98.  
  99.  
  100.  
  101.  
  102. /* INPUT LINES */
  103. /* SOURCES */
  104. #define   IN_SYNTHESIZER   0
  105. #define   IN_MIXER         1
  106. #define   IN_EXTERNAL      2
  107. #define   IN_INTERNAL      3
  108. #define   IN_MICROPHONE    4
  109. #define   IN_PCM           5
  110. #define   IN_PC_SPEAKER    6
  111.  
  112. /* SINKS */
  113.  
  114. #define   OUT_AMPLIFIER    0
  115. #define   OUT_PCM          1
  116.  
  117.  
  118. /* SOURCES */
  119. #define   SOURCE_SYNTHESIZER          0x000000001
  120. #define   SOURCE_LINE                 0x000000002
  121. #define   SOURCE_INTERNAL_AUDIO       0x000000004
  122. #define   SOURCE_MICROPHONE           0x000000008
  123. #define   SOURCE_WAVE                 0x000000010
  124. #define   SOURCE_PC_SPEAKER           0x000000020
  125.  
  126. /* SINKS */
  127.  
  128. #define   SINK_LINE_OUT               0x000000001
  129. #define   SINK_SPEAKER                0x000000002
  130. #define   SINK_HEADPHONES             0x000000004
  131. #define   SINK_NULL                   0x000000008
  132. #define   SINK_ALL                    0x000000010
  133.  
  134.  
  135. #endif
  136.