M module-apps/application-music-player/ApplicationMusicPlayer.cpp => module-apps/application-music-player/ApplicationMusicPlayer.cpp +27 -0
@@ 20,6 20,10 @@ namespace app
: Application(name, parent, startInBackground, 4096)
{
LOG_INFO("ApplicationMusicPlayer::create");
+ connect(typeid(AudioStartPlaybackResponse), [&](sys::Message *msg) {
+ handlePlayResponse(msg);
+ return sys::MessageNone{};
+ });
}
ApplicationMusicPlayer::~ApplicationMusicPlayer()
@@ 27,6 31,12 @@ namespace app
LOG_INFO("ApplicationMusicPlayer::destroy");
}
+ void ApplicationMusicPlayer::handlePlayResponse(sys::Message *msg)
+ {
+ auto startResponse = static_cast<AudioStartPlaybackResponse *>(msg);
+ currentFileToken = startResponse->token;
+ }
+
sys::MessagePointer ApplicationMusicPlayer::DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp)
{
return Application::DataReceivedHandler(msgl);
@@ 95,6 105,23 @@ namespace app
return true;
}
+ bool ApplicationMusicPlayer::pause()
+ {
+ if (currentFileToken) {
+ return AudioServiceAPI::Pause(this, currentFileToken.value());
+ }
+ return false;
+ }
+
+ bool ApplicationMusicPlayer::resume()
+ {
+ if (currentFileToken) {
+
+ return AudioServiceAPI::Resume(this, currentFileToken.value());
+ }
+ return false;
+ }
+
std::optional<audio::Tags> ApplicationMusicPlayer::getFileTags(const std::string &filePath)
{
return AudioServiceAPI::GetFileTags(this, filePath);
M module-apps/application-music-player/ApplicationMusicPlayer.hpp => module-apps/application-music-player/ApplicationMusicPlayer.hpp +3 -0
@@ 26,6 26,7 @@ namespace app
class ApplicationMusicPlayer : public Application
{
+ std::optional<audio::Token> currentFileToken;
public:
ApplicationMusicPlayer(std::string name = name_music_player,
@@ 51,6 52,8 @@ namespace app
bool resume();
bool stop();
std::optional<audio::Tags> getFileTags(const std::string &filePath);
+
+ void handlePlayResponse(sys::Message *msg);
};
template <> struct ManifestTraits<ApplicationMusicPlayer>