Skip to content

Commit

Permalink
Fixed furi_assert fail for view dispatcher custom callback set function
Browse files Browse the repository at this point in the history
  • Loading branch information
Sandro Kalatozishvili committed Oct 10, 2023
1 parent e56a0c2 commit c26ea5c
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 22 deletions.
3 changes: 2 additions & 1 deletion deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

# Change it according to the root path of the used firmware
FLIPPER_FIRMWARE="/opt/flipper/firmwares/unleashed-firmware"
#FLIPPER_FIRMWARE="/opt/flipper/firmwares/flipperzero-firmware"

# Private variables
XREMOTE_PROJ_PATH=$(dirname $(readlink -f "$0"))
Expand All @@ -26,4 +27,4 @@ for arg in "$@"; do
if [[ $arg == "--run" || $arg == "-r" ]]; then
[ $DEPLOY_DONE -eq 1 ] && sudo qflipper
fi
done
done
2 changes: 1 addition & 1 deletion xremote.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@

#define XREMOTE_VERSION_MAJOR 1
#define XREMOTE_VERSION_MINOR 0
#define XREMOTE_BUILD_NUMBER 4
#define XREMOTE_BUILD_NUMBER 5

void xremote_get_version(char* version, size_t length);
10 changes: 8 additions & 2 deletions xremote_learn.c
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,12 @@ static void xremote_learn_finish(XRemoteLearnContext* learn_ctx) {
xremote_learn_switch_to_view(learn_ctx, XRemoteViewSubmenu);
}

static bool xremote_learn_custom_event_dummy_callback(void* context, uint32_t event) {
UNUSED(context);
UNUSED(event);
return true;
}

static bool xremote_learn_custom_event_callback(void* context, uint32_t event) {
xremote_app_assert(context, false);
XRemoteLearnContext* learn_ctx = context;
Expand Down Expand Up @@ -363,8 +369,8 @@ static void xremote_learn_context_free(XRemoteLearnContext* learn_ctx) {
xremote_learn_exit_dialog_free(learn_ctx);

ViewDispatcher* view_disp = learn_ctx->app_ctx->view_dispatcher;
view_dispatcher_set_custom_event_callback(view_disp, NULL);
view_dispatcher_set_event_callback_context(view_disp, NULL);
view_dispatcher_set_custom_event_callback(
view_disp, xremote_learn_custom_event_dummy_callback);

view_dispatcher_remove_view(view_disp, XRemoteViewTextInput);
text_input_free(learn_ctx->text_input);
Expand Down
30 changes: 14 additions & 16 deletions xremote_signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,34 +91,32 @@ void xremote_signal_receiver_set_rx_callback(
rx_ctx->rx_callback = rx_callback;
}

void xremote_signal_receiver_start(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && rx_ctx->worker && !rx_ctx->started));
void xremote_signal_receiver_attach(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && rx_ctx->worker));
infrared_worker_rx_set_received_signal_callback(
rx_ctx->worker, xremote_signal_receiver_rx_callback, (void*)rx_ctx);
rx_ctx->worker, xremote_signal_receiver_rx_callback, rx_ctx);
}

void xremote_signal_receiver_detach(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && rx_ctx->worker));
infrared_worker_rx_set_received_signal_callback(rx_ctx->worker, NULL, NULL);
}

void xremote_signal_receiver_start(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && !rx_ctx->started));
xremote_signal_receiver_attach(rx_ctx);
infrared_worker_rx_start(rx_ctx->worker);
xremote_app_notification_blink(rx_ctx->notifications);
rx_ctx->started = true;
}

void xremote_signal_receiver_stop(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && rx_ctx->worker && rx_ctx->started));
infrared_worker_rx_set_received_signal_callback(rx_ctx->worker, NULL, NULL);
xremote_app_assert_void((rx_ctx && rx_ctx->started));
xremote_signal_receiver_detach(rx_ctx);
infrared_worker_rx_stop(rx_ctx->worker);
rx_ctx->started = false;
}

void xremote_signal_receiver_pause(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && rx_ctx->worker));
infrared_worker_rx_set_received_signal_callback(rx_ctx->worker, NULL, NULL);
}

void xremote_signal_receiver_resume(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert_void((rx_ctx && rx_ctx->worker));
infrared_worker_rx_set_received_signal_callback(
rx_ctx->worker, xremote_signal_receiver_rx_callback, (void*)rx_ctx);
}

InfraredSignal* xremote_signal_receiver_get_signal(XRemoteSignalReceiver* rx_ctx) {
xremote_app_assert(rx_ctx, NULL);
return rx_ctx->signal;
Expand Down
4 changes: 2 additions & 2 deletions xremote_signal.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ InfraredSignal* xremote_signal_receiver_get_signal(XRemoteSignalReceiver* rx_ctx
void xremote_signal_receiver_start(XRemoteSignalReceiver* rx_ctx);
void xremote_signal_receiver_stop(XRemoteSignalReceiver* rx_ctx);

void xremote_signal_receiver_pause(XRemoteSignalReceiver* rx_ctx);
void xremote_signal_receiver_resume(XRemoteSignalReceiver* rx_ctx);
void xremote_signal_receiver_detach(XRemoteSignalReceiver* rx_ctx);
void xremote_signal_receiver_attach(XRemoteSignalReceiver* rx_ctx);

0 comments on commit c26ea5c

Please sign in to comment.