PipeWire  0.1.4
pw_proxy Class Reference

Represents an object on the client side. More...

Collaboration diagram for pw_proxy:

Public Member Functions

struct pw_proxypw_proxy_new (struct pw_proxy *factory, uint32_t type, size_t user_data_size)
 Create a proxy object with a given id and type. More...
 
void pw_proxy_destroy (struct pw_proxy *proxy)
 Destroy a proxy object. More...
 

Data Fields

struct pw_remoteremote
 the owner remote of this proxy More...
 
struct spa_list link
 link in the remote More...
 
uint32_t id
 client side id More...
 
struct spa_hook_list listener_list
 
struct spa_hook_list proxy_listener_list
 
const struct pw_protocol_marshalmarshal
 protocol specific marshal functions More...
 
void * user_data
 extra user data More...
 

Detailed Description

Represents an object on the client side.

A pw_proxy acts as a client side proxy to an object existing in the pipewire server. The proxy is responsible for converting interface functions invoked by the client to PipeWire messages. Events will call the handlers set in listener.

See Proxy

Member Function Documentation

◆ pw_proxy_destroy()

void pw_proxy_destroy ( struct pw_proxy proxy)

Destroy a proxy object.

Parameters
proxyProxy object to destroy
Note
This is normally called by pw_remote when the server decides to destroy the server side object

References id, link, listener_list, pw_remote::objects, and remote.

◆ pw_proxy_new()

struct pw_proxy * pw_proxy_new ( struct pw_proxy factory,
uint32_t  type,
size_t  user_data_size 
)

Create a proxy object with a given id and type.

Parameters
proxyanother proxy object that serves as a factory
idId of the new object, SPA_ID_INVALID will choose a new id
typeType of the proxy object
Returns
A newly allocated proxy object or NULL on failure

This function creates a new proxy object with the supplied id and type. The proxy object will have an id assigned from the client id space.

See also
pw_remote

References pw_remote::conn, link, pw_remote::listener_list, pw_remote::objects, pw_protocol_client::protocol, pw_remote::proxy_list, pw_protocol_get_marshal(), and remote.

Field Documentation

◆ id

uint32_t pw_proxy::id

client side id

Referenced by pw_proxy_destroy(), and pw_proxy_get_id().

◆ link

struct spa_list pw_proxy::link

link in the remote

Referenced by pw_proxy_destroy(), and pw_proxy_new().

◆ listener_list

struct spa_hook_list pw_proxy::listener_list

◆ marshal

const struct pw_protocol_marshal* pw_proxy::marshal

protocol specific marshal functions

Referenced by pw_proxy_get_marshal().

◆ proxy_listener_list

struct spa_hook_list pw_proxy::proxy_listener_list

◆ remote

struct pw_remote* pw_proxy::remote

the owner remote of this proxy

Referenced by pw_proxy_destroy(), pw_proxy_get_protocol(), and pw_proxy_new().

◆ user_data

void* pw_proxy::user_data

extra user data

Referenced by pw_proxy_get_user_data().


The documentation for this class was generated from the following files: