void neogeo_main(void) { Loop = LOOP_RESET; while (Loop >= LOOP_RESTART) { Loop = LOOP_EXEC; ui_popup_reset(); fatal_error = 0; video_clear_screen(); if (memory_init()) { if (sound_init()) { if (input_init()) { if (neogeo_init()) { neogeo_run(); } neogeo_exit(); } input_shutdown(); } sound_exit(); } memory_shutdown(); show_fatal_error(); } }
static void termination_hndlr(int sig_num) { char * pMsgTxt = "Hit with signal: %d, shutting down\n"; if(verbosity) fprintf(stderr, pMsgTxt, sig_num); slogf(_SLOG_SETCODE(_SLOGC_INPUT, 0), _SLOG_ERROR, pMsgTxt, sig_num); input_shutdown(); }
void view_shutdown(void) { // shutdown view input_shutdown(); al_shutdown(); view_shutdown_display(); // shutdown SDL SDL_Quit(); // release memory view_memory_release(); }
static void exit_program(int val) { char buf[64]; debug(RPT_DEBUG, "%s(val=%d)", __FUNCTION__, val); /* TODO: These things shouldn't be so interdependent. The order * things are shut down in shouldn't matter... */ if (val > 0) { strncpy(buf, "Server shutting down on ", sizeof(buf)); switch(val) { case 1: strcat(buf, "SIGHUP"); break; case 2: strcat(buf, "SIGINT"); break; case 15: strcat(buf, "SIGTERM"); break; default: snprintf(buf, sizeof(buf), "Server shutting down on signal %d", val); break; /* Other values should not be seen, but just in case.. */ } report(RPT_NOTICE, buf); /* report it */ } /* Set emergency reporting and flush all messages if not done already. */ if (report_level == UNSET_INT) report_level = DEFAULT_REPORTLEVEL; if (report_dest == UNSET_INT) report_dest = DEFAULT_REPORTDEST; set_reporting("LCDd", report_level, report_dest); goodbye_screen(); /* display goodbye screen on LCD display */ drivers_unload_all(); /* release driver memory and file descriptors */ /* Shutdown things if server start was complete */ clients_shutdown(); /* shutdown clients (must come first) */ menuscreens_shutdown(); screenlist_shutdown(); /* shutdown screens (must come after client_shutdown) */ input_shutdown(); /* shutdown key input part */ sock_shutdown(); /* shutdown the sockets server */ report(RPT_INFO, "Exiting."); _exit(EXIT_SUCCESS); }