PipeWire 1.4.5 |

Loading...
Searching...
No Matches
Files | Data Structures | Macros | Functions
Protocol
Implementation API

Manages protocols and their implementation. More...

## Files
file | protocol.h
| `pipewire/protocol.h`

## Data Structures
struct | pw_protocol_client
struct | pw_protocol_server
struct | pw_protocol_marshal
struct | pw_protocol_implementation
struct | pw_protocol_events
struct | pw_protocol

## Macros
#define | PW_TYPE_INFO_Protocol "PipeWire:Protocol"
#define | PW_TYPE_INFO_PROTOCOL_BASE PW_TYPE_INFO_Protocol ":"
#define | pw_protocol_client_connect(c, p, cb, d)
#define | pw_protocol_client_connect_fd(c, fd, cl)
#define | pw_protocol_client_steal_fd(c)
#define | pw_protocol_client_disconnect(c)
#define | pw_protocol_client_destroy(c)
#define | pw_protocol_client_set_paused(c, p)
#define | pw_protocol_server_destroy(l)
#define | PW_PROTOCOL_MARSHAL_FLAG_IMPL (1 << 0)
| marshal for implementations
#define | PW_VERSION_PROTOCOL_IMPLEMENTATION 1
#define | PW_VERSION_PROTOCOL_EVENTS 0
#define | pw_protocol_new_client(p, ...)
#define | pw_protocol_add_server(p, ...)
#define | pw_protocol_add_fd_server(p, ...)
#define | pw_protocol_ext(p, type, method, ...)

## Functions
struct pw_protocol * | pw_protocol_new (struct pw_context *context, const char *name, size_t user_data_size)
void | pw_protocol_destroy (struct pw_protocol *protocol)
struct pw_context * | pw_protocol_get_context (struct pw_protocol *protocol)
void * | pw_protocol_get_user_data (struct pw_protocol *protocol)
const struct pw_protocol_implementation * | 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, const char *type, uint32_t version, uint32_t flags)
struct pw_protocol * | pw_context_find_protocol (struct pw_context *context, const char *name)

## Detailed Description

Manages protocols and their implementation.

## Macro Definition Documentation

## ◆ PW_TYPE_INFO_Protocol

#define PW_TYPE_INFO_Protocol "PipeWire:Protocol"

## ◆ PW_TYPE_INFO_PROTOCOL_BASE

#define PW_TYPE_INFO_PROTOCOL_BASE PW_TYPE_INFO_Protocol ":"

## ◆ pw_protocol_client_connect

#define pw_protocol_client_connect | ( |  | c,
|  |  | p,
|  |  | cb,
|  |  | d )

Value:
((c)->connect(c,p,cb,d))

## ◆ pw_protocol_client_connect_fd

#define pw_protocol_client_connect_fd | ( |  | c,
|  |  | fd,
|  |  | cl )

Value:
((c)->connect_fd(c,fd,cl))

## ◆ pw_protocol_client_steal_fd

#define pw_protocol_client_steal_fd | ( |  | c | ) |

Value:
((c)->steal_fd(c))

## ◆ pw_protocol_client_disconnect

#define pw_protocol_client_disconnect | ( |  | c | ) |

Value:
((c)->disconnect(c))

## ◆ pw_protocol_client_destroy

#define pw_protocol_client_destroy | ( |  | c | ) |

Value:
((c)->destroy(c))

## ◆ pw_protocol_client_set_paused

#define pw_protocol_client_set_paused | ( |  | c,
|  |  | p )

Value:
((c)->set_paused(c,p))

## ◆ pw_protocol_server_destroy

#define pw_protocol_server_destroy | ( |  | l | ) |

Value:
((l)->destroy(l))

## ◆ PW_PROTOCOL_MARSHAL_FLAG_IMPL

#define PW_PROTOCOL_MARSHAL_FLAG_IMPL (1 << 0)

marshal for implementations

## ◆ PW_VERSION_PROTOCOL_IMPLEMENTATION

#define PW_VERSION_PROTOCOL_IMPLEMENTATION 1

## ◆ PW_VERSION_PROTOCOL_EVENTS

#define PW_VERSION_PROTOCOL_EVENTS 0

## ◆ pw_protocol_new_client

#define pw_protocol_new_client | ( |  | p,
|  |  | ... )

Value:
(pw_protocol_get_implementation(p)->new_client(p,__VA_ARGS__))
pw_protocol_get_implementation
const struct pw_protocol_implementation * pw_protocol_get_implementation(struct pw_protocol *protocol)
Definition protocol.c:72
pw_protocol_implementation::new_client
struct pw_protocol_client *(* new_client)(struct pw_protocol *protocol, struct pw_core *core, const struct spa_dict *props)
Definition protocol.h:96

## ◆ pw_protocol_add_server

#define pw_protocol_add_server | ( |  | p,
|  |  | ... )

Value:
(pw_protocol_get_implementation(p)->add_server(p,__VA_ARGS__))
pw_protocol_implementation::add_server
struct pw_protocol_server *(* add_server)(struct pw_protocol *protocol, struct pw_impl_core *core, const struct spa_dict *props)
Definition protocol.h:99

## ◆ pw_protocol_add_fd_server

#define pw_protocol_add_fd_server | ( |  | p,
|  |  | ... )

Value:
(pw_protocol_get_implementation(p)->add_fd_server(p,__VA_ARGS__))
pw_protocol_implementation::add_fd_server
struct pw_protocol_server *(* add_fd_server)(struct pw_protocol *protocol, struct pw_impl_core *core, int listen_fd, int close_fd, const struct spa_dict *props)
Definition protocol.h:102

## ◆ pw_protocol_ext

#define pw_protocol_ext | ( |  | p,
|  |  | type,
|  |  | method,
|  |  | ... )

Value:
(((type*)pw_protocol_get_extension(p))->method( __VA_ARGS__))
pw_protocol_get_extension
const void * pw_protocol_get_extension(struct pw_protocol *protocol)
Definition protocol.c:79

## Function Documentation

## ◆ pw_protocol_new()

struct pw_protocol * pw_protocol_new | ( | struct pw_context * | context,
|  | const char * | name,
|  | size_t | user_data_size )

## ◆ pw_protocol_destroy()

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

## ◆ pw_protocol_get_context()

struct pw_context * pw_protocol_get_context | ( | struct pw_protocol * | protocol | ) |

## ◆ pw_protocol_get_user_data()

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

## ◆ pw_protocol_get_implementation()

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

## ◆ pw_protocol_get_extension()

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

## ◆ 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 )

## ◆ pw_protocol_get_marshal()

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

## ◆ pw_context_find_protocol()

struct pw_protocol * pw_context_find_protocol | ( | struct pw_context * | context,
|  | const char * | name )