From 23d3c47374f64468b856bd1ead7b6e67a699f82e Mon Sep 17 00:00:00 2001 From: anschrammh Date: Thu, 11 May 2023 07:16:58 +0200 Subject: [PATCH] Renamed the music control screen to music player screen and continued dev on it, not finished though --- .../music_control_screen.c | 1 - .../music_control_screen.h | 25 ----- .../music_player_screen.c | 93 +++++++++++++++++++ .../music_player_screen.h | 26 ++++++ 4 files changed, 119 insertions(+), 26 deletions(-) delete mode 100644 src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.c delete mode 100644 src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.h create mode 100644 src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.c create mode 100644 src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.h diff --git a/src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.c b/src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.c deleted file mode 100644 index 1b40cd9..0000000 --- a/src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.c +++ /dev/null @@ -1 +0,0 @@ -#include "music_control_screen.h" diff --git a/src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.h b/src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.h deleted file mode 100644 index ce4edb4..0000000 --- a/src/lvgl_win_sim/lv_port_win_codeblocks/music_control_screen.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef MUSIC_CONTROL_SCREEN_H -#define MUSIC_CONTROL_SCREEN_H - -#include "lvgl.h" - -typedef void (*SendMusicPlaybackCtrlCb_t)(void); - -typedef struct MusicControlScreen -{ - //Can be erased attributes - lv_obj_t *display; - //Should not be erased attributes -} MusicControlScreen_t; - -void music_control_screen_init(MusicControlScreen_t * const musicControlScreen); - -void music_control_screen_register_BLE_command_send_cb(MusicControlScreen_t * const musicControlScreen, SendMusicPlaybackCtrlCb_t sendMusicPlaybackCtrlCb); - -void music_control_screen_set_playing_music_title(MusicControlScreen_t * const musicControlScreen, const char *title); - -void music_control_screen_create(MusicControlScreen_t * const musicControlScreen); - -void music_control_screen_destroy(MusicControlScreen_t * const musicControlScreen); - -#endif // MUSIC_CONTROL_SCREEN_H diff --git a/src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.c b/src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.c new file mode 100644 index 0000000..815e8b6 --- /dev/null +++ b/src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.c @@ -0,0 +1,93 @@ +#include "music_player_screen.h" +#include "menu_screen.h" + +static void gesture_event_cb(lv_event_t *e) +{ + MusicPlayerScreen_t *musicPlayerScreen = e->user_data; + + lv_dir_t gesture; + switch(gesture = lv_indev_get_gesture_dir(lv_indev_get_act())) + { + case LV_DIR_LEFT: + LV_LOG_USER("GESTURE : LEFT"); + break; + case LV_DIR_RIGHT: + LV_LOG_USER("GESTURE : RIGHT"); + // We create the menu screen and switch to it + extern MenuScreen_t menuScreen; + menu_screen_create(&menuScreen); + lv_scr_load_anim(menuScreen.display, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 400, 0, true); + break; + case LV_DIR_TOP: + LV_LOG_USER("GESTURE : TOP"); + break; + case LV_DIR_BOTTOM: + LV_LOG_USER("GESTURE : BOTTOM"); + break; + default: + LV_LOG_USER("GESTURE : %u", gesture); + } +} + +static void cleanup_event_cb(lv_event_t *e) +{ + MusicPlayerScreen_t *musicPlayerScreen = e->user_data; + music_player_screen_destroy(musicPlayerScreen); + LV_LOG_USER("cleanup"); +} + +void music_player_screen_init(MusicPlayerScreen_t * const musicPlayerScreen) +{ + if(!musicPlayerScreen) + { + LV_LOG_ERROR("NULL pointer given !"); + return; + } + + memset(musicPlayerScreen, 0, sizeof(MusicPlayerScreen_t)); +} + +void music_player_screen_register_music_playback_control_cb(MusicPlayerScreen_t * const musicPlayerScreen, MusicPlaybackCtrlCb_t musicPlaybackCtrlCb) +{ + if(!musicPlayerScreen) + { + LV_LOG_ERROR("NULL pointer given !"); + return; + } + + musicPlayerScreen->musicPlaybackCtrlCb = musicPlaybackCtrlCb; +} + +void music_player_screen_create(MusicPlayerScreen_t * const musicPlayerScreen) +{ + if(!musicPlayerScreen) + { + LV_LOG_ERROR("NULL pointer given !"); + return; + } + + if(musicPlayerScreen->display) + { + LV_LOG_ERROR("display should be NULL here !"); + lv_obj_del(musicPlayerScreen->display); + musicPlayerScreen->display = NULL; + } + musicPlayerScreen->display = lv_obj_create(NULL); + lv_obj_set_style_bg_color(musicPlayerScreen->display, lv_color_black(), LV_PART_MAIN); + + //We register the event callback to handle gestures + lv_obj_add_event_cb(musicPlayerScreen->display, &(gesture_event_cb), LV_EVENT_GESTURE, musicPlayerScreen); + //We register the event callback to handle the cleanup + lv_obj_add_event_cb(musicPlayerScreen->display, &(cleanup_event_cb), LV_EVENT_DELETE, musicPlayerScreen); +} + +void music_player_screen_destroy(MusicPlayerScreen_t * const musicPlayerScreen) +{ + if(!musicPlayerScreen) + { + LV_LOG_ERROR("NULL pointer given !"); + return; + } + + memset(musicPlayerScreen, 0, offsetof(MusicPlayerScreen_t, musicPlaybackCtrlCb)); +} diff --git a/src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.h b/src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.h new file mode 100644 index 0000000..e1ae67d --- /dev/null +++ b/src/lvgl_win_sim/lv_port_win_codeblocks/music_player_screen.h @@ -0,0 +1,26 @@ +#ifndef MUSIC_PLAYER_SCREEN_H +#define MUSIC_PLAYER_SCREEN_H + +#include "lvgl.h" + +typedef void (*MusicPlaybackCtrlCb_t)(void); + +typedef struct MusicPlayerScreen +{ + //Can be erased attributes + lv_obj_t *display; + //Should not be erased attributes + MusicPlaybackCtrlCb_t musicPlaybackCtrlCb; +} MusicPlayerScreen_t; + +void music_player_screen_init(MusicPlayerScreen_t * const musicPlayerScreen); + +void music_player_screen_register_music_playback_control_cb(MusicPlayerScreen_t * const musicPlayerScreen, MusicPlaybackCtrlCb_t musicPlaybackCtrlCb); + +void music_player_screen_set_playing_music_title(MusicPlayerScreen_t * const musicPlayerScreen, const char *title); + +void music_player_screen_create(MusicPlayerScreen_t * const musicPlayerScreen); + +void music_player_screen_destroy(MusicPlayerScreen_t * const musicPlayerScreen); + +#endif // MUSIC_PLAYER_SCREEN_H