Files
MuditaOS/module-audio/Audio/test/TestEndpoint.hpp
Marcin Smoczyński f6dd452c41 [EGD-6799] Cleanup audio device interface
This refactoring removes invalid interface dependencies of the original
AudioDevice implementation:
 - move things characteristic to RT1051AudioCodec to audio::codec
 - remove dead methods
 - make start/stop optional and codec configuration independent
 - add more convenient way to get supported formats

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-05-20 19:31:06 +02:00

49 lines
1.4 KiB
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <Audio/Endpoint.hpp>
#include <Audio/AudioFormat.hpp>
#include <vector>
namespace audio::test
{
constexpr inline auto testTraits = ::audio::Endpoint::Traits{};
class TestSink : public audio::Sink
{
public:
explicit TestSink(std::vector<AudioFormat> supportedFormats);
void onDataSend() override;
void enableOutput() override;
void disableOutput() override;
auto getSupportedFormats() -> std::vector<AudioFormat> override;
auto getTraits() const -> ::audio::Endpoint::Traits override;
private:
std::vector<AudioFormat> formats;
};
class TestSource : public audio::Source
{
public:
explicit TestSource(AudioFormat audioFormat);
explicit TestSource(std::vector<AudioFormat> supportedFormats, AudioFormat sourceFormat);
auto getSourceFormat() -> AudioFormat override;
void onDataReceive() override;
void enableInput() override;
void disableInput() override;
auto getSupportedFormats() -> std::vector<AudioFormat> override;
auto getTraits() const -> ::audio::Endpoint::Traits override;
private:
std::vector<AudioFormat> formats;
AudioFormat sourceFormat;
};
} // namespace audio::test