moved floors audio logic from audio class

This commit is contained in:
Sandro Sobczyński
2020-11-04 22:33:16 +01:00
parent efe34c677d
commit 1757ef67dc
7 changed files with 35 additions and 15 deletions
@@ -17,6 +17,7 @@ class AudioListener
public:
virtual ~AudioListener(){};
virtual void onAudioTick() = 0;
virtual void onAudioFinish() = 0;
private:
};
+1 -1
View File
@@ -56,7 +56,7 @@ private:
void loadModules();
void initAUDSRV();
int ret, played;
int ret;
char chunk[2048];
FILE *wav;
audsrv_fmt_t format;
+4 -6
View File
@@ -133,7 +133,6 @@ void Audio::loadSong(char *t_filename)
else
{
fseek(wav, 0x30, SEEK_SET);
played = 0;
songLoaded = 1;
PRINT_LOG("Song loaded!");
}
@@ -216,15 +215,14 @@ void Audio::work()
isTrackDone = true;
return;
}
played++;
if ((played + 20) % 41 == 0 && addedListeners)
for (u32 i = 0; i < addedListeners; i++)
listeners[i]->onAudioTick();
for (u32 i = 0; i < addedListeners; i++)
listeners[i]->onAudioTick();
}
else
{
PRINT_LOG("Song " SONG_NAME " finished. Running again...");
played = 0;
for (u32 i = 0; i < addedListeners; i++)
listeners[i]->onAudioFinish();
fseek(wav, 0x30, SEEK_SET);
isTrackDone = false;
}