Loading...
Searching...
No Matches
Resource
Implementation API

Client owned objects. More...

## Files

file | resource.h
| pipewire/resource.h

## Data Structures

struct | pw_resource_events
| Resource events. More...
struct | pw_resource

## Macros

#define | PW_VERSION_RESOURCE_EVENTS 0
#define | pw_resource_notify(r, type, event, version, ...)
#define | pw_resource_call(r, type, method, version, ...)
#define | pw_resource_call_res(r, type, method, version, ...)

## Functions

struct pw_resource * | pw_resource_new (struct pw_impl_client *client, uint32_t id, uint32_t permissions, const char *type, uint32_t version, size_t user_data_size)
| Make a new resource for client.
void | pw_resource_destroy (struct pw_resource *resource)
| Destroy a resource.
void | pw_resource_remove (struct pw_resource *resource)
| Remove a resource, like pw_resource_destroy but without sending a remove_id message to the client.
struct pw_impl_client * | pw_resource_get_client (struct pw_resource *resource)
| Get the client owning this resource.
uint32_t | pw_resource_get_id (struct pw_resource *resource)
| Get the unique id of this resource.
uint32_t | pw_resource_get_permissions (struct pw_resource *resource)
| Get the permissions of this resource.
const char * | pw_resource_get_type (struct pw_resource *resource, uint32_t *version)
| Get the type and optionally the version of this resource.
struct pw_protocol * | pw_resource_get_protocol (struct pw_resource *resource)
| Get the protocol used for this resource.
void * | pw_resource_get_user_data (struct pw_resource *resource)
| Get the user data for the resource, the size was given in pw_resource_new.
void | pw_resource_add_listener (struct pw_resource *resource, struct spa_hook *listener, const struct pw_resource_events *events, void *data)
| Add an event listener.
void | pw_resource_add_object_listener (struct pw_resource *resource, struct spa_hook *listener, const void *funcs, void *data)
| Set the resource implementation.
int | pw_resource_ping (struct pw_resource *resource, int seq)
| Generate an ping event for a resource.
void | pw_resource_ref (struct pw_resource *resource)
| ref/unref a resource, Since 0.3.52
void | pw_resource_unref (struct pw_resource *resource)
int | pw_resource_set_bound_id (struct pw_resource *resource, uint32_t global_id)
| Notify global id this resource is bound to.
uint32_t | pw_resource_get_bound_id (struct pw_resource *resource)
| Get the global id this resource is bound to or SPA_ID_INVALID when not bound.
void | pw_resource_error (struct pw_resource *resource, int res, const char *error)
| Generate an error for a resource.
void | pw_resource_errorf (struct pw_resource *resource, int res, const char *error,...)
void | pw_resource_errorf_id (struct pw_resource *resource, uint32_t id, int res, const char *error,...)
struct spa_hook_list * | pw_resource_get_object_listeners (struct pw_resource *resource)
| Get the list of object listeners from a resource.
const struct pw_protocol_marshal * | pw_resource_get_marshal (struct pw_resource *resource)
| Get the marshal functions for the resource.
int | pw_resource_install_marshal (struct pw_resource *resource, bool implementor)
| install a marshal function on a resource

## Detailed Description

Client owned objects.

Resources represent objects owned by a Client Impl. They are the result of binding to a global resource or by calling API that creates client owned objects.

The client usually has a proxy object associated with the resource that it can use to communicate with the resource. See Proxy.

Resources are destroyed when the client or the bound object is destroyed.

## Macro Definition Documentation

## PW_VERSION_RESOURCE_EVENTS

#define PW_VERSION_RESOURCE_EVENTS 0

## pw_resource_notify

#define pw_resource_notify | ( |  | r,
|  |  | type,
|  |  | event,
|  |  | version,
|  |  | ... )

## pw_resource_call

#define pw_resource_call | ( |  | r,
|  |  | type,
|  |  | method,
|  |  | version,
|  |  | ... )

## pw_resource_call_res

#define pw_resource_call_res | ( |  | r,
|  |  | type,
|  |  | method,
|  |  | version,
|  |  | ... )

## Function Documentation

## pw_resource_new()

struct pw_resource * pw_resource_new | ( | struct pw_impl_client * | client,
|  | uint32_t | id,
|  | uint32_t | permissions,
|  | const char * | type,
|  | uint32_t | version,
|  | size_t | user_data_size )

Make a new resource for client.

Parameters

  client | the client owning the resource
  id | the remote per client id
  permissions | permissions on this resource
  type | interface of the resource
  version | requested interface version
  user_data_size | extra user data size

## pw_resource_destroy()

void pw_resource_destroy | ( | struct pw_resource * | resource | ) |

Destroy a resource.

## pw_resource_remove()

void pw_resource_remove | ( | struct pw_resource * | resource | ) |

Remove a resource, like pw_resource_destroy but without sending a remove_id message to the client.

## pw_resource_get_client()

struct pw_impl_client * pw_resource_get_client | ( | struct pw_resource * | resource | ) |

Get the client owning this resource.

## pw_resource_get_id()

uint32_t pw_resource_get_id | ( | struct pw_resource * | resource | ) |

Get the unique id of this resource.

## pw_resource_get_permissions()

uint32_t pw_resource_get_permissions | ( | struct pw_resource * | resource | ) |

Get the permissions of this resource.

## pw_resource_get_type()

const char * pw_resource_get_type | ( | struct pw_resource * | resource,
|  | uint32_t * | version )

Get the type and optionally the version of this resource.

## pw_resource_get_protocol()

struct pw_protocol * pw_resource_get_protocol | ( | struct pw_resource * | resource | ) |

Get the protocol used for this resource.

## pw_resource_get_user_data()

void * pw_resource_get_user_data | ( | struct pw_resource * | resource | ) |

Get the user data for the resource, the size was given in pw_resource_new.

## pw_resource_add_listener()

void pw_resource_add_listener | ( | struct pw_resource * | resource,
|  | struct spa_hook * | listener,
|  | const struct pw_resource_events * | events,
|  | void * | data )

Add an event listener.

## pw_resource_add_object_listener()

void pw_resource_add_object_listener | ( | struct pw_resource * | resource,
|  | struct spa_hook * | listener,
|  | const void * | funcs,
|  | void * | data )

Set the resource implementation.

## pw_resource_ping()

int pw_resource_ping | ( | struct pw_resource * | resource,
|  | int | seq )

Generate an ping event for a resource.

This will generate a pong event with the same sequence number in the return value.

## pw_resource_ref()

void pw_resource_ref | ( | struct pw_resource * | resource | ) |

ref/unref a resource, Since 0.3.52

## pw_resource_unref()

void pw_resource_unref | ( | struct pw_resource * | resource | ) |

## pw_resource_set_bound_id()

int pw_resource_set_bound_id | ( | struct pw_resource * | resource,
|  | uint32_t | global_id )

Notify global id this resource is bound to.

## pw_resource_get_bound_id()

uint32_t pw_resource_get_bound_id | ( | struct pw_resource * | resource | ) |

Get the global id this resource is bound to or SPA_ID_INVALID when not bound.

## pw_resource_error()

void pw_resource_error | ( | struct pw_resource * | resource,
|  | int | res,
|  | const char * | error )

Generate an error for a resource.

## pw_resource_errorf()

void pw_resource_errorf | ( | struct pw_resource * | resource,
|  | int | res,
|  | const char * | error,
|  |  | ... )

## pw_resource_errorf_id()

void pw_resource_errorf_id | ( | struct pw_resource * | resource,
|  | uint32_t | id,
|  | int | res,
|  | const char * | error,
|  |  | ... )

## pw_resource_get_object_listeners()

struct spa_hook_list * pw_resource_get_object_listeners | ( | struct pw_resource * | resource | ) |

Get the list of object listeners from a resource.

## pw_resource_get_marshal()

const struct pw_protocol_marshal * pw_resource_get_marshal | ( | struct pw_resource * | resource | ) |

Get the marshal functions for the resource.

## pw_resource_install_marshal()

int pw_resource_install_marshal | ( | struct pw_resource * | resource,
|  | bool | implementor )

install a marshal function on a resource