/*
- * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2009 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
* <skortze@sourceforge.net>
*/
-#include <CoreAudio/CoreAudio.h>
+#include <regex.h>
+#include <sys/types.h>
+#include <dirent.h>
+
#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"
-
-#include <CoreAudio/CoreAudio.h>
+#include <CoreServices/CoreServices.h>
#include <AudioUnit/AudioUnit.h>
-#include <AudioToolbox/DefaultAudioOutput.h>
+#include <AudioToolbox/AudioToolbox.h>
/** describes one input buffer for the osx writer */
struct osx_buffer {
ptrptr = &powd->to;
for (i = 0; i < conf->numbuffers_arg; i++) {
- *ptrptr = malloc(sizeof(struct osx_buffer));
+ *ptrptr = para_malloc(sizeof(struct osx_buffer));
(*ptrptr)->size = 0;
(*ptrptr)->remaining = 0;
(*ptrptr)->buffer = NULL;
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);
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(
/* flags specific to each format */
format.mFormatFlags = kLinearPCMFormatFlagIsFloat
| kLinearPCMFormatFlagIsPacked
- | kLinearPCMFormatFlagIsBigEndian;
+ | ENDIAN_FLAGS;
if (!conf->channels_given && wng->channels)
powd->channels = *wng->channels;
else
{
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;