Loading...
Searching...
No Matches
Proxy
Core API

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

## Files

file | proxy.h
| `pipewire/proxy.h`

## Data Structures

struct | pw_proxy_events
| Proxy events, use pw_proxy_add_listener. More...
struct | pw_proxy

## Macros

#define | PW_VERSION_PROXY_EVENTS 1
#define | pw_proxy_notify(p, type, event, version, ...)
#define | pw_proxy_call(p, type, method, version, ...)
#define | pw_proxy_call_res(p, type, method, version, ...)

## Functions

struct pw_proxy * | pw_proxy_new (struct pw_proxy *factory, const char *type, uint32_t version, size_t user_data_size)
| Create a proxy object with a given id and type.
void | pw_proxy_add_listener (struct pw_proxy *proxy, struct spa_hook *listener, const struct pw_proxy_events *events, void *data)
| Add an event listener to proxy.
void | pw_proxy_add_object_listener (struct pw_proxy *proxy, struct spa_hook *listener, const void *funcs, void *data)
| Add a listener for the events received from the remote object.
void | pw_proxy_destroy (struct pw_proxy *proxy)
| destroy a proxy
void | pw_proxy_ref (struct pw_proxy *proxy)
void | pw_proxy_unref (struct pw_proxy *proxy)
void * | pw_proxy_get_user_data (struct pw_proxy *proxy)
| Get the user_data.
uint32_t | pw_proxy_get_id (struct pw_proxy *proxy)
| Get the local id of the proxy.
const char * | pw_proxy_get_type (struct pw_proxy *proxy, uint32_t *version)
| Get the type and version of the proxy.
struct pw_protocol * | pw_proxy_get_protocol (struct pw_proxy *proxy)
| Get the protocol used for the proxy.
int | pw_proxy_sync (struct pw_proxy *proxy, int seq)
| Generate an sync method for a proxy.
int | pw_proxy_set_bound_id (struct pw_proxy *proxy, uint32_t global_id)
| Set the global id this proxy is bound to.
uint32_t | pw_proxy_get_bound_id (struct pw_proxy *proxy)
| Get the global id bound to this proxy of SPA_ID_INVALID when not bound to a global.
int | pw_proxy_error (struct pw_proxy *proxy, int res, const char *error)
| Generate an error for a proxy.
int | pw_proxy_errorf (struct pw_proxy *proxy, int res, const char *error,...)
struct spa_hook_list * | pw_proxy_get_object_listeners (struct pw_proxy *proxy)
| Get the listener of proxy.
const struct pw_protocol_marshal * | pw_proxy_get_marshal (struct pw_proxy *proxy)
| Get the marshal functions for the proxy.
int | pw_proxy_install_marshal (struct pw_proxy *proxy, bool implementor)
| Install a marshal function on a proxy.

## Detailed Description

Represents an object on the client side.

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

See also
  Proxy

## Macro Definition Documentation

## PW_VERSION_PROXY_EVENTS

#define PW_VERSION_PROXY_EVENTS 1

Examples
  export-spa.c.

## pw_proxy_notify

#define pw_proxy_notify | ( |  | p,
|  |  | type,
|  |  | event,
|  |  | version,
|  |  | ...
| ) |  |

## pw_proxy_call

#define pw_proxy_call | ( |  | p,
|  |  | type,
|  |  | method,
|  |  | version,
|  |  | ...
| ) |  |

## pw_proxy_call_res

#define pw_proxy_call_res | ( |  | p,
|  |  | type,
|  |  | method,
|  |  | version,
|  |  | ...
| ) |  |

## Function Documentation

## pw_proxy_new()

struct pw_proxy * pw_proxy_new | ( | struct pw_proxy * | factory,
|  | const char * | type,
|  | uint32_t | version,
|  | size_t | user_data_size
| ) |  |

Create a proxy object with a given id and type.

Parameters

  factory | another proxy object that serves as a factory
  type | Type of the proxy object
  version | Interface version
  user_data_size | size of user_data

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_core

## pw_proxy_add_listener()

void pw_proxy_add_listener | ( | struct pw_proxy * | proxy,
|  | struct spa_hook * | listener,
|  | const struct pw_proxy_events * | events,
|  | void * | data
| ) |  |

Add an event listener to proxy.

Examples
  export-spa.c.

## pw_proxy_add_object_listener()

void pw_proxy_add_object_listener | ( | struct pw_proxy * | proxy,
|  | struct spa_hook * | listener,
|  | const void * | funcs,
|  | void * | data
| ) |  |

Add a listener for the events received from the remote object.

The events depend on the type of the remote object type.

Parameters

  proxy | the proxy
  listener | listener
  funcs | proxied functions
  data | data passed to events

## pw_proxy_destroy()

void pw_proxy_destroy | ( | struct pw_proxy * | proxy | ) |

destroy a proxy

destroy a proxy

Parameters

  proxy | Proxy object to destroy

Note
  This is normally called by Core when the server decides to destroy the server side object

Examples
  bluez-session.c, export-spa.c, local-v4l2.c, tutorial2.c, tutorial3.c, and tutorial6.c.

## pw_proxy_ref()

void pw_proxy_ref | ( | struct pw_proxy * | proxy | ) |

## pw_proxy_unref()

void pw_proxy_unref | ( | struct pw_proxy * | proxy | ) |

client must explicitly destroy all proxies

## pw_proxy_get_user_data()

void * pw_proxy_get_user_data | ( | struct pw_proxy * | proxy | ) |

Get the user_data.

The size was given in pw_proxy_new

## pw_proxy_get_id()

uint32_t pw_proxy_get_id | ( | struct pw_proxy * | proxy | ) |

Get the local id of the proxy.

## pw_proxy_get_type()

const char * pw_proxy_get_type | ( | struct pw_proxy * | proxy,
|  | uint32_t * | version
| ) |  |

Get the type and version of the proxy.

## pw_proxy_get_protocol()

struct pw_protocol * pw_proxy_get_protocol | ( | struct pw_proxy * | proxy | ) |

Get the protocol used for the proxy.

## pw_proxy_sync()

int pw_proxy_sync | ( | struct pw_proxy * | proxy,
|  | int | seq
| ) |  |

Generate an sync method for a proxy.

This will generate a done event with the same seq number of the reply.

## pw_proxy_set_bound_id()

int pw_proxy_set_bound_id | ( | struct pw_proxy * | proxy,
|  | uint32_t | global_id
| ) |  |

Set the global id this proxy is bound to.

This is usually used internally and will also emit the bound event

## pw_proxy_get_bound_id()

uint32_t pw_proxy_get_bound_id | ( | struct pw_proxy * | proxy | ) |

Get the global id bound to this proxy of SPA_ID_INVALID when not bound to a global.

Examples
  internal.c, and local-v4l2.c.

## pw_proxy_error()

int pw_proxy_error | ( | struct pw_proxy * | proxy,
|  | int | res,
|  | const char * | error
| ) |  |

Generate an error for a proxy.

## pw_proxy_errorf()

int pw_proxy_errorf | ( | struct pw_proxy * | proxy,
|  | int | res,
|  | const char * | error,
|  |  | ...
| ) |  |

## pw_proxy_get_object_listeners()

struct spa_hook_list * pw_proxy_get_object_listeners | ( | struct pw_proxy * | proxy | ) |

Get the listener of proxy.

## pw_proxy_get_marshal()

const struct pw_protocol_marshal * pw_proxy_get_marshal | ( | struct pw_proxy * | proxy | ) |

Get the marshal functions for the proxy.

## pw_proxy_install_marshal()

int pw_proxy_install_marshal | ( | struct pw_proxy * | proxy,
|  | bool | implementor
| ) |  |

Install a marshal function on a proxy.