static void IdlePageGameOfLifeConfigButtons(struct IdleInfo *Info) { /* map this mode's entry button to go back to the idle mode */ EnableButtonAction(IDLE_MODE, SW_F_INDEX, BUTTON_STATE_IMMEDIATE, IdleUpdate, RESET_DISPLAY_TIMER); EnableButtonAction(IDLE_MODE, SW_E_INDEX, BUTTON_STATE_IMMEDIATE, ListPairedDevicesMsg, NO_MSG_OPTIONS); /* led is already assigned */ EnableButtonAction(IDLE_MODE, SW_C_INDEX, BUTTON_STATE_IMMEDIATE, MenuModeMsg, MENU_MODE_OPTION_PAGE1); DisableButtonAction(IDLE_MODE, SW_B_INDEX, BUTTON_STATE_IMMEDIATE); EnableButtonAction(IDLE_MODE, SW_A_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, RESET_DISPLAY_TIMER); }
void IdlePageQrCodeConfigButtons(void) { EnableButtonAction(IDLE_MODE, SW_F_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, QRBUTTON_EXIT); EnableButtonAction(IDLE_MODE, SW_E_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, QRBUTTON_EXIT); /* led is already assigned */ EnableButtonAction(IDLE_MODE, SW_C_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, QRBUTTON_LEFT); EnableButtonAction(IDLE_MODE, SW_B_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, QRBUTTON_FIRE); EnableButtonAction(IDLE_MODE, SW_A_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, QRBUTTON_RIGHT); }
static void DontChangeButtonConfiguration(void) { /* assign LED button to all modes */ for ( unsigned char i = 0; i < NUMBER_OF_MODES; i++ ) { /* turn off led 3 seconds after button has been released */ EnableButtonAction(i, SW_D_INDEX, BUTTON_STATE_PRESSED, LedChange, LED_START_OFF_TIMER); /* turn on led immediately when button is pressed */ EnableButtonAction(i, SW_D_INDEX, BUTTON_STATE_IMMEDIATE, LedChange, LED_ON_OPTION); /* software reset is available in all modes */ EnableButtonAction(i, SW_F_INDEX, BUTTON_STATE_LONG_HOLD, SoftwareResetMsg, MASTER_RESET_OPTION); } }
void menu_config_buttons(void) { struct menu const *m = menu_current(); int i; for(i = 0; i < MENU_ITEMS; ++i) { EnableButtonAction(IDLE_MODE, index2buttonindex[i], m->items[i].ButtonPressType, MenuButtonMsg, index2buttonmsgoption[i]); } EnableButtonAction(IDLE_MODE, SW_C_INDEX, BUTTON_STATE_IMMEDIATE, MenuButtonMsg, MENU_BUTTON_EXIT); }
/*! Attach callback to button press type. Each button press type is associated * with a display mode. * * No error checking * * \param tHostMsg* pMsg - A message with a tButtonActionPayload payload */ static void EnableButtonMsgHandler(tMessage* pMsg) { tButtonActionPayload* pButtonActionPayload = (tButtonActionPayload*)pMsg->pBuffer; EnableButtonAction(pButtonActionPayload->DisplayMode, pButtonActionPayload->ButtonIndex, pButtonActionPayload->ButtonPressType, pButtonActionPayload->CallbackMsgType, pButtonActionPayload->CallbackMsgOptions); }
void IdlePageMainConfigButtons(struct IdleInfo *Info) { //etConnectionState cs = QueryConnectionState(); //switch (cs) //{ //case Initializing: CurrentIdlePage = BluetoothOffPage; break; //case ServerFailure: CurrentIdlePage = BluetoothOffPage; break; //case RadioOn: CurrentIdlePage = RadioOnWithoutPairingInfoPage; break; //case Paired: CurrentIdlePage = RadioOnWithPairingInfoPage; break; //case Connected: CurrentIdlePage = NormalPage; break; //case RadioOff: CurrentIdlePage = BluetoothOffPage; break; //case RadioOffLowBattery: CurrentIdlePage = BluetoothOffPage; break; //case ShippingMode: CurrentIdlePage = BluetoothOffPage; break; //default: CurrentIdlePage = BluetoothOffPage; break; etConnectionState cs = QueryConnectionState(); switch (cs) { case RadioOff: case RadioOffLowBattery: case ShippingMode: case Initializing: case ServerFailure: case RadioOn: break; case Paired: case Connected: EnableButtonAction(IDLE_MODE, SW_F_INDEX, BUTTON_STATE_IMMEDIATE, WatchStatusMsg, RESET_DISPLAY_TIMER); EnableButtonAction(IDLE_MODE, SW_E_INDEX, BUTTON_STATE_IMMEDIATE, ListPairedDevicesMsg, NO_MSG_OPTIONS); EnableButtonAction(IDLE_MODE, SW_C_INDEX, BUTTON_STATE_IMMEDIATE, MenuModeMsg, MENU_MODE_OPTION_PAGE1); EnableButtonAction(IDLE_MODE, SW_B_INDEX, BUTTON_STATE_IMMEDIATE, ToggleSecondsMsg, TOGGLE_SECONDS_OPTIONS_UPDATE_IDLE); EnableButtonAction(IDLE_MODE, SW_A_INDEX, BUTTON_STATE_IMMEDIATE, BarCode, RESET_DISPLAY_TIMER); } }