home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Audio.def < prev    next >
Text File  |  1994-05-25  |  3KB  |  95 lines

  1. |##########|
  2. |#MAGIC   #|CLABLOAC
  3. |#PROJECT #|"IMPORTALL"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx-x-x--xx----x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x-xx-x----------
  9. |##########|
  10. DEFINITION MODULE Audio;
  11.  
  12.  
  13. | Groups in this module ( in this order ):
  14. |
  15. | AudioGrp All
  16.  
  17. (* $A- *)
  18. FROM T_Exec       IMPORT NoFreeSignal,OpenError,IOCommand,IOFlagSet,
  19.                          IOFlags,IORequest,IOReturn,Message,nonstdVAL;
  20. FROM Resources    IMPORT ContextPtr;
  21. FROM System      IMPORT Regs;
  22.  
  23. CONST
  24.  
  25.   | System Constants
  26.   hardChannels     = 4;
  27.  
  28.   minPrec          = -128;
  29.   maxPrec          = 127;
  30.  
  31.   | values for IORequest.command
  32.   free             = IOCommand( nonstdVAL + 0 );
  33.   setPrec          = IOCommand( nonstdVAL + 1 );
  34.   finish           = IOCommand( nonstdVAL + 2 );
  35.   perVol           = IOCommand( nonstdVAL + 3 );
  36.   lock             = IOCommand( nonstdVAL + 4 );
  37.   waitCycle        = IOCommand( nonstdVAL + 5 );
  38.   allocate         = IOCommand( 32 );
  39.   noUnit           = allocate;
  40.  
  41.   | values for IORequest.flags
  42.   pervol           = IOFlagSet:{ IO4 };
  43.   syncCycle        = IOFlagSet:{ IO5 };
  44.   noWait           = IOFlagSet:{ IO6 };
  45.   writeMessages    = IOFlagSet:{ IO7 };
  46.  
  47.   | errors returned in IORequest.error
  48.   noAllcation      = IOReturn( $F6 );
  49.   allocFailed      = IOReturn( $F5 );
  50.   channelStolen    = IOReturn( $F4 );
  51.  
  52.  
  53. TYPE
  54.  
  55.   IOAudioPtr =   POINTER TO IOAudio;
  56.   IOAudio    =   RECORD OF IORequest
  57.                    allocKey  : INTEGER;
  58.                    data      : ANYPTR;
  59.                    length    : LONGCARD;
  60.                    period    : CARDINAL;
  61.                    volume    : CARDINAL;
  62.                    cycles    : CARDINAL;
  63.                    writeMsg  : Message;
  64.                  END;
  65.  
  66.  
  67. |   OpenAudio
  68. |
  69. | try to open the audio.device.
  70. | EXCEPTION NoFreeSignal OpenError
  71. |
  72. PROCEDURE OpenAudio(context : ContextPtr:=NIL) : IOAudioPtr;
  73.  
  74. PROCEDURE CloneAudio(request : IOAudioPtr;context : ContextPtr:=NIL):IOAudioPtr;
  75.  
  76. PROCEDURE BeginIO(request IN A1 : IOAudioPtr);
  77.  
  78. PROCEDURE AbortIO(request IN A1 : IOAudioPtr);
  79.  
  80. |   CloseAudio
  81. | close the audio device associated with the request.
  82. | will be called if forgotten.
  83. PROCEDURE CloseAudio(VAR request : IOAudioPtr);
  84.  
  85.  
  86. GROUP
  87.   AudioGrp =  hardChannels,minPrec,maxPrec,free,setPrec,finish,
  88.               perVol,lock,waitCycle,noUnit,allocate,pervol,syncCycle,
  89.               noWait,writeMessages,noAllcation,allocFailed,
  90.               channelStolen,IOAudio,IOAudioPtr,OpenAudio,CloseAudio;
  91.  
  92.   All      = AudioGrp;
  93.  
  94. END Audio.
  95.