/* midasfx.h * * MIDAS sound effect library * * $Id: midasfx.h,v 1.3 1997/01/16 18:41:59 pekangas Exp $ * * Copyright 1996,1997 Housemarque Inc. * * This file is part of the MIDAS Sound System, and may only be * used, modified and distributed under the terms of the MIDAS * Sound System license, LICENSE.TXT. By continuing to use, * modify or distribute this file you indicate that you have * read the license and understand and accept it fully. */ #ifndef __midasfx_h #define __midasfx_h /****************************************************************************\ * enum fxChannels * --------------- * Description: Possible values for effect channel numbers apart from regular * channel numbers \****************************************************************************/ enum fxChannels { fxAutoChannel = 0xFFFF }; /****************************************************************************\ * struct fxChannel * ---------------- * Description: Sound effect channel structure \****************************************************************************/ typedef struct { unsigned sdChannel; /* Sound Device channel number */ unsigned sampleHandle; /* Handle for the sample that is being played on this channel */ unsigned playHandle; /* Playing handle for the sound on this channel */ int priority; /* Channel sound priority */ } fxChannel; #ifdef __cplusplus extern "C" { #endif /****************************************************************************\ * * Function: int fxInit(SoundDevice *SD) * * Description: Initializes the sound effect library * * Input: SoundDevice *SD Pointer to the Sound Device that will * be used for playing the effects * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxInit(SoundDevice *SD); /****************************************************************************\ * * Function: int fxClose(void) * * Description: Uninitializes the sound effect library * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxClose(void); /****************************************************************************\ * * Function: int fxLoadRawSample(char *fileName, unsigned sampleType, * int loopSample, unsigned *sampleHandle) * * Description: Loads a raw sample file into memory and adds the sample to * the sound device. * * Input: char *fileName sample file name * unsigned sampleType sample type, see enum sdSampleType * int loopSample 1 if sample is looped, 0 if not * unsigned *sampleHandle pointer to sample handle variable * * Returns: MIDAS error code. The sample handle for the sample will be * written to *sampleHandle. * \****************************************************************************/ int CALLING fxLoadRawSample(char *fileName, unsigned sampleType, int loopSample, unsigned *sampleHandle); /****************************************************************************\ * * Function: int fxFreeSample(unsigned sample) * * Description: Deallocates a sample and frees it from the Sound Device. * * Input: unsigned sample sample handle for the sample to be * deallocated. * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxFreeSample(unsigned sample); /****************************************************************************\ * * Function: int fxSetAutoChannels(int numChannels, * unsigned *channelNumbers) * * Description: Sets the channel numbers that can be used as automatic effect * channels. * * Input: int numChannels number of channels that can be * used * unsigned *channelNumbers pointer to a table that contains * the channels that can be used * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxSetAutoChannels(int numChannels, unsigned *channelNumbers); /****************************************************************************\ * * Function: int fxPlaySample(unsigned channel, unsigned sample, * int priority, unsigned rate, unsigned volume, int panning, * unsigned *playHandle) * * Description: Starts playing a sound effect sample on a channel * * Input: unsigned channel channel number, or fxAutoChannel for * automatic selection * unsigned sample sample handle * int priority effect priority, the higher the value * the higher the priority * unsigned rate effect initial sample rate * unsigned volume effect initial volume (0-64) * int panning effect initial panning, see enum * sdPanning * unsigned *playHandle effect playing handle variable * * Returns: MIDAS error code. The playing handle for the effect will be * written to *playHandle. * \****************************************************************************/ int CALLING fxPlaySample(unsigned channel, unsigned sample, int priority, unsigned rate, unsigned volume, int panning, unsigned *playHandle); /****************************************************************************\ * * Function: int fxStopSample(unsigned playHandle) * * Description: Stops playing a sample * * Input: unsigned playHandle sample playing handle (from * fxPlaySample) * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxStopSample(unsigned playHandle); /****************************************************************************\ * * Function: int fxSetSampleRate(unsigned playHandle, ulong rate) * * Description: Changes the sample rate for a sample that is being played * * Input: unsigned playHandle sample playing handle (from * fxPlaySample) * ulong rate new rate * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxSetSampleRate(unsigned playHandle, ulong rate); /****************************************************************************\ * * Function: int fxSetSampleVolume(unsigned playHandle, unsigned volume) * * Description: Changes the volume for a sample that is being played * * Input: unsigned playHandle sample playing handle (from * fxPlaySample) * unsigned volume new volume * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxSetSampleVolume(unsigned playHandle, unsigned volume); /****************************************************************************\ * * Function: int fxSetSamplePanning(unsigned playHandle, int panning) * * Description: Changes the panning position for a sample that is being played * * Input: unsigned playHandle sample playing handle (from * fxPlaySample) * int panning new panning position * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxSetSamplePanning(unsigned playHandle, int panning); /****************************************************************************\ * * Function: int fxSetSamplePriority(unsigned playHandle, int priority) * * Description: Changes the priority for a sample that is being played * * Input: unsigned playHandle sample playing handle (from * fxPlaySample) * int priority new playing priority * * Returns: MIDAS error code * \****************************************************************************/ int CALLING fxSetSamplePriority(unsigned playHandle, int priority); #ifdef __cplusplus } #endif #endif /* #ifdef __midasfx_h */ /* * $Log: midasfx.h,v $ * Revision 1.3 1997/01/16 18:41:59 pekangas * Changed copyright messages to Housemarque * * Revision 1.2 1996/09/28 06:39:22 jpaana * Converted from CR/LF and fixed some typos * * Revision 1.1 1996/09/22 23:17:48 pekangas * Initial revision * */