/*********************************************************************
*                                                                    *
*   Copyright 1986, Commodore-Amiga Inc.   All rights reserved.      *
*   No part of this program may be reproduced, transmitted,          *
*   transcribed, stored in retrieval system, or translated into      *
*   any language or computer language, in any form or by any         *
*   means, electronic, mechanical, magnetic, optical, chemical,      *
*   manual or otherwise, without the prior written permission of     *
*   Commodore-Amiga Incorporated, 983 University Ave. Building #D,   *
*   Los Gatos, California, 95030                                     *
*                                                                    *
**********************************************************************
*
* $Header: audio.h,v 32.1 86/01/14 21:21:37 sam Exp $
*
* $Locker:  $
*
* $Log: audio.h,v $
* Revision 32.1  86/01/14  21:21:37  sam
* revision set to 32
* 
* Revision 1.1  86/01/14  20:26:40  sam
* Initial revision
* 
*
*********************************************************************/

#ifndef DEVICES_AUDIO_H
#define DEVICES_AUDIO_H

#ifndef EXEC_IO_H
#include "exec/io.h"
#endif

#define AUDIONAME               "audio.device"

#define ADHARD_CHANNELS         4

#define ADALLOC_MINPREC         -128
#define ADALLOC_MAXPREC         127

#define ADCMD_FREE              (CMD_NONSTD+0)
#define ADCMD_SETPREC           (CMD_NONSTD+1)
#define ADCMD_FINISH            (CMD_NONSTD+2)
#define ADCMD_PERVOL            (CMD_NONSTD+3)
#define ADCMD_LOCK              (CMD_NONSTD+4)
#define ADCMD_WAITCYCLE         (CMD_NONSTD+5)
#define ADCMDB_NOUNIT           5
#define ADCMDF_NOUNIT           (1<<5)
#define ADCMD_ALLOCATE          (ADCMDF_NOUNIT+0)

#define ADIOB_PERVOL            4
#define ADIOF_PERVOL            (1<<4)
#define ADIOB_SYNCCYCLE         5
#define ADIOF_SYNCCYCLE         (1<<5)
#define ADIOB_NOWAIT            6
#define ADIOF_NOWAIT            (1<<6)
#define ADIOB_WRITEMESSAGE      7
#define ADIOF_WRITEMESSAGE      (1<<7)
 
#define ADIOERR_NOALLOCATION    -10
#define ADIOERR_ALLOCFAILED     -11
#define ADIOERR_CHANNELSTOLEN   -12

struct IOAudio {
    struct IORequest ioa_Request;
    WORD ioa_AllocKey;
    UBYTE *ioa_Data;
    ULONG ioa_Length;
    UWORD ioa_Period;
    UWORD ioa_Volume;
    UWORD ioa_Cycles;
    struct Message ioa_WriteMsg;
};

#endif
