dspqueue
Asynchronous DSP Packet Queue
dspqueue.h File Reference
#include <stdlib.h>
#include <stdint.h>
#include <AEEStdDef.h>
Include dependency graph for dspqueue.h:

Go to the source code of this file.

Classes

struct  dspqueue_buffer
 

Macros

#define DSPQUEUE_TIMEOUT_NONE   0xffffffff
 

Typedefs

typedef struct dspqueue * dspqueue_t
 
typedef void(* dspqueue_callback_t) (dspqueue_t queue, AEEResult error, void *context)
 

Enumerations

enum  dspqueue_packet_flags {
  DSPQUEUE_PACKET_FLAG_MESSAGE = 0x0001, DSPQUEUE_PACKET_FLAG_BUFFERS = 0x0002, DSPQUEUE_PACKET_FLAG_WAKEUP = 0x0004, DSPQUEUE_PACKET_FLAG_DRIVER_READY = 0x0008,
  DSPQUEUE_PACKET_FLAG_USER_READY = 0x0010, DSPQUEUE_PACKET_FLAG_RESERVED_ZERO = 0xffe0
}
 
enum  dspqueue_buffer_flags {
  DSPQUEUE_BUFFER_FLAG_REF = 0x00000004, DSPQUEUE_BUFFER_FLAG_DEREF = 0x00000008, DSPQUEUE_BUFFER_FLAG_FLUSH_SENDER = 0x00000010, DSPQUEUE_BUFFER_FLAG_INVALIDATE_SENDER = 0x00000020,
  DSPQUEUE_BUFFER_FLAG_FLUSH_RECIPIENT = 0x00000040, DSPQUEUE_BUFFER_FLAG_INVALIDATE_RECIPIENT = 0x00000080, DSPQUEUE_BUFFER_FLAG_RESERVED_ZERO = 0xffffff00
}
 
enum  dspqueue_stat {
  DSPQUEUE_STAT_READ_QUEUE_PACKETS = 1, DSPQUEUE_STAT_READ_QUEUE_BYTES, DSPQUEUE_STAT_WRITE_QUEUE_PACKETS, DSPQUEUE_STAT_WRITE_QUEUE_BYTES,
  DSPQUEUE_STAT_EARLY_WAKEUP_WAIT_TIME, DSPQUEUE_STAT_EARLY_WAKEUP_MISSES
}
 

Functions

AEEResult dspqueue_create (int domain, uint32_t flags, uint32_t req_queue_size, uint32_t resp_queue_size, dspqueue_callback_t packet_callback, dspqueue_callback_t error_callback, void *callback_context, dspqueue_t *queue)
 
AEEResult dspqueue_close (dspqueue_t queue)
 
AEEResult dspqueue_export (dspqueue_t queue, uint64_t *queue_id)
 
AEEResult dspqueue_import (uint64_t queue_id, dspqueue_callback_t packet_callback, dspqueue_callback_t error_callback, void *callback_context, dspqueue_t *queue)
 
AEEResult dspqueue_write_noblock (dspqueue_t queue, uint32_t flags, uint32_t num_buffers, struct dspqueue_buffer *buffers, uint32_t message_length, const uint8_t *message)
 
AEEResult dspqueue_write (dspqueue_t queue, uint32_t flags, uint32_t num_buffers, struct dspqueue_buffer *buffers, uint32_t message_length, const uint8_t *message, uint32_t timeout_us)
 
AEEResult dspqueue_read_noblock (dspqueue_t queue, uint32_t *flags, uint32_t max_buffers, uint32_t *num_buffers, struct dspqueue_buffer *buffers, uint32_t max_message_length, uint32_t *message_length, uint8_t *message)
 
AEEResult dspqueue_read (dspqueue_t queue, uint32_t *flags, uint32_t max_buffers, uint32_t *num_buffers, struct dspqueue_buffer *buffers, uint32_t max_message_length, uint32_t *message_length, uint8_t *message, uint32_t timeout_us)
 
AEEResult dspqueue_peek_noblock (dspqueue_t queue, uint32_t *flags, uint32_t *num_buffers, uint32_t *message_length)
 
AEEResult dspqueue_peek (dspqueue_t queue, uint32_t *flags, uint32_t *num_buffers, uint32_t *message_length, uint32_t timeout_us)
 
AEEResult dspqueue_write_early_wakeup_noblock (dspqueue_t queue, uint32_t wakeup_delay, uint32_t packet_flags)
 
AEEResult dspqueue_get_stat (dspqueue_t queue, enum dspqueue_stat stat, uint64_t *value)
 

Detailed Description

Asynchronous DSP Packet Queue API.