Replace low-level stream access functions; read and lseek as known in POSIX.
You can use this to make any fancy file opening/closing yourself,
using mpg123_open_fd() to set the file descriptor for your read/lseek
(doesn't need to be a "real" file descriptor...).
Setting a function to NULL means that the default internal read is
used (active from next mpg123_open call on).
Note: As it would be troublesome to mess with this while having a file open,
this implies mpg123_close().
\param mh handle
\param r_read callback for reading (behaviour like POSIX read)
\param r_lseek callback for seeking (like POSIX lseek)
\return MPG123_OK on success
Replace low-level stream access functions; read and lseek as known in POSIX. You can use this to make any fancy file opening/closing yourself, using mpg123_open_fd() to set the file descriptor for your read/lseek (doesn't need to be a "real" file descriptor...). Setting a function to NULL means that the default internal read is used (active from next mpg123_open call on). Note: As it would be troublesome to mess with this while having a file open, this implies mpg123_close(). \param mh handle \param r_read callback for reading (behaviour like POSIX read) \param r_lseek callback for seeking (like POSIX lseek) \return MPG123_OK on success