From 29aaea2d80a9eb1715b6cddfac2d2aacf76358bd Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 11 Feb 2016 23:55:16 +0100 Subject: launchpad ~mzanetti/rockwork/trunk r87 --- rockworkd/libpebble/musicendpoint.cpp | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 rockworkd/libpebble/musicendpoint.cpp (limited to 'rockworkd/libpebble/musicendpoint.cpp') diff --git a/rockworkd/libpebble/musicendpoint.cpp b/rockworkd/libpebble/musicendpoint.cpp new file mode 100644 index 0000000..f66afda --- /dev/null +++ b/rockworkd/libpebble/musicendpoint.cpp @@ -0,0 +1,63 @@ +#include "musicendpoint.h" +#include "pebble.h" +#include "watchconnection.h" + +#include + +MusicEndpoint::MusicEndpoint(Pebble *pebble, WatchConnection *connection): + QObject(pebble), + m_pebble(pebble), + m_watchConnection(connection) +{ + m_watchConnection->registerEndpointHandler(WatchConnection::EndpointMusicControl, this, "handleMessage"); +} + +void MusicEndpoint::setMusicMetadata(const MusicMetaData &metaData) +{ + m_metaData = metaData; + writeMetadata(); +} + +void MusicEndpoint::writeMetadata() +{ + if (!m_watchConnection->isConnected()) { + return; + } + QStringList tmp; + tmp.append(m_metaData.artist.left(30)); + tmp.append(m_metaData.album.left(30)); + tmp.append(m_metaData.title.left(30)); + QByteArray res = m_watchConnection->buildMessageData(16, tmp); // Not yet sure what the 16 is about :/ + + m_watchConnection->writeToPebble(WatchConnection::EndpointMusicControl, res); +} + +void MusicEndpoint::handleMessage(const QByteArray &data) +{ + MusicControlButton controlButton; + switch (data.toHex().toInt()) { + case 0x01: + controlButton = MusicControlPlayPause; + break; + case 0x04: + controlButton = MusicControlSkipNext; + break; + case 0x05: + controlButton = MusicControlSkipBack; + break; + case 0x06: + controlButton = MusicControlVolumeUp; + break; + case 0x07: + controlButton = MusicControlVolumeDown; + break; + case 0x08: + writeMetadata(); + return; + default: + qWarning() << "Unhandled music control button pressed:" << data.toHex(); + return; + } + emit musicControlPressed(controlButton); +} + -- cgit v1.2.3