Skip to content

Commit

Permalink
Revert "mutex changes by panki27"
Browse files Browse the repository at this point in the history
This reverts commit b92679a.
  • Loading branch information
RogueMaster committed Mar 29, 2023
1 parent 8da38b1 commit e959309
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions applications/external/caesarcipher/caesar_cipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ typedef struct {
} PluginEvent;

typedef struct {
FuriMutex* mutex;
ViewDispatcher* view_dispatcher;
TextInput* text_input;
TextBox* text_box;
Expand Down Expand Up @@ -58,7 +59,10 @@ static void build_output(char* input, char* output) {
}

static void text_input_callback(void* ctx) {
CaesarState* caesar_state = acquire_mutex((ValueMutex*)ctx, 25);
furi_assert(ctx);
CaesarState* caesar_state = ctx;
furi_mutex_acquire(caesar_state->mutex, FuriWaitForever);

FURI_LOG_D("caesar_cipher", "Input text: %s", caesar_state->input);
// this is where we build the output.
string_to_uppercase(caesar_state->input);
Expand All @@ -67,13 +71,14 @@ static void text_input_callback(void* ctx) {
text_box_set_text(caesar_state->text_box, caesar_state->output);
view_dispatcher_switch_to_view(caesar_state->view_dispatcher, 1);

release_mutex((ValueMutex*)ctx, caesar_state);
furi_mutex_release(caesar_state->mutex);
}

static bool back_event_callback(void* ctx) {
const CaesarState* caesar_state = acquire_mutex((ValueMutex*)ctx, 25);
const CaesarState* caesar_state = ctx;
furi_mutex_acquire(caesar_state->mutex, FuriWaitForever);
view_dispatcher_stop(caesar_state->view_dispatcher);
release_mutex((ValueMutex*)ctx, caesar_state);
furi_mutex_release(caesar_state->mutex);
return true;
}

Expand All @@ -99,8 +104,8 @@ int32_t caesar_cipher_app() {
FURI_LOG_D("caesar_cipher", "Running caesar_cipher_state_init");
caesar_cipher_state_init(caesar_state);

ValueMutex state_mutex;
if(!init_mutex(&state_mutex, caesar_state, sizeof(CaesarState))) {
caesar_state->mutex = furi_mutex_alloc(FuriMutexTypeNormal);
if(!caesar_state->mutex) {
FURI_LOG_E("caesar_cipher", "cannot create mutex\r\n");
free(caesar_state);
return 255;
Expand All @@ -110,7 +115,7 @@ int32_t caesar_cipher_app() {
text_input_set_result_callback(
caesar_state->text_input,
text_input_callback,
&state_mutex,
caesar_state,
caesar_state->input,
TEXT_BUFFER_SIZE,
//clear default text
Expand All @@ -135,12 +140,12 @@ int32_t caesar_cipher_app() {
FURI_LOG_D("ceasar_cipher", "starting view dispatcher");
view_dispatcher_set_navigation_event_callback(
caesar_state->view_dispatcher, back_event_callback);
view_dispatcher_set_event_callback_context(caesar_state->view_dispatcher, &state_mutex);
view_dispatcher_set_event_callback_context(caesar_state->view_dispatcher, caesar_state);
view_dispatcher_switch_to_view(caesar_state->view_dispatcher, 0);
view_dispatcher_run(caesar_state->view_dispatcher);

furi_record_close("gui");
delete_mutex(&state_mutex);
furi_mutex_free(caesar_state->mutex);
caesar_cipher_state_free(caesar_state);

return 0;
Expand Down

0 comments on commit e959309

Please sign in to comment.