M products/BellHybrid/alarms/src/actions/PlayAudioActions.cpp => products/BellHybrid/alarms/src/actions/PlayAudioActions.cpp +2 -2
@@ 21,7 21,7 @@ namespace alarms
bool PlayAudioAction::play(const std::filesystem::path &path, std::chrono::minutes duration)
{
- if (duration != InfiniteDuration) {
+ if (duration != InfiniteDuration && duration != NoDuration) {
spawnTimer(duration);
}
return service.bus.sendUnicast(std::make_shared<service::AudioStartPlaybackRequest>(path, playbackType),
@@ 67,7 67,7 @@ namespace alarms
return std::make_unique<PlayAudioAction>(service,
paths::getPreWakeUpChimesDir(),
bell::settings::PrewakeUp::tone,
- bell::settings::PrewakeUp::duration,
+ NoPlaybackTimeout,
audio::PlaybackType::PreWakeUp);
}
M products/BellHybrid/alarms/src/actions/PlayAudioActions.hpp => products/BellHybrid/alarms/src/actions/PlayAudioActions.hpp +3 -0
@@ 28,6 28,8 @@ namespace alarms
private:
static constexpr auto InfiniteDuration = std::chrono::minutes::max();
+ static constexpr auto NoDuration = std::chrono::minutes::zero();
+
bool play(const std::filesystem::path &path, std::chrono::minutes duration = InfiniteDuration);
void spawnTimer(std::chrono::minutes timeout);
void detachTimer();
@@ 43,6 45,7 @@ namespace alarms
namespace factory
{
+ static constexpr auto NoPlaybackTimeout = "0";
std::unique_ptr<PlayAudioAction> createAlarmToneAction(sys::Service &service);
std::unique_ptr<PlayAudioAction> createPreWakeUpChimeAction(sys::Service &service);
std::unique_ptr<PlayAudioAction> createSnoozeChimeAction(sys::Service &service);