Renamed the music control screen to music player screen and continued dev on it, not finished though

This commit is contained in:
anschrammh 2023-05-11 07:16:58 +02:00
parent 3ae5bb9bdf
commit 23d3c47374
4 changed files with 119 additions and 26 deletions

View File

@ -1 +0,0 @@
#include "music_control_screen.h"

View File

@ -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

View File

@ -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));
}

View File

@ -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