HUGO: Clean-up, move MidiPlayer class definition to .h file
svn-id: r54923
This commit is contained in:
parent
ca547118e3
commit
76eb9d7f64
9 changed files with 56 additions and 58 deletions
|
@ -36,8 +36,6 @@
|
|||
|
||||
#include "sound/decoders/raw.h"
|
||||
#include "sound/audiostream.h"
|
||||
#include "sound/midiparser.h"
|
||||
#include "sound/mididrv.h"
|
||||
|
||||
#include "hugo/hugo.h"
|
||||
#include "hugo/game.h"
|
||||
|
@ -46,51 +44,6 @@
|
|||
|
||||
namespace Hugo {
|
||||
|
||||
class MidiPlayer : public MidiDriver {
|
||||
public:
|
||||
|
||||
enum {
|
||||
NUM_CHANNELS = 16
|
||||
};
|
||||
|
||||
MidiPlayer(MidiDriver *driver);
|
||||
~MidiPlayer();
|
||||
|
||||
void play(uint8 *stream, uint16 size);
|
||||
void stop();
|
||||
void pause(bool p);
|
||||
void updateTimer();
|
||||
void adjustVolume(int diff);
|
||||
void setVolume(int volume);
|
||||
int getVolume() const { return _masterVolume; }
|
||||
void setLooping(bool loop) { _isLooping = loop; }
|
||||
|
||||
// MidiDriver interface
|
||||
int open();
|
||||
void close();
|
||||
void send(uint32 b);
|
||||
void metaEvent(byte type, byte *data, uint16 length);
|
||||
void setTimerCallback(void *timerParam, void (*timerProc)(void *)) { }
|
||||
uint32 getBaseTempo() { return _driver ? _driver->getBaseTempo() : 0; }
|
||||
MidiChannel *allocateChannel() { return 0; }
|
||||
MidiChannel *getPercussionChannel() { return 0; }
|
||||
|
||||
private:
|
||||
|
||||
static void timerCallback(void *p);
|
||||
|
||||
MidiDriver *_driver;
|
||||
MidiParser *_parser;
|
||||
uint8 *_midiData;
|
||||
bool _isLooping;
|
||||
bool _isPlaying;
|
||||
bool _paused;
|
||||
int _masterVolume;
|
||||
MidiChannel *_channelsTable[NUM_CHANNELS];
|
||||
uint8 _channelsVolume[NUM_CHANNELS];
|
||||
Common::Mutex _mutex;
|
||||
};
|
||||
|
||||
MidiPlayer::MidiPlayer(MidiDriver *driver)
|
||||
: _driver(driver), _parser(0), _midiData(0), _isLooping(false), _isPlaying(false), _paused(false), _masterVolume(0) {
|
||||
assert(_driver);
|
||||
|
|
|
@ -34,10 +34,55 @@
|
|||
#define HUGO_SOUND_H
|
||||
|
||||
#include "sound/mixer.h"
|
||||
#include "sound/mididrv.h"
|
||||
#include "sound/midiparser.h"
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
class MidiPlayer;
|
||||
class MidiPlayer : public MidiDriver {
|
||||
public:
|
||||
|
||||
enum {
|
||||
NUM_CHANNELS = 16
|
||||
};
|
||||
|
||||
MidiPlayer(MidiDriver *driver);
|
||||
~MidiPlayer();
|
||||
|
||||
void play(uint8 *stream, uint16 size);
|
||||
void stop();
|
||||
void pause(bool p);
|
||||
void updateTimer();
|
||||
void adjustVolume(int diff);
|
||||
void setVolume(int volume);
|
||||
int getVolume() const { return _masterVolume; }
|
||||
void setLooping(bool loop) { _isLooping = loop; }
|
||||
|
||||
// MidiDriver interface
|
||||
int open();
|
||||
void close();
|
||||
void send(uint32 b);
|
||||
void metaEvent(byte type, byte *data, uint16 length);
|
||||
void setTimerCallback(void *timerParam, void (*timerProc)(void *)) { }
|
||||
uint32 getBaseTempo() { return _driver ? _driver->getBaseTempo() : 0; }
|
||||
MidiChannel *allocateChannel() { return 0; }
|
||||
MidiChannel *getPercussionChannel() { return 0; }
|
||||
|
||||
private:
|
||||
|
||||
static void timerCallback(void *p);
|
||||
|
||||
MidiDriver *_driver;
|
||||
MidiParser *_parser;
|
||||
uint8 *_midiData;
|
||||
bool _isLooping;
|
||||
bool _isPlaying;
|
||||
bool _paused;
|
||||
int _masterVolume;
|
||||
MidiChannel *_channelsTable[NUM_CHANNELS];
|
||||
uint8 _channelsVolume[NUM_CHANNELS];
|
||||
Common::Mutex _mutex;
|
||||
};
|
||||
|
||||
class SoundHandler {
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue