// Quit extern "C" void Java_org_libsdl_app_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event LOGI("_nativeQuit"); SDL_SendQuit(); }
// Quit extern "C" void Java_org_libsdl_app_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); SDL_SendAppEvent(SDL_APP_TERMINATING); }
static void SDL_HandleSIG(int sig) { /* Reset the signal handler */ signal(sig, SDL_HandleSIG); /* Signal a quit interrupt */ SDL_SendQuit(); }
//Quit extern "C" void Java_org_libsdl_app_SDLActivity_nativeQuit( JNIEnv* env, jobject obj ){ //Stop rendering as we're no longer in the foreground bRenderingEnabled = false; //Inject a SDL_QUIT event int r = SDL_SendQuit(); __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: Native quit %d", r); }
JNIEXPORT void JNICALL JAVA_EXPORT_NAME(DemoRenderer_nativeDone) ( JNIEnv* env, jobject thiz ) { __android_log_print(ANDROID_LOG_INFO, "libSDL", "quitting..."); #if SDL_VERSION_ATLEAST(1,3,0) SDL_SendQuit(); #else SDL_PrivateQuit(); #endif __android_log_print(ANDROID_LOG_INFO, "libSDL", "quit OK"); }
// Quit extern "C" void NATIVE_FUNCTION(nativeQuit)( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_Event event; event.type=SDL_SYSEVENT_TERMINATE; event.sysevent.data=NULL; if (SDL_SysEventHandler) SDL_SysEventHandler(&event); else SDL_SendQuit(); }
static void eventHandle(u64 status, u64 param, void * userdata) { _THIS = userdata; if(status == SYSUTIL_EXIT_GAME){ printf("Quit game requested\n"); SDL_SendQuit(); }else if(status == SYSUTIL_MENU_OPEN){ //xmb opened, should prob pause game or something :P }else if(status == SYSUTIL_MENU_CLOSE){ //xmb closed, and then resume }else if(status == SYSUTIL_DRAW_BEGIN){ }else if(status == SYSUTIL_DRAW_END){ }else{ printf("Unhandled event: %08llX\n", (unsigned long long int)status); } }
int SDL_SendWindowEvent(SDL_Window * window, Uint8 windowevent, int data1, int data2) { int posted; if (!window) { return 0; } switch (windowevent) { case SDL_WINDOWEVENT_SHOWN: if (window->flags & SDL_WINDOW_SHOWN) { return 0; } window->flags &= ~SDL_WINDOW_HIDDEN; window->flags |= SDL_WINDOW_SHOWN; SDL_OnWindowShown(window); break; case SDL_WINDOWEVENT_HIDDEN: if (!(window->flags & SDL_WINDOW_SHOWN)) { return 0; } window->flags &= ~SDL_WINDOW_SHOWN; window->flags |= SDL_WINDOW_HIDDEN; SDL_OnWindowHidden(window); break; case SDL_WINDOWEVENT_MOVED: if (SDL_WINDOWPOS_ISUNDEFINED(data1) || SDL_WINDOWPOS_ISUNDEFINED(data2)) { return 0; } if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { window->windowed.x = data1; window->windowed.y = data2; } if (data1 == window->x && data2 == window->y) { return 0; } window->x = data1; window->y = data2; break; case SDL_WINDOWEVENT_RESIZED: if (!(window->flags & SDL_WINDOW_FULLSCREEN)) { window->windowed.w = data1; window->windowed.h = data2; } if (data1 == window->w && data2 == window->h) { return 0; } window->w = data1; window->h = data2; SDL_OnWindowResized(window); break; case SDL_WINDOWEVENT_MINIMIZED: if (window->flags & SDL_WINDOW_MINIMIZED) { return 0; } window->flags &= ~SDL_WINDOW_MAXIMIZED; window->flags |= SDL_WINDOW_MINIMIZED; SDL_OnWindowMinimized(window); break; case SDL_WINDOWEVENT_MAXIMIZED: if (window->flags & SDL_WINDOW_MAXIMIZED) { return 0; } window->flags &= ~SDL_WINDOW_MINIMIZED; window->flags |= SDL_WINDOW_MAXIMIZED; break; case SDL_WINDOWEVENT_RESTORED: if (!(window->flags & (SDL_WINDOW_MINIMIZED | SDL_WINDOW_MAXIMIZED))) { return 0; } window->flags &= ~(SDL_WINDOW_MINIMIZED | SDL_WINDOW_MAXIMIZED); SDL_OnWindowRestored(window); break; case SDL_WINDOWEVENT_ENTER: if (window->flags & SDL_WINDOW_MOUSE_FOCUS) { return 0; } window->flags |= SDL_WINDOW_MOUSE_FOCUS; SDL_OnWindowEnter(window); break; case SDL_WINDOWEVENT_LEAVE: if (!(window->flags & SDL_WINDOW_MOUSE_FOCUS)) { return 0; } window->flags &= ~SDL_WINDOW_MOUSE_FOCUS; SDL_OnWindowLeave(window); break; case SDL_WINDOWEVENT_FOCUS_GAINED: if (window->flags & SDL_WINDOW_INPUT_FOCUS) { return 0; } window->flags |= SDL_WINDOW_INPUT_FOCUS; SDL_OnWindowFocusGained(window); break; case SDL_WINDOWEVENT_FOCUS_LOST: if (!(window->flags & SDL_WINDOW_INPUT_FOCUS)) { return 0; } window->flags &= ~SDL_WINDOW_INPUT_FOCUS; SDL_OnWindowFocusLost(window); break; } /* Post the event, if desired */ posted = 0; if (SDL_GetEventState(SDL_WINDOWEVENT) == SDL_ENABLE) { SDL_Event event; event.type = SDL_WINDOWEVENT; event.window.event = windowevent; event.window.data1 = data1; event.window.data2 = data2; event.window.windowID = window->id; /* Fixes queue overflow with resize events that aren't processed */ if (windowevent == SDL_WINDOWEVENT_RESIZED) { SDL_FilterEvents(RemovePendingResizedEvents, &event); } if (windowevent == SDL_WINDOWEVENT_SIZE_CHANGED) { SDL_FilterEvents(RemovePendingSizeChangedEvents, &event); } if (windowevent == SDL_WINDOWEVENT_MOVED) { SDL_FilterEvents(RemovePendingMoveEvents, &event); } if (windowevent == SDL_WINDOWEVENT_EXPOSED) { SDL_FilterEvents(RemovePendingExposedEvents, &event); } posted = (SDL_PushEvent(&event) > 0); } if (windowevent == SDL_WINDOWEVENT_CLOSE) { if ( !window->prev && !window->next ) { /* This is the last window in the list so send the SDL_QUIT event */ SDL_SendQuit(); } } return (posted); }
// Quit extern "C" void Java_uk_co_armedpineapple_corsixth_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }
static void windowmanager_quit(void *data, struct qt_windowmanager *qt_windowmanager) { SDL_SendQuit(); }
// Quit extern "C" void Java_org_hedgewars_hedgeroid_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }
// Quit extern "C" void Java_com_silentlexx_instead_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }
// Quit extern "C" void Java_com_dreamdance_android_th_SDLActivity_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }
/* Public functions */ static int SDL_QuitInit_Internal(void) { #ifdef HAVE_SIGACTION struct sigaction action; sigaction(SIGINT, NULL, &action); #ifdef HAVE_SA_SIGACTION if ( action.sa_handler == SIG_DFL && (void (*)(int))action.sa_sigaction == SIG_DFL ) { #else if ( action.sa_handler == SIG_DFL ) { #endif action.sa_handler = SDL_HandleSIG; sigaction(SIGINT, &action, NULL); } sigaction(SIGTERM, NULL, &action); #ifdef HAVE_SA_SIGACTION if ( action.sa_handler == SIG_DFL && (void (*)(int))action.sa_sigaction == SIG_DFL ) { #else if ( action.sa_handler == SIG_DFL ) { #endif action.sa_handler = SDL_HandleSIG; sigaction(SIGTERM, &action, NULL); } #elif HAVE_SIGNAL_H void (*ohandler) (int); /* Both SIGINT and SIGTERM are translated into quit interrupts */ ohandler = signal(SIGINT, SDL_HandleSIG); if (ohandler != SIG_DFL) signal(SIGINT, ohandler); ohandler = signal(SIGTERM, SDL_HandleSIG); if (ohandler != SIG_DFL) signal(SIGTERM, ohandler); #endif /* HAVE_SIGNAL_H */ /* That's it! */ return 0; } int SDL_QuitInit(void) { if (!SDL_GetHintBoolean(SDL_HINT_NO_SIGNAL_HANDLERS, SDL_FALSE)) { return SDL_QuitInit_Internal(); } return 0; } static void SDL_QuitQuit_Internal(void) { #ifdef HAVE_SIGACTION struct sigaction action; sigaction(SIGINT, NULL, &action); if ( action.sa_handler == SDL_HandleSIG ) { action.sa_handler = SIG_DFL; sigaction(SIGINT, &action, NULL); } sigaction(SIGTERM, NULL, &action); if ( action.sa_handler == SDL_HandleSIG ) { action.sa_handler = SIG_DFL; sigaction(SIGTERM, &action, NULL); } #elif HAVE_SIGNAL_H void (*ohandler) (int); ohandler = signal(SIGINT, SIG_DFL); if (ohandler != SDL_HandleSIG) signal(SIGINT, ohandler); ohandler = signal(SIGTERM, SIG_DFL); if (ohandler != SDL_HandleSIG) signal(SIGTERM, ohandler); #endif /* HAVE_SIGNAL_H */ } void SDL_QuitQuit(void) { if (!disable_signals) { SDL_QuitQuit_Internal(); } } /* This function returns 1 if it's okay to close the application window */ int SDL_SendQuit(void) { send_quit_pending = SDL_FALSE; return SDL_SendAppEvent(SDL_QUIT); } void SDL_SendPendingQuit(void) { if (send_quit_pending) { SDL_SendQuit(); SDL_assert(!send_quit_pending); } }
// Quit extern "C" void Java_fr_mydedibox_utility_UtilitySDL_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }
// Quit extern "C" void Java_fr_mydedibox_libafba_sdl_SDLJni_nativeQuit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }
// Quit extern "C" void Java_paulscode_android_mupen64plusae_NativeMethods_quit( JNIEnv* env, jclass cls) { // Inject a SDL_QUIT event SDL_SendQuit(); }