Replace I/O functions with your own ones operating on some kind of
handle instead of integer descriptors.
The handle is a void pointer, so you can pass any data you want...
mpg123_open_handle() is the call you make to use the I/O defined here.
There is no fallback to internal read/seek here.
Note: As it would be troublesome to mess with this while having a file open,
this mpg123_close() is implied here.
\param mh handle
\param r_read callback for reading (behaviour like POSIX read)
\param r_lseek callback for seeking (like POSIX lseek)
\param cleanup A callback to clean up an I/O handle on mpg123_close,
can be NULL for none (you take care of cleaning your handles).
\return MPG123_OK on success
Replace I/O functions with your own ones operating on some kind of handle instead of integer descriptors. The handle is a void pointer, so you can pass any data you want... mpg123_open_handle() is the call you make to use the I/O defined here. There is no fallback to internal read/seek here. Note: As it would be troublesome to mess with this while having a file open, this mpg123_close() is implied here. \param mh handle \param r_read callback for reading (behaviour like POSIX read) \param r_lseek callback for seeking (like POSIX lseek) \param cleanup A callback to clean up an I/O handle on mpg123_close, can be NULL for none (you take care of cleaning your handles). \return MPG123_OK on success