diff --git a/src/cdrom.emscripten.c b/src/cdrom.emscripten.c index 2f274c4..1521594 100644 --- a/src/cdrom.emscripten.c +++ b/src/cdrom.emscripten.c @@ -29,8 +29,8 @@ static int frame_of_getpos = -1; static int cdrom_init(char *); static int cdrom_exit(); -static int cdrom_start(int, boolean); -static int cdrom_stop(); +extern int cdrom_start(int, boolean); +extern int cdrom_stop(); static int cdrom_getPlayingInfo(cd_time *); #define cdrom cdrom_emscripten @@ -53,15 +53,15 @@ int cdrom_exit() { return OK; } -int cdrom_start(int trk, boolean loop) { - EM_ASM_ARGS({ xsystem35.cdPlayer.play($0, $1); }, trk, loop); - return OK; -} +EM_JS(int, cdrom_start, (int trk, boolean loop), { + xsystem35.cdPlayer.play(trk, loop); + return xsystem35.Status.OK; +}); -int cdrom_stop() { - EM_ASM( xsystem35.cdPlayer.stop(); ); - return OK; -} +EM_JS(int, cdrom_stop, (), { + xsystem35.cdPlayer.stop(); + return xsystem35.Status.OK; +}); int cdrom_getPlayingInfo(cd_time *info) { if (nact->frame_count == frame_of_getpos) diff --git a/src/midi.emscripten.c b/src/midi.emscripten.c index 251a78d..94665e1 100644 --- a/src/midi.emscripten.c +++ b/src/midi.emscripten.c @@ -28,15 +28,15 @@ static int midi_initilize(char *pname, int subdev); static int midi_exit(); static int midi_start(int no, int loop, char *data, int datalen); static int midi_stop(); -static int midi_pause(void); -static int midi_unpause(void); +extern int midi_pause(void); +extern int midi_unpause(void); static int midi_get_playing_info(midiplaystate *st); static int midi_getflag(int mode, int index); static int midi_setflag(int mode, int index, int val); -static int midi_setvol(int vol); -static int midi_getvol(); -static int midi_fadestart(int time, int volume, int stop); -static boolean midi_fading(); +extern int midi_setvol(int vol); +extern int midi_getvol(); +extern int midi_fadestart(int time, int volume, int stop); +extern boolean midi_fading(); #define midi midi_emscripten mididevice_t midi = { @@ -83,15 +83,15 @@ static int midi_stop() { return OK; } -static int midi_pause(void) { - EM_ASM( xsystem35.midiPlayer.pause(); ); - return OK; -} +EM_JS(int, midi_pause, (void), { + xsystem35.midiPlayer.pause(); + return xsystem35.Status.OK; +}); -static int midi_unpause(void) { - EM_ASM( xsystem35.midiPlayer.resume(); ); - return OK; -} +EM_JS(int, midi_unpause, (void), { + xsystem35.midiPlayer.resume(); + return xsystem35.Status.OK; +}); static int midi_get_playing_info(midiplaystate *st) { if (midino != 0) { @@ -117,20 +117,19 @@ static int midi_setflag(int mode, int index, int val) { return NG; } -static int midi_setvol(int vol) { - EM_ASM_ARGS({ xsystem35.midiPlayer.setVolume($0); }, vol); - return OK; -} +EM_JS(int, midi_setvol, (int vol), { + xsystem35.midiPlayer.setVolume(vol); + return xsystem35.Status.OK; +}); -static int midi_getvol() { - return EM_ASM_INT_V( return xsystem35.midiPlayer.getVolume(); ); -} +EM_JS(int, midi_getvol,(), { + return xsystem35.midiPlayer.getVolume(); +}); -static int midi_fadestart(int time, int volume, int stop) { - return EM_ASM_ARGS({ xsystem35.midiPlayer.fadeStart($0, $1, $2); }, - time, volume, stop); -} +EM_JS(int, midi_fadestart, (int time, int volume, int stop), { + return xsystem35.midiPlayer.fadeStart(time, volume, stop); +}); -static boolean midi_fading() { - return EM_ASM_INT_V( return xsystem35.midiPlayer.isFading(); ); -} +EM_JS(boolean, midi_fading, (), { + return xsystem35.midiPlayer.isFading(); +}); diff --git a/src/savedata.c b/src/savedata.c index 5711711..f9293ea 100644 --- a/src/savedata.c +++ b/src/savedata.c @@ -55,11 +55,13 @@ static int loadSysVar(char *buf); static void* loadGameData(int no, int *status, int *size); static int saveGameData(int no, char *buf, int size); -static void scheduleSync() { #ifdef __EMSCRIPTEN__ - EM_ASM( xsystem35.shell.syncfs(); ); +EM_JS(void, scheduleSync, (), { + xsystem35.shell.syncfs(); +}); +#else +#define scheduleSync() #endif -} /* savefile がある directory を登録 */ void save_set_path(char *path) { diff --git a/src/sdl_video.c b/src/sdl_video.c index 9d896e6..9776f0e 100644 --- a/src/sdl_video.c +++ b/src/sdl_video.c @@ -89,13 +89,15 @@ void sdl_Remove(void) { } /* name is UTF-8 */ -void sdl_setWindowTitle(char *name) { #ifdef __EMSCRIPTEN__ - EM_ASM_ARGS({ xsystem35.shell.setWindowTitle(UTF8ToString($0)); }, name); +EM_JS(void, sdl_setWindowTitle, (char *name), { + xsystem35.shell.setWindowTitle(UTF8ToString(name)); +}); #else +void sdl_setWindowTitle(char *name) { SDL_SetWindowTitle(sdl_window, name); -#endif } +#endif /* Visual に応じて Window を生成する */ static void window_init(void) {