X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=wav_filter.c;h=234324504f30e8bb25e0f7456cffcfb000374319;hp=242cb4bb0d1529ae3d8756083e04be04bf16d008;hb=8221397af24a2df3c2edbc889847ce0ab15eb3e0;hpb=dd0b1f12758ac877de6834b34f8c7f9291d4311d diff --git a/wav_filter.c b/wav_filter.c index 242cb4bb..23432450 100644 --- a/wav_filter.c +++ b/wav_filter.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2008 Andre Noll + * Copyright (C) 2005-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -10,8 +10,10 @@ #include "list.h" #include "sched.h" +#include "ggo.h" #include "filter.h" #include "string.h" +#include "portable_io.h" /** size of the output buffer */ #define WAV_OUTBUF_SIZE 81920 @@ -20,25 +22,6 @@ /** always write 16 bit header */ #define BITS 16 -/** - * write a 32 bit unsigned value to a buffer - * - * \param buf the buffer to write to - * \param x the value to write - */ -#define WRITE_U32(buf, x) (buf)[0] = (unsigned char)((x) & 0xff);\ - (buf)[1] = (unsigned char)(((x) >> 8) & 0xff);\ - (buf)[2] = (unsigned char)(((x) >> 16) & 0xff);\ - (buf)[3] = (unsigned char)(((x) >> 24) & 0xff); - -/** - * write a 16 bit unsigned value to a buffer - * - * \param buf the buffer to write to - * \param x the value to write - */ -#define WRITE_U16(buf, x) (buf)[0] = (unsigned char)((x) & 0xff); - static void make_wav_header(unsigned int channels, unsigned int samplerate, struct filter_node *fn) { @@ -52,18 +35,18 @@ static void make_wav_header(unsigned int channels, unsigned int samplerate, PARA_DEBUG_LOG("writing wave header: %d channels, %d KHz\n", channels, samplerate); memset(headbuf, 0, WAV_HEADER_LEN); memcpy(headbuf, "RIFF", 4); - WRITE_U32(headbuf + 4, size - 8); + write_u32(headbuf + 4, size - 8); memcpy(headbuf + 8, "WAVE", 4); memcpy(headbuf + 12, "fmt ", 4); - WRITE_U32(headbuf + 16, 16); - WRITE_U16(headbuf + 20, 1); /* format */ - WRITE_U16(headbuf + 22, channels); - WRITE_U32(headbuf + 24, samplerate); - WRITE_U32(headbuf + 28, bytespersec); - WRITE_U16(headbuf + 32, align); - WRITE_U16(headbuf + 34, BITS); + write_u32(headbuf + 16, 16); + write_u16(headbuf + 20, 1); /* format */ + write_u16(headbuf + 22, channels); + write_u32(headbuf + 24, samplerate); + write_u32(headbuf + 28, bytespersec); + write_u16(headbuf + 32, align); + write_u16(headbuf + 34, BITS); memcpy(headbuf + 36, "data", 4); - WRITE_U32(headbuf + 40, size - 44); + write_u32(headbuf + 40, size - 44); } static ssize_t wav_convert(char *inbuf, size_t len, struct filter_node *fn)