void exitServices() { if (titlemenuIsUpdating) { //Stop the title menu loading process, causing the thread to exit cancelTitleLoading(); //Wait a little bit (two seconds) longer to allow the thread to actually terminate svcSleepThread(2000000000ULL); } if (titleThreadNeedsRelease) { releaseTitleThread(); } // cleanup whatever we have to cleanup audio_stop(); csndExit(); freeThemeImages(); netloader_exit(); titlesExit(); ptmuExit(); acExit(); hidExit(); gfxExit(); closeSDArchive(); exitFilesystem(); aptExit(); srvExit(); }
mp_obj_t mod_citrus_ac_exit(void) { EXIT_ONCE(_mod_citrus_ac_is_init); acExit(); return mp_const_none; }
//! Initialisierungsroutine void MainWindow::init() { //! Signal-Slots verbinden //! Slot für die Überwachung verbinden connect(ui->acMonitoring, SIGNAL(triggered()), this, SLOT(acControling())); //! Slot für die Gebietsbehandlung verbinden connect(ui->acAreaHandling, SIGNAL(triggered()), this, SLOT(acAreaHandling())); //! Slot für die Disposition verbinden connect(ui->acAreaDispo, SIGNAL(triggered()), this, SLOT(acAreaDispo())); //! Slot für die Definition von Gebieten verbinden connect(ui->acDefArea, SIGNAL(triggered()), this, SLOT(acDefArea())); //! Slot für die Definition von Teilgebieten verbinden connect(ui->acDefAreaPart, SIGNAL(triggered()), this, SLOT(acDefAreaPart())); //! Slot für die Definition von Verkündigern verbinden connect(ui->acDefProphet, SIGNAL(triggered()), this, SLOT(acDefProphet())); //! Slot für die Suche verbinden connect(ui->acSearch, SIGNAL(triggered()), this, SLOT(acSearch())); //! Slot für das Beenden verbinden connect(ui->acExit, SIGNAL(triggered()), this, SLOT(acExit())); //! Slot für das Drucken von Gebieten connect(ui->acPrintArea, SIGNAL(triggered()), this, SLOT(acPrintArea())); //! Slot für das Definieren von Kompanien connect(ui->acDefCompany, SIGNAL(triggered()), this, SLOT(acCompanyWidget())); //! Slot für das Anzeigen von Informationen connect(ui->acInfo, SIGNAL(triggered()), this, SLOT(acInfoWidget())); //! Slot für das Anzeigen von Problemen connect(ui->acProblem, SIGNAL(triggered()), this, SLOT(acProblemWidget())); //! Zeiger auf NULL legen _AreaWidget = NULL; _AreaPartWidget = NULL; _AreaHandlingWidget = NULL; _AreaDispoWidget = NULL; _ProphetWidget = NULL; _ControlWidget = NULL; _SearchWidget = NULL; _PrintWidget = NULL; _CompanyWidget = NULL; _InfoWidget = NULL; _ProblemWidget = NULL; //! Fensterüberschrift setzen setWindowTitle(tr("Gebietsbearbeitung")); //! Statusleiste initialisieren setStatusBar(); }
void ctr::wifi::exit() { if(!initialized) { return; } initialized = false; initError = {}; acExit(); }
void cleanup() { task_quit_all(); ui_exit(); screen_exit(); socExit(); if(soc_buffer != NULL) { free(soc_buffer); soc_buffer = NULL; } amExit(); httpcExit(); ptmuExit(); acExit(); cfguExit(); romfsExit(); gfxExit(); }
void cleanup() { clipboard_clear(); task_exit(); ui_exit(); screen_exit(); socExit(); if(soc_buffer != NULL) { free(soc_buffer); soc_buffer = NULL; } amExit(); httpcExit(); ptmuExit(); acExit(); cfguExit(); romfsExit(); gfxExit(); }
int main(int argc, char** argv) { #ifdef _3DS UNUSED(_mPerfShutdown); gfxInitDefault(); osSetSpeedupEnable(true); consoleInit(GFX_BOTTOM, NULL); if (!allocateRomBuffer()) { return 1; } #elif defined(__SWITCH__) UNUSED(_mPerfShutdown); gfxInitDefault(); consoleInit(NULL); #else signal(SIGINT, _mPerfShutdown); #endif int didFail = 0; struct mLogger logger = { .log = _log }; mLogSetDefaultLogger(&logger); struct PerfOpts perfOpts = { false, false, false, 0, 0, 0, false }; struct mSubParser subparser = { .usage = PERF_USAGE, .parse = _parsePerfOpts, .extraOptions = PERF_OPTIONS, .opts = &perfOpts }; struct mArguments args = {}; bool parsed = parseArguments(&args, argc, argv, &subparser); if (!args.fname) { parsed = false; } if (!parsed || args.showHelp) { usage(argv[0], PERF_USAGE); didFail = !parsed; goto cleanup; } if (args.showVersion) { version(argv[0]); goto cleanup; } if (perfOpts.savestate) { _savestate = VFileOpen(perfOpts.savestate, O_RDONLY); free(perfOpts.savestate); } _outputBuffer = malloc(256 * 256 * 4); if (perfOpts.csv) { puts("game_code,frames,duration,renderer"); } if (perfOpts.server) { didFail = !_mPerfRunServer(args.fname, &args, &perfOpts); } else { didFail = !_mPerfRunCore(args.fname, &args, &perfOpts); } free(_outputBuffer); if (_savestate) { _savestate->close(_savestate); } cleanup: freeArguments(&args); #ifdef _3DS gfxExit(); acExit(); #elif defined(__SWITCH__) gfxExit(); #endif return didFail; }
int main(int argc, char **argv) { (void) argc, (void) argv; Result res = MAKERESULT(RL_SUCCESS, RS_SUCCESS, 0, RD_SUCCESS); gfxInitDefault(); PrintConsole top; consoleInit(GFX_TOP, &top); util_debug_init(); consoleSelect(&top); if (R_FAILED(res = acInit())) { util_presult("acInit failed", res); goto ac_failure; } u32 wifi = 0; if (R_FAILED(res = ACU_GetWifiStatus(&wifi))) { util_presult("ACU_GetWifiStatus failed", res); fprintf(stderr, "Did you enable Wifi?\n"); goto wifi_check_failure; } if (!wifi) { fprintf(stderr, "Wifi disabled.\n"); goto wifi_check_failure; } if ((sock_ctx = memalign(SOCU_BUFSZ, SOCU_ALIGN)) == NULL) { util_perror("Allocating SOC buffer"); res = MAKERESULT( RL_PERMANENT, RS_OUTOFRESOURCE, RM_SOC, RD_OUT_OF_MEMORY); goto soc_alloc_failure; } if (R_FAILED(res = socInit(sock_ctx, SOCU_BUFSZ))) { util_presult("socInit failed", res); goto soc_failure; } if (R_FAILED(res = hidInit())) { util_presult("hidInit failed", res); goto hid_failure; } if (R_FAILED(res = HIDUSER_EnableAccelerometer())) { util_presult("Failed to enable accelerometer", res); goto accel_failure; } if (R_FAILED(res = ctrollerInit())) { fprintf(stderr, "Do you have a valid IP in\n '" CFG_FILE "'?"); goto failure; } bool isHomebrew = envIsHomebrew(); printf("Press %s to exit.\n", isHomebrew ? EXIT_DESC : "HOME"); fflush(stdout); while (aptMainLoop()) { if (isHomebrew) { if (hidKeysHeld() == EXIT_KEYS) { res = RL_SUCCESS; break; } } if (ctrollerSendHIDInfo()) { util_perror("Sending HID info"); fflush(stderr); for (int i = 3; i > 0; i--) { util_debug_printf("\rRetrying in %ds... ", i); svcSleepThread(1000000000L); } util_debug_printf("\rRetrying now.\x1b[K\n"); } gspWaitForVBlank(); gfxFlushBuffers(); gfxSwapBuffers(); } puts("Exiting..."); failure: HIDUSER_DisableAccelerometer(); accel_failure: hidExit(); hid_failure: socExit(); soc_failure: free(sock_ctx); soc_alloc_failure: wifi_check_failure: acExit(); ac_failure: if (R_FAILED(res)) { util_hang(res); } gfxExit(); return res; }
int main(int argc, const char* argv[]) { /* Sadly svchax crashes too much, so only allow install mode when running as a CIA // Trigger svchax so we can install CIAs if(argc > 0) { svchax_init(true); if(!__ctr_svchax || !__ctr_svchax_srv) { bSvcHaxAvailable = false; //printf("Failed to acquire kernel access. Install mode disabled.\n"); } } */ // argc is 0 when running as a CIA, and 1 when running as a 3dsx if (argc > 0) { bSvcHaxAvailable = false; } u32 *soc_sharedmem, soc_sharedmem_size = 0x100000; gfxInitDefault(); consoleInit(GFX_TOP, NULL); httpcInit(0); soc_sharedmem = (u32 *)memalign(0x1000, soc_sharedmem_size); socInit(soc_sharedmem, soc_sharedmem_size); sslcInit(0); hidInit(); acInit(); cfguInit(); if (bSvcHaxAvailable) { amInit(); AM_InitializeExternalTitleDatabase(false); } init_menu(GFX_TOP); // Make sure all CIAngel directories exists on the SD card mkpath("/CIAngel", 0777); mkpath("/CIAngel/tmp/", 0777); loadConfig(); // Set up the reading of json check_JSON(); load_JSON_data(); menu_main(); if (bSvcHaxAvailable) { amExit(); } cfguExit(); acExit(); gfxExit(); hidExit(); httpcExit(); socExit(); sslcExit(); }
int main(int argc, char **argv) { srvInit(); aptInit(); gfxInit(); acInit(); initCfgu(); ptmInit(); hidInit(NULL); irrstInit(NULL); fsInit(); hbInit(); Handle fileHandle; u64 size; u32 bytesRead; int restore; // Set main script char path[256]; if (argc > 0){ int latest_slash = 0; int i=5; while (argv[0][i] != '\0'){ if (argv[0][i] == '/'){ latest_slash = i; } i++; } strcpy(path,&argv[0][5]); path[latest_slash-5] = 0; strcpy(start_dir,path); strcpy(cur_dir,path); // Set current dir }else{ strcpy(start_dir,"/"); strcpy(cur_dir,"/"); // Set current dir for GW Mode } while(aptMainLoop()) { restore=0; char error[256]; errMsg = runScript((const char*)index_lua, true); if (errMsg != NULL); { // Fake error to force interpreter shutdown if (strstr(errMsg, "lpp_exit_04")){ break; } strcpy(error,"Error: "); strcat(error,errMsg); strcat(error,"\n\nPress A to restart\nPress B to exit"); } while (restore==0){ gspWaitForVBlank(); RefreshScreen(); ClearScreen(0); ClearScreen(1); DebugOutput(error); hidScanInput(); if(hidKeysDown() & KEY_A){ strcpy(cur_dir,start_dir); restore=1; }else if(hidKeysDown() & KEY_B){ restore=2; } gfxFlushBuffers(); gfxSwapBuffers(); } if (restore==2){ break; } } fsExit(); irrstExit(); hidExit(); ptmExit(); hbExit(); acExit(); exitCfgu(); gfxExit(); aptExit(); srvExit(); return 0; }
int main(void) { acInit(); gfxInitDefault(); gfxSetDoubleBuffering(GFX_TOP, false); gfxSetDoubleBuffering(GFX_BOTTOM, false); if(setjmp(exitJmp)) goto exit; preRenderKeyboard(); clearScreen(); drawString(10, 10, "Initing FS..."); gfxFlushBuffers(); gfxSwapBuffers(); fsInit(); clearScreen(); drawString(10, 10, "Initing SOC..."); gfxFlushBuffers(); gfxSwapBuffers(); SOC_Initialize((u32 *)memalign(0x1000, 0x100000), 0x100000); u32 wifiStatus = 0; ACU_GetWifiStatus(NULL, &wifiStatus); if(!wifiStatus) { hang("No WiFi! Is your wireless slider on?"); } clearScreen(); drawString(10, 10, "Reading settings..."); gfxFlushBuffers(); gfxSwapBuffers(); if(!readSettings()) { hang("Could not read 3DSController.ini!"); } clearScreen(); drawString(10, 10, "Connecting to %s on port %d...", settings.IPString, settings.port); gfxFlushBuffers(); gfxSwapBuffers(); openSocket(settings.port); sendConnectionRequest(); clearScreen(); gfxFlushBuffers(); gfxSwapBuffers(); disableBacklight(); while(aptMainLoop()) { hidScanInput(); irrstScanInput(); u32 kHeld = hidKeysHeld(); circlePosition circlePad; circlePosition cStick; hidCstickRead(&cStick); hidCircleRead(&circlePad); touchPosition touch; touchRead(&touch); clearScreen(); if((kHeld & KEY_L) && (kHeld & KEY_R) && (kHeld & KEY_X)) { if(keyboardToggle) { keyboardActive = !keyboardActive; keyboardToggle = false; if(keyboardActive) enableBacklight(); } } else keyboardToggle = true; if(keyboardActive) { drawKeyboard(); if(touch.px >= 1 && touch.px <= 312 && touch.py >= 78 && touch.py <= 208) { int x = (int)((float)touch.px * 12.0f / 320.0f); int y = (int)((float)(touch.py - 78) * 12.0f / 320.0f); int width = 24; int height = 24; if(keyboardChars[x + y * 12] == ' ') { while(keyboardChars[(x - 1) + y * 12] == ' ') x--; width = (int)(5.0f * 320.0f / 12.0f) - 1; } else if(keyboardChars[x + y * 12] == '\13') { while(keyboardChars[(x - 1) + y * 12] == '\13') x--; while(keyboardChars[x + (y - 1) * 12] == '\13') y--; width = (int)(2.0f * 320.0f / 12.0f) - 1; height = (int)(3.0f * 320.0f / 12.0f) - 1; } if(keyboardChars[x + y * 12]) drawBox((int)((float)x * 320.0f / 12.0f) + 1, (int)(78.0f + (float)y * 320.0f / 12.0f) + 1, width, height, 31, 31, 0); } } sendKeys(kHeld, circlePad, touch, cStick); //receiveBuffer(sizeof(struct packet)); if((kHeld & KEY_START) && (kHeld & KEY_SELECT)) longjmp(exitJmp, 1); gfxFlushBuffers(); gspWaitForVBlank(); gfxSwapBuffers(); } exit: enableBacklight(); SOC_Shutdown(); svcCloseHandle(fileHandle); fsExit(); gfxExit(); acExit(); return 0; }