X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=osx_write.c;h=4bdb0ceb9e1ec5c31ac1ea93e64bc2456633f74b;hp=2dee9140c0016eaa849bd1c60a1bef85cd1927e2;hb=05ac3a8322555355fac0e224305a4a10a5d7caa2;hpb=471684761a2039bbc89aa1e3c33c62de6bef86cf diff --git a/osx_write.c b/osx_write.c index 2dee9140..4bdb0ceb 100644 --- a/osx_write.c +++ b/osx_write.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2007 Andre Noll + * Copyright (C) 2006-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -11,12 +11,15 @@ * */ +#include +#include #include #include "para.h" #include "fd.h" #include "string.h" #include "list.h" #include "sched.h" +#include "ggo.h" #include "write.h" #include "osx_write.cmdline.h" #include "error.h" @@ -124,7 +127,7 @@ static OSStatus osx_callback(void * inClientData, dest = outOutputData->mBuffers[i].mData; while (m > 0) { if ((n = powd->from->remaining) <= 0) { - PARA_INFO_LOG("%s", "buffer underrun\n"); + PARA_INFO_LOG("buffer underrun\n"); return 0; } // PARA_INFO_LOG("buf %p: n = %ld, m= %ld\n", powd->from->buffer, n, m); @@ -146,6 +149,12 @@ static OSStatus osx_callback(void * inClientData, return 0; } +#ifdef WORDS_BIGENDIAN /* ppc */ +#define ENDIAN_FLAGS kLinearPCMFormatFlagIsBigEndian +#else +#define ENDIAN_FLAGS 0 +#endif + static int osx_write_open(struct writer_node *wn) { struct private_osx_write_data *powd = para_calloc( @@ -193,7 +202,7 @@ static int osx_write_open(struct writer_node *wn) /* flags specific to each format */ format.mFormatFlags = kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsPacked - | kLinearPCMFormatFlagIsBigEndian; + | ENDIAN_FLAGS; if (!conf->channels_given && wng->channels) powd->channels = *wng->channels; else @@ -270,7 +279,7 @@ static int osx_write_post_select(__a_unused struct sched *s, { struct private_osx_write_data *powd = wn->private_data; struct writer_node_group *wng = wn->wng; - short *data = (short*)wng->buf; + short *data = (short*)*wng->bufp; if (!need_new_buffer(wn)) return 1;