1
0
Fork 0

Fix music app :

- Enable LVGL animation (and disable groups, which were not used), and set the speed.
 - Fix disc animation and progress display by initializing lastIncrement at 0 (a random value will be used otherwise, in release build)
This commit is contained in:
Jean-François Milants 2021-04-04 17:19:41 +02:00
parent 04fc33e2d4
commit f8b9a7c060
4 changed files with 17 additions and 13 deletions

View file

@ -164,7 +164,7 @@ Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask &
artistName = "Waiting for"; artistName = "Waiting for";
albumName = ""; albumName = "";
trackName = "track information..."; trackName = "track information..";
playing = false; playing = false;
repeat = false; repeat = false;
shuffle = false; shuffle = false;

View file

@ -98,24 +98,28 @@ Music::Music(Pinetime::Applications::DisplayApp *app, Pinetime::Controllers::Mus
lv_label_set_text(txtTrackDuration, "--:--/--:--"); lv_label_set_text(txtTrackDuration, "--:--/--:--");
lv_label_set_align(txtTrackDuration, LV_ALIGN_IN_LEFT_MID); lv_label_set_align(txtTrackDuration, LV_ALIGN_IN_LEFT_MID);
lv_obj_set_width(txtTrackDuration, LV_HOR_RES); lv_obj_set_width(txtTrackDuration, LV_HOR_RES);
constexpr uint8_t FONT_HEIGHT = 12; constexpr uint8_t FONT_HEIGHT = 12;
constexpr uint8_t LINE_PAD = 15; constexpr uint8_t LINE_PAD = 15;
constexpr int8_t MIDDLE_OFFSET = -25; constexpr int8_t MIDDLE_OFFSET = -25;
txtArtist = lv_label_create(lv_scr_act(), nullptr); txtArtist = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(txtArtist, LV_LABEL_LONG_SROLL); lv_label_set_long_mode(txtArtist, LV_LABEL_LONG_SROLL_CIRC);
lv_label_set_anim_speed(txtArtist, 1);
lv_obj_align(txtArtist, nullptr, LV_ALIGN_IN_LEFT_MID, 12, MIDDLE_OFFSET + 1 * FONT_HEIGHT); lv_obj_align(txtArtist, nullptr, LV_ALIGN_IN_LEFT_MID, 12, MIDDLE_OFFSET + 1 * FONT_HEIGHT);
lv_label_set_text(txtArtist, "Artist Name");
lv_label_set_align(txtArtist, LV_ALIGN_IN_LEFT_MID); lv_label_set_align(txtArtist, LV_ALIGN_IN_LEFT_MID);
lv_obj_set_width(txtArtist, LV_HOR_RES); lv_obj_set_width(txtArtist, LV_HOR_RES-12);
lv_label_set_text(txtArtist, "Artist Name");
txtTrack = lv_label_create(lv_scr_act(), nullptr); txtTrack = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(txtTrack, LV_LABEL_LONG_SROLL); lv_label_set_long_mode(txtTrack, LV_LABEL_LONG_SROLL_CIRC);
lv_label_set_anim_speed(txtTrack, 1);
lv_obj_align(txtTrack, nullptr, LV_ALIGN_IN_LEFT_MID, 12, MIDDLE_OFFSET + 2 * FONT_HEIGHT + LINE_PAD); lv_obj_align(txtTrack, nullptr, LV_ALIGN_IN_LEFT_MID, 12, MIDDLE_OFFSET + 2 * FONT_HEIGHT + LINE_PAD);
lv_label_set_text(txtTrack, "This is a very long getTrack name");
lv_label_set_align(txtTrack, LV_ALIGN_IN_LEFT_MID); lv_label_set_align(txtTrack, LV_ALIGN_IN_LEFT_MID);
lv_obj_set_width(txtTrack, LV_HOR_RES); lv_obj_set_width(txtTrack, LV_HOR_RES-12);
lv_label_set_text(txtTrack, "This is a very long getTrack name");
/** Init animation */ /** Init animation */
imgDisc = lv_img_create(lv_scr_act(), nullptr); imgDisc = lv_img_create(lv_scr_act(), nullptr);
lv_img_set_src_arr(imgDisc, &disc); lv_img_set_src_arr(imgDisc, &disc);

View file

@ -76,7 +76,7 @@ namespace Pinetime {
/** Last length */ /** Last length */
int lastLength; int lastLength;
/** Last time an animation update or timer was incremented */ /** Last time an animation update or timer was incremented */
TickType_t lastIncrement; TickType_t lastIncrement = 0;
bool playing; bool playing;

View file

@ -140,7 +140,7 @@ typedef int16_t lv_coord_t;
*==================*/ *==================*/
/*1: Enable the Animations */ /*1: Enable the Animations */
#define LV_USE_ANIMATION 0 #define LV_USE_ANIMATION 1
#if LV_USE_ANIMATION #if LV_USE_ANIMATION
/*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/ /*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/
@ -177,7 +177,7 @@ typedef void* lv_anim_user_data_t;
#define LV_USE_IMG_TRANSFORM 0 #define LV_USE_IMG_TRANSFORM 0
/* 1: Enable object groups (for keyboard/encoder navigation) */ /* 1: Enable object groups (for keyboard/encoder navigation) */
#define LV_USE_GROUP 1 #define LV_USE_GROUP 0
#if LV_USE_GROUP #if LV_USE_GROUP
typedef void* lv_group_user_data_t; typedef void* lv_group_user_data_t;
#endif /*LV_USE_GROUP*/ #endif /*LV_USE_GROUP*/