From 09a0ff694baeea75fc65cba40e9350a89eae81d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Tue, 29 Jun 2021 11:09:44 +0200 Subject: [PATCH] feat: add pheripherals usage to file browser --- file-browser/include/gui_list_pheripherals.h | 9 +++++++++ file-browser/src/gui_list_pheripherals.c | 17 +++++++++++++++++ file-browser/src/main.c | 3 +++ file-browser/src/window_browser.c | 9 +++++++++ 4 files changed, 38 insertions(+) create mode 100644 file-browser/include/gui_list_pheripherals.h create mode 100644 file-browser/src/gui_list_pheripherals.c diff --git a/file-browser/include/gui_list_pheripherals.h b/file-browser/include/gui_list_pheripherals.h new file mode 100644 index 0000000000000000000000000000000000000000..868524e8a9dd40cfb08e11c8d06a610950474f79 --- /dev/null +++ b/file-browser/include/gui_list_pheripherals.h @@ -0,0 +1,9 @@ +#ifndef __GUI_LIST_PHERIPHERALS_H__ +#define __GUI_LIST_PHERIPHERALS_H__ + +#include "mzapo_pheripherals.h" +#include "gui.h" + +void gui_list_ledstrip_update(container_t *container, mzapo_pheripherals_t *pheripherals); + +#endif // __GUI_LIST_PHERIPHERALS_H__ diff --git a/file-browser/src/gui_list_pheripherals.c b/file-browser/src/gui_list_pheripherals.c new file mode 100644 index 0000000000000000000000000000000000000000..2865fdaf4e777aaaf3d783e9ac53d44049cbb839 --- /dev/null +++ b/file-browser/src/gui_list_pheripherals.c @@ -0,0 +1,17 @@ +#include "gui_list_pheripherals.h" +#include "gui.h" +#include "mzapo_led_strip.h" +#include + +#define LIST_LEDSTRIP_AROUND 1 + +void gui_list_ledstrip_update(container_t *container, + mzapo_pheripherals_t *pheripherals) { + uint32_t selected_index = gui_list_get_selected_index(container); + uint32_t items_count = gui_list_get_items_count(container); + + double perc = (double)selected_index/items_count; + + uint32_t index = LED_STRIP_COUNT * perc; + ledstrip_turn_on(pheripherals->ledstrip, index, LIST_LEDSTRIP_AROUND); +} diff --git a/file-browser/src/main.c b/file-browser/src/main.c index a2bb97f76f59c29154601d5e131899cace981bd0..c9e9b064a6ac4a9342129e72a085beec7afa048a 100644 --- a/file-browser/src/main.c +++ b/file-browser/src/main.c @@ -138,6 +138,9 @@ int main(int argc, char *argv[]) { "Closing application"); file_browser_destroy(&file_browser); + rgb_led_clear(pheripherals.rgb_leds, LED_LEFT); + rgb_led_clear(pheripherals.rgb_leds, LED_RIGHT); + ledstrip_clear(pheripherals.ledstrip); display_deinit(&display); file_set_blocking(STDIN_FILENO, &oldstdin); diff --git a/file-browser/src/window_browser.c b/file-browser/src/window_browser.c index 63c3bd558386385791deefb583c1486929d661a2..6c33734ae0a94a0f27997b279e5bbaac09d33ea0 100644 --- a/file-browser/src/window_browser.c +++ b/file-browser/src/window_browser.c @@ -9,9 +9,11 @@ #include "gui_container_info.h" #include "gui_list_commands.h" #include "gui_component_line.h" +#include "gui_list_pheripherals.h" #include "gui_window_info.h" #include "input.h" #include "logger.h" +#include "mzapo_rgb_led.h" #include "path.h" #include "renderer.h" #include "keyboard_const.h" @@ -242,6 +244,11 @@ static void browser_window_item_clicked(container_t *container, void *state, "Successfully returned without executing anything."); } } else if (current_file.type == FT_FOLDER || current_file.type == FT_OTHER) { + rgb_led_set_timeout(bstate->gui->pheripherals->rgb_leds, LED_LEFT, 0, 100, + 100, 300); + rgb_led_set_timeout(bstate->gui->pheripherals->rgb_leds, LED_RIGHT, 0, 100, + 100, 300); + char new_dir_path[path_join_memory_size(bstate->current_directory->path, current_file.name)]; path_join(bstate->current_directory->path, current_file.name, new_dir_path); @@ -333,6 +340,8 @@ static void browser_window_job(void *state) { gui_list_container_set_item_height(bstate->list_container, bstate->font->size); + gui_list_ledstrip_update(bstate->list_container, bstate->gui->pheripherals); + if (!bstate->running) { // cleanup fileaccess_directory_close(bstate->state, bstate->current_directory);