nkeynes@1239: /** nkeynes@1239: * $Id$ nkeynes@1239: * nkeynes@1239: * JNI wrappers for operating the emulator from Java. nkeynes@1239: * nkeynes@1239: * Copyright (c) 2012 Nathan Keynes. nkeynes@1239: * nkeynes@1239: * This program is free software; you can redistribute it and/or modify nkeynes@1239: * it under the terms of the GNU General Public License as published by nkeynes@1239: * the Free Software Foundation; either version 2 of the License, or nkeynes@1239: * (at your option) any later version. nkeynes@1239: * nkeynes@1239: * This program is distributed in the hope that it will be useful, nkeynes@1239: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@1239: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@1239: * GNU General Public License for more details. nkeynes@1239: */ nkeynes@1239: nkeynes@1239: #include nkeynes@1239: #include nkeynes@1239: #include nkeynes@1239: #include "dreamcast.h" nkeynes@1239: #include "gui.h" nkeynes@1239: #include "config.h" nkeynes@1241: #include "lxpaths.h" nkeynes@1239: #include "display.h" nkeynes@1239: #include "gdlist.h" nkeynes@1239: #include "hotkeys.h" nkeynes@1239: #include "serial.h" nkeynes@1239: #include "aica/audio.h" nkeynes@1241: #include "drivers/video_gl.h" nkeynes@1239: #include "maple/maple.h" nkeynes@1239: #include "vmu/vmulist.h" nkeynes@1239: nkeynes@1241: static char *getStringChars( JNIEnv *env, jstring str ) nkeynes@1239: { nkeynes@1241: jboolean iscopy; nkeynes@1241: const char *p = (*env)->GetStringUTFChars(env, str, &iscopy); nkeynes@1241: char *result = strdup(p); nkeynes@1241: (*env)->ReleaseStringUTFChars(env,str,p); nkeynes@1241: return result; nkeynes@1241: } nkeynes@1241: nkeynes@1241: static const char *appHome = NULL; nkeynes@1241: nkeynes@1241: JNIEXPORT void JNICALL Java_org_lxdream_Dreamcast_init(JNIEnv * env, jclass obj, jstring homeDir ) nkeynes@1241: { nkeynes@1241: appHome = getStringChars(env, homeDir); nkeynes@1241: const char *confFile = g_strdup_printf("%s/lxdreamrc", appHome); nkeynes@1241: set_user_data_path(appHome); nkeynes@1241: lxdream_set_config_filename( confFile ); nkeynes@1239: lxdream_make_config_dir( ); nkeynes@1239: lxdream_load_config( ); nkeynes@1239: iso_init(); nkeynes@1239: gdrom_list_init(); nkeynes@1239: vmulist_init(); nkeynes@1239: dreamcast_init(1); nkeynes@1239: nkeynes@1239: audio_init_driver(NULL); nkeynes@1239: display_driver_t display_driver = get_display_driver_by_name(NULL); nkeynes@1239: display_set_driver(display_driver); nkeynes@1239: nkeynes@1239: hotkeys_init(); nkeynes@1239: serial_init(); nkeynes@1239: maple_reattach_all(); nkeynes@1239: INFO( "%s! ready...", APP_NAME ); nkeynes@1239: } nkeynes@1239: nkeynes@1241: JNIEXPORT void JNICALL Java_org_lxdream_Dreamcast_setViewSize(JNIEnv * env, jclass obj, jint width, jint height) nkeynes@1239: { nkeynes@1241: gl_set_video_size(width, height); nkeynes@1239: } nkeynes@1239: nkeynes@1241: JNIEXPORT void JNICALL Java_org_lxdream_Dreamcast_run(JNIEnv * env, jclass obj) nkeynes@1239: { nkeynes@1239: dreamcast_run(); nkeynes@1239: } nkeynes@1239: nkeynes@1241: JNIEXPORT void JNICALL Java_org_lxdream_Dreamcast_stop(JNIEnv * env, jclass obj) nkeynes@1239: { nkeynes@1239: dreamcast_stop(); nkeynes@1239: } nkeynes@1239: nkeynes@1239: gboolean gui_parse_cmdline( int *argc, char **argv[] ) nkeynes@1239: { nkeynes@1239: return TRUE; nkeynes@1239: } nkeynes@1239: nkeynes@1239: gboolean gui_init( gboolean debug, gboolean fullscreen ) nkeynes@1239: { nkeynes@1239: return TRUE; nkeynes@1239: } nkeynes@1239: nkeynes@1239: void gui_main_loop( gboolean run ) { nkeynes@1239: if( run ) { nkeynes@1239: dreamcast_run(); nkeynes@1239: } nkeynes@1239: } nkeynes@1239: nkeynes@1239: gboolean gui_error_dialog( const char *fmt, ... ) nkeynes@1239: { nkeynes@1239: return TRUE; nkeynes@1239: } nkeynes@1239: nkeynes@1239: void gui_update_state() nkeynes@1239: { nkeynes@1239: } nkeynes@1239: nkeynes@1239: void gui_set_use_grab( gboolean grab ) nkeynes@1239: { nkeynes@1239: } nkeynes@1239: nkeynes@1239: void gui_update_io_activity( io_activity_type activity, gboolean active ) nkeynes@1239: { nkeynes@1239: } nkeynes@1239: nkeynes@1239: void gui_do_later( do_later_callback_t func ) nkeynes@1239: { nkeynes@1239: func(); nkeynes@1239: }