mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	pw_port_proxy -> pw_port
This commit is contained in:
		
							parent
							
								
									beb3c69dfe
								
							
						
					
					
						commit
						c23006fcdb
					
				
					 12 changed files with 95 additions and 98 deletions
				
			
		| 
						 | 
				
			
			@ -531,8 +531,8 @@ static void port_event_info(void *object, const struct pw_port_info *info)
 | 
			
		|||
	pw_proxy_sync(port->obj.proxy, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events port_events = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events port_events = {
 | 
			
		||||
	PW_VERSION_PORT_EVENTS,
 | 
			
		||||
	.info = port_event_info,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -573,7 +573,7 @@ static void port_destroy(void *object)
 | 
			
		|||
 | 
			
		||||
static const struct object_info port_info = {
 | 
			
		||||
	.type = PW_TYPE_INTERFACE_Port,
 | 
			
		||||
	.version = PW_VERSION_PORT_PROXY,
 | 
			
		||||
	.version = PW_VERSION_PORT,
 | 
			
		||||
	.events = &port_events,
 | 
			
		||||
	.size = sizeof(struct sm_port),
 | 
			
		||||
	.init = port_init,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -195,7 +195,7 @@ struct node_data {
 | 
			
		|||
struct port_data {
 | 
			
		||||
  struct spa_list link;
 | 
			
		||||
  struct node_data *node_data;
 | 
			
		||||
  struct pw_port_proxy *proxy;
 | 
			
		||||
  struct pw_port *proxy;
 | 
			
		||||
  struct spa_hook proxy_listener;
 | 
			
		||||
  uint32_t id;
 | 
			
		||||
  struct spa_hook port_listener;
 | 
			
		||||
| 
						 | 
				
			
			@ -387,8 +387,8 @@ static void port_event_param(void *data, int seq, uint32_t id,
 | 
			
		|||
      gst_caps_append (node_data->caps, c1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events port_events = {
 | 
			
		||||
  PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events port_events = {
 | 
			
		||||
  PW_VERSION_PORT_EVENTS,
 | 
			
		||||
  .info = port_event_info,
 | 
			
		||||
  .param = port_event_param
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -433,7 +433,7 @@ static const struct pw_proxy_events proxy_node_events = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
destroy_port_proxy (void *data)
 | 
			
		||||
destroy_port (void *data)
 | 
			
		||||
{
 | 
			
		||||
  struct port_data *pd = data;
 | 
			
		||||
  pw_log_debug("destroy %p", pd);
 | 
			
		||||
| 
						 | 
				
			
			@ -443,7 +443,7 @@ destroy_port_proxy (void *data)
 | 
			
		|||
 | 
			
		||||
static const struct pw_proxy_events proxy_port_events = {
 | 
			
		||||
        PW_VERSION_PROXY_EVENTS,
 | 
			
		||||
        .destroy = destroy_port_proxy,
 | 
			
		||||
        .destroy = destroy_port,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void registry_event_global(void *data, uint32_t id, uint32_t permissions,
 | 
			
		||||
| 
						 | 
				
			
			@ -474,7 +474,7 @@ static void registry_event_global(void *data, uint32_t id, uint32_t permissions,
 | 
			
		|||
    add_pending(self, &nd->pending, NULL, NULL);
 | 
			
		||||
  }
 | 
			
		||||
  else if (type == PW_TYPE_INTERFACE_Port) {
 | 
			
		||||
    struct pw_port_proxy *port;
 | 
			
		||||
    struct pw_port *port;
 | 
			
		||||
    struct port_data *pd;
 | 
			
		||||
    const char *str;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -486,7 +486,7 @@ static void registry_event_global(void *data, uint32_t id, uint32_t permissions,
 | 
			
		|||
 | 
			
		||||
    port = pw_registry_bind(rd->registry,
 | 
			
		||||
		    id, PW_TYPE_INTERFACE_Port,
 | 
			
		||||
		    PW_VERSION_PORT_PROXY, sizeof(*pd));
 | 
			
		||||
		    PW_VERSION_PORT, sizeof(*pd));
 | 
			
		||||
    if (port == NULL)
 | 
			
		||||
      goto no_mem;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -495,9 +495,9 @@ static void registry_event_global(void *data, uint32_t id, uint32_t permissions,
 | 
			
		|||
    pd->proxy = port;
 | 
			
		||||
    pd->id = id;
 | 
			
		||||
    spa_list_append(&rd->ports, &pd->link);
 | 
			
		||||
    pw_port_proxy_add_listener(port, &pd->port_listener, &port_events, pd);
 | 
			
		||||
    pw_port_add_listener(port, &pd->port_listener, &port_events, pd);
 | 
			
		||||
    pw_proxy_add_listener((struct pw_proxy*)port, &pd->proxy_listener, &proxy_port_events, pd);
 | 
			
		||||
    pw_port_proxy_enum_params((struct pw_port_proxy*)port,
 | 
			
		||||
    pw_port_enum_params((struct pw_port*)port,
 | 
			
		||||
				0, SPA_PARAM_EnumFormat, 0, 0, NULL);
 | 
			
		||||
    add_pending(self, &pd->pending, do_add_node, pd);
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1295,7 +1295,7 @@ static int node_demarshal_send_command(void *object, const struct pw_protocol_na
 | 
			
		|||
 | 
			
		||||
static int port_method_marshal_add_listener(void *object,
 | 
			
		||||
			struct spa_hook *listener,
 | 
			
		||||
			const struct pw_port_proxy_events *events,
 | 
			
		||||
			const struct pw_port_events *events,
 | 
			
		||||
			void *data)
 | 
			
		||||
{
 | 
			
		||||
	struct pw_proxy *proxy = object;
 | 
			
		||||
| 
						 | 
				
			
			@ -1309,7 +1309,7 @@ static void port_marshal_info(void *object, const struct pw_port_info *info)
 | 
			
		|||
	struct spa_pod_builder *b;
 | 
			
		||||
	struct spa_pod_frame f;
 | 
			
		||||
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_PROXY_EVENT_INFO, NULL);
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_EVENT_INFO, NULL);
 | 
			
		||||
 | 
			
		||||
	spa_pod_builder_push_struct(b, &f);
 | 
			
		||||
	spa_pod_builder_add(b,
 | 
			
		||||
| 
						 | 
				
			
			@ -1365,7 +1365,7 @@ static int port_demarshal_info(void *object, const struct pw_protocol_native_mes
 | 
			
		|||
				       SPA_POD_Int(&info.params[i].flags), NULL) < 0)
 | 
			
		||||
			return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
	return pw_proxy_notify(proxy, struct pw_port_proxy_events, info, 0, &info);
 | 
			
		||||
	return pw_proxy_notify(proxy, struct pw_port_events, info, 0, &info);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void port_marshal_param(void *object, int seq, uint32_t id,
 | 
			
		||||
| 
						 | 
				
			
			@ -1374,7 +1374,7 @@ static void port_marshal_param(void *object, int seq, uint32_t id,
 | 
			
		|||
	struct pw_resource *resource = object;
 | 
			
		||||
	struct spa_pod_builder *b;
 | 
			
		||||
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_PROXY_EVENT_PARAM, NULL);
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_EVENT_PARAM, NULL);
 | 
			
		||||
 | 
			
		||||
	spa_pod_builder_add_struct(b,
 | 
			
		||||
			SPA_POD_Int(seq),
 | 
			
		||||
| 
						 | 
				
			
			@ -1403,7 +1403,7 @@ static int port_demarshal_param(void *object, const struct pw_protocol_native_me
 | 
			
		|||
				SPA_POD_Pod(¶m)) < 0)
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
 | 
			
		||||
	return pw_proxy_notify(proxy, struct pw_port_proxy_events, param, 0,
 | 
			
		||||
	return pw_proxy_notify(proxy, struct pw_port_events, param, 0,
 | 
			
		||||
			seq, id, index, next, param);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1412,7 +1412,7 @@ static int port_marshal_subscribe_params(void *object, uint32_t *ids, uint32_t n
 | 
			
		|||
	struct pw_proxy *proxy = object;
 | 
			
		||||
	struct spa_pod_builder *b;
 | 
			
		||||
 | 
			
		||||
	b = pw_protocol_native_begin_proxy(proxy, PW_PORT_PROXY_METHOD_SUBSCRIBE_PARAMS, NULL);
 | 
			
		||||
	b = pw_protocol_native_begin_proxy(proxy, PW_PORT_METHOD_SUBSCRIBE_PARAMS, NULL);
 | 
			
		||||
 | 
			
		||||
	spa_pod_builder_add_struct(b,
 | 
			
		||||
			SPA_POD_Array(sizeof(uint32_t), SPA_TYPE_Id, n_ids, ids));
 | 
			
		||||
| 
						 | 
				
			
			@ -1435,7 +1435,7 @@ static int port_demarshal_subscribe_params(void *object, const struct pw_protoco
 | 
			
		|||
	if (ctype != SPA_TYPE_Id)
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
 | 
			
		||||
	return pw_resource_notify(resource, struct pw_port_proxy_methods, subscribe_params, 0,
 | 
			
		||||
	return pw_resource_notify(resource, struct pw_port_methods, subscribe_params, 0,
 | 
			
		||||
			ids, n_ids);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1446,7 +1446,7 @@ static int port_marshal_enum_params(void *object, int seq, uint32_t id,
 | 
			
		|||
	struct pw_proxy *proxy = object;
 | 
			
		||||
	struct spa_pod_builder *b;
 | 
			
		||||
 | 
			
		||||
	b = pw_protocol_native_begin_proxy(proxy, PW_PORT_PROXY_METHOD_ENUM_PARAMS, &msg);
 | 
			
		||||
	b = pw_protocol_native_begin_proxy(proxy, PW_PORT_METHOD_ENUM_PARAMS, &msg);
 | 
			
		||||
 | 
			
		||||
	spa_pod_builder_add_struct(b,
 | 
			
		||||
			SPA_POD_Int(SPA_RESULT_RETURN_ASYNC(msg->seq)),
 | 
			
		||||
| 
						 | 
				
			
			@ -1475,7 +1475,7 @@ static int port_demarshal_enum_params(void *object, const struct pw_protocol_nat
 | 
			
		|||
				SPA_POD_Pod(&filter)) < 0)
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
 | 
			
		||||
	return pw_resource_notify(resource, struct pw_port_proxy_methods, enum_params, 0,
 | 
			
		||||
	return pw_resource_notify(resource, struct pw_port_methods, enum_params, 0,
 | 
			
		||||
			seq, id, index, num, filter);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2144,40 +2144,40 @@ static const struct pw_protocol_marshal pw_protocol_native_node_marshal = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_methods pw_protocol_native_port_method_marshal = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_METHODS,
 | 
			
		||||
static const struct pw_port_methods pw_protocol_native_port_method_marshal = {
 | 
			
		||||
	PW_VERSION_PORT_METHODS,
 | 
			
		||||
	.add_listener = &port_method_marshal_add_listener,
 | 
			
		||||
	.subscribe_params = &port_marshal_subscribe_params,
 | 
			
		||||
	.enum_params = &port_marshal_enum_params,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct pw_protocol_native_demarshal
 | 
			
		||||
pw_protocol_native_port_method_demarshal[PW_PORT_PROXY_METHOD_NUM] =
 | 
			
		||||
pw_protocol_native_port_method_demarshal[PW_PORT_METHOD_NUM] =
 | 
			
		||||
{
 | 
			
		||||
	[PW_PORT_PROXY_METHOD_ADD_LISTENER] = { NULL, 0, },
 | 
			
		||||
	[PW_PORT_PROXY_METHOD_SUBSCRIBE_PARAMS] = { &port_demarshal_subscribe_params, 0, },
 | 
			
		||||
	[PW_PORT_PROXY_METHOD_ENUM_PARAMS] = { &port_demarshal_enum_params, 0, },
 | 
			
		||||
	[PW_PORT_METHOD_ADD_LISTENER] = { NULL, 0, },
 | 
			
		||||
	[PW_PORT_METHOD_SUBSCRIBE_PARAMS] = { &port_demarshal_subscribe_params, 0, },
 | 
			
		||||
	[PW_PORT_METHOD_ENUM_PARAMS] = { &port_demarshal_enum_params, 0, },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events pw_protocol_native_port_event_marshal = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events pw_protocol_native_port_event_marshal = {
 | 
			
		||||
	PW_VERSION_PORT_EVENTS,
 | 
			
		||||
	.info = &port_marshal_info,
 | 
			
		||||
	.param = &port_marshal_param,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct pw_protocol_native_demarshal
 | 
			
		||||
pw_protocol_native_port_event_demarshal[PW_PORT_PROXY_EVENT_NUM] =
 | 
			
		||||
pw_protocol_native_port_event_demarshal[PW_PORT_EVENT_NUM] =
 | 
			
		||||
{
 | 
			
		||||
	[PW_PORT_PROXY_EVENT_INFO] = { &port_demarshal_info, 0, },
 | 
			
		||||
	[PW_PORT_PROXY_EVENT_PARAM] = { &port_demarshal_param, 0, }
 | 
			
		||||
	[PW_PORT_EVENT_INFO] = { &port_demarshal_info, 0, },
 | 
			
		||||
	[PW_PORT_EVENT_PARAM] = { &port_demarshal_param, 0, }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct pw_protocol_marshal pw_protocol_native_port_marshal = {
 | 
			
		||||
	PW_TYPE_INTERFACE_Port,
 | 
			
		||||
	PW_VERSION_PORT_PROXY,
 | 
			
		||||
	PW_VERSION_PORT,
 | 
			
		||||
	0,
 | 
			
		||||
	PW_PORT_PROXY_METHOD_NUM,
 | 
			
		||||
	PW_PORT_PROXY_EVENT_NUM,
 | 
			
		||||
	PW_PORT_METHOD_NUM,
 | 
			
		||||
	PW_PORT_EVENT_NUM,
 | 
			
		||||
	.client_marshal = &pw_protocol_native_port_method_marshal,
 | 
			
		||||
	.server_demarshal = pw_protocol_native_port_method_demarshal,
 | 
			
		||||
	.server_marshal = &pw_protocol_native_port_event_marshal,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -412,13 +412,13 @@ struct pw_node_v0_methods {
 | 
			
		|||
 | 
			
		||||
#define PW_VERSION_PORT_V0		0
 | 
			
		||||
 | 
			
		||||
#define PW_PORT_PROXY_V0_EVENT_INFO	0
 | 
			
		||||
#define PW_PORT_PROXY_V0_EVENT_PARAM	1
 | 
			
		||||
#define PW_PORT_PROXY_V0_EVENT_NUM		2
 | 
			
		||||
#define PW_PORT_V0_EVENT_INFO	0
 | 
			
		||||
#define PW_PORT_V0_EVENT_PARAM	1
 | 
			
		||||
#define PW_PORT_V0_EVENT_NUM		2
 | 
			
		||||
 | 
			
		||||
/** Port events */
 | 
			
		||||
struct pw_port_proxy_v0_events {
 | 
			
		||||
#define PW_VERSION_PORT_PROXY_V0_EVENTS	0
 | 
			
		||||
struct pw_port_v0_events {
 | 
			
		||||
#define PW_VERSION_PORT_V0_EVENTS	0
 | 
			
		||||
	uint32_t version;
 | 
			
		||||
	/**
 | 
			
		||||
	 * Notify port info
 | 
			
		||||
| 
						 | 
				
			
			@ -441,15 +441,15 @@ struct pw_port_proxy_v0_events {
 | 
			
		|||
		       const struct spa_pod *param);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define pw_port_resource_v0_info(r,...) pw_resource_notify(r,struct pw_port_proxy_v0_events,info,__VA_ARGS__)
 | 
			
		||||
#define pw_port_resource_v0_param(r,...) pw_resource_notify(r,struct pw_port_proxy_v0_events,param,__VA_ARGS__)
 | 
			
		||||
#define pw_port_resource_v0_info(r,...) pw_resource_notify(r,struct pw_port_v0_events,info,__VA_ARGS__)
 | 
			
		||||
#define pw_port_resource_v0_param(r,...) pw_resource_notify(r,struct pw_port_v0_events,param,__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
#define PW_PORT_PROXY_V0_METHOD_ENUM_PARAMS	0
 | 
			
		||||
#define PW_PORT_PROXY_V0_METHOD_NUM		1
 | 
			
		||||
#define PW_PORT_V0_METHOD_ENUM_PARAMS	0
 | 
			
		||||
#define PW_PORT_V0_METHOD_NUM		1
 | 
			
		||||
 | 
			
		||||
/** Port methods */
 | 
			
		||||
struct pw_port_proxy_v0_methods {
 | 
			
		||||
#define PW_VERSION_PORT_PROXY_V0_METHODS	0
 | 
			
		||||
struct pw_port_v0_methods {
 | 
			
		||||
#define PW_VERSION_PORT_V0_METHODS	0
 | 
			
		||||
	uint32_t version;
 | 
			
		||||
	/**
 | 
			
		||||
	 * Enumerate port parameters
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -893,7 +893,7 @@ static void port_marshal_info(void *object, const struct pw_port_info *info)
 | 
			
		|||
	struct spa_pod_frame f;
 | 
			
		||||
	uint32_t i, n_items;
 | 
			
		||||
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_PROXY_V0_EVENT_INFO, NULL);
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_V0_EVENT_INFO, NULL);
 | 
			
		||||
 | 
			
		||||
	n_items = info->props ? info->props->n_items : 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -921,7 +921,7 @@ static void port_marshal_param(void *object, int seq, uint32_t id, uint32_t inde
 | 
			
		|||
	struct pw_impl_client *client = resource->client;
 | 
			
		||||
	struct spa_pod_builder *b;
 | 
			
		||||
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_PROXY_V0_EVENT_PARAM, NULL);
 | 
			
		||||
	b = pw_protocol_native_begin_resource(resource, PW_PORT_V0_EVENT_PARAM, NULL);
 | 
			
		||||
 | 
			
		||||
	id = pw_protocol_native0_type_to_v2(client, pw_type_info(), id),
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -949,7 +949,7 @@ static int port_demarshal_enum_params(void *object, const struct pw_protocol_nat
 | 
			
		|||
	id = pw_protocol_native0_type_from_v2(client, id);
 | 
			
		||||
	filter = NULL;
 | 
			
		||||
 | 
			
		||||
        return pw_resource_notify(resource, struct pw_port_proxy_methods, enum_params, 0,
 | 
			
		||||
        return pw_resource_notify(resource, struct pw_port_methods, enum_params, 0,
 | 
			
		||||
                        0, id, index, num, filter);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1127,11 +1127,11 @@ static const struct pw_protocol_marshal pw_protocol_native_node_marshal = {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
static const struct pw_protocol_native_demarshal pw_protocol_native_port_method_demarshal[] = {
 | 
			
		||||
	[PW_PORT_PROXY_V0_METHOD_ENUM_PARAMS] = { &port_demarshal_enum_params, 0, PW_PROTOCOL_NATIVE_FLAG_REMAP, },
 | 
			
		||||
	[PW_PORT_V0_METHOD_ENUM_PARAMS] = { &port_demarshal_enum_params, 0, PW_PROTOCOL_NATIVE_FLAG_REMAP, },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events pw_protocol_native_port_event_marshal = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events pw_protocol_native_port_event_marshal = {
 | 
			
		||||
	PW_VERSION_PORT_EVENTS,
 | 
			
		||||
	.info = &port_marshal_info,
 | 
			
		||||
	.param = &port_marshal_param,
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1139,8 +1139,8 @@ static const struct pw_port_proxy_events pw_protocol_native_port_event_marshal =
 | 
			
		|||
static const struct pw_protocol_marshal pw_protocol_native_port_marshal = {
 | 
			
		||||
	PW_TYPE_INTERFACE_Port,
 | 
			
		||||
	PW_VERSION_PORT_V0,
 | 
			
		||||
	PW_PORT_PROXY_V0_METHOD_NUM,
 | 
			
		||||
	PW_PORT_PROXY_EVENT_NUM,
 | 
			
		||||
	PW_PORT_V0_METHOD_NUM,
 | 
			
		||||
	PW_PORT_EVENT_NUM,
 | 
			
		||||
	0,
 | 
			
		||||
	NULL,
 | 
			
		||||
	pw_protocol_native_port_method_demarshal,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ struct impl {
 | 
			
		|||
	struct spa_node mix_node;	/**< mix node implementation */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define pw_port_resource(r,m,v,...)	pw_resource_call(r,struct pw_port_proxy_events,m,v,__VA_ARGS__)
 | 
			
		||||
#define pw_port_resource(r,m,v,...)	pw_resource_call(r,struct pw_port_events,m,v,__VA_ARGS__)
 | 
			
		||||
#define pw_port_resource_info(r,...)	pw_port_resource(r,info,0,__VA_ARGS__)
 | 
			
		||||
#define pw_port_resource_param(r,...)	pw_port_resource(r,param,0,__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -713,8 +713,8 @@ static int port_subscribe_params(void *object, uint32_t *ids, uint32_t n_ids)
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_methods port_methods = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_METHODS,
 | 
			
		||||
static const struct pw_port_methods port_methods = {
 | 
			
		||||
	PW_VERSION_PORT_METHODS,
 | 
			
		||||
	.subscribe_params = port_subscribe_params,
 | 
			
		||||
	.enum_params = port_enum_params
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -803,7 +803,7 @@ int pw_impl_port_register(struct pw_impl_port *port,
 | 
			
		|||
 | 
			
		||||
	port->global = pw_global_new(node->context,
 | 
			
		||||
				PW_TYPE_INTERFACE_Port,
 | 
			
		||||
				PW_VERSION_PORT_PROXY,
 | 
			
		||||
				PW_VERSION_PORT,
 | 
			
		||||
				properties,
 | 
			
		||||
				global_bind,
 | 
			
		||||
				port);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,8 +38,8 @@ extern "C" {
 | 
			
		|||
 | 
			
		||||
#include <pipewire/proxy.h>
 | 
			
		||||
 | 
			
		||||
#define PW_VERSION_PORT_PROXY		3
 | 
			
		||||
struct pw_port_proxy;
 | 
			
		||||
#define PW_VERSION_PORT		3
 | 
			
		||||
struct pw_port;
 | 
			
		||||
 | 
			
		||||
/** \enum pw_direction The direction of a port \memberof pw_introspect */
 | 
			
		||||
enum pw_direction {
 | 
			
		||||
| 
						 | 
				
			
			@ -76,13 +76,13 @@ pw_port_info_update(struct pw_port_info *info,
 | 
			
		|||
void
 | 
			
		||||
pw_port_info_free(struct pw_port_info *info);
 | 
			
		||||
 | 
			
		||||
#define PW_PORT_PROXY_EVENT_INFO	0
 | 
			
		||||
#define PW_PORT_PROXY_EVENT_PARAM	1
 | 
			
		||||
#define PW_PORT_PROXY_EVENT_NUM		2
 | 
			
		||||
#define PW_PORT_EVENT_INFO	0
 | 
			
		||||
#define PW_PORT_EVENT_PARAM	1
 | 
			
		||||
#define PW_PORT_EVENT_NUM	2
 | 
			
		||||
 | 
			
		||||
/** Port events */
 | 
			
		||||
struct pw_port_proxy_events {
 | 
			
		||||
#define PW_VERSION_PORT_PROXY_EVENTS	0
 | 
			
		||||
struct pw_port_events {
 | 
			
		||||
#define PW_VERSION_PORT_EVENTS	0
 | 
			
		||||
	uint32_t version;
 | 
			
		||||
	/**
 | 
			
		||||
	 * Notify port info
 | 
			
		||||
| 
						 | 
				
			
			@ -106,19 +106,19 @@ struct pw_port_proxy_events {
 | 
			
		|||
		       const struct spa_pod *param);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define PW_PORT_PROXY_METHOD_ADD_LISTENER	0
 | 
			
		||||
#define PW_PORT_PROXY_METHOD_SUBSCRIBE_PARAMS	1
 | 
			
		||||
#define PW_PORT_PROXY_METHOD_ENUM_PARAMS	2
 | 
			
		||||
#define PW_PORT_PROXY_METHOD_NUM		3
 | 
			
		||||
#define PW_PORT_METHOD_ADD_LISTENER	0
 | 
			
		||||
#define PW_PORT_METHOD_SUBSCRIBE_PARAMS	1
 | 
			
		||||
#define PW_PORT_METHOD_ENUM_PARAMS	2
 | 
			
		||||
#define PW_PORT_METHOD_NUM		3
 | 
			
		||||
 | 
			
		||||
/** Port methods */
 | 
			
		||||
struct pw_port_proxy_methods {
 | 
			
		||||
#define PW_VERSION_PORT_PROXY_METHODS	0
 | 
			
		||||
struct pw_port_methods {
 | 
			
		||||
#define PW_VERSION_PORT_METHODS		0
 | 
			
		||||
	uint32_t version;
 | 
			
		||||
 | 
			
		||||
	int (*add_listener) (void *object,
 | 
			
		||||
			struct spa_hook *listener,
 | 
			
		||||
			const struct pw_port_proxy_events *events,
 | 
			
		||||
			const struct pw_port_events *events,
 | 
			
		||||
			void *data);
 | 
			
		||||
	/**
 | 
			
		||||
	 * Subscribe to parameter changes
 | 
			
		||||
| 
						 | 
				
			
			@ -148,18 +148,18 @@ struct pw_port_proxy_methods {
 | 
			
		|||
			const struct spa_pod *filter);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define pw_port_proxy_method(o,method,version,...)			\
 | 
			
		||||
#define pw_port_method(o,method,version,...)				\
 | 
			
		||||
({									\
 | 
			
		||||
	int _res = -ENOTSUP;						\
 | 
			
		||||
	spa_interface_call_res((struct spa_interface*)o,		\
 | 
			
		||||
			struct pw_port_proxy_methods, _res,		\
 | 
			
		||||
			struct pw_port_methods, _res,			\
 | 
			
		||||
			method, version, ##__VA_ARGS__);		\
 | 
			
		||||
	_res;								\
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
#define pw_port_proxy_add_listener(c,...)	pw_port_proxy_method(c,add_listener,0,__VA_ARGS__)
 | 
			
		||||
#define pw_port_proxy_subscribe_params(c,...)	pw_port_proxy_method(c,subscribe_params,0,__VA_ARGS__)
 | 
			
		||||
#define pw_port_proxy_enum_params(c,...)	pw_port_proxy_method(c,enum_params,0,__VA_ARGS__)
 | 
			
		||||
#define pw_port_add_listener(c,...)	pw_port_method(c,add_listener,0,__VA_ARGS__)
 | 
			
		||||
#define pw_port_subscribe_params(c,...)	pw_port_method(c,subscribe_params,0,__VA_ARGS__)
 | 
			
		||||
#define pw_port_enum_params(c,...)	pw_port_method(c,enum_params,0,__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}  /* extern "C" */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -784,7 +784,6 @@ struct pw_stream {
 | 
			
		|||
	struct pw_proxy *proxy;
 | 
			
		||||
	struct spa_hook proxy_listener;
 | 
			
		||||
 | 
			
		||||
	struct pw_node_proxy *node;
 | 
			
		||||
	struct spa_hook node_listener;
 | 
			
		||||
 | 
			
		||||
	struct spa_list controls;
 | 
			
		||||
| 
						 | 
				
			
			@ -820,8 +819,6 @@ struct pw_filter {
 | 
			
		|||
	struct pw_proxy *proxy;
 | 
			
		||||
	struct spa_hook proxy_listener;
 | 
			
		||||
 | 
			
		||||
	struct pw_node_proxy *node;
 | 
			
		||||
 | 
			
		||||
	struct spa_list controls;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,36 +235,36 @@ static void test_node_abi(void)
 | 
			
		|||
 | 
			
		||||
static void test_port_abi(void)
 | 
			
		||||
{
 | 
			
		||||
	struct pw_port_proxy_methods m;
 | 
			
		||||
	struct pw_port_proxy_events e;
 | 
			
		||||
	struct pw_port_methods m;
 | 
			
		||||
	struct pw_port_events e;
 | 
			
		||||
	struct {
 | 
			
		||||
		uint32_t version;
 | 
			
		||||
		int (*add_listener) (void *object,
 | 
			
		||||
			struct spa_hook *listener,
 | 
			
		||||
			const struct pw_port_proxy_events *events,
 | 
			
		||||
			const struct pw_port_events *events,
 | 
			
		||||
			void *data);
 | 
			
		||||
		int (*subscribe_params) (void *object, uint32_t *ids, uint32_t n_ids);
 | 
			
		||||
		int (*enum_params) (void *object, int seq, uint32_t id,
 | 
			
		||||
			uint32_t start, uint32_t num, const struct spa_pod *filter);
 | 
			
		||||
	} methods = { PW_VERSION_PORT_PROXY_METHODS, };
 | 
			
		||||
	} methods = { PW_VERSION_PORT_METHODS, };
 | 
			
		||||
	struct {
 | 
			
		||||
		uint32_t version;
 | 
			
		||||
		void (*info) (void *object, const struct pw_port_info *info);
 | 
			
		||||
		void (*param) (void *object, int seq,
 | 
			
		||||
			uint32_t id, uint32_t index, uint32_t next,
 | 
			
		||||
			const struct spa_pod *param);
 | 
			
		||||
	} events = { PW_VERSION_PORT_PROXY_EVENTS, };
 | 
			
		||||
	} events = { PW_VERSION_PORT_EVENTS, };
 | 
			
		||||
 | 
			
		||||
	TEST_FUNC(m, methods, version);
 | 
			
		||||
	TEST_FUNC(m, methods, add_listener);
 | 
			
		||||
	TEST_FUNC(m, methods, enum_params);
 | 
			
		||||
	spa_assert(PW_VERSION_PORT_PROXY_METHODS == 0);
 | 
			
		||||
	spa_assert(PW_VERSION_PORT_METHODS == 0);
 | 
			
		||||
	spa_assert(sizeof(m) == sizeof(methods));
 | 
			
		||||
 | 
			
		||||
	TEST_FUNC(e, events, version);
 | 
			
		||||
	TEST_FUNC(e, events, info);
 | 
			
		||||
	TEST_FUNC(e, events, param);
 | 
			
		||||
	spa_assert(PW_VERSION_PORT_PROXY_EVENTS == 0);
 | 
			
		||||
	spa_assert(PW_VERSION_PORT_EVENTS == 0);
 | 
			
		||||
	spa_assert(sizeof(e) == sizeof(events));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -790,8 +790,8 @@ static void port_event_info(void *object, const struct pw_port_info *info)
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events port_events = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events port_events = {
 | 
			
		||||
	PW_VERSION_PORT_EVENTS,
 | 
			
		||||
	.info = port_event_info,
 | 
			
		||||
	.param = event_param
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1116,7 +1116,7 @@ static bool bind_global(struct remote_data *rd, struct global *global, char **er
 | 
			
		|||
		break;
 | 
			
		||||
	case PW_TYPE_INTERFACE_Port:
 | 
			
		||||
		events = &port_events;
 | 
			
		||||
		client_version = PW_VERSION_PORT_PROXY;
 | 
			
		||||
		client_version = PW_VERSION_PORT;
 | 
			
		||||
		destroy = (pw_destroy_t) pw_port_info_free;
 | 
			
		||||
		info_func = info_port;
 | 
			
		||||
		break;
 | 
			
		||||
| 
						 | 
				
			
			@ -1460,7 +1460,7 @@ static bool do_enum_params(struct data *data, const char *cmd, char *args, char
 | 
			
		|||
			param_id, 0, 0, NULL);
 | 
			
		||||
		break;
 | 
			
		||||
	case PW_TYPE_INTERFACE_Port:
 | 
			
		||||
		pw_port_proxy_enum_params((struct pw_port_proxy*)global->proxy, 0,
 | 
			
		||||
		pw_port_enum_params((struct pw_port*)global->proxy, 0,
 | 
			
		||||
			param_id, 0, 0, NULL);
 | 
			
		||||
		break;
 | 
			
		||||
	case PW_TYPE_INTERFACE_Device:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -511,8 +511,8 @@ static void port_event_info(void *data, const struct pw_port_info *info)
 | 
			
		|||
        global_event_info(data, info);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events port_events = {
 | 
			
		||||
        PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events port_events = {
 | 
			
		||||
        PW_VERSION_PORT_EVENTS,
 | 
			
		||||
        .info = port_event_info,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -615,7 +615,7 @@ static void registry_event_global(void *data, uint32_t id, uint32_t permissions,
 | 
			
		|||
		info_destroy = (pw_destroy_t)pw_port_info_free;
 | 
			
		||||
		info_update = (info_update_t)pw_port_info_update;
 | 
			
		||||
		draw = draw_port;
 | 
			
		||||
		client_version = PW_VERSION_PORT_PROXY;
 | 
			
		||||
		client_version = PW_VERSION_PORT;
 | 
			
		||||
		break;
 | 
			
		||||
	case PW_TYPE_INTERFACE_Node:
 | 
			
		||||
		events = &node_events;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -345,7 +345,7 @@ static void port_event_info(void *object, const struct pw_port_info *info)
 | 
			
		|||
			remove_params(data, info->params[i].id, 0);
 | 
			
		||||
			if (!SPA_FLAG_IS_SET(info->params[i].flags, SPA_PARAM_INFO_READ))
 | 
			
		||||
				continue;
 | 
			
		||||
			pw_port_proxy_enum_params((struct pw_port_proxy*)data->proxy,
 | 
			
		||||
			pw_port_enum_params((struct pw_port*)data->proxy,
 | 
			
		||||
					0, info->params[i].id, 0, 0, NULL);
 | 
			
		||||
		}
 | 
			
		||||
		add_pending(data);
 | 
			
		||||
| 
						 | 
				
			
			@ -356,8 +356,8 @@ static void port_event_info(void *object, const struct pw_port_info *info)
 | 
			
		|||
		data->print_func(data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct pw_port_proxy_events port_events = {
 | 
			
		||||
	PW_VERSION_PORT_PROXY_EVENTS,
 | 
			
		||||
static const struct pw_port_events port_events = {
 | 
			
		||||
	PW_VERSION_PORT_EVENTS,
 | 
			
		||||
        .info = port_event_info,
 | 
			
		||||
        .param = event_param
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -584,7 +584,7 @@ static void registry_event_global(void *data, uint32_t id,
 | 
			
		|||
		break;
 | 
			
		||||
	case PW_TYPE_INTERFACE_Port:
 | 
			
		||||
		events = &port_events;
 | 
			
		||||
		client_version = PW_VERSION_PORT_PROXY;
 | 
			
		||||
		client_version = PW_VERSION_PORT;
 | 
			
		||||
		destroy = (pw_destroy_t) pw_port_info_free;
 | 
			
		||||
		print_func = print_port;
 | 
			
		||||
		break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue