home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / PC_V11_A.LZH / INCLUDE / SNDLIBH.H < prev    next >
Text File  |  1992-10-21  |  3KB  |  160 lines

  1. /*
  2. * SNDBIND.H    Low level Sound function bindings for use with PC
  3. *        and the added Sound XBIOS calls.
  4. *
  5. *        Mike Schmal        7/7/92
  6. *        Revised Brainstorm    25/8/92
  7. *
  8. * Updates:
  9. * 7/13/92 MS  Added buffptr function.
  10. *
  11. */
  12.  
  13. #define    INQUIRE        -1
  14.  
  15. /*
  16.  *  SOUND XBIOS Errors.
  17.  */
  18.  
  19. #define    SNDNOTLOCK    -128
  20. #define    SNDLOCKED    -129
  21.  
  22. /*
  23.  *  SOUND XBIOS Enums.
  24.  */
  25.  
  26. typedef enum {        /* used by SndCmd */
  27.     LTATTEN=0,
  28.     RTATTEN,
  29.     LTGAIN,
  30.     RTGAIN,
  31.     ADDERIN,
  32.     ADCINPUT,
  33.     SETPRESCALE
  34. } SNDCMD_ENUM;
  35.  
  36. typedef enum {        /* used by SndSetMode */
  37.     STEREO8=0,
  38.     STEREO16,
  39.     MONO8
  40. } SNDMODE_ENUM;
  41.  
  42. typedef enum {        /* used by SndDspTristate */
  43.     TRISTATE=0,
  44.     ENABLE
  45. } SNDDSP_ENUM;
  46.  
  47. typedef enum {        /* used by SndBufOper */
  48.     NO_OP=0,
  49.     PLAY_ENABLE=1,
  50.     PLAY_REPEAT=2,
  51.     RECORD_ENABLE=4,
  52.     RECORD_REPEAT=8
  53. } SNDOP_ENUM;
  54.  
  55. typedef enum {        /* used by SndSetBuffer */
  56.     PLAY=0,
  57.     RECORD
  58. } SNDSETBUF_ENUM;
  59.  
  60. typedef enum {        /* used by SndDevConnect */
  61.     DMAPLAY=0,
  62.     DSPXMIT,
  63.     EXTINP,
  64.     ADC
  65. } SNDSRC_ENUM;
  66.  
  67. typedef enum {        /* used by SndDevConnect */
  68.     DMAREC=1,
  69.     DSPRECV=2,
  70.     EXTOUT=4,
  71.     DAC=8
  72. } SNDDST_ENUM;
  73.  
  74. typedef enum {        /* used by SndDevConnect */
  75.     CLK_25M=0,
  76.     CLK_EXT,
  77.     CLK_32M
  78. } SNDSRCLK_ENUM;
  79.  
  80. typedef enum {        /* used by SndDevConnect */
  81.     CLK50K=1,
  82.     CLK33K=2,
  83.     CLK25K=3,
  84.     CLK20K=4,
  85.     CLK16K=5,
  86.     CLK12K=7,
  87.     CLK10K=9,
  88.     CLK8K=11
  89. } SNDCLK_ENUM;
  90.  
  91. typedef enum {        /* used by SndDevConnect */
  92.     HANDSHAKE=0,
  93.     NOHANDSHAKE
  94. } SNDHNDSHK_ENUM;
  95.  
  96. enum SNDACTCLK_ENUM {
  97.     ACT_CLK50K=49170L,
  98.     ACT_CLK33K=33880L,
  99.     ACT_CLK25K=24585L,
  100.     ACT_CLK20K=20770L,
  101.     ACT_CLK16K=16490L,
  102.     ACT_CLK12K=12292L,
  103.     ACT_CLK10K=9834L,
  104.     ACT_CLK8K=8195L
  105. };
  106.  
  107. typedef    long    SNDACTCLK_ENUM;
  108.  
  109. typedef    void    *SAM_PTR;
  110.  
  111. typedef    struct {    /* used by SndBufPtr */
  112.     SAM_PTR    play;
  113.     SAM_PTR    record;
  114.     SAM_PTR    res1;
  115.     SAM_PTR    res2;
  116. } SNDBUF_STRUCT;
  117.  
  118. /*
  119.  * SOUND XBIOS trap calling routine.
  120.  */
  121.  
  122. short    IsSndDrv(void);
  123. long    SndLock(void);
  124. long    SndUnlock(void);
  125. long    SndCmd(SNDCMD_ENUM,short);
  126. long    SndSetBuffer(SNDSETBUF_ENUM,SAM_PTR,SAM_PTR);
  127. long    SndSetMode(SNDMODE_ENUM);
  128. long    SndSetTrack(short,short);
  129. long    SndSetMonTrack(short);
  130. long    SndSetInterrupt(short,short);
  131. long    SndBufOper(SNDOP_ENUM);
  132. long    SndDspTriState(SNDDSP_ENUM,SNDDSP_ENUM);
  133. long    SndGpio(short,short);
  134. long    SndDevConnect(SNDSRC_ENUM,SNDDST_ENUM,SNDSRCLK_ENUM,SNDCLK_ENUM,short);
  135. long    SndStatus(short);
  136. long    SndBufPtr(SNDBUF_STRUCT *);
  137.  
  138. #define    AVR_MAGIC    '2BIT'
  139.  
  140. typedef struct {
  141.     long    magic;    /* '2BIT' */
  142.     char    name[8];
  143.     short    stereo;    /* 0:mono/-1:stereo */
  144.     short    res;    /* 8/16 bit */
  145.     short    sign;    /* 0/-1 */
  146.     short    loop;    /* 0/-1/... */
  147.     short    note;    /* -1/0xffXX/0xLLHH */
  148.     long    freq;    /* XX/freq in Hz */
  149.     long    length;
  150.     long    first;    /* 0L if unused */
  151.     long    last;    /* length is unused */
  152.     short    midi;
  153.     short    comp;
  154.     short    fill;    /* 0 */
  155.     char    ext[20];    /* cat with name */
  156.     char    user[64];
  157. } AVR_STRUCT;
  158.  
  159. typedef    AVR_STRUCT *AVR_PTR;
  160.