Renamed the music control screen to music player screen and continued dev on it, not finished though
This commit is contained in:
parent
3ae5bb9bdf
commit
23d3c47374
@ -1 +0,0 @@
|
|||||||
#include "music_control_screen.h"
|
|
@ -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
|
|
@ -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));
|
||||||
|
}
|
@ -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
|
Loading…
Reference in New Issue
Block a user