/*
- * Copyright (C) 2006 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
float *buffer;
/** the size of this buffer */
long size;
- /* current position in the buffer */
+ /** current position in the buffer */
float *ptr;
/** number of floats not yet consuned */
long remaining;
struct osx_buffer *next;
};
+/** data specific to the osx writer */
struct private_osx_write_data {
/** the main control structure for audio data manipulation */
AudioUnit audio_unit;
char play;
/** callback reads audio data from this buffer */
struct osx_buffer *from;
- /* the post_select writes audio data here */
+ /** the post_select writes audio data here */
struct osx_buffer *to;
/** sample rate of the current audio stream */
unsigned samplerate;
b->size = size;
}
dest = b->buffer;
- while (size--) {
- char *tmp = (char *)source;
- char c = *tmp;
- *tmp = *(tmp + 1);
- *(tmp + 1) = c;
- /* *dest++ = ((*source++) + 32768) / 65536.0; */
+ while (size--)
*dest++ = (*source++) / 32768.0;
- }
b->ptr = b->buffer;
b->remaining = b->size;
}
while (m > 0) {
if ((n = powd->from->remaining) <= 0) {
PARA_INFO_LOG("%s", "buffer underrun\n");
- /* no more bytes in the current read buffer! */
- while ((n = powd->from->remaining) <= 0)
- /* wait for the results */
- usleep(2000);
+ return 0;
}
// PARA_INFO_LOG("buf %p: n = %ld, m= %ld\n", powd->from->buffer, n, m);
/*
return ret;
}
-__malloc void *osx_write_parse_config(char *options)
+__malloc static void *osx_write_parse_config(const char *options)
{
struct osx_write_args_info *conf
= para_calloc(sizeof(struct osx_write_args_info));