Merge branch 'UNLEASHED' into 420

This commit is contained in:
RogueMaster
2022-11-10 21:29:21 -05:00
3 changed files with 14 additions and 2 deletions

View File

@@ -123,9 +123,11 @@ int32_t morse_code_app() {
while(furi_message_queue_get(morse_code->input_queue, &input, FuriWaitForever) ==
FuriStatusOk) {
furi_check(furi_mutex_acquire(morse_code->model_mutex, FuriWaitForever) == FuriStatusOk);
if(input.key == InputKeyBack) {
if(input.key == InputKeyBack && input.type == InputTypeLong) {
furi_mutex_release(morse_code->model_mutex);
break;
} else if(input.key == InputKeyBack && input.type == InputTypeShort) {
morse_code_worker_reset_text(morse_code->worker);
} else if(input.key == InputKeyOk) {
if(input.type == InputTypePress)
morse_code_worker_play(morse_code->worker, true);

View File

@@ -44,10 +44,10 @@ void morse_code_worker_fill_letter(MorseCodeWorker* instance) {
for(size_t i = 0; i < sizeof(morse_array); i++) {
if(furi_string_cmp_str(instance->buffer, morse_array[i]) == 0) {
furi_string_push_back(instance->words, symbol_array[i]);
furi_string_reset(instance->buffer);
break;
}
}
furi_string_reset(instance->buffer);
FURI_LOG_D("MorseCode: Words", "%s", furi_string_get_cstr(instance->words));
}
@@ -117,6 +117,8 @@ MorseCodeWorker* morse_code_worker_alloc() {
void morse_code_worker_free(MorseCodeWorker* instance) {
furi_assert(instance);
furi_string_free(instance->buffer);
furi_string_free(instance->words);
furi_thread_free(instance->thread);
free(instance);
}
@@ -145,6 +147,12 @@ void morse_code_worker_set_dit_delta(MorseCodeWorker* instance, uint32_t delta)
instance->dit_delta = delta;
}
void morse_code_worker_reset_text(MorseCodeWorker* instance) {
furi_assert(instance);
furi_string_reset(instance->buffer);
furi_string_reset(instance->words);
}
void morse_code_worker_start(MorseCodeWorker* instance) {
furi_assert(instance);
furi_assert(instance->is_running == false);

View File

@@ -29,6 +29,8 @@ void morse_code_worker_stop(MorseCodeWorker* instance);
void morse_code_worker_play(MorseCodeWorker* instance, bool play);
void morse_code_worker_reset_text(MorseCodeWorker* instance);
void morse_code_worker_set_volume(MorseCodeWorker* instance, float level);
void morse_code_worker_set_dit_delta(MorseCodeWorker* instance, uint32_t delta);