Skip to content

Commit

Permalink
[Infineon] Implement button wake up handler (#26178)
Browse files Browse the repository at this point in the history
* Add API to re-send the pending event if wake up from button.
  • Loading branch information
AlvinHsiao authored Apr 26, 2023
1 parent c2a28c8 commit 23a8e5a
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,13 @@ extern wiced_result_t wiced_button_manager_init(button_manager_t * manager,
*/
extern wiced_result_t wiced_button_manager_deinit(button_manager_t * manager);

/**
* Checks if there is pending event and then re-send the event.
*
* @return void : no return value is expected.
*/
extern void wiced_button_manager_pending_event_handle(void);

#ifdef __cplusplus
} /* extern "C" */
#endif
23 changes: 23 additions & 0 deletions third_party/infineon/cyw30739_sdk/src/wiced_button_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include "wiced_memory.h"
#include "wiced_misc_rtos_utils.h"
#endif
#include <wiced_sleep.h>

/******************************************************
* Macros
Expand Down Expand Up @@ -675,6 +676,28 @@ static button_manager_button_t * get_button(platform_button_t id)
return NULL;
}

/**
* Checks if there is pending event and then re-send the event.
*
* @return void : no return value is expected.
*/
void wiced_button_manager_pending_event_handle(void)
{
uint32_t a;
if (wiced_sleep_get_boot_mode() == WICED_SLEEP_FAST_BOOT)
{
for (a = 0; a < button_manager->number_of_buttons; a++)
{
if (platform_button_pending_event_get_and_clear(button_manager->buttons[a].configuration->button))
{
button_manager->configuration->event_handler(&button_manager->buttons[a], BUTTON_CLICK_EVENT,
BUTTON_STATE_RELEASED);
break;
}
}
}
}

#ifdef CYW55572
static void button_event_defer_to_mpaf(void * arg)
{
Expand Down

0 comments on commit 23a8e5a

Please sign in to comment.