void buttons_irq(uint8_t buttons) {
  if (gfxState == GFX_STATE_MEASURE) {
    if (buttons & BUTTON_A) { // record screen
      gfxState = GFX_STATE_RECORD;
    } else if (buttons & BUTTON_D) { // info
      gfxScroll = 0;
      gfxState = GFX_STATE_INFO;
    }
  } else if (gfxState == GFX_STATE_INFO) {
    if (buttons & BUTTON_D) { // exit
      gfxState = GFX_STATE_MEASURE;
    }
  } else if (gfxState == GFX_STATE_RECORD) {
    if (buttons & BUTTON_A) { // start/stop
      if (recorder_is_recording()) {
        recorder_stop();
      } else {
        recorder_start(1000);
      }
    } else if (buttons & BUTTON_D) { // exit
      gfxState = GFX_STATE_MEASURE;
    }
  }

#ifdef DISP6800_ENABLE
  process_poll(&gfx_update_process);
#endif
}
Пример #2
0
/* helper for recorder_record_* */
static void
recorder_record_name (const_string prefix, const_string name)
{
    if (recorder_enabled) {
        if (!recorder_file)
            recorder_start();
        fprintf(recorder_file, "%s %s\n", prefix, name);
        fflush(recorder_file);
    }
}