PipeWire 0.3.77
Loading...
Searching...
No Matches
Device

Device interface. More...

Files

file  src/pipewire/device.h
 pipewire/device.h
 

Data Structures

struct  pw_device_info
 The device information. More...
 
struct  pw_device_events
 Device events. More...
 
struct  pw_device_methods
 Device methods. More...
 
struct  pw_device
 

Macros

#define PW_TYPE_INTERFACE_Device   PW_TYPE_INFO_INTERFACE_BASE "Device"
 
#define PW_DEVICE_PERM_MASK   PW_PERM_RWXM
 
#define PW_VERSION_DEVICE   3
 
#define PW_DEVICE_CHANGE_MASK_PROPS   (1 << 0)
 
#define PW_DEVICE_CHANGE_MASK_PARAMS   (1 << 1)
 
#define PW_DEVICE_CHANGE_MASK_ALL   ((1 << 2)-1)
 
#define PW_DEVICE_EVENT_INFO   0
 
#define PW_DEVICE_EVENT_PARAM   1
 
#define PW_DEVICE_EVENT_NUM   2
 
#define PW_VERSION_DEVICE_EVENTS   0
 
#define PW_DEVICE_METHOD_ADD_LISTENER   0
 
#define PW_DEVICE_METHOD_SUBSCRIBE_PARAMS   1
 
#define PW_DEVICE_METHOD_ENUM_PARAMS   2
 
#define PW_DEVICE_METHOD_SET_PARAM   3
 
#define PW_DEVICE_METHOD_NUM   4
 
#define PW_VERSION_DEVICE_METHODS   0
 
#define pw_device_method(o, method, version, ...)
 
#define pw_device_add_listener(c, ...)   pw_device_method(c,add_listener,0,__VA_ARGS__)
 
#define pw_device_subscribe_params(c, ...)   pw_device_method(c,subscribe_params,0,__VA_ARGS__)
 Subscribe to parameter changes. More...
 
#define pw_device_enum_params(c, ...)   pw_device_method(c,enum_params,0,__VA_ARGS__)
 Enumerate device parameters. More...
 
#define pw_device_set_param(c, ...)   pw_device_method(c,set_param,0,__VA_ARGS__)
 Set a parameter on the device. More...
 

Functions

struct pw_device_infopw_device_info_update (struct pw_device_info *info, const struct pw_device_info *update)
 Update and existing pw_device_info with update and reset. More...
 
struct pw_device_infopw_device_info_merge (struct pw_device_info *info, const struct pw_device_info *update, bool reset)
 Merge and existing pw_device_info with update. More...
 
void pw_device_info_free (struct pw_device_info *info)
 Free a pw_device_info. More...
 

Detailed Description

Device interface.

Macro Definition Documentation

◆ PW_TYPE_INTERFACE_Device

#define PW_TYPE_INTERFACE_Device   PW_TYPE_INFO_INTERFACE_BASE "Device"

◆ PW_DEVICE_PERM_MASK

#define PW_DEVICE_PERM_MASK   PW_PERM_RWXM

◆ PW_VERSION_DEVICE

#define PW_VERSION_DEVICE   3

◆ PW_DEVICE_CHANGE_MASK_PROPS

#define PW_DEVICE_CHANGE_MASK_PROPS   (1 << 0)

◆ PW_DEVICE_CHANGE_MASK_PARAMS

#define PW_DEVICE_CHANGE_MASK_PARAMS   (1 << 1)

◆ PW_DEVICE_CHANGE_MASK_ALL

#define PW_DEVICE_CHANGE_MASK_ALL   ((1 << 2)-1)

◆ PW_DEVICE_EVENT_INFO

#define PW_DEVICE_EVENT_INFO   0

◆ PW_DEVICE_EVENT_PARAM

#define PW_DEVICE_EVENT_PARAM   1

◆ PW_DEVICE_EVENT_NUM

#define PW_DEVICE_EVENT_NUM   2

◆ PW_VERSION_DEVICE_EVENTS

#define PW_VERSION_DEVICE_EVENTS   0

◆ PW_DEVICE_METHOD_ADD_LISTENER

#define PW_DEVICE_METHOD_ADD_LISTENER   0

◆ PW_DEVICE_METHOD_SUBSCRIBE_PARAMS

#define PW_DEVICE_METHOD_SUBSCRIBE_PARAMS   1

◆ PW_DEVICE_METHOD_ENUM_PARAMS

#define PW_DEVICE_METHOD_ENUM_PARAMS   2

◆ PW_DEVICE_METHOD_SET_PARAM

#define PW_DEVICE_METHOD_SET_PARAM   3

◆ PW_DEVICE_METHOD_NUM

#define PW_DEVICE_METHOD_NUM   4

◆ PW_VERSION_DEVICE_METHODS

#define PW_VERSION_DEVICE_METHODS   0

◆ pw_device_method

#define pw_device_method (   o,
  method,
  version,
  ... 
)

◆ pw_device_add_listener

#define pw_device_add_listener (   c,
  ... 
)    pw_device_method(c,add_listener,0,__VA_ARGS__)

◆ pw_device_subscribe_params

#define pw_device_subscribe_params (   c,
  ... 
)    pw_device_method(c,subscribe_params,0,__VA_ARGS__)

Subscribe to parameter changes.

Automatically emit param events for the given ids when they are changed.

Parameters
idsan array of param ids
n_idsthe number of ids in ids

This requires X permissions on the device.

See also
pw_device_methods.subscribe_params

◆ pw_device_enum_params

#define pw_device_enum_params (   c,
  ... 
)    pw_device_method(c,enum_params,0,__VA_ARGS__)

Enumerate device parameters.

Start enumeration of device parameters. For each param, a param event will be emitted.

Parameters
seqa sequence number to place in the reply
idthe parameter id to enum or PW_ID_ANY for all
startthe start index or 0 for the first param
numthe maximum number of params to retrieve
filtera param filter or NULL

This requires X permissions on the device.

See also
pw_device_methods.enum_params

◆ pw_device_set_param

#define pw_device_set_param (   c,
  ... 
)    pw_device_method(c,set_param,0,__VA_ARGS__)

Set a parameter on the device.

Parameters
idthe parameter id to set
flagsextra parameter flags
paramthe parameter to set

This requires W and X permissions on the device.

See also
pw_device_methods.set_param

Function Documentation

◆ pw_device_info_update()

struct pw_device_info * pw_device_info_update ( struct pw_device_info info,
const struct pw_device_info update 
)

Update and existing pw_device_info with update and reset.

◆ pw_device_info_merge()

struct pw_device_info * pw_device_info_merge ( struct pw_device_info info,
const struct pw_device_info update,
bool  reset 
)

Merge and existing pw_device_info with update.

◆ pw_device_info_free()

void pw_device_info_free ( struct pw_device_info info)

Free a pw_device_info.