AV module

Device

Represents a system audio, video or render device.

Device

#include <icy/av/devicemanager.h>

Represents a system audio, video or render device.

Public Attributes

ReturnNameDescription
Typetype
std::stringid
std::stringname
boolisDefault
boolisConnected
boolisInUse
std::vector< VideoCapability >videoCapabilities
std::vector< AudioCapability >audioCapabilities

type

Type type {}

id

std::string id

name

std::string name

isDefault

bool isDefault {false}

isConnected

bool isConnected {true}

isInUse

bool isInUse {false}

videoCapabilities

std::vector< VideoCapability > videoCapabilities

audioCapabilities

std::vector< AudioCapability > audioCapabilities

Public Methods

ReturnNameDescription
DeviceConstruct a device with Unknown type and empty fields.
DeviceConstruct a device with explicit fields.
voidprint constPrint device details (type, id, name, capabilities) to the given stream.
booloperator== const inlineEquality based on type, id, and name.
VideoCapabilitybestVideoCapability const inlineFind the video capability closest to the requested parameters.
AudioCapabilitybestAudioCapability const inlineFind the audio capability closest to the requested parameters.

Device

Device()

Construct a device with Unknown type and empty fields.


Device

Device(Type type, const std::string & id, const std::string & name, bool isDefault)

Construct a device with explicit fields.

Parameters

  • type The device type (VideoInput, AudioInput, etc.).

  • id The platform-specific device identifier.

  • name The human-readable device name.

  • isDefault True if this is the system default device of its type.


print

const

void print(std::ostream & os) const

Print device details (type, id, name, capabilities) to the given stream.

Parameters

  • os The output stream to write to.

operator==

const inline

inline bool operator==(const Device & that) const

Equality based on type, id, and name.


bestVideoCapability

const inline

inline VideoCapability bestVideoCapability(int width, int height, double fps) const

Find the video capability closest to the requested parameters.

Scoring: resolution match weighted 70%, fps match weighted 30%. Both dimensions are normalised to [0,1] so the weights are meaningful. Prefers capabilities that are >= the requested resolution (upscaling is worse than slight downscaling).

Returns a default capability with the requested values if none are available (allows callers to skip the empty check).


bestAudioCapability

const inline

inline AudioCapability bestAudioCapability(int sampleRate, int channels) const

Find the audio capability closest to the requested parameters.

Scoring: sample rate match weighted 70%, channel count weighted 30%. Both dimensions are normalised to [0,1].

Returns a default capability with the requested values if none are available.

Public Types

NameDescription
Type

Type

enum Type
ValueDescription
Unknown
VideoInput
VideoOutput
AudioInput
AudioOutput