M module-services/service-audio/ServiceAudio.cpp => module-services/service-audio/ServiceAudio.cpp +17 -7
@@ 623,14 623,23 @@ void ServiceAudio::MuteCurrentOperation()
}
}
-Operation::State ServiceAudio::GetOperationState()
+ServiceAudio::InternalOperationState ServiceAudio::GetOperationState()
{
for (const auto &input : audioMux.GetAllInputs()) {
if (input.audio->GetCurrentState() != Audio::State::Idle) {
- return input.audio->GetCurrentOperation().GetState();
+ switch (input.audio->GetCurrentOperation().GetState()) {
+ case audio::Operation::State::Idle:
+ return ServiceAudio::InternalOperationState::OperationIdle;
+ case audio::Operation::State::Paused:
+ return ServiceAudio::InternalOperationState::Paused;
+ case audio::Operation::State::Active:
+ return ServiceAudio::InternalOperationState::Active;
+ default:
+ break;
+ }
}
}
- return Operation::State::Idle;
+ return ServiceAudio::InternalOperationState::AudioIdle;
}
sys::MessagePointer ServiceAudio::DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp)
@@ 918,17 927,18 @@ void ServiceAudio::notifyAboutNewRoutingIfRouterAvailable()
}
}
-void ServiceAudio::updateMinimumCpuFrequency(Operation::State operationState)
+void ServiceAudio::updateMinimumCpuFrequency(ServiceAudio::InternalOperationState operationState)
{
switch (operationState) {
- case audio::Operation::State::Idle:
+ case ServiceAudio::InternalOperationState::AudioIdle:
cpuSentinel->ReleaseMinimumFrequency();
break;
- case audio::Operation::State::Paused:
+ case ServiceAudio::InternalOperationState::OperationIdle:
+ case ServiceAudio::InternalOperationState::Paused:
cpuSentinel->HoldMinimumFrequency(bsp::CpuFrequencyMHz::Level_2); // Required to keep PLL2 running, so that
// bandgap used also by PLL4 remains turned on
break;
- case audio::Operation::State::Active:
+ case ServiceAudio::InternalOperationState::Active:
cpuSentinel->HoldMinimumFrequency(bsp::CpuFrequencyMHz::Level_5);
break;
}
M module-services/service-audio/include/service-audio/ServiceAudio.hpp => module-services/service-audio/include/service-audio/ServiceAudio.hpp +10 -2
@@ 39,6 39,14 @@ class ServiceAudio : public sys::Service
Continuous
};
+ enum class InternalOperationState
+ {
+ AudioIdle,
+ OperationIdle,
+ Paused,
+ Active
+ };
+
audio::AudioMux audioMux;
std::shared_ptr<sys::CpuSentinel> cpuSentinel;
audio::AudioMux::VibrationStatus vibrationMotorStatus = audio::AudioMux::VibrationStatus::Off;
@@ 96,7 104,7 @@ class ServiceAudio : public sys::Service
std::string GetSound(const audio::PlaybackType &plType);
constexpr auto IsResumable(const audio::PlaybackType &type) const -> bool;
constexpr auto ShouldLoop(const std::optional<audio::PlaybackType> &type) const -> bool;
- auto GetOperationState() -> audio::Operation::State;
+ auto GetOperationState() -> InternalOperationState;
auto IsSystemSound(const audio::PlaybackType &type) -> bool;
audio::PlaybackType generatePlayback(const audio::PlaybackType &type,
const audio::Setting &setting = audio::Setting::Volume);
@@ 128,7 136,7 @@ class ServiceAudio : public sys::Service
auto handleSingleVibrationStart() -> sys::MessagePointer;
void notifyAboutNewRoutingIfRouterAvailable();
- void updateMinimumCpuFrequency(audio::Operation::State operationState);
+ void updateMinimumCpuFrequency(ServiceAudio::InternalOperationState operationState);
};
namespace sys