diff options
Diffstat (limited to 'apps/buffering.h')
| -rw-r--r-- | apps/buffering.h | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/apps/buffering.h b/apps/buffering.h index 34d6d64..2e4cfd3 100644 --- a/apps/buffering.h +++ b/apps/buffering.h @@ -28,14 +28,13 @@ enum data_type { + TYPE_UNKNOWN = 0, /* invalid type indicator */ + TYPE_ID3, TYPE_CODEC, TYPE_PACKET_AUDIO, TYPE_ATOMIC_AUDIO, - TYPE_ID3, TYPE_CUESHEET, TYPE_BITMAP, - TYPE_BUFFER, - TYPE_UNKNOWN, }; /* Error return values */ @@ -63,6 +62,7 @@ bool buffering_reset(char *buf, size_t buflen); * bufclose : Close an open handle * bufseek : Set handle reading index, relatively to the start of the file * bufadvance: Move handle reading index, relatively to current position + * bufftell : Return the handle's file read position * bufread : Copy data from a handle to a buffer * bufgetdata: Obtain a pointer for linear access to a "size" amount of data * bufgettail: Out-of-band get the last size bytes of a handle. @@ -81,28 +81,40 @@ int bufalloc(const void *src, size_t size, enum data_type type); bool bufclose(int handle_id); int bufseek(int handle_id, size_t newpos); int bufadvance(int handle_id, off_t offset); +off_t bufftell(int handle_id); ssize_t bufread(int handle_id, size_t size, void *dest); ssize_t bufgetdata(int handle_id, size_t size, void **data); ssize_t bufgettail(int handle_id, size_t size, void **data); ssize_t bufcuttail(int handle_id, size_t size); - /*************************************************************************** * SECONDARY FUNCTIONS * =================== * + * buf_handle_data_type: return the handle's data type + * buf_is_handle: is the handle valid? + * buf_pin_handle: Disallow/allow handle movement. Handle may still be removed. * buf_handle_offset: Get the offset of the first buffered byte from the file * buf_request_buffer_handle: Request buffering of a handle * buf_set_base_handle: Tell the buffering thread which handle is currently read + * buf_length: Total size of ringbuffer * buf_used: Total amount of buffer space used (including allocated space) + * buf_back_off_storage: tell buffering thread to take it easy ****************************************************************************/ +enum data_type buf_handle_data_type(int handle_id); +ssize_t buf_handle_remaining(int handle_id); +bool buf_is_handle(int handle_id); ssize_t buf_handle_offset(int handle_id); void buf_request_buffer_handle(int handle_id); void buf_set_base_handle(int handle_id); +size_t buf_length(void); size_t buf_used(void); - - +bool buf_pin_handle(int handle_id, bool pin); +bool buf_signal_handle(int handle_id, bool signal); +#ifdef HAVE_IO_PRIORITY +void buf_back_off_storage(bool back_off); +#endif /* Settings */ enum { @@ -110,6 +122,7 @@ enum { BUFFERING_SET_CHUNKSIZE, }; void buf_set_watermark(size_t bytes); +size_t buf_get_watermark(void); /* Debugging */ struct buffering_debug { |