From 3c5649df95f31381f314a766b23748f57f5c4ee1 Mon Sep 17 00:00:00 2001 From: "Pawel.Paprocki" Date: Mon, 24 May 2021 18:05:30 +0200 Subject: [PATCH] [EGD-6624] Audio support for linux simulator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When using simulator user should hear audio output to test apps like Music Player. Co-authored-by: Tomasz Krosnowski Co-authored-by: Piotr Tański Co-authored-by: Marcin Smoczyński Tested-by: Marcin Smoczyński --- module-audio/Audio/AbstractStream.hpp | 2 +- module-audio/Audio/AudioDevice.hpp | 7 + module-audio/board/linux/CMakeLists.txt | 1 + module-audio/board/linux/LinuxAudioDevice.cpp | 213 ++++++++++++++++++ module-audio/board/linux/LinuxAudioDevice.hpp | 73 ++++++ .../board/linux/LinuxAudioPlatform.cpp | 10 +- .../board/linux/audio/linux_audiocodec.cpp | 2 +- .../service-audio/ServiceAudio.cpp | 4 + 8 files changed, 307 insertions(+), 5 deletions(-) create mode 100644 module-audio/board/linux/LinuxAudioDevice.cpp create mode 100644 module-audio/board/linux/LinuxAudioDevice.hpp diff --git a/module-audio/Audio/AbstractStream.hpp b/module-audio/Audio/AbstractStream.hpp index 740b91613703a6b4304761ce1ec8523896054fd8..1e7dd1a1b04c3d6c9bc1f9b0927ecdecf0e0b3dd 100644 --- a/module-audio/Audio/AbstractStream.hpp +++ b/module-audio/Audio/AbstractStream.hpp @@ -215,7 +215,7 @@ namespace audio [[nodiscard]] virtual auto getInputTraits() const noexcept -> Traits = 0; /** - * @brief Get the traits of the stream's input. + * @brief Get the traits of the stream's output. * * @return Traits */ diff --git a/module-audio/Audio/AudioDevice.hpp b/module-audio/Audio/AudioDevice.hpp index 3dd991753a51249b1e9d5c130a94270fad3ec1da..0166f67c359cac87c28c9d665690509542efbd58 100644 --- a/module-audio/Audio/AudioDevice.hpp +++ b/module-audio/Audio/AudioDevice.hpp @@ -43,7 +43,14 @@ namespace audio return RetCode::Success; } + /// Set device output volume + /// @param vol desired volume from 0 to 10 + /// @return RetCode::Success if OK, or RetCode::Failure otherwise virtual RetCode setOutputVolume(float vol) = 0; + + /// Set device input gain + /// @param gain desired input gain from 0 to 100 + /// @return RetCode::Success if OK, or RetCode::Failure otherwise virtual RetCode setInputGain(float gain) = 0; auto getSinkFormat() -> AudioFormat override diff --git a/module-audio/board/linux/CMakeLists.txt b/module-audio/board/linux/CMakeLists.txt index 656fe7ad8cfd826820aa06f603d425a50dcdc9ed..c0128b803f05a1332cfd4ac8634ed3f73b9e627d 100644 --- a/module-audio/board/linux/CMakeLists.txt +++ b/module-audio/board/linux/CMakeLists.txt @@ -3,6 +3,7 @@ set(AUDIO_LINUX_SOURCES LinuxAudioPlatform.cpp + LinuxAudioDevice.cpp ) add_library(${AUDIO_BOARD_LIBRARY} STATIC ${AUDIO_LINUX_SOURCES}) diff --git a/module-audio/board/linux/LinuxAudioDevice.cpp b/module-audio/board/linux/LinuxAudioDevice.cpp new file mode 100644 index 0000000000000000000000000000000000000000..313802f0e13b042db1313493e455fbe8163a46bf --- /dev/null +++ b/module-audio/board/linux/LinuxAudioDevice.cpp @@ -0,0 +1,213 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#include "LinuxAudioDevice.hpp" +#include