chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Hands-off reading for OGGs.
[disorder]
/
lib
/
hreader.h
diff --git
a/lib/hreader.h
b/lib/hreader.h
index 8ef3a4079e4229662f674267d6a5168c3e2e5da9..46f8bd918b9e9ba9e17d1e821af8ed2c7509762a 100644
(file)
--- a/
lib/hreader.h
+++ b/
lib/hreader.h
@@
-29,6
+29,7
@@
*/
struct hreader {
const char *path; /* file to read */
*/
struct hreader {
const char *path; /* file to read */
+ off_t size; /* file size */
off_t read_offset; /* for next hreader_read() */
off_t buf_offset; /* offset of start of buffer */
char *buffer; /* input buffer */
off_t read_offset; /* for next hreader_read() */
off_t buf_offset; /* offset of start of buffer */
char *buffer; /* input buffer */
@@
-39,8
+40,9
@@
struct hreader {
/** @brief Initialize a hands-off reader
* @param path File to read
* @param h Reader to initialize
/** @brief Initialize a hands-off reader
* @param path File to read
* @param h Reader to initialize
+ * @return 0 on success, -1 on error
*/
*/
-
void
hreader_init(const char *path, struct hreader *h);
+
int
hreader_init(const char *path, struct hreader *h);
/** @brief Read some bytes
* @param h Reader to read from
/** @brief Read some bytes
* @param h Reader to read from
@@
-59,6
+61,14
@@
int hreader_read(struct hreader *h, void *buffer, size_t n);
*/
int hreader_pread(struct hreader *h, void *buffer, size_t n, off_t offset);
*/
int hreader_pread(struct hreader *h, void *buffer, size_t n, off_t offset);
+/** @brief Seek within a file
+ * @param h Reader to seek
+ * @param offset Offset
+ * @param whence SEEK_*
+ * @return Result offset
+ */
+off_t hreader_seek(struct hreader *h, off_t offset, int whence);
+
#endif /* HREADER_H */
/*
#endif /* HREADER_H */
/*