home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / IncPOS.lzx / Device / Audio.h next >
Encoding:
C/C++ Source or Header  |  1997-03-18  |  2.3 KB  |  89 lines

  1. #ifndef __INC_POS_DEVICE_AUDIO_H
  2. #define __INC_POS_DEVICE_AUDIO_H
  3. /*******************************************************************
  4.  Includes Release 24
  5.  (C) Copyright 1995-1997 proDAD
  6.      All Rights Reserved
  7.  
  8.  $AUT Holger Burkarth
  9.  $DAT >>Audio.h<<   19 Dec 1996    08:25:14 - (C) ProDAD
  10. *******************************************************************/
  11. #ifndef __INC_POS_PEXEC_DEVICE_H
  12. #include <pExec/Device.h>
  13. #endif
  14.  
  15. /*\
  16. *** OpenDevice mit Unit==~0 geht immer:
  17. *** Geeignet für: AUDIOCMD_Info, AUDIOCMD_ChannelInfo
  18. \*/
  19.  
  20.  struct pOS_AudioDevice {struct pOS_Device Dev; };
  21.  
  22.  
  23. /*----------------------------------
  24. -----------------------------------*/
  25. struct pOS_AudioIO
  26. {
  27.  /** struct pOS_IORequest **/
  28.  
  29.   struct pOS_Message   aio_Message;
  30.   struct pOS_Device   *aio_Device;   /* device node pointer  */
  31.   struct pOS_Unit     *aio_Unit;     /* unit (driver private) */
  32.   UWORD                aio_Command;  /* (enum pOS_IOReqCommands) (enum pOS_AudioIOReqCommands) */
  33.   UBYTE                aio_Flags;    /* (enum pOS_IOReqFlags) */
  34.   SBYTE                aio_Error;    /* (enum pOS_IOReqErrors) */
  35.  
  36.   union {
  37.     UBYTE  aio_Reserved[64];
  38.  
  39.     struct { /** CMD_WRITE **/
  40.       struct pOS_AudioMap *amio_AudioMap;
  41.       UWORD                amio_Volume;
  42.       UWORD                amio_Cycles;
  43.       ULONG                amio_Frequence;   /* Hz */
  44.       ULONG                amio_Length;
  45.     } aio_Map;
  46.  
  47.     struct { /** AUDIOCMD_Info **/
  48.       ULONG  aiio_FirstHwChannels;  /* Erster Hardware-Channels */
  49.       ULONG  aiio_NumHwChannels;    /* Anzahl der Hardware-Channels */
  50.       ULONG  aiio_FirstSwChannels;  /* Erster Software-Channels */
  51.       ULONG  aiio_NumSwChannels;    /* Anzahl der Software-Channels */
  52.     } aio_Info;
  53.  
  54.     struct { /** AUDIOCMD_ChannelInfo **/
  55.       ULONG                     acio_Channel;
  56.       size_t                    acio_InfoSize; /* sizeof(pOS_AudioInfoData) */
  57.       struct pOS_AudioInfoData *acio_InfoData;
  58.     } aio_ChInfo;
  59.  
  60.     struct { /** AUDIOCMD_AllocChannel **/
  61.       const struct pOS_TagItem *alio_Tags;
  62.       ULONG                     alio_Result;
  63.     } aio_AllocCh;
  64.  
  65.     /** AUDIOCMD_FreeChannel **/
  66.  
  67.  
  68.   } aio_U;
  69.  
  70. };
  71.  
  72.  
  73.  
  74. enum pOS_AudioIOReqCommands
  75. {
  76.   AUDIOCMD_Info = CMD_NONSTD,
  77.   AUDIOCMD_ChannelInfo,
  78.   AUDIOCMD_AllocChannel,
  79.   AUDIOCMD_FreeChannel,
  80. };
  81.  
  82.  
  83. enum pOS_AudioIOReqErrors
  84. {
  85.   AUDIOIOERR_UnknownChannel=1,
  86. };
  87.  
  88. #endif
  89.