mirror of
https://github.com/pret/pokestadium.git
synced 2026-08-09 19:27:21 -05:00
115 lines
3.9 KiB
C
115 lines
3.9 KiB
C
/*====================================================================
|
|
*
|
|
* Copyright 1993, Silicon Graphics, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
|
|
* Inc.; the contents of this file may not be disclosed to third
|
|
* parties, copied or duplicated in any form, in whole or in part,
|
|
* without the prior written permission of Silicon Graphics, Inc.
|
|
*
|
|
* RESTRICTED RIGHTS LEGEND:
|
|
* Use, duplication or disclosure by the Government is subject to
|
|
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights
|
|
* in Technical Data and Computer Software clause at DFARS
|
|
* 252.227-7013, and/or in similar or successor clauses in the FAR,
|
|
* DOD or NASA FAR Supplement. Unpublished - rights reserved under the
|
|
* Copyright Laws of the United States.
|
|
*==================================================================== */
|
|
|
|
#ifndef __N_LIBAUDIO__
|
|
#define __N_LIBAUDIO__
|
|
|
|
#include <PR/libaudio.h>
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <PR/ultratypes.h>
|
|
#include <PR/mbi.h>
|
|
|
|
typedef struct N_ALVoice_s {
|
|
ALLink node;
|
|
struct N_PVoice_s *pvoice;
|
|
ALWaveTable *table;
|
|
void *clientPrivate;
|
|
s16 state;
|
|
s16 priority;
|
|
s16 fxBus;
|
|
s16 unityPitch;
|
|
} N_ALVoice;
|
|
|
|
typedef struct {
|
|
ALPlayer *head; /* client list head */
|
|
ALLink pFreeList; /* list of free physical voices */
|
|
ALLink pAllocList; /* list of allocated physical voices */
|
|
ALLink pLameList; /* list of voices ready to be freed */
|
|
s32 paramSamples;
|
|
s32 curSamples; /* samples from start of game */
|
|
ALDMANew dma;
|
|
ALHeap *heap;
|
|
struct ALParam_s *paramList;
|
|
struct N_ALMainBus_s *mainBus;
|
|
struct N_ALAuxBus_s *auxBus;
|
|
s32 numPVoices;
|
|
s32 maxAuxBusses;
|
|
s32 outputRate;
|
|
s32 maxOutSamples;
|
|
s32 sv_dramout;
|
|
s32 sv_first;
|
|
} N_ALSynth;
|
|
|
|
/*************************************************************/
|
|
void n_alSynAddPlayer(ALPlayer *client);
|
|
ALFxRef n_alSynAllocFX(s16 bus, ALSynConfig *c, ALHeap *hp);
|
|
s32 n_alSynAllocVoice(N_ALVoice *voice, ALVoiceConfig *vc);
|
|
void n_alSynDelete(void);
|
|
void n_alSynFreeVoice(N_ALVoice *voice);
|
|
ALFxRef n_alSynGetFXRef(s16 bus, s16 index);
|
|
s16 n_alSynGetPriority(N_ALVoice *voice);
|
|
void n_alSynRemovePlayer(ALPlayer *client);
|
|
void n_alSynSetFXMix(N_ALVoice *v, u8 fxmix);
|
|
void n_alSynSetFXParam(ALFxRef fx, s16 paramID, void *param);
|
|
void n_alSynSetFXtype(s16 bus, ALFxId fxid, s32 rate);
|
|
void n_alSynSetPan(N_ALVoice *v, u8 pan);
|
|
void n_alSynSetPitch(N_ALVoice *v, f32 pitch);
|
|
void n_alSynSetPriority(N_ALVoice *voice, s16 priority);
|
|
void n_alSynSetVol(N_ALVoice *v, s16 volume, ALMicroTime t);
|
|
void n_alSynStartVoice(N_ALVoice *v, ALWaveTable *table);
|
|
void n_alSynStartVoiceParams(N_ALVoice *v, ALWaveTable *w,f32 pitch,
|
|
s16 vol, ALPan pan, u8 fxmix, ALMicroTime t);
|
|
void n_alSynStopVoice(N_ALVoice *v);
|
|
void n_alSynNew(ALSynConfig *c);
|
|
|
|
/*************************************************************/
|
|
|
|
/***********************************************************************
|
|
* Audio Library (AL) stuff
|
|
***********************************************************************/
|
|
typedef struct {
|
|
N_ALSynth drvr;
|
|
} N_ALGlobals;
|
|
|
|
extern N_ALGlobals *n_alGlobals;
|
|
extern N_ALSynth *n_syn;
|
|
|
|
void n_alInit(N_ALGlobals *g, ALSynConfig *c);
|
|
void n_alClose(void);
|
|
Acmd *n_alAudioFrame(Acmd *cmdList, s32 *cmdLen, s16 *outBuf, s32 outLen);
|
|
|
|
/*
|
|
* for n_audio micro code
|
|
*/
|
|
extern long long int n_aspMainTextStart[], n_aspMainTextEnd[];
|
|
extern long long int n_aspMainDataStart[], n_aspMainDataEnd[];
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
}
|
|
#endif
|
|
|
|
#endif /* !__N_LIBAUDIO__ */
|
|
|
|
|
|
|