Jeff,

I'm hoping you can help me out. I LOVE your application. I used it extensively to record some old holiday albums which I made as a Christmas gift to my siblings. Now I want to use it again. Unfortunately, in the interim, my laptop has, for various reasons, been reverted to its original Windows OS and thus I no longer have an Ubuntu install I can use your program in.

So, I've looked at the two options I have, run it in a VM (Sun VirtualBox) and run it under cygwin. The VM route won't work at all. I was able to install it, but the data files are >1 Gb and just loading one takes 15 minutes, then, unfortunately, gwc crashes. Not enough RAM, etc. is my thinking.

I turned to cygwin. Things were looking pretty good, actually. I have the devel packages installed and configure runs to completion without error. Make starts and all is looking fine until it gets to audio_util.c. Then all hell breaks loose :-) Unfortunately I'm no C programmer and even with make in debug mode there is little I can make sense of.  Make is successful on these files:

tap_reverb_file_io.c
tap_reverb.c
reverb.c
dialog.c
gwc.c
audio_device.c
audio_edit.c

Here's the make output on
audio_util.c at this point:

<quote>
gcc -DDATADIR=\"\" -DLIBDIR=\"/usr/local/lib\" -DAPPNAME=\"gnome_wave_cleaner\"   -DHAVE_FFTW3 -DFFTWPREC=2     -D_FILE_OFFSET_BITS=64 -Wall -O6 -DORBIT2=1 -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12     -c audio_util.c
In file included from audio_util.c:44:
fmtheaders.h:36: error: syntax error before "u_char"
fmtheaders.h:36: warning: useless keyword or type name in empty declaration
fmtheaders.h:36: warning: empty declaration
fmtheaders.h:37: error: syntax error before "u_short"
fmtheaders.h:37: warning: useless keyword or type name in empty declaration
fmtheaders.h:37: warning: empty declaration
fmtheaders.h:38: error: syntax error before "u_int"
fmtheaders.h:38: warning: useless keyword or type name in empty declaration
fmtheaders.h:38: warning: empty declaration
fmtheaders.h:39: error: syntax error before "u_long"
fmtheaders.h:39: warning: useless keyword or type name in empty declaration
fmtheaders.h:39: warning: empty declaration
fmtheaders.h:40: error: parse error before "quad_t"
fmtheaders.h:40: warning: type defaults to `int' in declaration of `quad_t'
fmtheaders.h:40: warning: data definition has no type or storage class
fmtheaders.h:41: error: parse error before "u_quad_t"
fmtheaders.h:41: warning: type defaults to `int' in declaration of `u_quad_t'
fmtheaders.h:41: warning: data definition has no type or storage class
fmtheaders.h:42: error: parse error before "fsid_t"
fmtheaders.h:42: warning: type defaults to `int' in declaration of `fsid_t'
fmtheaders.h:42: warning: data definition has no type or storage class
audio_util.c: In function `save_selection_as_wavfile':
audio_util.c:515: warning: unused variable `fd_new'
audio_util.c:516: warning: unused variable `sndfile_new'
audio_util.c:517: warning: unused variable `sfinfo_new'
audio_util.c:520: warning: unused variable `total_bytes'
audio_util.c: In function `read_raw_wavefile_data':
audio_util.c:825: warning: unused variable `bufsize'
make: *** [audio_util.o] Error 1
</quote>

I checked fmtheaders.h and the lines that gcc is hollering about seem to be:

<quote>
# ifndef MAC_OS_X
# ifndef __u_char_defined
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
#  define __u_char_defined
# endif
# endif /* MAC_OS_X*/
</quote>

And that's it. I would not have thought the warnings would lead to catastrophic failure (other c files also produce such warnings yet compile successfully). I've tried running just gcc on audio_utils.c with the right syntax and -o audio_utils.o for output and gcc reports the same warnings, no errors and no abort, but also no object file output.

I know this is still a long way from done done -- but it's a start. I wish I had the programming chops to figure this out (just reading through the c code makes me glad that I only need to do the occasional shell/Perl script :-), but I don't so I have to turn to you. I did check the cygports project and they don't make your excellent tool as part of it.

Guy Stalnaker
jimmyg521@gmail.com