/* this registers the appropriate function to the appropriate button */ void config_provider(void *context) { window_single_click_subscribe(BUTTON_ID_SELECT, select_click_handler); window_single_click_subscribe(BUTTON_ID_UP, up_click_handler); window_single_click_subscribe(BUTTON_ID_DOWN, down_click_handler); window_multi_click_subscribe(BUTTON_ID_UP, 2, 10, 0, true, up_multi_click_handler); window_multi_click_subscribe(BUTTON_ID_SELECT, 2, 10, 0, true, select_multi_click_handler); window_multi_click_subscribe(BUTTON_ID_DOWN, 2, 10, 0, true, down_multi_click_handler); }
static void click_config_provider(void *context) { window_single_click_subscribe(BUTTON_ID_SELECT, select_click_handler); window_single_click_subscribe(BUTTON_ID_UP, up_click_handler); window_single_click_subscribe(BUTTON_ID_DOWN, down_click_handler); window_long_click_subscribe(BUTTON_ID_SELECT, 700, select_long_click_handler, NULL); window_long_click_subscribe(BUTTON_ID_UP, 700, up_long_click_handler, NULL); window_long_click_subscribe(BUTTON_ID_DOWN, 700, down_long_click_handler, NULL); window_multi_click_subscribe(BUTTON_ID_SELECT, 2, 10, 0, true, select_multi_click_handler); window_multi_click_subscribe(BUTTON_ID_UP, 2, 10, 0, true, up_multi_click_handler); window_multi_click_subscribe(BUTTON_ID_DOWN, 2, 10, 0, true, down_multi_click_handler); }
static void click_config_provider(void *context) { window_single_click_subscribe(BUTTON_ID_SELECT, select_click_handler); window_single_click_subscribe(BUTTON_ID_UP, up_click_handler); window_single_click_subscribe(BUTTON_ID_DOWN, down_click_handler); window_long_click_subscribe(BUTTON_ID_SELECT, 0, long_select_handler, NULL); window_long_click_subscribe(BUTTON_ID_UP, 0, long_up_handler, NULL); window_long_click_subscribe(BUTTON_ID_DOWN, 0, long_down_handler, NULL); window_multi_click_subscribe(BUTTON_ID_SELECT, 2, 4, 200, true, select_multi_click_handler); }
static void config_provider(void *context) { // single click / repeat-on-hold config: const uint16_t repeat_interval_ms = 1000; window_single_repeating_click_subscribe(BUTTON_ID_SELECT, repeat_interval_ms, select_single_click_handler); // multi click config: window_multi_click_subscribe(BUTTON_ID_SELECT, 2, 10, 0, true, select_multi_click_handler); // long click config: window_long_click_subscribe(BUTTON_ID_SELECT, 700, select_long_click_handler, select_long_click_release_handler); }
static void local_click_config_provider_wrapper( ButtonId button_id, void* context ) { if ( config_enabled( button_id, CLICKTYPE_SINGLE ) ) window_single_click_subscribe( button_id, local_click_handler_single ); // single click if ( config_enabled( button_id, CLICKTYPE_LONG ) ) window_long_click_subscribe( button_id, 0, NULL, local_click_handler_long ); // long click, call on up if ( config_enabled( button_id, CLICKTYPE_MULTI ) ) window_multi_click_subscribe( button_id, 2, 2, 0, true, local_click_handler_multi ); // double click, call on last window_set_click_context( button_id, context); }
void click_config_provider(Window *window) { // Single Click Up Action window_single_click_subscribe(BUTTON_ID_UP, up_single_click_handler); // Single Click Down window_single_click_subscribe(BUTTON_ID_DOWN, down_single_click_handler); // Single Click Select window_single_click_subscribe(BUTTON_ID_SELECT, select_single_click_handler); // Long Click Select window_multi_click_subscribe(BUTTON_ID_SELECT, 2, 10, 0 , true, select_multi_click_handler); }
static void prv_click_config_provider(void *context) { // Using multi-click instead of single-click will allow the action bar animation to complete const uint8_t min_clicks = 1; const uint8_t max_clicks = 2; const uint16_t timeout_ms = 25; const bool last_click_only = true; window_multi_click_subscribe(BUTTON_ID_SELECT, min_clicks, max_clicks, timeout_ms, last_click_only, prv_select_click_handler); const uint16_t repeat_interval_ms = 50; window_single_repeating_click_subscribe(BUTTON_ID_UP, repeat_interval_ms, prv_up_click_handler); window_single_repeating_click_subscribe(BUTTON_ID_DOWN, repeat_interval_ms, prv_down_click_handler); window_set_click_context(BUTTON_ID_SELECT, context); }
void window_multi_click_subscribe__patch(ButtonId button_id, uint8_t min_clicks, uint8_t max_clicks, uint16_t timeout, bool last_click_only, ClickHandler handler) { button_id = remap[button_id]; window_multi_click_subscribe(button_id, min_clicks, max_clicks, timeout, last_click_only, handler); }
void config_provider(Window *window) { // single click / repeat-on-hold config: // multi click config: window_multi_click_subscribe(BUTTON_ID_SELECT, 4, 6, 0, true, select_multi_click_handler); }