void osdHandleFirst(AG_Event *event) { state.currentFrame = 0; if (state.mode & SM_RECORD) { cmdStop(0); } osdUpdate(); }
void osdInitPlaybackWindow() { AG_Box *box; view.playbackWindow = osdNewWindow("Quick Controls"); box = AG_BoxNewHoriz(view.playbackWindow, AG_BOX_EXPAND); // The labels for Record and Pause are the "longest legnth" versions of the // state of the button, so that no button resizing is necessary. AG_ButtonNewFn(box, 0, "Respawn", osdHandleRespawn, 0); AG_SpacerNewVert(box); view.recordButton = AG_ButtonNewFn(box, 0, "Record", osdHandleRecord, 0); AG_ButtonNewFn(box, 0, "<<", osdHandleFirst, 0); AG_ButtonNewFn(box, AG_BUTTON_REPEAT, "<", osdHandlePrev, 0); view.playButton = AG_ButtonNewFn(box, 0, "Pause", osdHandlePlay, 0); AG_ButtonNewFn(box, AG_BUTTON_REPEAT, ">", osdHandleNext, 0); AG_ButtonNewFn(box, 0, ">>", osdHandleLast, 0); AG_SpacerNewVert(box); AG_ButtonNewFn(box, 0, "Quit", osdHandleQuit, 0); AG_WindowSetPosition(view.playbackWindow, AG_WINDOW_TR, 0); AG_WindowShow(view.playbackWindow); osdUpdate(); }
void updateOsd(uint32_t currentTime) { static uint32_t counter; #ifdef MAX7456_DMA_CHANNEL_TX // don't touch buffers if DMA transaction is in progress if (max7456DmaInProgres()) return; #endif // MAX7456_DMA_CHANNEL_TX // redraw values in buffer if (counter++ % 5 == 0) osdUpdate(currentTime); else // rest of time redraw screen 10 chars per idle to don't lock the main idle max7456DrawScreen(); // do not allow ARM if we are in menu if (inMenu) DISABLE_ARMING_FLAG(OK_TO_ARM); }
void taskUpdateOsd(timeUs_t currentTimeUs) { if (feature(FEATURE_OSD)) { osdUpdate(currentTimeUs); } }
void taskDrawScreen(void) { osdUpdate(); }
void osdHandleLast(AG_Event *event) { state.currentFrame = state.totalFrames - 1; cmdStop(0); osdUpdate(); }
void osdHandleNext(AG_Event *event) { if (state.currentFrame < state.totalFrames - 1) state.currentFrame++; cmdStop(0); osdUpdate(); }
void osdHandlePrev(AG_Event *event) { if (state.currentFrame > 0) state.currentFrame--; cmdStop(0); osdUpdate(); }
void osdHandlePlay(AG_Event *event) { cmdPlay(0); osdUpdate(); }
void osdHandleRecord(AG_Event *event) { cmdRecord(0); osdUpdate(); }
void osdHandleRespawn(AG_Event *event) { cmdSpawn(0); osdUpdate(); }