bool CMenu::_ExitTo(void) { SetupInput(); _showExitTo(); while(!m_exit) { _mainLoopCommon(); if(BTN_A_PRESSED) { if(m_btnMgr.selected(m_homeBtnExitToHBC)) { exitHandler(EXIT_TO_HBC); break; } else if(m_btnMgr.selected(m_homeBtnExitToMenu)) { exitHandler(EXIT_TO_MENU); break; } else if(m_btnMgr.selected(m_homeBtnExitToPriiloader)) { exitHandler(EXIT_TO_PRIILOADER); break; } else if(m_btnMgr.selected(m_homeBtnExitToBootmii)) { exitHandler(EXIT_TO_BOOTMII); break; } else if(m_btnMgr.selected(m_homeBtnExitToNeek)) { if(!Load_Neek2o_Kernel()) { error(_fmt("errneek1", L"Cannot launch neek2o. Verify your neek2o setup")); exitHandler(PRIILOADER_DEF); } else { bool nkWiiflow = m_cfg.getBool("NEEK2O", "launchwiiflow", true); if(nkWiiflow) exitHandler(EXIT_TO_WFNK2O); else exitHandler(EXIT_TO_SMNK2O); } break; } } else if(BTN_HOME_PRESSED) { exitHandler(WIIFLOW_DEF); break; } else if(BTN_B_PRESSED) break; } _hideExitTo(); return m_exit; }
int main(int argc, wchar* argv[]) { //if (argc==2) //ndcid=atoi(argv[1]); if (setup_curses() < 0) die("failed to setup curses!\n"); #ifdef TARGET_PANDORA signal(SIGSEGV, clean_exit); signal(SIGKILL, clean_exit); #endif #if defined(USES_HOMEDIR) && HOST_OS != OS_DARWIN string home = (string)getenv("HOME"); if(home.c_str()) { home += "/.reicast"; mkdir(home.c_str(), 0755); // create the directory if missing SetHomeDir(home); } else SetHomeDir("."); #else SetHomeDir("."); #endif /* #if defined(SUPPORT_X11) x11_keymap[113] = DPad_Left; x11_keymap[114] = DPad_Right; x11_keymap[111] = DPad_Up; x11_keymap[116] = DPad_Down; x11_keymap[52] = Btn_Y; x11_keymap[53] = Btn_X; x11_keymap[54] = Btn_B; x11_keymap[55] = Btn_A; x11_keymap[36] = Btn_Start; #endif */ printf("Home dir is: %s\n",GetPath("/").c_str()); common_linux_setup(); SetupInput(); settings.profile.run_counts=0; dc_init(argc,argv); dc_run(); #ifdef TARGET_PANDORA clean_exit(0); #endif return 0; }
int main(int argc, wchar* argv[]) { //if (argc==2) //ndcid=atoi(argv[1]); #if defined(USES_HOMEDIR) string home = (string)getenv("HOME"); if(home.c_str()) { home += "/.reicast"; mkdir(home.c_str(), 0755); // create the directory if missing SetHomeDir(home); } else SetHomeDir("."); #else SetHomeDir("."); #endif printf("Home dir is: %s\n",GetPath("/").c_str()); common_linux_setup(); printf("common linux setup done\n"); settings.profile.run_counts=0; dc_init(argc,argv); if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)==-1) die("error initializing SDL"); SetupInput(); #ifdef USE_OSS init_sound(); #endif dc_run(); clean_exit(0); return 0; }
int CMenu::_configScreen(void) { int change = CONFIG_PAGE_NO_CHANGE; SetupInput(); _showConfigScreen(); while(!m_exit) { change = _configCommon(); if (change != CONFIG_PAGE_NO_CHANGE) break; if (BTN_A_REPEAT || BTN_A_PRESSED) { if (m_btnMgr.selected(m_configScreenBtnTVWidthP) || m_btnMgr.selected(m_configScreenBtnTVWidthM) || m_btnMgr.selected(m_configScreenBtnTVHeightP) || m_btnMgr.selected(m_configScreenBtnTVHeightM) || m_btnMgr.selected(m_configScreenBtnTVXP) || m_btnMgr.selected(m_configScreenBtnTVXM) || m_btnMgr.selected(m_configScreenBtnTVYP) || m_btnMgr.selected(m_configScreenBtnTVYM)) { int step = 0; if (m_btnMgr.selected(m_configScreenBtnTVWidthM) || m_btnMgr.selected(m_configScreenBtnTVHeightM)) step = 2; else if (m_btnMgr.selected(m_configScreenBtnTVWidthP) || m_btnMgr.selected(m_configScreenBtnTVHeightP)) step = -2; else if (m_btnMgr.selected(m_configScreenBtnTVXP) || m_btnMgr.selected(m_configScreenBtnTVYM)) step = -1; else if (m_btnMgr.selected(m_configScreenBtnTVXM) || m_btnMgr.selected(m_configScreenBtnTVYP)) step = 1; if (m_btnMgr.selected(m_configScreenBtnTVWidthM) || m_btnMgr.selected(m_configScreenBtnTVWidthP)) m_cfg.setInt("GENERAL", "tv_width", min(max(512, m_cfg.getInt("GENERAL", "tv_width", 640) + step), 800)); else if (m_btnMgr.selected(m_configScreenBtnTVHeightM) || m_btnMgr.selected(m_configScreenBtnTVHeightP)) m_cfg.setInt("GENERAL", "tv_height", min(max(384, m_cfg.getInt("GENERAL", "tv_height", 480) + step), 600)); else if (m_btnMgr.selected(m_configScreenBtnTVXP) || m_btnMgr.selected(m_configScreenBtnTVXM)) m_cfg.setInt("GENERAL", "tv_x", min(max(-50, m_cfg.getInt("GENERAL", "tv_x", 0) + step), 50)); else if (m_btnMgr.selected(m_configScreenBtnTVYP) || m_btnMgr.selected(m_configScreenBtnTVYM)) m_cfg.setInt("GENERAL", "tv_y", min(max(-30, m_cfg.getInt("GENERAL", "tv_y", 0) + step), 30)); _showConfigScreen(); m_vid.set2DViewport(m_cfg.getInt("GENERAL", "tv_width", 640), m_cfg.getInt("GENERAL", "tv_height", 480), m_cfg.getInt("GENERAL", "tv_x", 0), m_cfg.getInt("GENERAL", "tv_y", 0)); } } } _hideConfigScreen(); return change; }
int main(int argc, char argv[]) { int T; int size; int arr[MAX] = { 0, }; int result[MAX] = { 0, }; scanf("%d", &T); for (int test_case = 1; test_case <= T; test_case++) { scanf("%d ", &size); SetupInput(arr, size); //printf("#%d %d\n", test_case, Recursive_Power(x, n)); printf("#%d ", test_case); MergeSort(result, arr, 0, size - 1); Print_arr(result, size); } return 0; }
int InitVideo (access_t *access, int fd, uint32_t caps) { access_sys_t *sys = access->p_sys; if (!(caps & V4L2_CAP_VIDEO_CAPTURE)) { msg_Err (access, "not a video capture device"); return -1; } v4l2_std_id std; if (SetupInput (VLC_OBJECT(access), fd, &std)) return -1; /* NOTE: The V4L access_demux expects a VLC FOURCC as "chroma". It is used to set the * es_format_t structure correctly. However, the V4L access (*here*) has no use for a * VLC FOURCC and expects a V4L2 format directly instead. That is confusing :-( */ uint32_t pixfmt = 0; char *fmtstr = var_InheritString (access, CFG_PREFIX"chroma"); if (fmtstr != NULL && strlen (fmtstr) <= 4) { memcpy (&pixfmt, fmtstr, strlen (fmtstr)); free (fmtstr); } else /* Use the default^Wprevious format if none specified */ { struct v4l2_format fmt = { .type = V4L2_BUF_TYPE_VIDEO_CAPTURE }; if (v4l2_ioctl (fd, VIDIOC_G_FMT, &fmt) < 0) { msg_Err (access, "cannot get default format: %s", vlc_strerror_c(errno)); return -1; } pixfmt = fmt.fmt.pix.pixelformat; } msg_Dbg (access, "selected format %4.4s", (const char *)&pixfmt); struct v4l2_format fmt; struct v4l2_streamparm parm; if (SetupFormat (access, fd, pixfmt, &fmt, &parm)) return -1; msg_Dbg (access, "%"PRIu32" bytes for complete image", fmt.fmt.pix.sizeimage); /* Check interlacing */ switch (fmt.fmt.pix.field) { case V4L2_FIELD_INTERLACED: msg_Dbg (access, "Interlacing setting: interleaved"); /*if (NTSC) sys->block_flags = BLOCK_FLAG_BOTTOM_FIELD_FIRST; else*/ sys->block_flags = BLOCK_FLAG_TOP_FIELD_FIRST; break; case V4L2_FIELD_INTERLACED_TB: msg_Dbg (access, "Interlacing setting: interleaved top bottom" ); sys->block_flags = BLOCK_FLAG_TOP_FIELD_FIRST; break; case V4L2_FIELD_INTERLACED_BT: msg_Dbg (access, "Interlacing setting: interleaved bottom top" ); sys->block_flags = BLOCK_FLAG_BOTTOM_FIELD_FIRST; break; default: break; } /* Init I/O method */ if (caps & V4L2_CAP_STREAMING) { sys->bufc = 4; sys->bufv = StartMmap (VLC_OBJECT(access), fd, &sys->bufc); if (sys->bufv == NULL) return -1; access->pf_block = MMapBlock; } else if (caps & V4L2_CAP_READWRITE) { sys->blocksize = fmt.fmt.pix.sizeimage; sys->bufv = NULL; access->pf_block = ReadBlock; } else { msg_Err (access, "no supported capture method"); return -1; } return 0; }
bool CMenu::_Home(void) { SetupInput(); _showHome(); string prevTheme = m_cfg.getString("GENERAL", "theme", "default"); while(!m_exit) { /* battery gets refreshed in here... */ _mainLoopCommon(); /* and it always changes so... */ m_btnMgr.setText(m_homeLblBattery, wfmt(PLAYER_BATTERY_LABEL, min((float)wd[0]->battery_level, 100.f), min((float)wd[1]->battery_level, 100.f), min((float)wd[2]->battery_level, 100.f), min((float)wd[3]->battery_level, 100.f))); if(BTN_A_PRESSED) { if(m_btnMgr.selected(m_homeBtnSettings)) { _hideHome(); _config(1); if(prevTheme != m_cfg.getString("GENERAL", "theme") || m_reload == true) { m_exit = true; m_reload = true; break; } _showHome(); } else if(m_btnMgr.selected(m_homeBtnReloadCache)) { //m_gameList.SetLanguage(m_loc.getString(m_curLanguage, "gametdb_code", "EN").c_str()); UpdateCache(m_current_view); LoadView(); break; } else if(m_btnMgr.selected(m_homeBtnUpdate) && !m_locked) { CoverFlow.stopCoverLoader(true); _hideHome(); _system(); remove(m_ver.c_str()); if(m_exit) _launchHomebrew(m_dol.c_str(), m_homebrewArgs); else { _showHome(); CoverFlow.startCoverLoader(); } } else if(m_btnMgr.selected(m_homeBtnInstall)) { _hideHome(); _wbfsOp(WO_ADD_GAME); _showHome(); } else if(m_btnMgr.selected(m_homeBtnAbout)) { _hideHome(); _about(); _showHome(); } else if(m_btnMgr.selected(m_homeBtnExitTo)) { _hideHome(); if(m_locked) exitHandler(WIIFLOW_DEF); else _ExitTo(); _showHome(); } else if(m_btnMgr.selected(m_homeBtnExplorer)) { _hideHome(); _Explorer(); _showHome(); } else if(m_btnMgr.selected(m_homeBtnFTP)) { _hideHome(); _FTP(); _showHome(); } } else if(BTN_HOME_PRESSED) { exitHandler(WIIFLOW_DEF); break; } else if(BTN_B_PRESSED) break; } _hideHome(); return m_exit; }
void CMenu::_system() { int msg = 0, newVer = SVN_REV_NUM; lwp_t thread = LWP_THREAD_NULL; wstringEx prevMsg; int amount_of_skips = 0; int update_x = 0, update_y = 0; u32 update_w = 0, update_h = 0; bool first = true; m_btnMgr.reset(m_systemLblInfo, true); SetupInput(); m_btnMgr.setText(m_systemBtnBack, _t("dl1", L"Cancel")); m_thrdStop = false; m_thrdMessageAdded = false; m_showtimer = -1; while(!m_exit) { _mainLoopCommon(); if(amount_of_skips == 0) // Check dimensions in the loop, because the animation can have an effect m_btnMgr.getDimensions(m_systemLblInfo, update_x, update_y, update_w, update_h); // Get original dimensions if(first) { m_btnMgr.moveBy(m_systemLblInfo, 0, -(pixels_to_skip * 10)); amount_of_skips++; first = false; } if (m_showtimer == -1) { m_showtimer = 120; m_btnMgr.show(m_downloadPBar); m_btnMgr.setProgress(m_downloadPBar, 0.f); m_thrdStop = false; m_thrdWorking = true; LWP_CreateThread(&thread, (void *(*)(void *))CMenu::_versionTxtDownloaderInit, (void *)this, downloadStack, downloadStackSize, 40); } if (m_showtimer > 0 && !m_thrdWorking) { if (thread != LWP_THREAD_NULL) { LWP_JoinThread(thread, NULL); thread = LWP_THREAD_NULL; } if (--m_showtimer == 0) { m_btnMgr.hide(m_downloadPBar); m_btnMgr.hide(m_downloadLblMessage[0], 0, 0, -2.f, 0.f); m_btnMgr.hide(m_downloadLblMessage[1], 0, 0, -2.f, 0.f); CMenu::_version[1] = m_version.getInt("GENERAL", "version", SVN_REV_NUM); num_versions = m_version.getInt("GENERAL", "num_versions", 1); for (i = 2; i < num_versions; i++) { CMenu::_version[i] = m_version.getInt(fmt("VERSION%i", i-1u), "version", SVN_REV_NUM); //add the changelog info here } if (num_versions > 1 && version_num == 0) version_num = 1; i = min((u32)version_num, ARRAY_SIZE(CMenu::_version) -1u); newVer = CMenu::_version[i]; _showSystem(); } } if ((BTN_DOWN_PRESSED || BTN_DOWN_HELD) && !(m_thrdWorking && m_thrdStop)) { if (update_h - (amount_of_skips * pixels_to_skip) > (m_vid.height2D() - (35 + update_y))) { m_btnMgr.moveBy(m_systemLblInfo, 0, -pixels_to_skip); amount_of_skips++; } } else if ((BTN_UP_PRESSED || BTN_UP_HELD) && !(m_thrdWorking && m_thrdStop)) { if (amount_of_skips > 1) { m_btnMgr.moveBy(m_systemLblInfo, 0, pixels_to_skip); amount_of_skips--; } } else if ((BTN_HOME_PRESSED || BTN_B_PRESSED || m_exit) && !m_thrdWorking) break; else if ((BTN_A_PRESSED) && !(m_thrdWorking && m_thrdStop)) { if ((m_btnMgr.selected(m_systemBtnDownload)) && !m_thrdWorking) { // Download selected version _hideSystem(); m_btnMgr.show(m_downloadPBar); m_btnMgr.setProgress(m_downloadPBar, 0.f); m_thrdStop = false; m_thrdWorking = true; gprintf("\nVersion to DL: %i\n", newVer); if(m_version.getInt("GENERAL", "version", 0) == newVer) m_app_update_size = m_version.getInt("GENERAL", "app_zip_size", 0); m_data_update_size = m_version.getInt("GENERAL", "data_zip_size", 0); m_app_update_url = fmt("%s/Wiiflow_Mod_svn_r%i.zip", m_version.getString("GENERAL", "update_url", "http://open-wiiflow-mod.googlecode.com/files").c_str(), newVer); m_data_update_url = fmt("%s/r%i/data.zip", m_version.getString("GENERAL", "update_url", "http://open-wiiflow-mod.googlecode.com/files").c_str(), newVer); m_showtimer = 120; LWP_CreateThread(&thread, (void *(*)(void *))CMenu::_versionDownloaderInit, (void *)this, downloadStack, downloadStackSize, 40); if (m_exit && !m_thrdWorking) { m_thrdStop = true; break; } } else if (m_btnMgr.selected(m_systemBtnBack)) { LockMutex lock(m_mutex); m_thrdStop = true; m_thrdMessageAdded = true; m_thrdMessage = _t("dlmsg6", L"Canceling..."); } else if (m_btnMgr.selected(m_systemBtnVerSelectM)) { if (version_num > 1) --version_num; else version_num = num_versions; i = min((u32)version_num, ARRAY_SIZE(CMenu::_version) -1u); { m_btnMgr.setText(m_systemLblVerSelectVal, wstringEx(sfmt("%i", CMenu::_version[i]))); newVer = CMenu::_version[i]; m_app_update_size = m_version.getInt(sfmt("VERSION%i", i - 1u), "app_zip_size", 0); if (i > 1 && i != num_versions) m_btnMgr.setText(m_systemLblInfo, m_version.getWString(sfmt("VERSION%i", i - 1u), "changes"), false); else if (i == num_versions) m_btnMgr.setText(m_systemLblInfo, _t("sys7", L"Installed Version."), false); else m_btnMgr.setText(m_systemLblInfo, m_version.getWString("GENERAL", "changes"), false); } } else if (m_btnMgr.selected(m_systemBtnVerSelectP)) { if (version_num < num_versions) ++version_num; else version_num = 1; i = min((u32)version_num, ARRAY_SIZE(CMenu::_version) -1u); { m_btnMgr.setText(m_systemLblVerSelectVal, wstringEx(sfmt("%i", CMenu::_version[i]))); newVer = CMenu::_version[i]; m_app_update_size = m_version.getInt(sfmt("VERSION%i", i - 1u), "app_zip_size", 0); if (i > 1 && i != num_versions) m_btnMgr.setText(m_systemLblInfo, m_version.getWString(sfmt("VERSION%i", i - 1u), "changes"), false); else if (i == num_versions) m_btnMgr.setText(m_systemLblInfo, _t("sys7", L"Installed Version."), false); else m_btnMgr.setText(m_systemLblInfo, m_version.getWString("GENERAL", "changes"), false); } } } if (Sys_Exiting()) { LockMutex lock(m_mutex); m_thrdStop = true; m_thrdMessageAdded = true; m_thrdMessage = _t("dlmsg6", L"Canceling..."); } // if (m_thrdMessageAdded) { LockMutex lock(m_mutex); m_thrdMessageAdded = false; m_btnMgr.setProgress(m_downloadPBar, m_thrdProgress); if (m_thrdProgress == 1.f) m_btnMgr.setText(m_systemBtnBack, _t("dl2", L"Back")); if (prevMsg != m_thrdMessage) { prevMsg = m_thrdMessage; m_btnMgr.setText(m_downloadLblMessage[msg], m_thrdMessage, false); m_btnMgr.hide(m_downloadLblMessage[msg], -200, 0, 1.f, 0.5f, true); m_btnMgr.show(m_downloadLblMessage[msg]); msg ^= 1; m_btnMgr.hide(m_downloadLblMessage[msg], +400, 0, 1.f, 1.f); } } if (m_thrdStop && !m_thrdWorking) break; } if (thread != LWP_THREAD_NULL) { LWP_JoinThread(thread, NULL); thread = LWP_THREAD_NULL; } _hideSystem(); }
void CMenu::_gameinfo(void) { bool first = true; SetupInput(); _showGameInfo(); u8 page = 0; int amount_of_skips = 0; int synopsis_x = 0, synopsis_y = 0; u32 synopsis_w = 0, synopsis_h = 0; do { _mainLoopCommon(); if (amount_of_skips == 0) { // Check dimensions in the loop, because the animation can have an effect m_btnMgr.getDimensions(m_gameinfoLblSynopsis, synopsis_x, synopsis_y, synopsis_w, synopsis_h); // Get original dimensions } if(first) { m_btnMgr.moveBy(m_gameinfoLblSynopsis, 0, -1); amount_of_skips++; first = false; } if ((BTN_DOWN_PRESSED || BTN_DOWN_HELD) && !(m_thrdWorking && m_thrdStop) && page == 1) { if (synopsis_h - (amount_of_skips * pixels_to_skip) > (m_vid.height2D() - (35 + synopsis_y))) { m_btnMgr.moveBy(m_gameinfoLblSynopsis, 0, -pixels_to_skip); amount_of_skips++; } } else if ((BTN_UP_PRESSED || BTN_UP_HELD) && !(m_thrdWorking && m_thrdStop) && page == 1) { if (amount_of_skips > 1) { m_btnMgr.moveBy(m_gameinfoLblSynopsis, 0, pixels_to_skip); amount_of_skips--; } } else if (BTN_RIGHT_PRESSED && !(m_thrdWorking && m_thrdStop) && page == 0 && gameinfo.Synopsis.size() > 0) { page = 1; amount_of_skips = 0; first = true; m_btnMgr.reset(m_gameinfoLblSynopsis); m_btnMgr.setText(m_gameinfoLblSynopsis, wfmt(L"%s", gameinfo.Synopsis.c_str())); m_btnMgr.hide(m_gameinfoLblDev, true); m_btnMgr.hide(m_gameinfoLblRegion, true); m_btnMgr.hide(m_gameinfoLblPublisher, true); m_btnMgr.hide(m_gameinfoLblRlsdate, true); m_btnMgr.hide(m_gameinfoLblGenre, true); m_btnMgr.hide(m_gameinfoLblRating, true); m_btnMgr.hide(m_gameinfoLblWifiplayers, true); for (u8 i = 0; i < ARRAY_SIZE(m_gameinfoLblControlsReq); ++i) if (m_gameinfoLblControlsReq[i] != -1u) m_btnMgr.hide(m_gameinfoLblControlsReq[i], true); for (u8 i = 0; i < ARRAY_SIZE(m_gameinfoLblControls); ++i) if (m_gameinfoLblControls[i] != -1u) m_btnMgr.hide(m_gameinfoLblControls[i], true); // When showing synopsis, only show user labels 2 and 3 for (u8 i = 0; i < ARRAY_SIZE(m_gameinfoLblUser); ++i) if (i < ARRAY_SIZE(m_gameinfoLblUser) / 2) m_btnMgr.hide(m_gameinfoLblUser[i], true); else m_btnMgr.show(m_gameinfoLblUser[i]); m_btnMgr.show(m_gameinfoLblID); m_btnMgr.show(m_gameinfoLblSynopsis); } else if (BTN_LEFT_PRESSED && !(m_thrdWorking && m_thrdStop)) { page = 0; m_btnMgr.show(m_gameinfoLblID); m_btnMgr.show(m_gameinfoLblDev); m_btnMgr.show(m_gameinfoLblRegion); m_btnMgr.show(m_gameinfoLblPublisher); m_btnMgr.show(m_gameinfoLblRlsdate); m_btnMgr.show(m_gameinfoLblGenre); m_btnMgr.show(m_gameinfoLblRating); m_btnMgr.show(m_gameinfoLblWifiplayers); for (u8 i = 0; i < ARRAY_SIZE(m_gameinfoLblControlsReq); ++i) if (m_gameinfoLblControlsReq[i] != -1u && i < cnt_controlsreq) m_btnMgr.show(m_gameinfoLblControlsReq[i]); for (u8 i = 0; i < ARRAY_SIZE(m_gameinfoLblControls); ++i) if (m_gameinfoLblControls[i] != -1u && i < cnt_controls) m_btnMgr.show(m_gameinfoLblControls[i]); // When showing synopsis, only show user labels 2 and 3 for (u8 i = 0; i < ARRAY_SIZE(m_gameinfoLblUser); ++i) if (i < ARRAY_SIZE(m_gameinfoLblUser) / 2) m_btnMgr.show(m_gameinfoLblUser[i]); else m_btnMgr.hide(m_gameinfoLblUser[i], true); m_btnMgr.hide(m_gameinfoLblSynopsis,true); } } while (!BTN_HOME_PRESSED && !BTN_B_PRESSED); _hideGameInfo(false); }
int InitVideo (access_t *access, int fd, uint32_t caps) { access_sys_t *sys = access->p_sys; if (!(caps & V4L2_CAP_VIDEO_CAPTURE)) { msg_Err (access, "not a video capture device"); return -1; } if (SetupInput (VLC_OBJECT(access), fd)) return -1; sys->controls = ControlsInit (VLC_OBJECT(access), fd); /* Try and find default resolution if not specified */ struct v4l2_format fmt = { .type = V4L2_BUF_TYPE_VIDEO_CAPTURE }; if (v4l2_ioctl (fd, VIDIOC_G_FMT, &fmt) < 0) { msg_Err (access, "cannot get default format: %m"); return -1; } /* Print extra info */ msg_Dbg (access, "%d bytes maximum for complete image", fmt.fmt.pix.sizeimage ); /* Check interlacing */ switch (fmt.fmt.pix.field) { case V4L2_FIELD_INTERLACED: msg_Dbg (access, "Interlacing setting: interleaved"); /*if (NTSC) sys->block_flags = BLOCK_FLAG_BOTTOM_FIELD_FIRST; else*/ sys->block_flags = BLOCK_FLAG_TOP_FIELD_FIRST; break; case V4L2_FIELD_INTERLACED_TB: msg_Dbg (access, "Interlacing setting: interleaved top bottom" ); sys->block_flags = BLOCK_FLAG_TOP_FIELD_FIRST; break; case V4L2_FIELD_INTERLACED_BT: msg_Dbg (access, "Interlacing setting: interleaved bottom top" ); sys->block_flags = BLOCK_FLAG_BOTTOM_FIELD_FIRST; break; default: break; } /* Init I/O method */ if (caps & V4L2_CAP_STREAMING) { sys->bufc = 4; sys->bufv = StartMmap (VLC_OBJECT(access), fd, &sys->bufc); if (sys->bufv == NULL) return -1; access->pf_block = AccessRead; } else if (caps & V4L2_CAP_READWRITE) { sys->blocksize = fmt.fmt.pix.sizeimage; sys->bufv = NULL; access->pf_read = AccessReadStream; } else { msg_Err (access, "no supported I/O method"); return -1; } return 0; }
void CMenu::_code(void) { char code[4]; _hideConfig(); u32 n = 0; wchar_t codeLbl[] = L"_ _ _ _"; SetupInput(); memset(code, 0, sizeof code); m_btnMgr.setText(m_codeLblTitle, codeLbl); _showCode(); bool ageLockMode = false; bool modeChanged = false; bool goBack = false; if (!m_locked) { m_btnMgr.show(m_codeBtnAge); m_btnMgr.show(m_codeBtnErase); } while(!m_exit) { int c = -1; _mainLoopCommon(); if (BTN_HOME_PRESSED) goBack = true; if (WPadIR_ANY()) { if (BTN_B_PRESSED) goBack = true; else if (BTN_UP_PRESSED) m_btnMgr.up(); else if (BTN_DOWN_PRESSED) m_btnMgr.down(); else if (BTN_A_PRESSED) { if (m_btnMgr.selected(m_codeBtnBack)) goBack = true; else if (m_btnMgr.selected(m_codeBtnErase)) { goBack = true; _cfNeedsUpdate(); if (ageLockMode) m_cfg.remove("GENERAL", "age_lock"); else { m_cfg.remove("GENERAL", "parent_code"); m_locked = false; } } else if (m_btnMgr.selected(m_codeBtnAge)) modeChanged = true; else for (int i = 0; i < 10; ++i) if (m_btnMgr.selected(m_codeBtnKey[i])) { c = i; break; } } } else if (!ageLockMode) { // Map buttons to numbers c = -1; if (BTN_UP_PRESSED) c = 0; else if (BTN_LEFT_PRESSED) c = 1; else if (BTN_RIGHT_PRESSED) c = 2; else if (BTN_DOWN_PRESSED) c = 3; else if (BTN_MINUS_PRESSED) c = 4; else if (BTN_PLUS_PRESSED) c = 5; else if (BTN_A_PRESSED) c = 6; else if (BTN_B_PRESSED) c = 7; else if (BTN_1_PRESSED) c = 8; else if (BTN_2_PRESSED) c = 9; } if (goBack) { if (!ageLockMode) break; modeChanged = true; goBack = false; } // ageLockMode allows entry of numbers 2 - 19 // a first digit of 0 is ignored // a first digit of 2 - 9 is taken to mean a single digit number // a first digit of 1 will be the start of a 2 digit number else if (c != -1 && !(ageLockMode && (n == 0 && c == 0))) { codeLbl[n * 2] = ageLockMode ? '0' + c : 'X'; code[n++] = '0' + c; m_btnMgr.setText(m_codeLblTitle, codeLbl); } if (modeChanged) { modeChanged = false; memset(code, 0, sizeof code); n = 0; ageLockMode = !ageLockMode; if (ageLockMode) { int ageLockM = m_cfg.getInt("GENERAL", "age_lock"); if (ageLockM < 2 || ageLockM > 19) ageLockM = 19; m_btnMgr.hide(m_codeBtnAge, true); wchar_t ageLbl[40]; wcsncpy(ageLbl, (_t("cd3", L"Age Lock")).c_str(), 35); ageLbl[35] = 0; swprintf(ageLbl, 40, L"%ls: %d", ageLbl, ageLockM); m_btnMgr.setText(m_codeLblAge, ageLbl); m_btnMgr.show(m_codeLblAge); } else if (!m_locked) { m_btnMgr.show(m_codeBtnAge); m_btnMgr.hide(m_codeLblAge, true); } for (u32 i = 0; i < sizeof code; i++) codeLbl[i*2] = (ageLockMode && i > 1) ? ' ' : '_'; m_btnMgr.setText(m_codeLblTitle, codeLbl); } else { if (ageLockMode) { if ((n >= 2) || (n == 1 && c > 1)) { modeChanged = true; m_cfg.setString("GENERAL", "age_lock", string(code, 2).c_str()); _cfNeedsUpdate(); } } else if (n >= sizeof code) { if (m_locked) { if (memcmp(code, m_cfg.getString("GENERAL", "parent_code").c_str(), 4) == 0) { m_locked = false; _cfNeedsUpdate(); } else error(_t("cfgg25", L"Password incorrect.")); } else { m_cfg.setString("GENERAL", "parent_code", string(code, 4).c_str()); m_locked = true; _cfNeedsUpdate(); } break; } } } _hideCode(); _showConfig(); }
bool CMenu::_Boot(void) { boot_curPage = 1; SetupInput(); set_port = currentPort; bool prev_load = cur_load; u8 prev_ios = cur_ios; showBoot(); _refreshBoot(); while(!m_exit) { _mainLoopCommon(); if(BTN_HOME_PRESSED || BTN_B_PRESSED) break; else if(BTN_UP_PRESSED) m_btnMgr.up(); else if(BTN_DOWN_PRESSED) m_btnMgr.down(); else if((BTN_MINUS_PRESSED || BTN_LEFT_PRESSED) || (BTN_A_PRESSED && m_btnMgr.selected(m_bootBtnPageM))) { boot_curPage--; if(boot_curPage == 0) boot_curPage = boot_Pages; if(BTN_LEFT_PRESSED || BTN_MINUS_PRESSED) m_btnMgr.click(m_bootBtnPageM); _refreshBoot(); } else if(((BTN_PLUS_PRESSED || BTN_RIGHT_PRESSED)) || (BTN_A_PRESSED && m_btnMgr.selected(m_bootBtnPageP))) { boot_curPage++; if(boot_curPage > boot_Pages) boot_curPage = 1; if(BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED) m_btnMgr.click(m_bootBtnPageP); _refreshBoot(); } else if(BTN_A_PRESSED) { if(m_btnMgr.selected(m_bootBtnBack)) break; else if(m_btnMgr.selected(m_bootBtnLoadCIOS)) { cur_load = !cur_load; m_btnMgr.setText(m_bootBtnLoadCIOS, _optBoolToString(cur_load)); } else if(m_btnMgr.selected(m_bootLblCIOSrevM) || m_btnMgr.selected(m_bootLblCIOSrevP)) { bool increase = m_btnMgr.selected(m_bootLblCIOSrevP); CIOSItr itr = _installed_cios.find(cur_ios); if(increase) { itr++; if(itr == _installed_cios.end()) itr = _installed_cios.begin(); } else { if(itr == _installed_cios.begin()) itr = _installed_cios.end(); itr--; } cur_ios = itr->first; if(cur_ios > 0) m_btnMgr.setText(m_bootLblCurCIOSrev, wfmt(L"%i", cur_ios)); else m_btnMgr.setText(m_bootLblCurCIOSrev, L"AUTO"); } else if(m_btnMgr.selected(m_bootBtnUSBPort)) { set_port = !set_port; m_btnMgr.setText(m_bootBtnUSBPort, wfmt(L"%i", set_port)); } else if (m_btnMgr.selected(m_bootBtnManageSM)) { hideBoot(true, true); _CfgSrc(); showBoot(); _refreshBoot(); } else if (m_btnMgr.selected(m_bootBtnAsyncNet)) { m_cfg.setBool("GENERAL", "async_network", !m_cfg.getBool("GENERAL", "async_network", false)); m_btnMgr.setText(m_bootBtnAsyncNet, m_cfg.getBool("GENERAL", "async_network", false) ? _t("on", L"On") : _t("off", L"Off")); } else if (m_btnMgr.selected(m_bootBtnCategoryOnBoot)) { m_cfg.setBool("GENERAL", "category_on_start", !m_cfg.getBool("GENERAL", "category_on_start", false)); m_btnMgr.setText(m_bootBtnCategoryOnBoot, m_cfg.getBool("GENERAL", "category_on_start") ? _t("on", L"On") : _t("off", L"Off")); } else if (m_btnMgr.selected(m_bootBtnFtpOnBoot)) { m_cfg.setBool(FTP_DOMAIN, "auto_start", !m_cfg.getBool(FTP_DOMAIN, "auto_start", false)); m_btnMgr.setText(m_bootBtnFtpOnBoot, m_cfg.getBool(FTP_DOMAIN, "auto_start") ? _t("on", L"On") : _t("off", L"Off")); } } } if(prev_load != cur_load || prev_ios != cur_ios) InternalSave.SaveIOS(); if(set_port != currentPort) InternalSave.SavePort(set_port); hideBoot(false, true); if(prev_load != cur_load || prev_ios != cur_ios || set_port != currentPort) { m_exit = true; m_reload = true; return 1; } return 0; }
int main(int argc, wchar* argv[]) { if (setup_curses() < 0) { printf("failed to setup curses!\n"); } #ifdef TARGET_PANDORA signal(SIGSEGV, clean_exit); signal(SIGKILL, clean_exit); #endif /* Set home dir */ string home = "."; #if defined(USES_HOMEDIR) if(getenv("HOME") != NULL) { home = (string)getenv("HOME") + "/.reicast"; mkdir(home.c_str(), 0755); // create the directory if missing } #endif SetHomeDir(home); printf("Home dir is: %s\n", GetPath("/").c_str()); #if defined(SUPPORT_X11) x11_keymap[113] = DPad_Left; x11_keymap[114] = DPad_Right; x11_keymap[111] = DPad_Up; x11_keymap[116] = DPad_Down; x11_keymap[52] = Btn_Y; x11_keymap[53] = Btn_X; x11_keymap[54] = Btn_B; x11_keymap[55] = Btn_A; /* //TODO: Fix sliders x11_keymap[38] = DPad_Down; x11_keymap[39] = DPad_Down; */ x11_keymap[36] = Btn_Start; #endif common_linux_setup(); SetupInput(); settings.profile.run_counts=0; dc_init(argc,argv); #if !defined(TARGET_EMSCRIPTEN) dc_run(); #else emscripten_set_main_loop(&dc_run, 100, false); #endif #ifdef TARGET_PANDORA clean_exit(0); #endif return 0; }
void CMenu::_PluginSettings() { u8 i = 0; while(m_plugin.PluginExist(i)) i++; Plugin_Pages = static_cast<int>(ceil(static_cast<float>(i)/static_cast<float>(10))); m_max_plugins = i; //gprintf("Plugins found: %i, Pages: %i\n", m_max_plugins, Plugin_Pages); if(Plugin_Pages == 0) return; /* Only use Plugin Settings if Plugins are found */ SetupInput(); Plugin_curPage = 1; _showPluginSettings(); _updatePluginText(); while(!m_exit) { _mainLoopCommon(); if(BTN_HOME_PRESSED || BTN_B_PRESSED) { m_cfg.save(); break; } else if(BTN_UP_PRESSED) m_btnMgr.up(); else if(BTN_DOWN_PRESSED) m_btnMgr.down(); if((BTN_MINUS_PRESSED || BTN_LEFT_PRESSED) || (BTN_A_PRESSED && m_btnMgr.selected(m_pluginBtnPageM))) { Plugin_curPage--; if(Plugin_curPage == 0) Plugin_curPage = Plugin_Pages; if(BTN_LEFT_PRESSED || BTN_MINUS_PRESSED) m_btnMgr.click(m_pluginBtnPageM); _updatePluginCheckboxes(); _updatePluginText(); } else if(((BTN_PLUS_PRESSED || BTN_RIGHT_PRESSED)) || (BTN_A_PRESSED && m_btnMgr.selected(m_pluginBtnPageP))) { Plugin_curPage++; if(Plugin_curPage > Plugin_Pages) Plugin_curPage = 1; if(BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED) m_btnMgr.click(m_pluginBtnPageP); _updatePluginCheckboxes(); _updatePluginText(); } if(BTN_A_PRESSED) { if(m_btnMgr.selected(m_pluginBtnBack)) { m_cfg.save(); break; } u32 IteratorHelp = (Plugin_curPage - 1) * 10; for(u8 i = 0; i < min(IteratorHelp+10, (u32)m_max_plugins)-IteratorHelp+1; ++i) { if(m_btnMgr.selected(m_pluginBtn[i])) { if(i == 0) { m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount); for(u8 j = 0; m_plugin.PluginExist(j); j++) m_plugin.SetEnablePlugin(m_cfg, j, (enabledPluginsCount == 0) ? 2 : 1); } else m_plugin.SetEnablePlugin(m_cfg, i+IteratorHelp-1); _updatePluginCheckboxes(); break; } } } } _hidePluginSettings(); _loadList(); }