home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 1 / Mecomp-CD.iso / amiga / player / ahi / developer / include / libraries / ahi_sub.h next >
Encoding:
C/C++ Source or Header  |  1996-07-12  |  2.9 KB  |  116 lines

  1. #ifndef LIBRARIES_AHISUB_H
  2. #define LIBRARIES_AHISUB_H
  3.  
  4. /*
  5. **    $VER: ahi_sub.h 2.2 (12.7.96)
  6. **
  7. **    ahi/<driver>.audio definitions
  8. **
  9. **    (C) Copyright 1994-1996 Martin Blom
  10. **    All Rights Reserved.
  11. **
  12. ** (TAB SIZE: 8)
  13. */
  14.  
  15. /*****************************************************************************/
  16.  
  17.  
  18. #ifndef EXEC_TYPES_H
  19. #include <exec/types.h>
  20. #endif
  21.  
  22. #ifndef EXEC_LIBRARIES_H
  23. #include <exec/libraries.h>
  24. #endif
  25.  
  26. #ifndef UTILITY_TAGITEM_H
  27. #include <utility/tagitem.h>
  28. #endif
  29.  
  30. #ifndef DEVICES_AHI_H
  31. #include <devices/ahi.h>
  32. #endif
  33.  
  34. /*****************************************************************************/
  35.  
  36. /*** STRUCTURES */
  37.  
  38. /* AHIAudioCtrlDrv */
  39. struct AHIAudioCtrlDrv
  40. {
  41.     struct AHIAudioCtrl ahiac_AudioCtrl;
  42.     ULONG         ahiac_Flags;        /* See below for definition */
  43.     struct Hook    *ahiac_SoundFunc;    /* AHIA_SoundFunc */
  44.     struct Hook    *ahiac_PlayerFunc;    /* AHIA_PlayerFunc */
  45.     Fixed         ahiac_PlayerFreq;    /* AHIA_PlayerFreq */
  46.     Fixed         ahiac_MinPlayerFreq;    /* AHIA_MinPlayerFreq */
  47.     Fixed         ahiac_MaxPlayerFreq;    /* AHIA_MaxPlayerFreq */
  48.     ULONG         ahiac_MixFreq;        /* AHIA_MixFreq */
  49.     UWORD         ahiac_Channels;    /* AHIA_Channels */
  50.     UWORD         ahiac_Sounds;        /* AHIA_Sounds */
  51.  
  52.     APTR         ahiac_DriverData;    /* Unused. Store whatever you want here. */
  53.  
  54.     struct Hook    *ahiac_MixerFunc;    /* Mixing routine Hook */
  55.     struct Hook    *ahiac_SamplerFunc;    /* Sampler routine Hook */
  56.     ULONG         ahiac_Obsolete;
  57.     ULONG         ahiac_BuffSamples;    /* Samples to mix this pass. */
  58.     ULONG         ahiac_MinBuffSamples;    /* Min. samples to mix each pass. */
  59.     ULONG         ahiac_MaxBuffSamples;    /* Max. samples to mix each pass. */
  60.     ULONG         ahiac_BuffSize;    /* Buffer size ahiac_MixerFunc needs. */
  61.     ULONG         ahiac_BuffType;    /* Buffer format (V2) */
  62. /* The rest is PRIVATE! Hands off! They may change any time.
  63.     [lots of private stuff] */
  64. };
  65.  
  66. /*** TAGS */
  67.  
  68. #define    AHIDB_UserBase    (AHI_TagBase+500)    /* Use for driver specific tags */
  69.  
  70.  
  71. /*** DEFS */
  72.  
  73.  /* AHIsub_AllocAudio return flags */
  74. #define AHISF_ERROR    (1<<0)
  75. #define AHISF_MIXING    (1<<1)
  76. #define AHISF_TIMING    (1<<2)
  77. #define AHISF_KNOWSTEREO (1<<3)
  78. #define AHISF_KNOWHIFI    (1<<4)
  79. #define AHISF_CANRECORD (1<<5)
  80.  
  81. #define AHISB_ERROR    0
  82. #define AHISB_MIXING    1
  83. #define AHISB_TIMING    2
  84. #define AHISB_KNOWSTEREO 3
  85. #define AHISB_KNOWHIFI    4
  86. #define AHISB_CANRECORD 5
  87.  
  88.  /* AHIsub_Start() and AHIsub_Stop() flags */
  89. #define    AHISF_PLAY    (1<<0)
  90. #define    AHISF_RECORD    (1<<1)
  91.  
  92. #define    AHISB_PLAY    0
  93. #define    AHISB_RECORD    1
  94.  
  95.  /* ahiac_Flags */
  96. #define    AHIACF_VOL    (1<<0)
  97. #define    AHIACF_PAN    (1<<1)
  98. #define    AHIACF_STEREO    (1<<2)
  99. #define    AHIACF_HIFI    (1<<3)
  100. #define    AHIACF_PINGPONG    (1<<4)
  101. #define    AHIACF_RECORD    (1<<5)
  102. #define AHIACF_MULTTAB  (1<<6)            /* Private! */
  103.  
  104. #define    AHIACB_VOL    0
  105. #define    AHIACB_PAN    1
  106. #define    AHIACB_STEREO    2
  107. #define    AHIACB_HIFI    3
  108. #define    AHIACB_PINGPONG    4
  109. #define    AHIACB_RECORD    5
  110. #define AHIACB_MULTTAB  6            /* Private! */
  111.  
  112.  /* AHIsub_Set#? and AHIsub_(Un)LoadSound return code */
  113. #define AHIS_UNKNOWN    ~0
  114.  
  115. #endif /* LIBRARIES_AHISUB_H */
  116.