mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-06 05:48:06 +03:00
Implement MAKO::get_mark() for FM sound
It still does not work for MIDI.
This commit is contained in:
@@ -146,8 +146,14 @@ bool MAKO::check_music()
|
||||
|
||||
void MAKO::get_mark(int* mark, int* loop)
|
||||
{
|
||||
WARNING("not implemented");
|
||||
*mark = *loop = 0;
|
||||
SDL_LockMutex(fm_mutex);
|
||||
if (fm) {
|
||||
fm->get_mark(mark, loop);
|
||||
} else {
|
||||
*mark = 0;
|
||||
*loop = 0;
|
||||
}
|
||||
SDL_UnlockMutex(fm_mutex);
|
||||
}
|
||||
|
||||
void MAKO::play_pcm(int page, bool loop)
|
||||
|
||||
@@ -75,8 +75,12 @@ bool MAKO::check_music()
|
||||
|
||||
void MAKO::get_mark(int* mark, int* loop)
|
||||
{
|
||||
WARNING("not implemented");
|
||||
*mark = *loop = 0;
|
||||
if (fm) {
|
||||
fm->get_mark(mark, loop);
|
||||
} else {
|
||||
*mark = 0;
|
||||
*loop = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void MAKO::play_pcm(int page, bool loop)
|
||||
|
||||
@@ -60,3 +60,8 @@ void MakoFMgen::Mix(int samples) {
|
||||
out_samples -= samples;
|
||||
output += samples * 2;
|
||||
}
|
||||
|
||||
void MakoFMgen::get_mark(int* mark, int* loop) {
|
||||
*mark = GetMark();
|
||||
*loop = Looped() ? 1 : 0;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ class MakoFMgen : private MakoFM {
|
||||
public:
|
||||
MakoFMgen(int rate, const uint8_t* data, bool free_data);
|
||||
void Process(int16* stream, int len);
|
||||
void get_mark(int* mark, int* loop);
|
||||
|
||||
private:
|
||||
void SetReg(RegType type, uint8_t addr, uint8_t val) override;
|
||||
|
||||
@@ -18,6 +18,7 @@ public:
|
||||
|
||||
double GetTime() const { return time_ms; }
|
||||
bool Looped() const { return part_looped == (1 << MAKO_MAXCH) - 1; }
|
||||
uint8_t GetMark() const { return current_mark; }
|
||||
|
||||
protected:
|
||||
enum RegType {
|
||||
|
||||
+8
-3
@@ -158,9 +158,14 @@ bool MAKO::check_music()
|
||||
|
||||
void MAKO::get_mark(int* mark, int* loop)
|
||||
{
|
||||
// TODO: fix
|
||||
*mark = 0;
|
||||
*loop = 0;
|
||||
SDL_LockMutex(fm_mutex);
|
||||
if (fm) {
|
||||
fm->get_mark(mark, loop);
|
||||
} else {
|
||||
*mark = 0;
|
||||
*loop = 0;
|
||||
}
|
||||
SDL_UnlockMutex(fm_mutex);
|
||||
}
|
||||
|
||||
void MAKO::play_pcm(int page, bool loop)
|
||||
|
||||
+8
-3
@@ -418,9 +418,14 @@ void MAKO::select_sound(BGMDevice dev)
|
||||
|
||||
void MAKO::get_mark(int* mark, int* loop)
|
||||
{
|
||||
// TODO: fix
|
||||
*mark = 0;
|
||||
*loop = 0;
|
||||
SDL_LockMutex(fm_mutex);
|
||||
if (fm) {
|
||||
fm->get_mark(mark, loop);
|
||||
} else {
|
||||
*mark = 0;
|
||||
*loop = 0;
|
||||
}
|
||||
SDL_UnlockMutex(fm_mutex);
|
||||
}
|
||||
|
||||
void MAKO::play_pcm(int page, bool loop)
|
||||
|
||||
Reference in New Issue
Block a user