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; }
static void handleNavigationKeys (BrailleDisplay *brl, KeyNumberSet keys) { keys &= brl->data->allNavigationKeys; enqueueUpdatedKeys(brl, keys, &brl->data->pressedNavigationKeys, MT_GRP_NavigationKeys, 0); }