PipeWire  0.3.45

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_resourcepw_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. More...
 
void pw_resource_destroy (struct pw_resource *resource)
 Destroy a resource. More...
 
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. More...
 
struct pw_impl_clientpw_resource_get_client (struct pw_resource *resource)
 Get the client owning this resource. More...
 
uint32_t pw_resource_get_id (struct pw_resource *resource)
 Get the unique id of this resource. More...
 
uint32_t pw_resource_get_permissions (struct pw_resource *resource)
 Get the permissions of this resource. More...
 
const char * pw_resource_get_type (struct pw_resource *resource, uint32_t *version)
 Get the type and optionally the version of this resource. More...
 
struct pw_protocolpw_resource_get_protocol (struct pw_resource *resource)
 Get the protocol used for this resource. More...
 
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. More...
 
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. More...
 
void pw_resource_add_object_listener (struct pw_resource *resource, struct spa_hook *listener, const void *funcs, void *data)
 Set the resource implementation. More...
 
int pw_resource_ping (struct pw_resource *resource, int seq)
 Generate an ping event for a resource. More...
 
int pw_resource_set_bound_id (struct pw_resource *resource, uint32_t global_id)
 Notify global id this resource is bound to. More...
 
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. More...
 
void pw_resource_error (struct pw_resource *resource, int res, const char *error)
 Generate an error for a resource. More...
 
void pw_resource_errorf (struct pw_resource *resource, int res, const char *error,...) 1(3
 
void void pw_resource_errorf_id (struct pw_resource *resource, uint32_t id, int res, const char *error,...) 1(4
 
void void struct spa_hook_listpw_resource_get_object_listeners (struct pw_resource *resource)
 Get the list of object listeners from a resource. More...
 
const struct pw_protocol_marshalpw_resource_get_marshal (struct pw_resource *resource)
 Get the marshal functions for the resource. More...
 
int pw_resource_install_marshal (struct pw_resource *resource, bool implementor)
 install a marshal function on a resource More...
 

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
clientthe client owning the resource
idthe remote per client id
permissionspermissions on this resource
typeinterface of the resource
versionrequested interface version
user_data_sizeextra 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_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 void pw_resource_errorf_id ( struct pw_resource resource,
uint32_t  id,
int  res,
const char *  error,
  ... 
)

◆ pw_resource_get_object_listeners()

void void 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