Change object model
This commit is contained in:
Wim Taymans 2016-11-10 15:42:14 +01:00
parent d0f95fc323
commit 190f01d88e
38 changed files with 1594 additions and 3562 deletions

View file

@ -31,8 +31,7 @@ typedef struct _PinosListener PinosListener;
struct _PinosListener {
SpaList link;
void (*notify) (PinosListener *listener, void *data);
void *user_data;
void (*notify) (PinosListener *listener, void *object, void *data);
};
struct _PinosSignal {
@ -52,14 +51,21 @@ pinos_signal_add (PinosSignal *signal,
spa_list_insert (signal->listeners.prev, &listener->link);
}
static inline void
pinos_signal_remove (PinosListener *listener)
{
spa_list_remove (&listener->link);
}
static inline void
pinos_signal_emit (PinosSignal *signal,
void *object,
void *data)
{
PinosListener *l, *next;
spa_list_for_each_safe (l, next, &signal->listeners, link)
l->notify (l, data);
l->notify (l, object, data);
}
#ifdef __cplusplus