1
0
Fork 0
blockofighter/src/audio.h

131 lines
2.6 KiB
C++

/*
* $Id: audio.h,v 1.13 2002/07/21 15:12:16 msell Exp $
*
*
* $Log: audio.h,v $
* Revision 1.13 2002/07/21 15:12:16 msell
* Äänet enabloitu :)
*
* Revision 1.12 2002/07/21 15:03:12 msell
* Äänet disabloitu
*
* Revision 1.11 2002/07/19 20:33:28 msell
* #pragma once -> #ifndef
*
* Revision 1.10 2002/07/19 18:59:46 msell
* Alkuhommaa ja säätöä
*
* Revision 1.9 2002/07/18 23:05:31 msell
* Partikkelit ja kakkospelaajan liike
*
* Revision 1.8 2002/07/14 21:22:40 jkaarlas
* skybox ja ukkojen säätö
*
* Revision 1.7 2002/06/04 16:28:32 msell
* #pragma once
*
* Revision 1.6 2002/05/19 13:40:19 msell
* Säätöä
*
* Revision 1.5 2002/05/18 12:29:35 msell
* Valot ja äänijärjestelmän parantelua
*
* Revision 1.4 2002/05/16 18:41:16 msell
* Vektorifunctioita ja kamera
*
* Revision 1.3 2002/05/15 21:07:23 msell
* Äänisäätöä
*
* Revision 1.2 2002/05/15 15:21:00 msell
* Äänisäätöä
*
* Revision 1.1 2002/05/15 14:36:39 msell
* Yksinkertainen SDL-runko (Kääntyy toistaiseksi vain windowsissa).
* Mukana myös musiikinsoitto fmodilla.
*
*
*
* $Date: 2002/07/21 15:12:16 $
*
*/
#ifndef __AUDIO_H_INCLUDED__
#define __AUDIO_H_INCLUDED__
//#define AUDIO_NONE
#define AUDIO_FMOD
//Only FMOD and NONE is supported, choose one
#ifdef AUDIO_FMOD
#include <fmod.h>
#endif
class Sound;
typedef void(* STOPCALLBACK)(Sound *sound);
#define SOUNDTYPE_AUTODETECT 0
#define SOUNDTYPE_MODULE 1
#define SOUNDTYPE_STREAM 2
#define SOUNDTYPE_SAMPLE 3
#define BGSONG DATAPATH"boom.mp3"
class Sound{
private:
#ifdef AUDIO_FMOD
int type;
FMUSIC_MODULE *module;
FSOUND_STREAM *stream;
FSOUND_SAMPLE *sample;
int channel;
#endif
bool loops;
bool finished;
bool running;
float volume;
STOPCALLBACK stopcallback;
bool isFinished(void);
int fadepos, fadetarget;
int fademode;
int minduration;
char *filename;
public:
Sound(Sound *source);
Sound(char *filename);
Sound(char *filename, int type);
Sound(char *filename, bool loops);
Sound(char *filename, int type, bool loops);
void load(char *filename, int type, bool loops);
bool play(void);
//Plays sound for at least minduration frames until sound
//can be played again. Doesn't prevent stopping of the sound
void play(int minduration);
void stop();
void setStopCallback(STOPCALLBACK callback);
void setVolume(float volume);
void fadeIn(int length);
void fadeOut(int length);
//Do not use methods below
void setFinished(void);
void update(void);
};
void initAudio(void);
void uninitAudio(void);
void updateAudio(void);
#endif