summaryrefslogtreecommitdiff
path: root/plugins/gme/game-music-emu-0.6.0/gme/Ym2413_Emu.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gme/game-music-emu-0.6.0/gme/Ym2413_Emu.h')
-rw-r--r--plugins/gme/game-music-emu-0.6.0/gme/Ym2413_Emu.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/plugins/gme/game-music-emu-0.6.0/gme/Ym2413_Emu.h b/plugins/gme/game-music-emu-0.6.0/gme/Ym2413_Emu.h
new file mode 100644
index 00000000..42314435
--- /dev/null
+++ b/plugins/gme/game-music-emu-0.6.0/gme/Ym2413_Emu.h
@@ -0,0 +1,33 @@
+// YM2413 FM sound chip emulator interface
+
+// Game_Music_Emu 0.5.5
+#ifndef YM2413_EMU_H
+#define YM2413_EMU_H
+
+class Ym2413_Emu {
+ struct OPLL* opll;
+public:
+ Ym2413_Emu();
+ ~Ym2413_Emu();
+
+ // Set output sample rate and chip clock rates, in Hz. Returns non-zero
+ // if error.
+ int set_rate( double sample_rate, double clock_rate );
+
+ // Reset to power-up state
+ void reset();
+
+ // Mute voice n if bit n (1 << n) of mask is set
+ enum { channel_count = 14 };
+ void mute_voices( int mask );
+
+ // Write 'data' to 'addr'
+ void write( int addr, int data );
+
+ // Run and write pair_count samples to output
+ typedef short sample_t;
+ enum { out_chan_count = 2 }; // stereo
+ void run( int pair_count, sample_t* out );
+};
+
+#endif