示例#1
0
static int
interpretKeyCode_MobilLine (BrailleDisplay *brl, unsigned char code) {
  if ((code >= brl->data->model->firstRoutingKey) &&
      (code < (brl->data->model->firstRoutingKey + brl->textColumns))) {
    enqueueKey(brl, HD_GRP_RoutingKeys, (code - brl->data->model->firstRoutingKey));
    return 1;
  }

  {
    unsigned char group = (code & 0XF0) >> 4;

    if (group <= 2) {
      unsigned char shift = group * 4;
      KeyNumberSet pressedKeys = (brl->data->pressedKeys & ~(0XF << shift)) | ((code & 0XF) << shift);

      enqueueUpdatedKeys(brl, pressedKeys, &brl->data->pressedKeys,
                         HD_GRP_NavigationKeys, 0);
      return 1;
    }
  }

  return 0;
}
示例#2
0
文件: braille.c 项目: brltty/brltty
static void
handleNavigationKeys (BrailleDisplay *brl, KeyNumberSet keys) {
  keys &= brl->data->allNavigationKeys;
  enqueueUpdatedKeys(brl, keys, &brl->data->pressedNavigationKeys, MT_GRP_NavigationKeys, 0);
}