pipewire/spa/include/spa/param/props.h
Wim Taymans b93c4f933d props: add group name PropInfo and Props
Some objects might aggregate properties from multiple other objects.
Make sure they are grouped together with the group property.

This makes it possible to get per port group properties, for example.
2026-06-12 13:03:25 +02:00

134 lines
4.2 KiB
C

/* Simple Plugin API */
/* SPDX-FileCopyrightText: Copyright © 2018 Wim Taymans */
/* SPDX-License-Identifier: MIT */
#ifndef SPA_PARAM_PROPS_H
#define SPA_PARAM_PROPS_H
#include <spa/param/param.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* \addtogroup spa_param
* \{
*/
/** properties of SPA_TYPE_OBJECT_PropInfo */
enum spa_prop_info {
SPA_PROP_INFO_START,
SPA_PROP_INFO_id, /**< (Id) associated id of the property */
SPA_PROP_INFO_name, /**< (String) name of the property */
SPA_PROP_INFO_type, /**< type and range/enums of property */
SPA_PROP_INFO_labels, /**< labels of property if any, this is a
* struct with pairs of values, the first one
* is of the type of the property, the second
* one is a string with a user readable label
* for the value. */
SPA_PROP_INFO_container, /**< (Id) type of container if any */
SPA_PROP_INFO_params, /**< (Bool) is part of params property */
SPA_PROP_INFO_description, /**< (String) User readable description */
SPA_PROP_INFO_group, /**< (String) the property group name */
};
/** predefined properties for SPA_TYPE_OBJECT_Props */
enum spa_prop {
SPA_PROP_START,
SPA_PROP_unknown, /**< an unknown property */
SPA_PROP_group, /**< (String) the property group name */
SPA_PROP_START_Device = 0x100, /**< device related properties */
SPA_PROP_device,
SPA_PROP_deviceName,
SPA_PROP_deviceFd,
SPA_PROP_card,
SPA_PROP_cardName,
SPA_PROP_minLatency,
SPA_PROP_maxLatency,
SPA_PROP_periods,
SPA_PROP_periodSize,
SPA_PROP_periodEvent,
SPA_PROP_live,
SPA_PROP_rate,
SPA_PROP_quality,
SPA_PROP_bluetoothAudioCodec,
SPA_PROP_bluetoothOffloadActive,
SPA_PROP_clockId,
SPA_PROP_clockDevice,
SPA_PROP_clockInterface,
SPA_PROP_START_Audio = 0x10000, /**< audio related properties */
SPA_PROP_waveType,
SPA_PROP_frequency,
SPA_PROP_volume, /**< a volume (Float), 0.0 silence, 1.0 no attenutation */
SPA_PROP_mute, /**< mute (Bool) */
SPA_PROP_patternType,
SPA_PROP_ditherType,
SPA_PROP_truncate,
SPA_PROP_channelVolumes, /**< a volume array, one (linear) volume per channel
* (Array of Float). 0.0 is silence, 1.0 is
* without attenuation. This is the effective
* volume that is applied. It can result
* in a hardware volume and software volume
* (see softVolumes) */
SPA_PROP_volumeBase, /**< a volume base (Float) */
SPA_PROP_volumeStep, /**< a volume step (Float) */
SPA_PROP_channelMap, /**< a channelmap array
* (Array (Id enum spa_audio_channel)) */
SPA_PROP_monitorMute, /**< mute (Bool) */
SPA_PROP_monitorVolumes, /**< a volume array, one (linear) volume per
* channel (Array of Float) */
SPA_PROP_latencyOffsetNsec, /**< delay adjustment */
SPA_PROP_softMute, /**< mute (Bool) applied in software */
SPA_PROP_softVolumes, /**< a volume array, one (linear) volume per channel
* (Array of Float). 0.0 is silence, 1.0 is without
* attenuation. This is the volume applied in
* software, there might be a part applied in
* hardware. */
SPA_PROP_iec958Codecs, /**< enabled IEC958 (S/PDIF) codecs,
* (Array (Id enum spa_audio_iec958_codec) */
SPA_PROP_volumeRampSamples, /**< Samples to ramp the volume over */
SPA_PROP_volumeRampStepSamples, /**< Step or incremental Samples to ramp
* the volume over */
SPA_PROP_volumeRampTime, /**< Time in millisec to ramp the volume over */
SPA_PROP_volumeRampStepTime, /**< Step or incremental Time in nano seconds
* to ramp the */
SPA_PROP_volumeRampScale, /**< the scale or graph to used to ramp the
* volume */
SPA_PROP_volumeMin, /**< the minimum volume */
SPA_PROP_volumeMax, /**< the maximum volume */
SPA_PROP_START_Video = 0x20000, /**< video related properties */
SPA_PROP_brightness,
SPA_PROP_contrast,
SPA_PROP_saturation,
SPA_PROP_hue,
SPA_PROP_gamma,
SPA_PROP_exposure,
SPA_PROP_gain,
SPA_PROP_sharpness,
SPA_PROP_START_Other = 0x80000, /**< other properties */
SPA_PROP_params, /**< simple control params
* (Struct(
* (String : key,
* Pod : value)*)) */
SPA_PROP_START_CUSTOM = 0x1000000,
};
/**
* \}
*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* SPA_PARAM_PROPS_H */