(***************************************************************************

     $RCSfile: Audio.mod $
  Description: Interface to audio.device

   Created by: fjc (Frank Copeland)
    $Revision: 3.2 $
      $Author: fjc $
        $Date: 1994/08/08 00:44:29 $

  $VER: audio.h 36.3 (29.8.90)
  Includes Release 40.15

  (C) Copyright 1985-1993 Commodore-Amiga, Inc.
      All Rights Reserved

  Oberon-A interface Copyright © 1994, Frank Copeland.
  This file is part of the Oberon-A Interface.
  See Oberon-A.doc for conditions of use and distribution.

***************************************************************************)

MODULE Audio;

(*
** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
** $V- OvflChk       $Z- ZeroVars
*)

IMPORT E := Exec;


(*
**
**      audio.device include file
**
*)

CONST

  name                 * = "audio.device";

  hardChannels         * = 4;

  allocMinPrec         * = -128;
  allocMaxPrec         * = 127;

  cmdFree              * = E.cmdNonstd+0;
  cmdSetPrec           * = E.cmdNonstd+1;
  cmdFinish            * = E.cmdNonstd+2;
  cmdPerVol            * = E.cmdNonstd+3;
  cmdLock              * = E.cmdNonstd+4;
  cmdWaitCycle         * = E.cmdNonstd+5;
  cmdAllocate          * = 32;

  ioPerVol            * = 4;
  ioSyncCycle         * = 5;
  ioNoWait            * = 6;
  ioWriteMessage      * = 7;

  ioErrNoAllocation    * = -10;
  ioErrAllocFailed     * = -11;
  ioErrChannelStolen   * = -12;

TYPE

  IOAudioPtr * = CPOINTER TO IOAudio;
  IOAudio * = RECORD (E.IORequest)
    allocKey *  : INTEGER;
    data *      : E.APTR;
    ioaLength * : E.ULONG;
    period *    : E.UWORD;
    volume *    : E.UWORD;
    cycles *    : E.UWORD;
    writeMsg *  : E.Message;
  END; (* IOAudio *)


END Audio.
