mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-07-04 13:17:08 -04:00
101 lines
4.0 KiB
C++
101 lines
4.0 KiB
C++
/*
|
|
* @file AudioSerivceAPI.cpp
|
|
* @author Mateusz Piesta (mateusz.piesta@mudita.com)
|
|
* @date 29.07.19
|
|
* @brief
|
|
* @copyright Copyright (C) 2019 mudita.com
|
|
* @details
|
|
*/
|
|
|
|
|
|
|
|
#include "AudioServiceAPI.hpp"
|
|
#include "Service/Bus.hpp"
|
|
#include "../ServiceAudio.hpp"
|
|
|
|
using namespace audio;
|
|
|
|
|
|
RetCode AudioServiceAPI::PlaybackStart(sys::Service *serv, const std::string &fileName) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioPlaybackStart);
|
|
msg->fileName = fileName;
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
RetCode AudioServiceAPI::RecordingStart(sys::Service *serv, const std::string &fileName) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioRecorderStart);
|
|
msg->fileName = fileName;
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
audio::RetCode AudioServiceAPI::RoutingStart(sys::Service *serv) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioRoutingStart);
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
audio::RetCode AudioServiceAPI::RoutingRecordCtrl(sys::Service *serv, bool enable) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioRoutingRecordCtrl);
|
|
msg->enable = enable;
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
RetCode AudioServiceAPI::Stop(sys::Service *serv) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioStop);
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
RetCode AudioServiceAPI::Pause(sys::Service *serv) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioPause);
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
RetCode AudioServiceAPI::Resume(sys::Service *serv) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioResume);
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
|
|
|
|
RetCode AudioServiceAPI::SetInputGain(sys::Service *serv, const Gain gain) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioSetInputGain);
|
|
msg->val = gain;
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
RetCode AudioServiceAPI::SetOutputVolume(sys::Service *serv, const Volume vol) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioSetOutputVolume);
|
|
msg->val = vol;
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode;
|
|
}
|
|
|
|
std::optional<Tags> AudioServiceAPI::GetFileTags(sys::Service *serv, const std::string &fileName) {
|
|
std::shared_ptr<AudioRequestMessage> msg = std::make_shared<AudioRequestMessage>(MessageType::AudioGetFileTags);
|
|
msg->fileName = fileName;
|
|
|
|
auto ret = sys::Bus::SendUnicast(msg,ServiceAudio::serviceName,serv,5000);
|
|
if(reinterpret_cast<AudioResponseMessage*>(ret.second.get())->retCode != RetCode::Success){
|
|
return {};
|
|
}
|
|
else{
|
|
return reinterpret_cast<AudioResponseMessage*>(ret.second.get())->tags;
|
|
}
|
|
}
|
|
|