aboutsummaryrefslogtreecommitdiff
path: root/engines/made/pmvplayer.h
blob: 51f5a36734e5855b4d86ffaedc65ab001e6e28e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef MADE_PMVPLAYER_H
#define MADE_PMVPLAYER_H

#include "common/system.h"
#include "common/events.h"
#include "common/file.h"
#include "common/endian.h"
#include "graphics/surface.h"
#include "sound/mixer.h"
#include "sound/audiostream.h"

#include "made/graphics.h"
#include "made/sound.h"

namespace Made {

class PmvPlayer {
public:
    PmvPlayer(OSystem *system, Audio::Mixer *mixer);
    ~PmvPlayer();
    void play(const char *filename);
protected:
    OSystem *_system;
    Audio::Mixer *_mixer;
    Common::File *_fd;
    Audio::AppendableAudioStream *_audioStream;
    Audio::SoundHandle _audioStreamHandle;
    byte _palette[768];
    Graphics::Surface *_surface;
    bool _abort;
    void readChunk(uint32 &chunkType, uint32 &chunkSize);
    void handleEvents();
    void updatePalette();
    void updateScreen();
};

}

#endif