mirror of
https://github.com/badaix/snapcast.git
synced 2025-04-28 17:57:05 +02:00
Add code comments
This commit is contained in:
parent
6c02252d84
commit
355c75458a
2 changed files with 44 additions and 14 deletions
|
@ -1,6 +1,6 @@
|
||||||
/***
|
/***
|
||||||
This file is part of snapcast
|
This file is part of snapcast
|
||||||
Copyright (C) 2014-2024 Johannes Pohl
|
Copyright (C) 2014-2025 Johannes Pohl
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -26,58 +26,83 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
|
||||||
|
/// Snapclient settings
|
||||||
struct ClientSettings
|
struct ClientSettings
|
||||||
{
|
{
|
||||||
|
/// Sharing mode for audio device
|
||||||
enum class SharingMode
|
enum class SharingMode
|
||||||
{
|
{
|
||||||
unspecified,
|
unspecified, ///< unspecified
|
||||||
exclusive,
|
exclusive, ///< exclusice access
|
||||||
shared
|
shared ///< shared access
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Mixer settings
|
||||||
struct Mixer
|
struct Mixer
|
||||||
{
|
{
|
||||||
|
/// Mixer mode
|
||||||
enum class Mode
|
enum class Mode
|
||||||
{
|
{
|
||||||
hardware,
|
hardware, ///< hardware mixer
|
||||||
software,
|
software, ///< software mixer
|
||||||
script,
|
script, ///< run a mixer script
|
||||||
none
|
none ///< no mixer
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// the configured mixer mode
|
||||||
Mode mode{Mode::software};
|
Mode mode{Mode::software};
|
||||||
|
/// mixer parameter
|
||||||
std::string parameter;
|
std::string parameter;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Server settings
|
||||||
struct Server
|
struct Server
|
||||||
{
|
{
|
||||||
|
/// server host or IP address
|
||||||
std::string host;
|
std::string host;
|
||||||
|
/// protocol: "tcp", "ws" or "wss"
|
||||||
std::string protocol;
|
std::string protocol;
|
||||||
|
/// server port
|
||||||
size_t port{1704};
|
size_t port{1704};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// The audio player (DAC)
|
||||||
struct Player
|
struct Player
|
||||||
{
|
{
|
||||||
|
/// name of the player
|
||||||
std::string player_name;
|
std::string player_name;
|
||||||
|
/// player parameters
|
||||||
std::string parameter;
|
std::string parameter;
|
||||||
|
/// additional latency of the DAC [ms]
|
||||||
int latency{0};
|
int latency{0};
|
||||||
|
/// the DAC
|
||||||
player::PcmDevice pcm_device;
|
player::PcmDevice pcm_device;
|
||||||
|
/// Sampleformat to be uses, i.e. 48000:16:2
|
||||||
SampleFormat sample_format;
|
SampleFormat sample_format;
|
||||||
|
/// The sharing mode
|
||||||
SharingMode sharing_mode{SharingMode::unspecified};
|
SharingMode sharing_mode{SharingMode::unspecified};
|
||||||
|
/// Mixer settings
|
||||||
Mixer mixer;
|
Mixer mixer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Log settings
|
||||||
struct Logging
|
struct Logging
|
||||||
{
|
{
|
||||||
|
/// The log sink (null,system,stdout,stderr,file:<filename>)
|
||||||
std::string sink;
|
std::string sink;
|
||||||
|
/// Log filter
|
||||||
std::string filter{"*:info"};
|
std::string filter{"*:info"};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// The snapclient process instance
|
||||||
size_t instance{1};
|
size_t instance{1};
|
||||||
|
/// The host id, presented to the server
|
||||||
std::string host_id;
|
std::string host_id;
|
||||||
|
|
||||||
|
/// Server settings
|
||||||
Server server;
|
Server server;
|
||||||
|
/// Player settings
|
||||||
Player player;
|
Player player;
|
||||||
|
/// Logging settings
|
||||||
Logging logging;
|
Logging logging;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/***
|
/***
|
||||||
This file is part of snapcast
|
This file is part of snapcast
|
||||||
Copyright (C) 2014-2020 Johannes Pohl
|
Copyright (C) 2014-2025 Johannes Pohl
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -16,27 +16,32 @@
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef PCM_DEVICE_HPP
|
#pragma once
|
||||||
#define PCM_DEVICE_HPP
|
|
||||||
|
|
||||||
|
// standard headers
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace player
|
namespace player
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/// Name of the default audio device
|
||||||
static constexpr char DEFAULT_DEVICE[] = "default";
|
static constexpr char DEFAULT_DEVICE[] = "default";
|
||||||
|
|
||||||
|
/// DAC identifier
|
||||||
struct PcmDevice
|
struct PcmDevice
|
||||||
{
|
{
|
||||||
|
/// c'tor
|
||||||
PcmDevice() : idx(-1), name(DEFAULT_DEVICE){};
|
PcmDevice() : idx(-1), name(DEFAULT_DEVICE){};
|
||||||
|
|
||||||
|
/// c'tor
|
||||||
PcmDevice(int idx, const std::string& name, const std::string& description = "") : idx(idx), name(name), description(description){};
|
PcmDevice(int idx, const std::string& name, const std::string& description = "") : idx(idx), name(name), description(description){};
|
||||||
|
|
||||||
|
/// index of the DAC (as in "aplay -L")
|
||||||
int idx;
|
int idx;
|
||||||
|
/// device name
|
||||||
std::string name;
|
std::string name;
|
||||||
|
/// device description
|
||||||
std::string description;
|
std::string description;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace player
|
} // namespace player
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue