Add audiotestsrc

Work on idle poll
Move node state to the node interface so that we can actually get it in
the sync case.
Add enabled field to the poll event
Work on audiotestsrc
This commit is contained in:
Wim Taymans 2016-09-05 16:23:40 +02:00
parent 52e45cf2a1
commit 7aa79a2a0d
24 changed files with 721 additions and 100 deletions

View file

@ -40,6 +40,7 @@ typedef struct _SpaEvent SpaEvent;
* @SPA_EVENT_TYPE_NEED_INPUT: emited when more data can be pushed to an async node
* @SPA_EVENT_TYPE_REUSE_BUFFER: emited when a buffer can be reused
* @SPA_EVENT_TYPE_ADD_POLL: emited when a pollfd should be added. data points to #SpaPollItem
* @SPA_EVENT_TYPE_UPDATE_POLL: update the pollfd item
* @SPA_EVENT_TYPE_REMOVE_POLL: emited when a pollfd should be removed. data points to #SpaPollItem
* @SPA_EVENT_TYPE_DRAINED: emited when DRAIN command completed
* @SPA_EVENT_TYPE_MARKER: emited when MARK command completed
@ -56,6 +57,7 @@ typedef enum {
SPA_EVENT_TYPE_NEED_INPUT,
SPA_EVENT_TYPE_REUSE_BUFFER,
SPA_EVENT_TYPE_ADD_POLL,
SPA_EVENT_TYPE_UPDATE_POLL,
SPA_EVENT_TYPE_REMOVE_POLL,
SPA_EVENT_TYPE_DRAINED,
SPA_EVENT_TYPE_MARKER,

View file

@ -154,6 +154,12 @@ struct _SpaNode {
/* the total size of this node. This can be used to expand this
* structure in the future */
size_t size;
/**
* SpaNode::state:
*
* The current state of the node
*/
SpaNodeState state;
/**
* SpaNode::get_props:
* @node: a #SpaNode

View file

@ -24,8 +24,6 @@
extern "C" {
#endif
typedef struct _SpaEvent SpaEvent;
#include <spa/defs.h>
/**
@ -63,6 +61,7 @@ typedef int (*SpaPollNotify) (SpaPollNotifyData *data);
/**
* SpaPollItem:
* @id: id of the poll item
* @enabled: if the item is enabled
* @fds: array of file descriptors to watch
* @n_fds: number of elements in @fds
* @idle_cb: callback called when there is no other work
@ -72,6 +71,7 @@ typedef int (*SpaPollNotify) (SpaPollNotifyData *data);
*/
typedef struct {
uint32_t id;
bool enabled;
SpaPollFd *fds;
unsigned int n_fds;
SpaPollNotify idle_cb;