Music player screen is almost done, a few things more to tweak

This commit is contained in:
Th3maz1ng 2023-05-13 00:19:19 +02:00
parent 2f50aa50c6
commit faefc7df74
5 changed files with 722 additions and 378 deletions

View File

@ -58,10 +58,10 @@
<Option compilerVar="CC" />
</Unit>
<Unit filename="compass_screen.h" />
<Unit filename="find_phone_screen.c">
<Unit filename="find_my_phone_screen.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="find_phone_screen.h" />
<Unit filename="find_my_phone_screen.h" />
<Unit filename="firmware_version.h" />
<Unit filename="lv_conf.h" />
<Unit filename="lv_drivers/display/ILI9341.h" />
@ -1653,6 +1653,10 @@
<Option compilerVar="CC" />
</Unit>
<Unit filename="menu_screen.h" />
<Unit filename="music_control_screen.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="music_control_screen.h" />
<Unit filename="rsrc/hour_hand.png" />
<Unit filename="settings_screen.c">
<Option compilerVar="CC" />

View File

@ -2,126 +2,6 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
<File name="compass_screen.c" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6172" topLine="154" />
</Cursor>
</File>
<File name="lvgl\src\widgets\label\lv_label.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5648" topLine="194" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_anim.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3835" topLine="68" />
</Cursor>
</File>
<File name="lv_drv_conf.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6602" topLine="208" />
</Cursor>
</File>
<File name="lvgl\examples\widgets\bar\lv_example_bar_6.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="181" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_types.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1759" topLine="61" />
</Cursor>
</File>
<File name="lvgl\src\widgets\spinbox\lv_spinbox.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="4262" topLine="120" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_class.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1857" topLine="35" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_tree.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1234" topLine="139" />
</Cursor>
</File>
<File name="watch_casio_assets.c" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2981397" topLine="949" />
</Cursor>
</File>
<File name="lvgl\src\draw\lv_img_buf.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6210" topLine="113" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_timer.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5053" topLine="144" />
</Cursor>
</File>
<File name="lv_conf.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="555" topLine="10" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_event.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5693" topLine="115" />
</Cursor>
</File>
<File name="lvgl\src\widgets\chart\lv_chart.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="11658" topLine="336" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_font_montserrat_12.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="22" />
</Cursor>
</File>
<File name="lv_drivers\win32drv\win32drv.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="524" topLine="954" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_scroll.h" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1988" topLine="67" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_color.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10782" topLine="316" />
</Cursor>
</File>
<File name="compass_screen.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1253" topLine="18" />
</Cursor>
</File>
<File name="menu_screen.c" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3627" topLine="67" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_style_gen.c" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13491" topLine="412" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_indev.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3566" topLine="102" />
</Cursor>
</File>
<File name="settings_screen.c" open="1" top="1" tabpos="8" split="0" active="1" splitpos="513" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="25034" topLine="437" />
</Cursor>
</File>
<File name="watch_menu_icons.c" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="869291" topLine="156" />
@ -147,129 +27,14 @@
<Collapse line="1729" />
</Folding>
</File>
<File name="lvgl\src\layouts\flex\lv_flex.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\core\lv_obj.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3097" topLine="74" />
<Cursor1 position="2638" topLine="87" />
</Cursor>
</File>
<File name="lv_drivers\win_drv.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\demos\widgets\assets\img_demo_widgets_avatar.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="585" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_pos.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7730" topLine="167" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7126" topLine="230" />
</Cursor>
</File>
<File name="lv_drivers\display\monitor.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="289" topLine="31" />
</Cursor>
</File>
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2184" topLine="61" />
</Cursor>
</File>
<File name="lvgl\src\widgets\list\lv_list.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="721" topLine="16" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_timer.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="635" topLine="36" />
</Cursor>
</File>
<File name="firmware_version.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="160" topLine="0" />
</Cursor>
</File>
<File name="watch_face.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="702" zoom_1="1" zoom_2="-1">
<Cursor>
<Cursor1 position="2615" topLine="83" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_class.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3011" topLine="100" />
</Cursor>
</File>
<File name="lvgl\src\lv_api_map.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="722" topLine="32" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_refr.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2447" topLine="75" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_log.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1509" topLine="59" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5065" topLine="123" />
</Cursor>
</File>
<File name="lvgl\src\widgets\menu\lv_menu.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3706" topLine="117" />
</Cursor>
</File>
<File name="settings_screen.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="315" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3034" topLine="107" />
</Cursor>
</File>
<File name="lvgl\src\widgets\label\lv_label.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1299" topLine="36" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_font_fmt_txt.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="24" />
</Cursor>
</File>
<File name="altimeter_screen.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13638" topLine="409" />
</Cursor>
</File>
<File name="lvgl\src\libs\ffmpeg\lv_ffmpeg.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5784" topLine="170" />
</Cursor>
</File>
<File name="lv_drivers\lv_drv_conf_template.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10670" topLine="390" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_tree.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2082" topLine="62" />
</Cursor>
</File>
<File name="lvgl\src\widgets\list\lv_list.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
<Cursor>
<Cursor1 position="2391" topLine="53" />
<Cursor1 position="1282774" topLine="472" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_font.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -277,9 +42,14 @@
<Cursor1 position="5535" topLine="120" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_log.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\widgets\spinbox\lv_spinbox.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2557" topLine="68" />
<Cursor1 position="4262" topLine="120" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_refr.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2447" topLine="75" />
</Cursor>
</File>
<File name="altimeter_screen.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -287,6 +57,166 @@
<Cursor1 position="1028" topLine="30" />
</Cursor>
</File>
<File name="lvgl\lv_conf_template.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="56" />
</Cursor>
</File>
<File name="altimeter_screen_assets.c" open="0" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="96342" topLine="161" />
</Cursor>
</File>
<File name="lvgl\src\widgets\chart\lv_chart.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="11658" topLine="336" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7126" topLine="230" />
</Cursor>
</File>
<File name="settings_screen.c" open="1" top="1" tabpos="5" split="0" active="1" splitpos="513" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="23555" topLine="429" />
</Cursor>
</File>
<File name="lv_drivers\win32drv\win32drv.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="524" topLine="954" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_color.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10782" topLine="316" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5065" topLine="123" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_timer.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="635" topLine="36" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7842" topLine="283" />
</Cursor>
</File>
<File name="lvgl\src\layouts\flex\lv_flex.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="950" topLine="43" />
</Cursor>
</File>
<File name="menu_screen.c" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3627" topLine="67" />
</Cursor>
</File>
<File name="compass_assets.c" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="143" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_class.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1857" topLine="35" />
</Cursor>
</File>
<File name="compass_screen.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1253" topLine="18" />
</Cursor>
</File>
<File name="lvgl\examples\widgets\menu\lv_example_menu_5.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7631" topLine="141" />
</Cursor>
</File>
<File name="lv_drivers\win_drv.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="585" topLine="0" />
</Cursor>
</File>
<File name="altimeter_screen.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13638" topLine="409" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_log.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1509" topLine="59" />
</Cursor>
</File>
<File name="lv_drivers\indev\keyboard.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="440" topLine="14" />
</Cursor>
</File>
<File name="lvgl\src\widgets\menu\lv_menu.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3321" topLine="109" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_font_montserrat_30.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="869" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="823" topLine="24" />
</Cursor>
</File>
<File name="lvgl\src\widgets\label\lv_label.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1299" topLine="36" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_indev.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3566" topLine="102" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_style_gen.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13017" topLine="346" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_types.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1759" topLine="61" />
</Cursor>
</File>
<File name="watch_face.h" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3303" topLine="82" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_pos.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7730" topLine="167" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_event.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5693" topLine="115" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_anim.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3835" topLine="68" />
</Cursor>
</File>
<File name="lvgl\src\widgets\list\lv_list.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="721" topLine="16" />
</Cursor>
</File>
<File name="lvgl\src\widgets\tileview\lv_tileview.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1055" topLine="40" />
@ -296,94 +226,24 @@
<Collapse line="995" />
</Folding>
</File>
<File name="lvgl\src\widgets\img\lv_img.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\core\lv_obj_class.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="4439" topLine="123" />
<Cursor1 position="3011" topLine="100" />
</Cursor>
</File>
<File name="lv_drivers\display\SSD1963.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\font\lv_font_montserrat_12.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1563" topLine="27" />
<Cursor1 position="0" topLine="22" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_pos.c" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\lv_api_map.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10562" topLine="336" />
<Cursor1 position="722" topLine="32" />
</Cursor>
</File>
<File name="lv_drivers\win32drv\win32drv.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="15" />
</Cursor>
</File>
<File name="lvgl\src\layouts\grid\lv_grid.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="579" topLine="17" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_style_gen.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13017" topLine="346" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_color.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6581" topLine="189" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_style.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="9059" topLine="238" />
</Cursor>
</File>
<File name="lvgl\src\widgets\menu\lv_menu.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3321" topLine="109" />
</Cursor>
</File>
<File name="lv_drivers\indev\keyboard.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="440" topLine="14" />
</Cursor>
</File>
<File name="lvgl\src\draw\lv_draw_rect.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="539" topLine="9" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_indev_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="14405" topLine="323" />
</Cursor>
</File>
<File name="lvgl\src\draw\lv_draw_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5230" topLine="191" />
</Cursor>
</File>
<File name="common_screen_components.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="498" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\widgets\img\lv_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1863" topLine="59" />
</Cursor>
</File>
<File name="lvgl\demos\widgets\lv_demo_widgets.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2825" topLine="122" />
</Cursor>
</File>
<File name="altimeter_screen_assets.c" open="0" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="96342" topLine="161" />
</Cursor>
</File>
<File name="lvgl\src\layouts\flex\lv_flex.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="950" topLine="43" />
<Cursor1 position="2184" topLine="61" />
</Cursor>
</File>
<File name="lvgl\src\widgets\roller\lv_roller.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -391,49 +251,14 @@
<Cursor1 position="715" topLine="26" />
</Cursor>
</File>
<File name="lvgl\lv_conf_template.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="56" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_font_montserrat_30.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="869" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="615" topLine="25" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_symbol_def.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1135" topLine="14" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7842" topLine="283" />
</Cursor>
</File>
<File name="lvgl\demos\widgets\assets\img_demo_widgets_avatar.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1282774" topLine="472" />
</Cursor>
</File>
<File name="watch_face.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3303" topLine="82" />
</Cursor>
</File>
<File name="lvgl\lvgl.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="138" />
</Cursor>
</File>
<File name="lvgl\demos\widgets\lv_demo_widgets.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\draw\lv_draw_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="456" topLine="6" />
<Cursor1 position="5230" topLine="191" />
</Cursor>
</File>
<File name="common_screen_components.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -441,39 +266,49 @@
<Cursor1 position="517" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\widgets\label\lv_label.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="11123" topLine="327" />
<Cursor1 position="5648" topLine="194" />
</Cursor>
</File>
<File name="main.c" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="settings_screen.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2852" topLine="77" />
<Cursor1 position="315" topLine="0" />
</Cursor>
</File>
<File name="compass_assets.c" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\examples\widgets\bar\lv_example_bar_6.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="143" />
<Cursor1 position="181" topLine="0" />
</Cursor>
</File>
<File name="menu_screen.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\core\lv_indev_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="48" topLine="0" />
<Cursor1 position="14405" topLine="323" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\libs\ffmpeg\lv_ffmpeg.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2638" topLine="87" />
<Cursor1 position="5784" topLine="170" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\misc\lv_timer.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="12525" topLine="363" />
<Cursor1 position="5053" topLine="144" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_area.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="watch_face.c" open="1" top="0" tabpos="1" split="0" active="1" splitpos="702" zoom_1="1" zoom_2="-1">
<Cursor>
<Cursor1 position="1789" topLine="74" />
<Cursor1 position="2615" topLine="83" />
</Cursor>
</File>
<File name="lv_drivers\win32drv\win32drv.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="15" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_color.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6581" topLine="189" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_style.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -481,19 +316,184 @@
<Cursor1 position="7273" topLine="217" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="615" topLine="25" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_scroll.h" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1988" topLine="67" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_area.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1789" topLine="74" />
</Cursor>
</File>
<File name="lvgl\src\widgets\list\lv_list.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
<Cursor>
<Cursor1 position="2391" topLine="53" />
</Cursor>
</File>
<File name="menu_screen.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="48" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_tree.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1234" topLine="139" />
</Cursor>
</File>
<File name="lv_drivers\display\SSD1963.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1563" topLine="27" />
</Cursor>
</File>
<File name="watch_casio_assets.c" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2981397" topLine="949" />
</Cursor>
</File>
<File name="lvgl\demos\widgets\lv_demo_widgets.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="456" topLine="6" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="11123" topLine="327" />
</Cursor>
</File>
<File name="common_screen_components.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="498" topLine="0" />
</Cursor>
</File>
<File name="lvgl\src\layouts\flex\lv_flex.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3097" topLine="74" />
</Cursor>
</File>
<File name="lv_drv_conf.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6602" topLine="208" />
</Cursor>
</File>
<File name="main.c" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2852" topLine="77" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3034" topLine="107" />
</Cursor>
</File>
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2129" topLine="53" />
</Cursor>
</File>
<File name="lvgl\src\hal\lv_hal_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\font\lv_font_fmt_txt.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="823" topLine="24" />
<Cursor1 position="0" topLine="24" />
</Cursor>
</File>
<File name="lvgl\examples\widgets\menu\lv_example_menu_5.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="lvgl\src\draw\lv_img_buf.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7631" topLine="141" />
<Cursor1 position="6210" topLine="113" />
</Cursor>
</File>
<File name="compass_screen.c" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6172" topLine="154" />
</Cursor>
</File>
<File name="lvgl\src\widgets\menu\lv_menu.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3706" topLine="117" />
</Cursor>
</File>
<File name="lvgl\src\draw\lv_draw_rect.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="539" topLine="9" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="12525" topLine="363" />
</Cursor>
</File>
<File name="firmware_version.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="160" topLine="0" />
</Cursor>
</File>
<File name="lvgl\demos\widgets\lv_demo_widgets.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2825" topLine="122" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_log.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2557" topLine="68" />
</Cursor>
</File>
<File name="lvgl\src\widgets\img\lv_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1863" topLine="59" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_style_gen.c" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13491" topLine="412" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_tree.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2082" topLine="62" />
</Cursor>
</File>
<File name="lv_drivers\display\monitor.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="289" topLine="31" />
</Cursor>
</File>
<File name="lvgl\src\widgets\img\lv_img.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="4439" topLine="123" />
</Cursor>
</File>
<File name="lvgl\src\layouts\grid\lv_grid.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="579" topLine="17" />
</Cursor>
</File>
<File name="lv_conf.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="555" topLine="10" />
</Cursor>
</File>
<File name="lvgl\src\font\lv_symbol_def.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1135" topLine="14" />
</Cursor>
</File>
<File name="lvgl\src\misc\lv_style.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="9059" topLine="238" />
</Cursor>
</File>
<File name="lvgl\src\core\lv_obj_pos.c" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10562" topLine="336" />
</Cursor>
</File>
<File name="lv_drivers\lv_drv_conf_template.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="10670" topLine="390" />
</Cursor>
</File>
</CodeBlocks_layout_file>

View File

@ -74,6 +74,11 @@ static void sendMyFindPhoneBLECommandCb(bool findPhone)
LV_LOG_USER("Send command to find phone with value : %d", findPhone);
}
static void musicPlaybackCtrlCb(MusicPlaybackCtrlAction_e musicPlaybackCtrlAction)
{
LV_LOG_USER("Action to perform : %u", musicPlaybackCtrlAction);
}
WatchFace_t watchFace;
MenuScreen_t menuScreen;
CompassScreen_t compassScreen;
@ -111,6 +116,11 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLi
find_my_phone_screen_register_BLE_command_send_cb(&findMyPhoneScreen, &(sendMyFindPhoneBLECommandCb));
find_my_phone_screen_notify_BLE_connection_state(&findMyPhoneScreen, true);
music_player_screen_init(&musicPlayerScreen);
music_player_screen_register_music_playback_control_cb(&musicPlayerScreen, &(musicPlaybackCtrlCb));
music_player_screen_set_playing_music_title_and_artist(&musicPlayerScreen, "Sun Is Up Hoho Haha", "Inna");
music_player_screen_set_music_duration(&musicPlayerScreen, 5896);
music_player_screen_set_music_position(&musicPlayerScreen, 122);
music_player_screen_set_music_playing_state(&musicPlayerScreen, MUSIC_CONTROL_PLAY);
altimeter_screen_register_measurement_cb(&altimeterScreen, &(alti_meas_cb));

View File

@ -1,5 +1,7 @@
#include "music_player_screen.h"
#include "menu_screen.h"
#include <stdio.h>
#include <string.h>
static void gesture_event_cb(lv_event_t *e)
{
@ -36,6 +38,35 @@ static void cleanup_event_cb(lv_event_t *e)
LV_LOG_USER("cleanup");
}
static void music_player_button_click_event_cb(lv_event_t *e)
{
MusicPlayerScreen_t *musicPlayerScreen = e->user_data;
MusicPlaybackCtrlAction_e action = (MusicPlaybackCtrlAction_e)lv_obj_get_user_data(e->target);
LV_LOG_USER("Action is : %u, code is : %u", action, e->code);
if(musicPlayerScreen->musicPlaybackCtrlCb)
{
if(action == MUSIC_CONTROL_PLAY)
{
MusicPlaybackCtrlAction_e stateToApply = musicPlayerScreen->currentPlayState == MUSIC_CONTROL_PLAY ? MUSIC_CONTROL_PAUSE : MUSIC_CONTROL_PLAY;
musicPlayerScreen->musicPlaybackCtrlCb(stateToApply);
music_player_screen_set_music_playing_state(musicPlayerScreen, stateToApply);
}
else if(action == MUSIC_CONTROL_NEXT)
{
musicPlayerScreen->musicPlaybackCtrlCb(e->code == LV_EVENT_SHORT_CLICKED ? MUSIC_CONTROL_FORWARD : MUSIC_CONTROL_NEXT);
}
else if(action == MUSIC_CONTROL_PREVIOUS)
{
musicPlayerScreen->musicPlaybackCtrlCb(e->code == LV_EVENT_SHORT_CLICKED ? MUSIC_CONTROL_REWIND : MUSIC_CONTROL_PREVIOUS);
}
else
{
musicPlayerScreen->musicPlaybackCtrlCb(action);
}
}
}
void music_player_screen_init(MusicPlayerScreen_t * const musicPlayerScreen)
{
if(!musicPlayerScreen)
@ -45,6 +76,7 @@ void music_player_screen_init(MusicPlayerScreen_t * const musicPlayerScreen)
}
memset(musicPlayerScreen, 0, sizeof(MusicPlayerScreen_t));
musicPlayerScreen->currentPlayState = MUSIC_CONTROL_PAUSE;
}
void music_player_screen_register_music_playback_control_cb(MusicPlayerScreen_t * const musicPlayerScreen, MusicPlaybackCtrlCb_t musicPlaybackCtrlCb)
@ -58,6 +90,110 @@ void music_player_screen_register_music_playback_control_cb(MusicPlayerScreen_t
musicPlayerScreen->musicPlaybackCtrlCb = musicPlaybackCtrlCb;
}
void music_player_screen_set_playing_music_title_and_artist(MusicPlayerScreen_t * const musicPlayerScreen, const char *title, const char *artist)
{
if(!musicPlayerScreen)
{
LV_LOG_ERROR("NULL pointer given !");
return;
}
if(title)
{
strncpy(musicPlayerScreen->titleText, title, sizeof musicPlayerScreen->titleText);
musicPlayerScreen->titleText[sizeof(musicPlayerScreen->titleText) - 1] = '\0';
if(musicPlayerScreen->titleLabel)
{
lv_label_set_text_static(musicPlayerScreen->titleLabel, musicPlayerScreen->titleText);
}
}
if(artist)
{
strncpy(musicPlayerScreen->artistText, artist, sizeof musicPlayerScreen->artistText);
musicPlayerScreen->artistText[sizeof(musicPlayerScreen->artistText) - 1] = '\0';
if(musicPlayerScreen->artistLabel)
{
lv_label_set_text_static(musicPlayerScreen->artistLabel, musicPlayerScreen->artistText);
}
}
}
void music_player_screen_set_music_duration(MusicPlayerScreen_t * const musicPlayerScreen, uint16_t durationInSeconds)
{
if(!musicPlayerScreen)
{
LV_LOG_ERROR("NULL pointer given !");
return;
}
musicPlayerScreen->currentMusicDuration = durationInSeconds;
//If the widget is currently displayed, we update it as well !
if(!musicPlayerScreen->playbackArc) return;
lv_arc_set_range(musicPlayerScreen->playbackArc, 0, musicPlayerScreen->currentMusicDuration);
if(durationInSeconds < 3600)sprintf(musicPlayerScreen->durationTimeLabel.text, "%s%u:%s%u", durationInSeconds / 60 < 10 ? "0":"", durationInSeconds / 60, durationInSeconds % 60 < 10 ? "0":"", durationInSeconds % 60);
else sprintf(musicPlayerScreen->durationTimeLabel.text, "%s%u:%s%u:%s%u", durationInSeconds / 3600 < 10 ? "0":"", durationInSeconds / 3600,
(durationInSeconds % 3600) / 60 < 10 ? "0":"", (durationInSeconds % 3600) / 60,
(durationInSeconds % 3600) % 60 < 10 ? "0":"", (durationInSeconds % 3600) % 60);
lv_label_set_text_static(musicPlayerScreen->durationTimeLabel.label, musicPlayerScreen->durationTimeLabel.text);
}
void music_player_screen_set_music_position(MusicPlayerScreen_t * const musicPlayerScreen, uint16_t positionInSeconds)
{
if(!musicPlayerScreen)
{
LV_LOG_ERROR("NULL pointer given !");
return;
}
if(positionInSeconds > musicPlayerScreen->currentMusicDuration) positionInSeconds = musicPlayerScreen->currentMusicDuration;
musicPlayerScreen->currentMusicPosition = positionInSeconds;
//If the widget is currently displayed, we update it as well !
if(!musicPlayerScreen->playbackArc) return;
lv_arc_set_value(musicPlayerScreen->playbackArc, musicPlayerScreen->currentMusicPosition);
if(positionInSeconds < 3600)sprintf(musicPlayerScreen->positionTimeLabel.text, "%s%u:%s%u", positionInSeconds / 60 < 10 ? "0":"", positionInSeconds / 60, positionInSeconds % 60 < 10 ? "0":"", positionInSeconds % 60);
else sprintf(musicPlayerScreen->positionTimeLabel.text, "%s%u:%s%u:%s%u", positionInSeconds / 3600 < 10 ? "0":"", positionInSeconds / 3600,
(positionInSeconds % 3600) / 60 < 10 ? "0":"", (positionInSeconds % 3600) / 60,
(positionInSeconds % 3600) % 60 < 10 ? "0":"", (positionInSeconds % 3600) % 60);
lv_label_set_text_static(musicPlayerScreen->positionTimeLabel.label, musicPlayerScreen->positionTimeLabel.text);
}
void music_player_screen_set_music_playing_state(MusicPlayerScreen_t * const musicPlayerScreen, MusicPlaybackCtrlAction_e playingState)
{
if(!musicPlayerScreen)
{
LV_LOG_ERROR("NULL pointer given !");
return;
}
if(musicPlayerScreen->currentPlayState == playingState) return;
if(playingState != MUSIC_CONTROL_PAUSE && playingState != MUSIC_CONTROL_PLAY) return;
musicPlayerScreen->currentPlayState = playingState;
if(!musicPlayerScreen->playPauseBtn.label) return;
strcpy(musicPlayerScreen->playPauseBtn.icon, musicPlayerScreen->currentPlayState == MUSIC_CONTROL_PLAY ? LV_SYMBOL_PAUSE : LV_SYMBOL_PLAY);
lv_label_set_text_static(musicPlayerScreen->playPauseBtn.label, musicPlayerScreen->playPauseBtn.icon);
}
bool music_player_screen_is_in_use(MusicPlayerScreen_t * const musicPlayerScreen)
{
if(!musicPlayerScreen)
{
LV_LOG_ERROR("NULL pointer given !");
return false;
}
return musicPlayerScreen->display != NULL;
}
void music_player_screen_create(MusicPlayerScreen_t * const musicPlayerScreen)
{
if(!musicPlayerScreen)
@ -75,6 +211,156 @@ void music_player_screen_create(MusicPlayerScreen_t * const musicPlayerScreen)
musicPlayerScreen->display = lv_obj_create(NULL);
lv_obj_set_style_bg_color(musicPlayerScreen->display, lv_color_black(), LV_PART_MAIN);
//Let's create the UI for this amazing music player ...
//Play/Pause button
if(musicPlayerScreen->playPauseBtn.button)
{
LV_LOG_ERROR("playPauseBtn should be NULL here !");
lv_obj_del(musicPlayerScreen->playPauseBtn.button);
musicPlayerScreen->playPauseBtn.button = NULL;
}
musicPlayerScreen->playPauseBtn.button = lv_btn_create(musicPlayerScreen->display);
lv_obj_set_size(musicPlayerScreen->playPauseBtn.button, 60, 60);
lv_obj_set_style_radius(musicPlayerScreen->playPauseBtn.button, LV_RADIUS_CIRCLE, LV_PART_MAIN);
lv_obj_align(musicPlayerScreen->playPauseBtn.button, LV_ALIGN_BOTTOM_MID, 0, -80);
musicPlayerScreen->playPauseBtn.label = lv_label_create(musicPlayerScreen->playPauseBtn.button);
strcpy(musicPlayerScreen->playPauseBtn.icon, musicPlayerScreen->currentPlayState == MUSIC_CONTROL_PLAY ? LV_SYMBOL_PAUSE : LV_SYMBOL_PLAY);
lv_label_set_text_static(musicPlayerScreen->playPauseBtn.label, musicPlayerScreen->playPauseBtn.icon);
lv_obj_set_style_text_font(musicPlayerScreen->playPauseBtn.label, &lv_font_montserrat_30, LV_PART_MAIN);
lv_obj_center(musicPlayerScreen->playPauseBtn.label);
lv_obj_set_user_data(musicPlayerScreen->playPauseBtn.button, MUSIC_CONTROL_PLAY);
lv_obj_add_event_cb(musicPlayerScreen->playPauseBtn.button, &(music_player_button_click_event_cb), LV_EVENT_CLICKED, musicPlayerScreen);
//Previous track button
lv_obj_t *previousBtn = lv_btn_create(musicPlayerScreen->display);
lv_obj_set_size(previousBtn, 47, 47);
lv_obj_set_style_radius(previousBtn, LV_RADIUS_CIRCLE, LV_PART_MAIN);
lv_obj_align_to(previousBtn, musicPlayerScreen->playPauseBtn.label, LV_ALIGN_OUT_LEFT_MID, -25, 0);
lv_obj_t *previousBtnLabel = lv_label_create(previousBtn);
lv_label_set_text_static(previousBtnLabel, LV_SYMBOL_LEFT LV_SYMBOL_LEFT);
lv_obj_set_style_text_font(previousBtnLabel, &lv_font_montserrat_24, LV_PART_MAIN);
lv_obj_center(previousBtnLabel);
lv_obj_set_user_data(previousBtn, (void *)MUSIC_CONTROL_PREVIOUS);
lv_obj_add_event_cb(previousBtn, &(music_player_button_click_event_cb), LV_EVENT_SHORT_CLICKED, musicPlayerScreen);
lv_obj_add_event_cb(previousBtn, &(music_player_button_click_event_cb), LV_EVENT_LONG_PRESSED, musicPlayerScreen);
//Next track button
lv_obj_t *nextBtn = lv_btn_create(musicPlayerScreen->display);
lv_obj_set_size(nextBtn, 47, 47);
lv_obj_set_style_radius(nextBtn, LV_RADIUS_CIRCLE, LV_PART_MAIN);
lv_obj_align_to(nextBtn, musicPlayerScreen->playPauseBtn.label, LV_ALIGN_OUT_RIGHT_MID, 25, 0);
lv_obj_t *nextBtnLabel = lv_label_create(nextBtn);
lv_label_set_text_static(nextBtnLabel, LV_SYMBOL_RIGHT LV_SYMBOL_RIGHT);
lv_obj_set_style_text_font(nextBtnLabel, &lv_font_montserrat_24, LV_PART_MAIN);
lv_obj_center(nextBtnLabel);
lv_obj_set_user_data(nextBtn, (void *)MUSIC_CONTROL_NEXT);
lv_obj_add_event_cb(nextBtn, &(music_player_button_click_event_cb), LV_EVENT_SHORT_CLICKED, musicPlayerScreen);
lv_obj_add_event_cb(nextBtn, &(music_player_button_click_event_cb), LV_EVENT_LONG_PRESSED, musicPlayerScreen);
//Volume down button
lv_obj_t *volumeDownBtn = lv_btn_create(musicPlayerScreen->display);
lv_obj_set_size(volumeDownBtn, 47, 47);
lv_obj_set_style_radius(volumeDownBtn, LV_RADIUS_CIRCLE, LV_PART_MAIN);
lv_obj_align_to(volumeDownBtn, previousBtn, LV_ALIGN_BOTTOM_MID, 25, 50);
lv_obj_t *volumeDownBtnLabel = lv_label_create(volumeDownBtn);
lv_label_set_text_static(volumeDownBtnLabel, LV_SYMBOL_VOLUME_MID);
lv_obj_set_style_text_font(volumeDownBtnLabel, &lv_font_montserrat_24, LV_PART_MAIN);
lv_obj_center(volumeDownBtnLabel);
lv_obj_set_user_data(volumeDownBtn, (void *)MUSIC_CONTROL_VOLUMEDOWN);
lv_obj_add_event_cb(volumeDownBtn, &(music_player_button_click_event_cb), LV_EVENT_CLICKED, musicPlayerScreen);
//Volume up button
lv_obj_t *volumeUpBtn = lv_btn_create(musicPlayerScreen->display);
lv_obj_set_size(volumeUpBtn, 47, 47);
lv_obj_set_style_radius(volumeUpBtn, LV_RADIUS_CIRCLE, LV_PART_MAIN);
lv_obj_align_to(volumeUpBtn, nextBtn, LV_ALIGN_BOTTOM_MID, -25, 50);
lv_obj_t *volumeUpBtnLabel = lv_label_create(volumeUpBtn);
lv_label_set_text_static(volumeUpBtnLabel, LV_SYMBOL_VOLUME_MAX);
lv_obj_set_style_text_font(volumeUpBtnLabel, &lv_font_montserrat_24, LV_PART_MAIN);
lv_obj_center(volumeUpBtnLabel);
lv_obj_set_user_data(volumeUpBtn, (void *)MUSIC_CONTROL_VOLUMEUP);
lv_obj_add_event_cb(volumeUpBtn, &(music_player_button_click_event_cb), LV_EVENT_CLICKED, musicPlayerScreen);
//Track title
if(musicPlayerScreen->titleLabel)
{
LV_LOG_ERROR("titleLabel should be NULL here !");
lv_obj_del(musicPlayerScreen->titleLabel);
musicPlayerScreen->titleLabel = NULL;
}
musicPlayerScreen->titleLabel = lv_label_create(musicPlayerScreen->display);
lv_label_set_text_static(musicPlayerScreen->titleLabel, musicPlayerScreen->titleText);
lv_obj_set_style_text_color(musicPlayerScreen->titleLabel, lv_color_white(), LV_PART_MAIN);
lv_obj_set_style_text_font(musicPlayerScreen->titleLabel, &lv_font_montserrat_28, LV_PART_MAIN);
lv_obj_set_width(musicPlayerScreen->titleLabel, 200);
lv_obj_align(musicPlayerScreen->titleLabel, LV_ALIGN_TOP_MID, 0, 40);
lv_obj_set_style_text_align(musicPlayerScreen->titleLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
lv_label_set_long_mode(musicPlayerScreen->titleLabel, LV_LABEL_LONG_SCROLL_CIRCULAR);
//Track artist
if(musicPlayerScreen->artistLabel)
{
LV_LOG_ERROR("artistLabel should be NULL here !");
lv_obj_del(musicPlayerScreen->artistLabel);
musicPlayerScreen->artistLabel = NULL;
}
musicPlayerScreen->artistLabel = lv_label_create(musicPlayerScreen->display);
lv_label_set_text_static(musicPlayerScreen->artistLabel, musicPlayerScreen->artistText);
lv_obj_set_style_text_color(musicPlayerScreen->artistLabel, lv_color_white(), LV_PART_MAIN);
lv_obj_set_style_text_font(musicPlayerScreen->artistLabel, &lv_font_montserrat_16, LV_PART_MAIN);
lv_obj_set_size(musicPlayerScreen->artistLabel, 150, 20);
lv_obj_align_to(musicPlayerScreen->artistLabel, musicPlayerScreen->titleLabel, LV_ALIGN_BOTTOM_MID, 0, 25);
lv_obj_set_style_text_align(musicPlayerScreen->artistLabel, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);
lv_label_set_long_mode(musicPlayerScreen->artistLabel, LV_LABEL_LONG_SCROLL_CIRCULAR);
//Track playback labels
if(musicPlayerScreen->durationTimeLabel.label)
{
LV_LOG_ERROR("durationTimeLabel should be NULL here !");
lv_obj_del(musicPlayerScreen->durationTimeLabel.label);
musicPlayerScreen->durationTimeLabel.label = NULL;
}
musicPlayerScreen->durationTimeLabel.label = lv_label_create(musicPlayerScreen->display);
lv_obj_set_style_text_color(musicPlayerScreen->durationTimeLabel.label, lv_color_white(), LV_PART_MAIN);
lv_obj_align(musicPlayerScreen->durationTimeLabel.label, LV_ALIGN_BOTTOM_RIGHT, -60, -20);
if(musicPlayerScreen->positionTimeLabel.label)
{
LV_LOG_ERROR("positionTimeLabel should be NULL here !");
lv_obj_del(musicPlayerScreen->positionTimeLabel.label);
musicPlayerScreen->positionTimeLabel.label = NULL;
}
musicPlayerScreen->positionTimeLabel.label = lv_label_create(musicPlayerScreen->display);
lv_obj_set_style_text_color(musicPlayerScreen->positionTimeLabel.label, lv_color_white(), LV_PART_MAIN);
lv_obj_align(musicPlayerScreen->positionTimeLabel.label, LV_ALIGN_BOTTOM_LEFT, 60, -20);
//Track playback cursor
if(musicPlayerScreen->playbackArc)
{
LV_LOG_ERROR("playbackArc should be NULL here !");
lv_obj_del(musicPlayerScreen->playbackArc);
musicPlayerScreen->playbackArc = NULL;
}
musicPlayerScreen->playbackArc = lv_arc_create(musicPlayerScreen->display);
lv_obj_remove_style(musicPlayerScreen->playbackArc, NULL, LV_PART_KNOB);
lv_obj_clear_flag(musicPlayerScreen->playbackArc, LV_OBJ_FLAG_CLICKABLE);
lv_obj_align(musicPlayerScreen->playbackArc, LV_ALIGN_CENTER, 0,0);
lv_obj_set_size(musicPlayerScreen->playbackArc, 240, 240);
lv_obj_set_style_arc_color(musicPlayerScreen->playbackArc, lv_palette_main(LV_PALETTE_LIME), LV_PART_INDICATOR);
music_player_screen_set_music_duration(musicPlayerScreen, musicPlayerScreen->currentMusicDuration);
music_player_screen_set_music_position(musicPlayerScreen, musicPlayerScreen->currentMusicPosition);
//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

View File

@ -3,21 +3,65 @@
#include "lvgl.h"
typedef void (*MusicPlaybackCtrlCb_t)(void);
typedef enum MusicPlaybackCtrlAction
{
MUSIC_CONTROL_PLAY = 0,
MUSIC_CONTROL_PAUSE,
MUSIC_CONTROL_PLAYPAUSE,
MUSIC_CONTROL_NEXT,
MUSIC_CONTROL_PREVIOUS,
MUSIC_CONTROL_VOLUMEUP,
MUSIC_CONTROL_VOLUMEDOWN,
MUSIC_CONTROL_FORWARD,
MUSIC_CONTROL_REWIND,
} MusicPlaybackCtrlAction_e;
typedef void (*MusicPlaybackCtrlCb_t)(MusicPlaybackCtrlAction_e musicPlaybackCtrlAction);
typedef struct PlayerButton
{
lv_obj_t *button;
lv_obj_t *label;
char icon[4];
} PlayerButton_t;
typedef struct TimeLabel
{
lv_obj_t *label;
char text[9];
} TimeLabel_t;
typedef struct MusicPlayerScreen
{
//Can be erased attributes
lv_obj_t *display;
PlayerButton_t playPauseBtn;
lv_obj_t *playbackArc;
lv_obj_t *titleLabel;
lv_obj_t *artistLabel;
TimeLabel_t positionTimeLabel, durationTimeLabel;
//Should not be erased attributes
MusicPlaybackCtrlCb_t musicPlaybackCtrlCb;
MusicPlaybackCtrlAction_e currentPlayState;
char titleText[60];
char artistText[30];
uint16_t currentMusicDuration; //The currently playing music's total duration in seconds.
uint16_t currentMusicPosition; //The currently playing music's cursor position in seconds.
} 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_set_playing_music_title_and_artist(MusicPlayerScreen_t * const musicPlayerScreen, const char *title, const char *artist);
void music_player_screen_set_music_duration(MusicPlayerScreen_t * const musicPlayerScreen, uint16_t durationInSeconds);
void music_player_screen_set_music_position(MusicPlayerScreen_t * const musicPlayerScreen, uint16_t positionInSeconds);
void music_player_screen_set_music_playing_state(MusicPlayerScreen_t * const musicPlayerScreen, MusicPlaybackCtrlAction_e playingState);
bool music_player_screen_is_in_use(MusicPlayerScreen_t * const musicPlayerScreen);
void music_player_screen_create(MusicPlayerScreen_t * const musicPlayerScreen);