/** Special sink flags. \since 0.8 */
typedef enum pa_sink_flags {
PA_SINK_HW_VOLUME_CTRL = 1, /**< Supports hardware volume control */
- PA_SINK_LATENCY = 2 /**< Supports latency querying */
+ PA_SINK_LATENCY = 2, /**< Supports latency querying */
+ PA_SINK_HARDWARE = 4 /**< Is a hardware sink of some kind, in contrast to "virtual"/software sinks */
} pa_sink_flags_t;
/** Special source flags. \since 0.8 */
typedef enum pa_source_flags {
PA_SOURCE_HW_VOLUME_CTRL = 1, /**< Supports hardware volume control */
- PA_SOURCE_LATENCY = 2 /**< Supports latency querying */
+ PA_SOURCE_LATENCY = 2, /**< Supports latency querying */
+ PA_SOURCE_HARDWARE = 4 /**< Is a hardware source of some kind, in contrast to "virtual"/software source */
} pa_source_flags_t;
/** A generic free() like callback prototype */
PA_TAG_STRING, sink->monitor_source->name,
PA_TAG_USEC, pa_sink_get_latency(sink),
PA_TAG_STRING, sink->driver,
- PA_TAG_U32, (sink->get_hw_volume ? PA_SINK_HW_VOLUME_CTRL : 0) | (sink->get_latency ? PA_SINK_LATENCY : 0),
+ PA_TAG_U32,
+ (sink->get_hw_volume ? PA_SINK_HW_VOLUME_CTRL : 0) |
+ (sink->get_latency ? PA_SINK_LATENCY : 0) |
+ (sink->is_hardware ? PA_SINK_HARDWARE : 0),
PA_TAG_INVALID);
}
PA_TAG_STRING, source->monitor_of ? source->monitor_of->name : NULL,
PA_TAG_USEC, pa_source_get_latency(source),
PA_TAG_STRING, source->driver,
- PA_TAG_U32, (source->get_hw_volume ? PA_SOURCE_HW_VOLUME_CTRL : 0) | (source->get_latency ? PA_SOURCE_LATENCY : 0),
+ PA_TAG_U32,
+ (source->get_hw_volume ? PA_SOURCE_HW_VOLUME_CTRL : 0) |
+ (source->get_latency ? PA_SOURCE_LATENCY : 0) |
+ (source->is_hardware ? PA_SOURCE_HARDWARE : 0),
PA_TAG_INVALID);
}