Use EM_JS where possible

This commit is contained in:
kichikuou
2019-08-03 20:00:22 +09:00
parent 6134741e7a
commit c16652ca82
4 changed files with 47 additions and 44 deletions
+10 -10
View File
@@ -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)
+27 -28
View File
@@ -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();
});
+5 -3
View File
@@ -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) {
+5 -3
View File
@@ -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) {