[NEW] Audio support:

- playmusic(filename)
- pausemusic()
- resumemusic()
- stopmusic()
This commit is contained in:
2022-10-07 17:46:51 +02:00
parent 035d82c1ec
commit ee3c4325bc
6 changed files with 5928 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
#include <string.h>
#include "lua.h"
#include "gif.c"
#include "jail_audio.h"
#pragma pack(1)
@@ -52,6 +53,7 @@ SDL_Renderer *mini_ren;
SDL_Texture *mini_bak;
Uint32 *pixels;
int pitch;
JA_Music music = NULL;
uint32_t palette[256] = { 0x001a1c2c, 0x005d275d, 0x00b13e53, 0x00ef7d57, 0x00ffcd75, 0x00a7f070, 0x0038b764, 0x00257179,
0x0029366f, 0x003b5dc9, 0x0041a6f6, 0x0073eff7, 0x00f4f4f4, 0x0094b0c2, 0x00566c86, 0x00333c57 };
@@ -143,6 +145,17 @@ void reinit() {
file = NULL;
}
void initaudio() {
if (music!=NULL) JA_DeleteMusic(music);
music = NULL;
JA_Init(22050, AUDIO_S16, 2);
}
void quitaudio() {
if (music!=NULL) JA_DeleteMusic(music);
music = NULL;
JA_Quit();
}
uint8_t newsurf(int w, int h) {
int i = 0;
while (i<10 && surfaces[i].p != NULL) ++i;
@@ -233,6 +246,7 @@ int main(int argc,char*argv[]){
SDL_Event mini_eve;
reinit();
initaudio();
debug("MINI SYSTEM BOOTING...");
lua_init(lua_files);
lua_call_init();
@@ -246,14 +260,17 @@ int main(int argc,char*argv[]){
if (mini_eve.key.keysym.scancode == SDL_SCANCODE_ESCAPE) {
if (lua_is_playing()) {
lua_quit();
quitaudio();
reinit();
} else {
initaudio();
lua_init(lua_files);
lua_call_init();
}
} else if (mini_eve.key.keysym.scancode == SDL_SCANCODE_F5) {
lua_quit();
reinit();
initaudio();
lua_init(lua_files);
lua_call_init();
} else {
@@ -957,3 +974,21 @@ bool freadb() {
fscanf(file, "%s", &fstr);
return strcmp(fstr, "true")==0?true:false;
}
void playmusic(const char *filename) {
if (music != NULL) JA_DeleteMusic(music);
music = JA_LoadMusic(filename);
JA_PlayMusic(music);
}
void pausemusic() {
JA_PauseMusic();
}
void resumemusic() {
JA_ResumeMusic();
}
void stopmusic() {
JA_StopMusic();
}