You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
823 B
C++
43 lines
823 B
C++
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
// Copyright The Music Player Daemon Project
|
|
|
|
#pragma once
|
|
|
|
#include "pcm/AudioFormat.hxx"
|
|
#include "pcm/Features.h" // for ENABLE_DSD
|
|
|
|
#include <forward_list>
|
|
#include <string>
|
|
|
|
namespace Alsa {
|
|
|
|
/**
|
|
* An audio format for the "allowed_formats" setting of
|
|
* #AlsaOutputPlugin.
|
|
*/
|
|
struct AllowedFormat {
|
|
AudioFormat format;
|
|
#ifdef ENABLE_DSD
|
|
bool dop;
|
|
#endif
|
|
|
|
/**
|
|
* Parse a format string.
|
|
*
|
|
* Throws std::runtime_error on error.
|
|
*/
|
|
explicit AllowedFormat(std::string_view s);
|
|
|
|
/**
|
|
* Parse a list of formats separated by space.
|
|
*
|
|
* Throws std::runtime_error on error.
|
|
*/
|
|
static std::forward_list<AllowedFormat> ParseList(std::string_view s);
|
|
};
|
|
|
|
std::string
|
|
ToString(const std::forward_list<AllowedFormat> &allowed_formats) noexcept;
|
|
|
|
} // namespace Alsa
|