mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-06 13:30:01 -05:00
client-node: add get_node method
Make a get node method that binds to the server side node of the client-node immediately. use this in the remote_export and always return a node proxy. Use the node proxy to get property updates and signal those in the stream.
This commit is contained in:
parent
33afa18621
commit
9245c81227
9 changed files with 183 additions and 42 deletions
|
|
@ -48,17 +48,21 @@ struct pw_client_node_buffer {
|
|||
struct spa_buffer *buffer; /**< buffer describing metadata and buffer memory */
|
||||
};
|
||||
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_UPDATE 0
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_PORT_UPDATE 1
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_SET_ACTIVE 2
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_EVENT 3
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_NUM 4
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_GET_NODE 0
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_UPDATE 1
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_PORT_UPDATE 2
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_SET_ACTIVE 3
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_EVENT 4
|
||||
#define PW_CLIENT_NODE_PROXY_METHOD_NUM 5
|
||||
|
||||
/** \ref pw_client_node methods */
|
||||
struct pw_client_node_proxy_methods {
|
||||
#define PW_VERSION_CLIENT_NODE_PROXY_METHODS 0
|
||||
uint32_t version;
|
||||
|
||||
/** get the node object
|
||||
*/
|
||||
int (*get_node) (void *object, uint32_t version, uint32_t new_id);
|
||||
/**
|
||||
* Update the node ports and properties
|
||||
*
|
||||
|
|
@ -108,6 +112,15 @@ struct pw_client_node_proxy_methods {
|
|||
int (*event) (void *object, struct spa_event *event);
|
||||
};
|
||||
|
||||
static inline struct pw_node_proxy *
|
||||
pw_client_node_proxy_get_node(struct pw_client_node_proxy *p, uint32_t version, size_t user_data_size)
|
||||
{
|
||||
struct pw_proxy *np = pw_proxy_new((struct pw_proxy*)p, PW_TYPE_INTERFACE_Node, user_data_size);
|
||||
pw_proxy_do((struct pw_proxy*)p, struct pw_client_node_proxy_methods,
|
||||
get_node, version, pw_proxy_get_id(np));
|
||||
return (struct pw_node_proxy *) np;
|
||||
}
|
||||
|
||||
static inline int
|
||||
pw_client_node_proxy_update(struct pw_client_node_proxy *p,
|
||||
uint32_t change_mask,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue