static void boardTimerCb(void* dummy, UInt32 time) { if (cap.state == CAPTURE_PLAY) { // If we reached the end time +/- 2 seconds we know we should stop // the capture. If not, we restart the timer 1/4 of max time into // the future. (Enventually we'll hit the real end time // This is an ugly workaround for the internal timers short timespan // (~3 minutes). Using the 64 bit timer we can extend the capture to // 90 days. // Will work correct with 'real' 64 bit timers boardSystemTime64(); // Sync clock if (boardCaptureCompleteAmount() < 1000) { boardTimerAdd(cap.timer, time + 0x40000000); } else { actionEmuTogglePause(); cap.state = CAPTURE_IDLE; } } if (cap.state == CAPTURE_REC) { cap.state = CAPTURE_IDLE; boardCaptureStart(cap.filename); } }
void shortcutCheckUp(Shortcuts* s, int type, int mods, int keySym) { ShotcutHotkey key = { type, mods, keySym }; if (s->state.maxSpeedIsSet) { actionMaxSpeedRelease(); s->state.maxSpeedIsSet = 0; } if (HOTKEY_EQ(key, s->quit)) actionQuit(); if (HOTKEY_EQ(key, s->fdcTiming)) actionToggleFdcTiming(); if (HOTKEY_EQ(key, s->spritesEnable)) actionToggleSpriteEnable(); if (HOTKEY_EQ(key, s->switchMsxAudio)) actionToggleMsxAudioSwitch(); if (HOTKEY_EQ(key, s->switchFront)) actionToggleFrontSwitch(); if (HOTKEY_EQ(key, s->switchPause)) actionTogglePauseSwitch(); if (HOTKEY_EQ(key, s->captureAudio)) actionToggleWaveCapture(); if (HOTKEY_EQ(key, s->captureScreenshot)) actionScreenCapture(); if (HOTKEY_EQ(key, s->cpuStateQuickLoad)) actionQuickLoadState(); if (HOTKEY_EQ(key, s->cpuStateQuickSave)) actionQuickSaveState(); if (HOTKEY_EQ(key, s->cartRemove[0])) actionCartRemove1(); if (HOTKEY_EQ(key, s->cartRemove[1])) actionCartRemove2(); if (HOTKEY_EQ(key, s->cartAutoReset)) actionToggleCartAutoReset(); if (HOTKEY_EQ(key, s->diskQuickChange)) actionDiskQuickChange(); if (HOTKEY_EQ(key, s->diskRemove[0])) actionDiskRemoveA(); if (HOTKEY_EQ(key, s->diskRemove[1])) actionDiskRemoveB(); if (HOTKEY_EQ(key, s->diskAutoReset)) actionToggleDiskAutoReset(); if (HOTKEY_EQ(key, s->casRewind)) actionCasRewind(); if (HOTKEY_EQ(key, s->casRemove)) actionCasRemove(); if (HOTKEY_EQ(key, s->casToggleReadonly)) actionCasToggleReadonly(); if (HOTKEY_EQ(key, s->casAutoRewind)) actionToggleCasAutoRewind(); if (HOTKEY_EQ(key, s->casSave)) actionCasSave(); if (HOTKEY_EQ(key, s->emulationRunPause)) actionEmuTogglePause(); if (HOTKEY_EQ(key, s->emulationStop)) actionEmuStop(); if (HOTKEY_EQ(key, s->emuSpeedNormal)) actionEmuSpeedNormal(); if (HOTKEY_EQ(key, s->emuSpeedInc)) actionEmuSpeedIncrease(); if (HOTKEY_EQ(key, s->emuSpeedDec)) actionEmuSpeedDecrease(); if (HOTKEY_EQ(key, s->emuSpeedToggle)) actionMaxSpeedToggle(); if (HOTKEY_EQ(key, s->resetSoft)) actionEmuResetSoft(); if (HOTKEY_EQ(key, s->resetHard)) actionEmuResetHard(); if (HOTKEY_EQ(key, s->resetClean)) actionEmuResetClean(); if (HOTKEY_EQ(key, s->volumeIncrease)) actionVolumeIncrease(); if (HOTKEY_EQ(key, s->volumeDecrease)) actionVolumeDecrease(); if (HOTKEY_EQ(key, s->volumeMute)) actionMuteToggleMaster(); if (HOTKEY_EQ(key, s->volumeStereo)) actionVolumeToggleStereo(); if (HOTKEY_EQ(key, s->windowSizeNormal)) actionWindowSizeNormal(); if (HOTKEY_EQ(key, s->windowSizeFullscreen)) actionWindowSizeFullscreen(); if (HOTKEY_EQ(key, s->windowSizeFullscreenToggle)) actionFullscreenToggle(); }
void actionVideoCaptureRec() { if (emulatorGetState() == EMU_STOPPED) { strcpy(state.properties->filehistory.videocap, generateSaveFilename(state.properties, videoDir, videoPrefix, ".cap", 2)); boardCaptureStart(state.properties->filehistory.videocap); actionEmuTogglePause(); archUpdateMenu(0); return; } emulatorSuspend(); strcpy(state.properties->filehistory.videocap, generateSaveFilename(state.properties, videoDir, videoPrefix, ".cap", 2)); boardCaptureStart(state.properties->filehistory.videocap); emulatorResume(); archUpdateMenu(0); }