protocol.h File Reference
Include dependency graph for protocol.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | pw_protocol_client
struct | pw_protocol_server
struct | pw_protocol_marshal
struct | pw_protocol_implementaton
struct | pw_protocol_events

## Macros

#define | PW_TYPE__Protocol "PipeWire:Protocol"
#define | PW_TYPE_PROTOCOL_BASE PW_TYPE__Protocol ":"
#define | pw_protocol_client_connect(c, cb, d) ((c)->connect(c,cb,d))
#define | pw_protocol_client_connect_fd(c, fd, cl) ((c)->connect_fd(c,fd,cl))
#define | pw_protocol_client_steal_fd(c) ((c)->steal_fd(c))
#define | pw_protocol_client_disconnect(c) ((c)->disconnect(c))
#define | pw_protocol_client_destroy(c) ((c)->destroy(c))
#define | pw_protocol_server_destroy(l) ((l)->destroy(l))
#define | PW_VERSION_PROTOCOL_IMPLEMENTATION 0
#define | PW_VERSION_PROTOCOL_EVENTS 0
#define | pw_protocol_new_client(p, ...) (pw_protocol_get_implementation(p)->new_client(p,__VA_ARGS__))
#define | pw_protocol_add_server(p, ...) (pw_protocol_get_implementation(p)->add_server(p,__VA_ARGS__))
#define | pw_protocol_ext(p, type, method, ...) (((type*)pw_protocol_get_extension(p))->method( __VA_ARGS__))

## Functions

struct pw_protocol * | pw_protocol_new (struct pw_core *core, const char *name, size_t user_data_size)
void | pw_protocol_destroy (struct pw_protocol *protocol)
void * | pw_protocol_get_user_data (struct pw_protocol *protocol)
const struct pw_protocol_implementaton * | pw_protocol_get_implementation (struct pw_protocol *protocol)
const void * | pw_protocol_get_extension (struct pw_protocol *protocol)
void | pw_protocol_add_listener (struct pw_protocol *protocol, struct spa_hook *listener, const struct pw_protocol_events *events, void *data)
int | pw_protocol_add_marshal (struct pw_protocol *protocol, const struct pw_protocol_marshal *marshal)
const struct pw_protocol_marshal * | pw_protocol_get_marshal (struct pw_protocol *protocol, uint32_t type)
struct pw_protocol * | pw_core_find_protocol (struct pw_core *core, const char *name)

## Macro Definition Documentation

## pw_protocol_add_server

#define pw_protocol_add_server | ( |  | p,
|  |  | ...
| ) |  | (pw_protocol_get_implementation(p)->add_server(p,__VA_ARGS__))

## pw_protocol_client_connect

#define pw_protocol_client_connect | ( |  | c,
|  |  | cb,
|  |  | d
| ) |  | ((c)->connect(c,cb,d))

## pw_protocol_client_connect_fd

#define pw_protocol_client_connect_fd | ( |  | c,
|  |  | fd,
|  |  | cl
| ) |  | ((c)->connect_fd(c,fd,cl))

## pw_protocol_client_destroy

#define pw_protocol_client_destroy | ( |  | c | ) | ((c)->destroy(c))

Referenced by pw_protocol_destroy(), and pw_remote_destroy().

## pw_protocol_client_disconnect

#define pw_protocol_client_disconnect | ( |  | c | ) | ((c)->disconnect(c))

Referenced by pw_remote_disconnect().

## pw_protocol_client_steal_fd

#define pw_protocol_client_steal_fd | ( |  | c | ) | ((c)->steal_fd(c))

Referenced by pw_remote_steal_fd().

## pw_protocol_ext

#define pw_protocol_ext | ( |  | p,
|  |  | type,
|  |  | method,
|  |  | ...
| ) |  | (((type*)pw_protocol_get_extension(p))->method( __VA_ARGS__))

## pw_protocol_new_client

#define pw_protocol_new_client | ( |  | p,
|  |  | ...
| ) |  | (pw_protocol_get_implementation(p)->new_client(p,__VA_ARGS__))

Referenced by pw_remote_new().

## pw_protocol_server_destroy

#define pw_protocol_server_destroy | ( |  | l | ) | ((l)->destroy(l))

Referenced by pw_protocol_destroy().

## PW_TYPE__Protocol

#define PW_TYPE__Protocol "PipeWire:Protocol"

## PW_TYPE_PROTOCOL_BASE

#define PW_TYPE_PROTOCOL_BASE PW_TYPE__Protocol ":"

## PW_VERSION_PROTOCOL_EVENTS

#define PW_VERSION_PROTOCOL_EVENTS 0

## PW_VERSION_PROTOCOL_IMPLEMENTATION

#define PW_VERSION_PROTOCOL_IMPLEMENTATION 0

## Function Documentation

## pw_core_find_protocol()

struct pw_protocol* pw_core_find_protocol | ( | struct pw_core * | core,
|  | const char * | name
| ) |  |

Referenced by pw_remote_new().

## pw_protocol_add_listener()

void pw_protocol_add_listener | ( | struct pw_protocol * | protocol,
|  | struct spa_hook * | listener,
|  | const struct pw_protocol_events * | events,
|  | void * | data
| ) |  |

## pw_protocol_add_marshal()

int pw_protocol_add_marshal | ( | struct pw_protocol * | protocol,
|  | const struct pw_protocol_marshal * | marshal
| ) |  |

References pw_protocol_marshal::type, and pw_protocol_marshal::version.

## pw_protocol_destroy()

void pw_protocol_destroy | ( | struct pw_protocol * | protocol | ) |

References pw_protocol_client::link, pw_protocol_client_destroy, and pw_protocol_server_destroy.

## pw_protocol_get_extension()

const void* pw_protocol_get_extension | ( | struct pw_protocol * | protocol | ) |

## pw_protocol_get_implementation()

const struct pw_protocol_implementaton* pw_protocol_get_implementation | ( | struct pw_protocol * | protocol | ) |

## pw_protocol_get_marshal()

const struct pw_protocol_marshal* pw_protocol_get_marshal | ( | struct pw_protocol * | protocol,
|  | uint32_t | type
| ) |  |

Referenced by pw_proxy::pw_proxy_new(), and pw_resource_new().

## pw_protocol_get_user_data()

void* pw_protocol_get_user_data | ( | struct pw_protocol * | protocol | ) |

## pw_protocol_new()

struct pw_protocol* pw_protocol_new | ( | struct pw_core * | core,
|  | const char * | name,
|  | size_t | user_data_size
| ) |  |