Integrated the music player screen to the watch's firmware + minor other things

This commit is contained in:
Th3maz1ng 2023-05-14 22:14:38 +02:00
parent cf7c52c1eb
commit 17164c722e

View File

@ -11,6 +11,7 @@
#include "menu_screen.h"
#include "compass_screen.h"
#include "find_my_phone_screen.h"
#include "music_player_screen.h"
#include "settings_screen.h"
#include "watch_peripherals.h"
#include "watch_settings.h"
@ -36,6 +37,8 @@ WatchFace_t watchFace;
MenuScreen_t menuScreen;
CompassScreen_t compassScreen;
FindMyPhoneScreen_t findMyPhoneScreen;
MusicPlayerScreen_t musicPlayerScreen;
SettingsScreen_t settingsScreen;
static struct
@ -240,8 +243,8 @@ static void setBLEEnabledCb(bool *enabled, SettingMode_e mode)
{
watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_OFF);
find_my_phone_screen_notify_BLE_connection_state(&findMyPhoneScreen, false);
}
music_player_screen_notify_BLE_connection_state(&musicPlayerScreen, false);
}
}
}
}
@ -374,6 +377,23 @@ static void parser_event_cb(const gadget_bridge_event_data_t *gadget_bridge_even
watch_face_force_sync(&watchFace);
}
break;
case GADGET_BRIDGE_EVENT_TYPE_MUSIC_INFO:
music_player_screen_set_playing_music_title_and_artist(&musicPlayerScreen, gadget_bridge_event_data->music_info.track, gadget_bridge_event_data->music_info.artist);
music_player_screen_set_music_duration(&musicPlayerScreen, gadget_bridge_event_data->music_info.duration_in_seconds);
break;
case GADGET_BRIDGE_EVENT_TYPE_MUSIC_STATE:
switch(gadget_bridge_event_data->music_state.music_state)
{
case GADGET_BRIDGE_MUSIC_STATE_PLAY:
music_player_screen_set_music_playing_state(&musicPlayerScreen, MUSIC_CONTROL_PLAY);
break;
case GADGET_BRIDGE_MUSIC_STATE_PAUSE:
case GADGET_BRIDGE_MUSIC_STATE_STOP:
music_player_screen_set_music_playing_state(&musicPlayerScreen, MUSIC_CONTROL_PAUSE);
break;
}
music_player_screen_set_music_position(&musicPlayerScreen, gadget_bridge_event_data->music_state.position_in_seconds);
break;
default:
APP_LOG_INFO("Not yet handled\n");
}
@ -400,10 +420,12 @@ static void ble_service_state_change_cb(ble_service_state_e ble_service_state)
case BLE_SERVICE_MODE_CONNECTED:
watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_CONNECTED);
find_my_phone_screen_notify_BLE_connection_state(&findMyPhoneScreen, true);
music_player_screen_notify_BLE_connection_state(&musicPlayerScreen, true);
break;
case BLE_SERVICE_MODE_ADVERTISING:
watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_ON);
find_my_phone_screen_notify_BLE_connection_state(&findMyPhoneScreen, false);
music_player_screen_notify_BLE_connection_state(&musicPlayerScreen, false);
break;
case BLE_SERVICE_MODE_SUBSCRIBED:
_is_ble_device_subscribed = true;
@ -462,6 +484,11 @@ static void sendFindMyPhoneBLECommandCb(bool findMyPhone)
gadget_bridge_send_find_phone(findMyPhone);
}
static void sendMusicPlaybackBLECommandCb(MusicPlaybackCtrlAction_e musicPlaybackCtrlAction)
{
gadget_bridge_send_music_control(musicPlaybackCtrlAction);
}
extern LCDConfig_t LCDConfig;
void gfx_task(void *param)
@ -527,6 +554,9 @@ void gfx_task(void *param)
find_my_phone_screen_init(&findMyPhoneScreen);
find_my_phone_screen_register_BLE_command_send_cb(&findMyPhoneScreen, &(sendFindMyPhoneBLECommandCb));
music_player_screen_init(&musicPlayerScreen);
music_player_screen_register_music_playback_control_cb(&musicPlayerScreen, &(sendMusicPlaybackBLECommandCb));
settings_screen_init(&settingsScreen);
settings_screen_register_API_interface(&settingsScreen, &settingsScreenAPIInterface);