예제 #1
0
static int
startFreezeReminderAlarm (void) {
  if (freezeReminderAlarm) return 1;
  return asyncSetAlarmIn(&freezeReminderAlarm,
                         SCREEN_FREEZE_REMINDER_INTERVAL,
                         handleFreezeReminderAlarm, NULL);
}
예제 #2
0
static void
setBrailleInputAlarm (int delay, void *data) {
  if (!brailleInputAlarm) {
    asyncSetAlarmIn(&brailleInputAlarm, delay, handleBrailleInputAlarm, data);
  }
}
예제 #3
0
파일: blink.c 프로젝트: hinderer/brltty
static void
setBlinkAlarm (BlinkDescriptor *blink) {
    asyncSetAlarmIn(&blink->alarmHandle, getBlinkDuration(blink), handleBlinkAlarm, blink);
}
예제 #4
0
파일: scr_real.c 프로젝트: BaJIeK/brltty
static int
gpmOpenConnection (void) {
  switch (gpmConnectionState) {
    case  GCS_CLOSED: {
      Gpm_Connect options = {
        .eventMask = GPM_MOVE,
        .defaultMask = ~0,
        .minMod = 0,
        .maxMod = ~0
      };

      gpm_tried = 0;
      gpm_zerobased = 1;

      if (Gpm_Open(&options, -1) == -1) {
        logMessage(GPM_LOG_LEVEL, "GPM open error: %s", strerror(errno));
        asyncSetAlarmIn(NULL, 5000, gpmResetConnection, NULL);
        gpmConnectionState = GCS_FAILED;
        return 0;
      }

      logMessage(GPM_LOG_LEVEL, "GPM opened: fd=%d con=%d", gpm_fd, gpm_consolefd);
      gpmConnectionState = GCS_OPENED;
    }

    case GCS_OPENED:
      return 1;
  }

  return 0;
}

static void
gpmCloseConnection (int alreadyClosed) {
  if (gpmConnectionState == GCS_OPENED) {
    if (!alreadyClosed) Gpm_Close();
    logMessage(GPM_LOG_LEVEL, "GPM closed");
  }
  gpmConnectionState = GCS_CLOSED;
}
#endif /* HAVE_LIBGPM */

static int
routeCursor_RealScreen (int column, int row, int screen) {
  return startRouting(column, row, screen);
}

static int
highlightRegion_RealScreen (int left, int right, int top, int bottom) {
  FILE *console = getConsole();

  if (console) {
#ifdef HAVE_LIBGPM
    if (gpmOpenConnection() && (gpm_fd >= 0)) {
      if (Gpm_DrawPointer(left, top, fileno(console)) != -1) return 1;

      if (errno != EINVAL) {
        logMessage(GPM_LOG_LEVEL, "Gpm_DrawPointer error: %s", strerror(errno));
        gpmCloseConnection(0);
        return 0;
      }
    }
#endif /* HAVE_LIBGPM */
  }

  return 0;
}
예제 #5
0
static void
setExecuteCommandAlarm (void *data) {
  asyncSetAlarmIn(NULL, 0, handleExecuteCommandAlarm, data);
}