summaryrefslogtreecommitdiff
path: root/src/components/ble/MusicService.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/ble/MusicService.h')
-rw-r--r--src/components/ble/MusicService.h130
1 files changed, 44 insertions, 86 deletions
diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h
index 172ab61c..5f5343e4 100644
--- a/src/components/ble/MusicService.h
+++ b/src/components/ble/MusicService.h
@@ -26,40 +26,40 @@
#undef max
#undef min
-//00000000-78fc-48fe-8e23-433b3a1942d0
-#define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00}
+// 00000000-78fc-48fe-8e23-433b3a1942d0
+#define MUSIC_SERVICE_UUID_BASE \
+ { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00 }
namespace Pinetime {
namespace System {
class SystemTask;
}
namespace Controllers {
-
+
class MusicService {
public:
- explicit MusicService(Pinetime::System::SystemTask &system);
-
+ explicit MusicService(Pinetime::System::SystemTask& system);
+
void Init();
-
- int OnCommand(uint16_t conn_handle, uint16_t attr_handle,
- struct ble_gatt_access_ctxt *ctxt);
-
+
+ int OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt);
+
void event(char event);
-
+
std::string getArtist();
-
+
std::string getTrack();
-
+
std::string getAlbum();
-
+
int getProgress();
-
+
int getTrackLength();
-
+
float getPlaybackSpeed();
-
+
bool isPlaying();
-
+
static const char EVENT_MUSIC_OPEN = 0xe0;
static const char EVENT_MUSIC_PLAY = 0x00;
static const char EVENT_MUSIC_PAUSE = 0x01;
@@ -67,11 +67,9 @@ namespace Pinetime {
static const char EVENT_MUSIC_PREV = 0x04;
static const char EVENT_MUSIC_VOLUP = 0x05;
static const char EVENT_MUSIC_VOLDOWN = 0x06;
-
- enum MusicStatus {
- NotPlaying = 0x00,
- Playing = 0x01
- };
+
+ enum MusicStatus { NotPlaying = 0x00, Playing = 0x01 };
+
private:
static constexpr uint8_t msId[2] = {0x00, 0x00};
static constexpr uint8_t msEventCharId[2] = {0x01, 0x00};
@@ -86,84 +84,44 @@ namespace Pinetime {
static constexpr uint8_t msPlaybackSpeedCharId[2] = {0x0a, 0x00};
static constexpr uint8_t msRepeatCharId[2] = {0x0b, 0x00};
static constexpr uint8_t msShuffleCharId[2] = {0x0c, 0x00};
-
- ble_uuid128_t msUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
-
- ble_uuid128_t msEventCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msStatusCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msArtistCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msTrackCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msAlbumCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msPositionCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msTotalLengthCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msTrackNumberCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msTrackTotalCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msPlaybackSpeedCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msRepeatCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
- ble_uuid128_t msShuffleCharUuid{
- .u = {.type = BLE_UUID_TYPE_128},
- .value = MUSIC_SERVICE_UUID_BASE
- };
-
+
+ ble_uuid128_t msUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+
+ ble_uuid128_t msEventCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msStatusCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msArtistCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msTrackCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msAlbumCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msPositionCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msTotalLengthCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msTrackNumberCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msTrackTotalCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msPlaybackSpeedCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msRepeatCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+ ble_uuid128_t msShuffleCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE};
+
struct ble_gatt_chr_def characteristicDefinition[14];
struct ble_gatt_svc_def serviceDefinition[2];
-
+
uint16_t eventHandle;
-
+
std::string artistName;
std::string albumName;
std::string trackName;
-
+
bool playing;
-
+
int trackProgress;
int trackLength;
int trackNumber;
int tracksTotal;
-
+
float playbackSpeed;
-
+
bool repeat;
bool shuffle;
-
- Pinetime::System::SystemTask &m_system;
+
+ Pinetime::System::SystemTask& m_system;
};
}
}
-