event: add PULL_INPUT event

Rename some events, add an explicit event to pull input
This commit is contained in:
Wim Taymans 2016-06-06 22:29:07 +02:00
parent e56f120559
commit 6377b9bd12
4 changed files with 21 additions and 109 deletions

View file

@ -33,10 +33,9 @@ typedef struct _SpiEvent SpiEvent;
* @SPI_EVENT_TYPE_INVALID: invalid event, should be ignored
* @SPI_EVENT_TYPE_ACTIVATED: emited when the ACTIVATE command completes
* @SPI_EVENT_TYPE_DEACTIVATED: emited when the DEACTIVATE command completes
* @SPI_EVENT_TYPE_HAVE_OUTPUT: emited when an async node has output
* @SPI_EVENT_TYPE_NEED_INPUT: emited when an async node needs input. The data
* member could contain a SpiBuffer that should be filled or it
* can be %NULL.
* @SPI_EVENT_TYPE_CAN_PULL_OUTPUT: emited when an async node has output that can be pulled
* @SPI_EVENT_TYPE_CAN_PUSH_INTPUT: emited when more data can be pushed to an async node
* @SPI_EVENT_TYPE_PULL_INPUT: emited when data needs to be provided on an input
* @SPI_EVENT_TYPE_ADD_POLL: emited when a pollfd should be added
* @SPI_EVENT_TYPE_REMOVE_POLL: emited when a pollfd should be removed
* @SPI_EVENT_TYPE_DRAINED: emited when DRAIN command completed
@ -48,8 +47,9 @@ typedef enum {
SPI_EVENT_TYPE_INVALID = 0,
SPI_EVENT_TYPE_ACTIVATED,
SPI_EVENT_TYPE_DEACTIVATED,
SPI_EVENT_TYPE_HAVE_OUTPUT,
SPI_EVENT_TYPE_NEED_INPUT,
SPI_EVENT_TYPE_CAN_PULL_OUTPUT,
SPI_EVENT_TYPE_CAN_PUSH_INTPUT,
SPI_EVENT_TYPE_PULL_INPUT,
SPI_EVENT_TYPE_ADD_POLL,
SPI_EVENT_TYPE_REMOVE_POLL,
SPI_EVENT_TYPE_DRAINED,

View file

@ -41,19 +41,6 @@ typedef enum {
SPI_INPUT_FLAG_NONE = 0,
} SpiInputFlags;
/**
* SpiOutputFlags:
* @SPI_OUTPUT_FLAG_NONE: no flag
* @SPI_OUTPUT_FLAG_PULL: force a #SPI_EVENT_NEED_INPUT event on the
* peer input ports when no data is available.
* @SPI_OUTPUT_FLAG_DISCARD: discard the buffer data
*/
typedef enum {
SPI_OUTPUT_FLAG_NONE = 0,
SPI_OUTPUT_FLAG_PULL = (1 << 0),
SPI_OUTPUT_FLAG_DISCARD = (1 << 1),
} SpiOutputFlags;
/**
* SpiInputInfo:
* @port_id: the port id
@ -70,6 +57,19 @@ typedef struct {
SpiResult status;
} SpiInputInfo;
/**
* SpiOutputFlags:
* @SPI_OUTPUT_FLAG_NONE: no flag
* @SPI_OUTPUT_FLAG_PULL: force a #SPI_EVENT_NEED_INPUT event on the
* peer input ports when no data is available.
* @SPI_OUTPUT_FLAG_DISCARD: discard the buffer data
*/
typedef enum {
SPI_OUTPUT_FLAG_NONE = 0,
SPI_OUTPUT_FLAG_PULL = (1 << 0),
SPI_OUTPUT_FLAG_DISCARD = (1 << 1),
} SpiOutputFlags;
/**
* SpiOutputInfo:
* @port_id: the port id