annotate Plugins/Input/adplug/core/adl.h @ 1594:44f67f556b60 trunk

[svn] - precision in title format is regarded as character count, not byte count.
author yaz
date Thu, 24 Aug 2006 23:08:22 -0700
parents fd943ec96935
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1280
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
1 /*
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
2 * Adplug - Replayer for many OPL2/OPL3 audio file formats.
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
3 * Copyright (C) 1999 - 2006 Simon Peter, <dn.tlp@gmx.net>, et al.
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
4 *
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
5 * adl.h - ADL player adaption by Simon Peter <dn.tlp@gmx.net>
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
6 */
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
7
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
8 #ifndef H_ADPLUG_ADLPLAYER
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
9 #define H_ADPLUG_ADLPLAYER
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
10
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
11 #include <inttypes.h>
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
12
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
13 #include "player.h"
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
14
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
15 class AdlibDriver;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
16
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
17 class CadlPlayer: public CPlayer
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
18 {
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
19 public:
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
20 static CPlayer *factory(Copl *newopl);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
21
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
22 CadlPlayer(Copl *newopl);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
23 ~CadlPlayer();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
24
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
25 bool load(const std::string &filename, const CFileProvider &fp);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
26 bool update();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
27 void rewind(int subsong);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
28
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
29 // refresh rate is fixed at 72Hz
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
30 float getrefresh()
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
31 {
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
32 return 72.0f;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
33 }
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
34
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
35 unsigned int getsubsongs();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
36 std::string gettype() { return std::string("Westwood ADL"); }
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
37
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
38 private:
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
39 int numsubsongs, cursubsong;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
40
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
41 AdlibDriver *_driver;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
42
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
43 uint8_t _trackEntries[120];
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
44 uint8_t *_soundDataPtr;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
45 int _sfxPlayingSound;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
46
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
47 uint8_t _sfxPriority;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
48 uint8_t _sfxFourthByteOfSong;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
49
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
50 int _numSoundTriggers;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
51 const int *_soundTriggers;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
52
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
53 static const int _kyra1NumSoundTriggers;
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
54 static const int _kyra1SoundTriggers[];
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
55
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
56 bool init();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
57 void process();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
58 void playTrack(uint8_t track);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
59 void playSoundEffect(uint8_t track);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
60 void play(uint8_t track);
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
61 void unk1();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
62 void unk2();
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
63 };
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
64
6ad7eb96dd26 [svn] Sync with upstream. This adds Westwood ADL format support.
chainsaw
parents:
diff changeset
65 #endif