PipeWire: proxy.c File Reference

PipeWire 0.3.26

Macros | Functions
proxy.c File Reference
Include dependency graph for proxy.c:

## Macros
#define | NAME "proxy"

## Functions
int | pw_proxy_init (struct pw_proxy *proxy, const char *type, uint32_t version)
SPA_EXPORT int | pw_proxy_install_marshal (struct pw_proxy *this, bool implementor)
| Install a marshal function on a proxy. More...
SPA_EXPORT void * | pw_proxy_get_user_data (struct pw_proxy *proxy)
| Get the user_data. More...
SPA_EXPORT uint32_t | pw_proxy_get_id (struct pw_proxy *proxy)
| Get the local id of the proxy. More...
SPA_EXPORT int | pw_proxy_set_bound_id (struct pw_proxy *proxy, uint32_t global_id)
| Set the global id this proxy is bound to. More...
SPA_EXPORT 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. More...
SPA_EXPORT const char * | pw_proxy_get_type (struct pw_proxy *proxy, uint32_t *version)
| Get the type and version of the proxy. More...
SPA_EXPORT struct pw_core * | pw_proxy_get_core (struct pw_proxy *proxy)
SPA_EXPORT struct pw_protocol * | pw_proxy_get_protocol (struct pw_proxy *proxy)
| Get the protocol used for the proxy. More...
SPA_EXPORT 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. More...
SPA_EXPORT 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. More...
void | pw_proxy_remove (struct pw_proxy *proxy)
| called when cleaning up or when the server removed the resource. More...
SPA_EXPORT void | pw_proxy_unref (struct pw_proxy *proxy)
SPA_EXPORT void | pw_proxy_ref (struct pw_proxy *proxy)
SPA_EXPORT int | pw_proxy_sync (struct pw_proxy *proxy, int seq)
| Generate an sync method for a proxy. More...
SPA_EXPORT int | pw_proxy_errorf (struct pw_proxy *proxy, int res, const char *error,...)
SPA_EXPORT int | pw_proxy_error (struct pw_proxy *proxy, int res, const char *error)
| Generate an error for a proxy. More...
SPA_EXPORT struct spa_hook_list * | pw_proxy_get_object_listeners (struct pw_proxy *proxy)
| Get the listener of proxy. More...
SPA_EXPORT const struct pw_protocol_marshal * | pw_proxy_get_marshal (struct pw_proxy *proxy)
| Get the marshal functions for the proxy. More...

## Macro Definition Documentation

## ◆ NAME

#define NAME "proxy"

## Function Documentation

## ◆ pw_proxy_add_listener()

SPA_EXPORT 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.

## ◆ pw_proxy_add_object_listener()

SPA_EXPORT 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_error()

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

Generate an error for a proxy.

References pw_core_error(), r, and res.

Referenced by pw_filter_set_error(), and pw_stream_set_error().

## ◆ pw_proxy_errorf()

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

References r, res, va_end(), and va_start().

## ◆ pw_proxy_get_bound_id()

SPA_EXPORT 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.

## ◆ pw_proxy_get_core()

SPA_EXPORT struct pw_core* pw_proxy_get_core | ( | struct pw_proxy * | proxy | ) |

## ◆ pw_proxy_get_id()

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

Get the local id of the proxy.

## ◆ pw_proxy_get_marshal()

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

Get the marshal functions for the proxy.

## ◆ pw_proxy_get_object_listeners()

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

Get the listener of proxy.

## ◆ pw_proxy_get_protocol()

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

Get the protocol used for the proxy.

## ◆ pw_proxy_get_type()

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

Get the type and version of the proxy.

References pw_protocol_marshal::version.

## ◆ pw_proxy_get_user_data()

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

Get the user_data.

The size was given in pw_proxy_new

## ◆ pw_proxy_init()

int pw_proxy_init | ( | struct pw_proxy * | proxy,
|  | const char * | type,
|  | uint32_t | version
| ) |  |

References NAME, pw_log::pw_log_error, pw_map::pw_map_insert_new(), pw_map::pw_map_remove(), pw_proxy_install_marshal(), and res.

Referenced by pw_proxy::pw_proxy_new().

## ◆ pw_proxy_install_marshal()

SPA_EXPORT int pw_proxy_install_marshal | ( | struct pw_proxy * | this,
|  | bool | implementor
| ) |  |

Install a marshal function on a proxy.

References pw_protocol_get_marshal(), PW_PROTOCOL_MARSHAL_FLAG_IMPL, pw_protocol_marshal::type, and pw_protocol_marshal::version.

Referenced by pw_proxy_init().

## ◆ pw_proxy_ref()

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

## ◆ pw_proxy_remove()

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

called when cleaning up or when the server removed the resource.

Can be called multiple times

References NAME, and pw_log::pw_log_debug.

Referenced by pw_core_disconnect().

## ◆ pw_proxy_set_bound_id()

SPA_EXPORT 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

References NAME, and pw_log::pw_log_debug.

## ◆ pw_proxy_sync()

SPA_EXPORT 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.

References NAME, pw_core_sync, pw_log::pw_log_debug, res, and seq.

## ◆ pw_proxy_unref()

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

client must explicitly destroy all proxies

References NAME, and pw_log::pw_log_debug.