*/
#include "disorder-server.h"
+#include "hreader.h"
#include <mad.h>
#include <vorbis/vorbisfile.h>
void (*decode)(void);
};
-/** @brief Input file */
-static int inputfd;
+static struct hreader input[1];
/** @brief Output file */
static FILE *outputfp;
remain = 0;
}
/* Read new data */
- n = read(inputfd, input_buffer + remain, (sizeof input_buffer) - remain);
+ n = hreader_read(input,
+ input_buffer + remain,
+ (sizeof input_buffer) - remain);
if(n < 0)
disorder_fatal(errno, "reading from %s", path);
/* Compute total number of bytes available */
static void decode_mp3(void) {
struct mad_decoder mad[1];
- if((inputfd = open(path, O_RDONLY)) < 0)
- disorder_fatal(errno, "opening %s", path);
+ hreader_init(path, input);
mad_decoder_init(mad, 0/*data*/, mp3_input, 0/*header*/, 0/*filter*/,
mp3_output, mp3_error, 0/*message*/);
if(mad_decoder_run(mad, MAD_DECODER_MODE_SYNC))