hook: separate spa_callbacks from the hook

Make a spa_callbacks with just the functions and data and use this
in the hook and objects.
This commit is contained in:
Wim Taymans 2019-05-15 12:17:52 +02:00
parent 6ee192dff5
commit 448c1937ad
28 changed files with 97 additions and 84 deletions

View file

@ -51,7 +51,7 @@ struct impl {
struct spa_log *log;
struct spa_loop *main_loop;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
struct udev *udev;
struct udev_monitor *umonitor;
@ -377,7 +377,7 @@ impl_monitor_set_callbacks(struct spa_monitor *monitor,
this = SPA_CONTAINER_OF(monitor, struct impl, monitor);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
if (callbacks) {
if ((res = impl_udev_open(this)) < 0)

View file

@ -293,7 +293,7 @@ impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct state, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -292,7 +292,7 @@ impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct state, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -82,7 +82,7 @@ struct state {
snd_output_t *output;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
uint64_t info_all;
struct spa_node_info info;

View file

@ -119,7 +119,7 @@ struct impl {
struct props props;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
bool async;
struct spa_source timer_source;
@ -510,7 +510,7 @@ impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct impl, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -92,7 +92,7 @@ struct impl {
struct spa_loop *data_loop;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
uint64_t info_all;
struct spa_node_info info;
@ -974,7 +974,7 @@ impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct impl, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -92,7 +92,7 @@ struct impl {
struct spa_loop *data_loop;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
uint64_t info_all;
struct spa_node_info info;
@ -607,7 +607,7 @@ impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct impl, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -60,7 +60,7 @@ struct spa_bt_monitor {
struct spa_dbus_connection *dbus_connection;
DBusConnection *conn;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
uint32_t count;
@ -2050,7 +2050,7 @@ impl_monitor_set_callbacks(struct spa_monitor *monitor,
this = SPA_CONTAINER_OF(monitor, struct spa_bt_monitor, monitor);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
if (callbacks) {
get_managed_objects(this);

View file

@ -217,7 +217,7 @@ struct spa_bt_transport {
void *user_data;
struct spa_hook_list listener_list;
struct spa_hook impl;
struct spa_callbacks impl;
};
#define spa_bt_transport_emit(t,m,v,...) spa_hook_list_call(&(t)->listener_list, \
@ -228,12 +228,12 @@ struct spa_bt_transport {
spa_hook_list_append(&(t)->listener_list, listener, events, data)
#define spa_bt_transport_set_implementation(t,_impl,_data) \
(t)->impl = SPA_HOOK_INIT(_impl, _data)
(t)->impl = SPA_CALLBACKS_INIT(_impl, _data)
#define spa_bt_transport_impl(t,m,v,...) \
({ \
int res = 0; \
spa_hook_call_res(&(t)->impl, struct spa_bt_transport_implementation, res, m, v, ##__VA_ARGS__); \
spa_callbacks_call_res(&(t)->impl, struct spa_bt_transport_implementation, res, m, v, ##__VA_ARGS__); \
res; \
})

View file

@ -85,7 +85,7 @@ struct impl {
struct props props;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
struct spa_source timer_source;
struct itimerspec timerspec;
@ -393,7 +393,7 @@ impl_node_set_callbacks(struct spa_node *node,
spa_log_error(this->log, "a data_loop is needed for async operation");
return -EINVAL;
}
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -86,7 +86,7 @@ struct impl {
struct props props;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
struct spa_source timer_source;
struct itimerspec timerspec;
@ -407,7 +407,7 @@ impl_node_set_callbacks(struct spa_node *node,
spa_log_error(this->log, "a data_loop is needed for async operation");
return -EINVAL;
}
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -48,7 +48,7 @@ struct impl {
struct spa_log *log;
struct spa_loop *main_loop;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
struct udev *udev;
struct udev_monitor *umonitor;
@ -283,7 +283,7 @@ impl_monitor_set_callbacks(struct spa_monitor *monitor,
this = SPA_CONTAINER_OF(monitor, struct impl, monitor);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
if (callbacks) {
if ((res = impl_udev_open(this)) < 0)

View file

@ -134,7 +134,7 @@ struct impl {
struct props props;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
struct port out_ports[1];
@ -383,7 +383,7 @@ static int impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct impl, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}

View file

@ -104,7 +104,7 @@ struct impl {
struct props props;
struct spa_hook_list hooks;
struct spa_hook callbacks;
struct spa_callbacks callbacks;
bool async;
struct spa_source timer_source;
@ -455,7 +455,7 @@ impl_node_set_callbacks(struct spa_node *node,
this = SPA_CONTAINER_OF(node, struct impl, node);
this->callbacks = SPA_HOOK_INIT(callbacks, data);
this->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
return 0;
}