mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
Add invoke method to schedule executing in a main loop
This commit is contained in:
parent
1bd751372e
commit
0373f73bac
8 changed files with 381 additions and 74 deletions
|
|
@ -61,7 +61,7 @@ typedef struct {
|
|||
unsigned int n_fds;
|
||||
} SpaPollNotifyData;
|
||||
|
||||
typedef int (*SpaPollNotify) (SpaPollNotifyData *data);
|
||||
typedef SpaResult (*SpaPollNotify) (SpaPollNotifyData *data);
|
||||
|
||||
/**
|
||||
* SpaPollItem:
|
||||
|
|
@ -86,6 +86,14 @@ typedef struct {
|
|||
void *user_data;
|
||||
} SpaPollItem;
|
||||
|
||||
|
||||
typedef SpaResult (*SpaPollInvokeFunc) (SpaPoll *poll,
|
||||
uint32_t seq,
|
||||
size_t size,
|
||||
void *data,
|
||||
void *user_data);
|
||||
|
||||
|
||||
/**
|
||||
* SpaPoll:
|
||||
*
|
||||
|
|
@ -122,11 +130,20 @@ struct _SpaPoll {
|
|||
|
||||
SpaResult (*remove_item) (SpaPoll *poll,
|
||||
SpaPollItem *item);
|
||||
|
||||
|
||||
SpaResult (*invoke) (SpaPoll *poll,
|
||||
SpaPollInvokeFunc func,
|
||||
uint32_t seq,
|
||||
size_t size,
|
||||
void *data,
|
||||
void *user_data);
|
||||
};
|
||||
|
||||
#define spa_poll_add_item(n,...) (n)->add_item((n),__VA_ARGS__)
|
||||
#define spa_poll_update_item(n,...) (n)->update_item((n),__VA_ARGS__)
|
||||
#define spa_poll_remove_item(n,...) (n)->remove_item((n),__VA_ARGS__)
|
||||
#define spa_poll_invoke(n,...) (n)->invoke((n),__VA_ARGS__)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue