This commit is contained in:
parent
95c3a77a70
commit
c9d1c7c792
10 changed files with 1419 additions and 30 deletions
142
source/sound/sound.h
Normal file
142
source/sound/sound.h
Normal file
|
@ -0,0 +1,142 @@
|
|||
/*=========================================================================
|
||||
|
||||
sound.h
|
||||
|
||||
Author: PKG
|
||||
Created:
|
||||
Project: Spongebob
|
||||
Purpose:
|
||||
|
||||
Copyright (c) 2000 Climax Development Ltd
|
||||
|
||||
===========================================================================*/
|
||||
|
||||
#ifndef __SOUND_SOUND_H__
|
||||
#define __SOUND_SOUND_H__
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Includes
|
||||
-------- */
|
||||
|
||||
#ifndef __SOUND_XMPLAY_H__
|
||||
#include "sound\xmplay.h"
|
||||
#endif
|
||||
|
||||
#ifndef __SOUND_SPU_H__
|
||||
#include "sound\spu.h"
|
||||
#endif
|
||||
#ifndef __SOUND_XMPLAY_H__
|
||||
#include "sound\xmplay.h"
|
||||
#endif
|
||||
#ifndef __CDXAHeader__
|
||||
#include "sound\cdxa.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Tyepdefs && Defines
|
||||
------------------- */
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Structure defintions
|
||||
-------------------- */
|
||||
|
||||
class CSoundMediator
|
||||
{
|
||||
public:
|
||||
typedef enum SONGID
|
||||
{
|
||||
HYPERMMX,
|
||||
DROPPOP,
|
||||
NUM_SONGIDS,
|
||||
};
|
||||
typedef enum SFXBANKID
|
||||
{
|
||||
INGAME,
|
||||
NUM_SFXBANKIDS,
|
||||
};
|
||||
|
||||
typedef enum VOLUMETYPE
|
||||
{
|
||||
SONG,
|
||||
SFX,
|
||||
SPEECH,
|
||||
|
||||
SONGFADE,
|
||||
|
||||
NUM_VOLUMETYPES,
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MIN_VOLUME=0,
|
||||
MAX_VOLUME=255,
|
||||
};
|
||||
|
||||
|
||||
// General
|
||||
static void initialise();
|
||||
static void shutdown();
|
||||
static void think(int _frames);
|
||||
|
||||
|
||||
// Song interface
|
||||
static void setSong(SONGID _songId);
|
||||
static void playSong();
|
||||
static void dumpSong();
|
||||
static void setSongToFadedOut() {setVolume(SONGFADE,0);}
|
||||
static void setSongToFadedIn() {setVolume(SONGFADE,255);}
|
||||
|
||||
// SFX interface
|
||||
static void setSfxBank(SFXBANKID _bankId);
|
||||
static int playSfx(int _sfxId);
|
||||
// static void stopSfx(int _id);
|
||||
|
||||
// Speech interface
|
||||
static void playSpeech(SpeechEquate _speech);
|
||||
|
||||
// Control
|
||||
static void setVolume(VOLUMETYPE _type,int _val);
|
||||
static int getVolume(VOLUMETYPE _type);
|
||||
// static void stopAllSound();
|
||||
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
NUM_SPU_CHANNELS=24,
|
||||
SONG_BASE_CHANNEL=0,
|
||||
SONG_CHANNELS=10,
|
||||
SFX_BASE_CHANNEL=SONG_BASE_CHANNEL+SONG_CHANNELS,
|
||||
SFX_CHANNELS=NUM_SPU_CHANNELS-SFX_BASE_CHANNEL,
|
||||
VOLUME_CHANGE_SPEED=2,
|
||||
INITIAL_VOLUME=192,
|
||||
};
|
||||
|
||||
CSoundMediator() {;}
|
||||
|
||||
static int s_initialised;
|
||||
|
||||
// static int s_currentVolume[NUM_VOLUMETYPES];
|
||||
// static int s_targetVolume[NUM_VOLUMETYPES];
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Globals
|
||||
------- */
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Functions
|
||||
--------- */
|
||||
|
||||
/*---------------------------------------------------------------------- */
|
||||
|
||||
#endif /* __SOUND_SOUND_H__ */
|
||||
|
||||
/*===========================================================================
|
||||
end */
|
Loading…
Add table
Add a link
Reference in a new issue