// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once namespace sys { class Service; } namespace call::api { class Audio { public: virtual void play() = 0; virtual void stop() = 0; virtual void muteCall() = 0; virtual void unmuteCall() = 0; virtual void setLoudspeakerOn() = 0; virtual void setLoudspeakerOff() = 0; virtual void routingStart() = 0; virtual ~Audio() = default; }; } // namespace call::api class Audio : public call::api::Audio { struct CallMeta; sys::Service *owner; CallMeta *meta = nullptr; bool started = false; public: explicit Audio(sys::Service *); ~Audio(); void play(); void stop(); void muteCall(); void unmuteCall(); void setLoudspeakerOn(); void setLoudspeakerOff(); void routingStart(); };