From 33165fdde8702888f8b625ea04f1ef574e70aab5 Mon Sep 17 00:00:00 2001 From: WillyJL Date: Sat, 29 Nov 2025 20:07:25 +0100 Subject: [PATCH] Infrared: Add compatibility polyfill now that infrared_brute_force is in library --nobuild --- applications/main/infrared/infrared_cli.c | 2 +- .../common/infrared_scene_universal_common.c | 3 +-- .../scenes/infrared_scene_universal_from_file.c | 2 +- lib/infrared/signal/infrared_brute_force.c | 6 +++++- lib/infrared/signal/infrared_brute_force.h | 14 +++++++++++++- targets/f7/api_symbols.csv | 3 +++ 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/applications/main/infrared/infrared_cli.c b/applications/main/infrared/infrared_cli.c index b01185b15..843a8afd3 100644 --- a/applications/main/infrared/infrared_cli.c +++ b/applications/main/infrared/infrared_cli.c @@ -470,7 +470,7 @@ static void infrared_cli_brute_force_signals( printf("Missing signal name.\r\n"); break; } - if(infrared_brute_force_calculate_messages(brute_force, false, true) != + if(infrared_brute_force_calculate_messages_ex(brute_force, false, true) != InfraredErrorCodeNone) { printf("Invalid remote name.\r\n"); break; diff --git a/applications/main/infrared/scenes/common/infrared_scene_universal_common.c b/applications/main/infrared/scenes/common/infrared_scene_universal_common.c index 28f039fec..4e5a965a7 100644 --- a/applications/main/infrared/scenes/common/infrared_scene_universal_common.c +++ b/applications/main/infrared/scenes/common/infrared_scene_universal_common.c @@ -49,8 +49,7 @@ static void infrared_scene_universal_common_hide_popup(InfraredApp* infrared) { static int32_t infrared_scene_universal_common_task_callback(void* context) { InfraredApp* infrared = context; - const InfraredErrorCode error = - infrared_brute_force_calculate_messages(infrared->brute_force, false, false); + const InfraredErrorCode error = infrared_brute_force_calculate_messages(infrared->brute_force); view_dispatcher_send_custom_event( infrared->view_dispatcher, infrared_custom_event_pack(InfraredCustomEventTypeTaskFinished, 0)); diff --git a/applications/main/infrared/scenes/infrared_scene_universal_from_file.c b/applications/main/infrared/scenes/infrared_scene_universal_from_file.c index f1f188464..d2638d59f 100644 --- a/applications/main/infrared/scenes/infrared_scene_universal_from_file.c +++ b/applications/main/infrared/scenes/infrared_scene_universal_from_file.c @@ -16,7 +16,7 @@ static int32_t infrared_scene_universal_from_file_task_callback(void* context) { ButtonMenu* button_menu = infrared->button_menu; InfraredBruteForce* brute_force = infrared->brute_force; const InfraredErrorCode error = - infrared_brute_force_calculate_messages(infrared->brute_force, true, false); + infrared_brute_force_calculate_messages_ex(infrared->brute_force, true, false); if(!INFRARED_ERROR_PRESENT(error)) { // add btns diff --git a/lib/infrared/signal/infrared_brute_force.c b/lib/infrared/signal/infrared_brute_force.c index 1beda1977..6f094e5b0 100644 --- a/lib/infrared/signal/infrared_brute_force.c +++ b/lib/infrared/signal/infrared_brute_force.c @@ -93,7 +93,7 @@ void infrared_brute_force_set_db_filename(InfraredBruteForce* brute_force, const brute_force->db_filename = db_filename; } -InfraredErrorCode infrared_brute_force_calculate_messages( +InfraredErrorCode infrared_brute_force_calculate_messages_ex( InfraredBruteForce* brute_force, bool auto_detect_buttons, bool ignore_unknown_buttons) { @@ -175,6 +175,10 @@ InfraredErrorCode infrared_brute_force_calculate_messages( return error; } +InfraredErrorCode infrared_brute_force_calculate_messages(InfraredBruteForce* brute_force) { + return infrared_brute_force_calculate_messages_ex(brute_force, false, false); +} + bool infrared_brute_force_start( InfraredBruteForce* brute_force, uint32_t index, diff --git a/lib/infrared/signal/infrared_brute_force.h b/lib/infrared/signal/infrared_brute_force.h index fcf85210c..c1148242e 100644 --- a/lib/infrared/signal/infrared_brute_force.h +++ b/lib/infrared/signal/infrared_brute_force.h @@ -52,13 +52,25 @@ void infrared_brute_force_set_db_filename(InfraredBruteForce* brute_force, const * * @param[in,out] brute_force pointer to the instance to be updated. * @param[in] auto_detect_buttons bool whether to automatically register newly discovered buttons. + * @param[in] ignore_unknown_buttons bool whether to ignore unknown buttons when auto_detect_buttons is false. * @returns InfraredErrorCodeNone on success, otherwise error code. */ -InfraredErrorCode infrared_brute_force_calculate_messages( +InfraredErrorCode infrared_brute_force_calculate_messages_ex( InfraredBruteForce* brute_force, bool auto_detect_buttons, bool ignore_unknown_buttons); +/** + * @brief Build a signal dictionary from a previously set database file. + * + * This function must be called each time after setting the database via + * a infrared_brute_force_set_db_filename() call. + * + * @param[in,out] brute_force pointer to the instance to be updated. + * @returns InfraredErrorCodeNone on success, otherwise error code. + */ +InfraredErrorCode infrared_brute_force_calculate_messages(InfraredBruteForce* brute_force); + /** * @brief Start transmitting signals from a category stored in the dictionary. * diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 342671059..0179b6ad1 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -2154,7 +2154,10 @@ Function,+,infrared_alloc_encoder,InfraredEncoderHandler*, Function,-,infrared_brute_force_add_record,void,"InfraredBruteForce*, uint32_t, const char*" Function,-,infrared_brute_force_alloc,InfraredBruteForce*, Function,-,infrared_brute_force_calculate_messages,InfraredErrorCode,InfraredBruteForce* +Function,-,infrared_brute_force_calculate_messages_ex,InfraredErrorCode,"InfraredBruteForce*, _Bool, _Bool" Function,-,infrared_brute_force_free,void,InfraredBruteForce* +Function,-,infrared_brute_force_get_button_count,size_t,const InfraredBruteForce* +Function,-,infrared_brute_force_get_button_name,const char*,"const InfraredBruteForce*, size_t" Function,-,infrared_brute_force_is_started,_Bool,const InfraredBruteForce* Function,-,infrared_brute_force_reset,void,InfraredBruteForce* Function,-,infrared_brute_force_send,_Bool,"InfraredBruteForce*, uint32_t"