diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/timidity++ |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/timidity++')
-rw-r--r-- | extra/timidity++/2.13.2-gcc4.patch | 30 | ||||
-rw-r--r-- | extra/timidity++/PKGBUILD | 53 | ||||
-rw-r--r-- | extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch | 349 | ||||
-rw-r--r-- | extra/timidity++/timidity++-2.13.2-exiterror.patch | 695 | ||||
-rw-r--r-- | extra/timidity++/timidity++-2.13.2-gtk26.patch | 19 | ||||
-rw-r--r-- | extra/timidity++/timidity++-2.13.2-polling.patch | 34 | ||||
-rw-r--r-- | extra/timidity++/timidity++.sh | 38 | ||||
-rw-r--r-- | extra/timidity++/timidity.cfg | 29 |
8 files changed, 1247 insertions, 0 deletions
diff --git a/extra/timidity++/2.13.2-gcc4.patch b/extra/timidity++/2.13.2-gcc4.patch new file mode 100644 index 000000000..af0b5f8f7 --- /dev/null +++ b/extra/timidity++/2.13.2-gcc4.patch @@ -0,0 +1,30 @@ +diff -ur TiMidity++-2.13.2-orig/interface/xaw_i.c TiMidity++-2.13.2/interface/xaw_i.c +--- TiMidity++-2.13.2-orig/interface/xaw_i.c 2005-06-25 21:55:19.000000000 -0400 ++++ TiMidity++-2.13.2/interface/xaw_i.c 2005-06-25 21:56:01.000000000 -0400 +@@ -261,7 +261,7 @@ + String bitmapdir = XAW_BITMAP_DIR; + Boolean arrangetitle,savelist; + static char **current_flist = NULL; +-static int voices = 0, last_voice = 0, voices_num_width; ++static int xaw_i_voices = 0, last_voice = 0, voices_num_width; + static int maxentry_on_a_menu = 0,submenu_n = 0; + #define OPTIONS_WINDOW 1 + #define FLIST_WINDOW 2 +@@ -1329,7 +1329,7 @@ + c= *(local_buf+1); + n= atoi(local_buf+2); + if(c == 'L') +- voices = n; ++ xaw_i_voices = n; + else + last_voice = n; + if(IsTracePlaying()) drawVoices(); +@@ -2070,7 +2070,7 @@ + XSetForeground(disp, gct, tracecolor); + XFillRectangle(disp,XtWindow(trace),gct,voices_num_width +4, + MAX_XAW_MIDI_CHANNELS*BAR_SPACE+TRACEV_OFS+1,VOICENUM_WIDTH,TRACE_FOOT); +- sprintf(local_buf, "%3d/%d", last_voice, voices); ++ sprintf(local_buf, "%3d/%d", last_voice, xaw_i_voices); + XSetForeground(disp, gct, capcolor); + XDrawString(disp, XtWindow(trace),gct,voices_num_width+6, + MAX_XAW_MIDI_CHANNELS*BAR_SPACE+TRACEV_OFS+16,local_buf,strlen(local_buf)); diff --git a/extra/timidity++/PKGBUILD b/extra/timidity++/PKGBUILD new file mode 100644 index 000000000..82ced473c --- /dev/null +++ b/extra/timidity++/PKGBUILD @@ -0,0 +1,53 @@ +# $Id: PKGBUILD 89194 2010-08-30 06:14:52Z eric $ +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=timidity++ +pkgver=2.13.2 +pkgrel=10 +pkgdesc="A MIDI to WAVE converter and player" +arch=('i686' 'x86_64') +url="http://timidity.sourceforge.net" +license=('GPL') +depends=('libao' 'libvorbis' 'jack' 'ncurses') +makedepends=('xaw3d' 'gtk2' 'tk' 'libxaw') +optdepends=('gtk2: for using the GTK+ interface' 'tk: for using the Tk interface' \ + 'xaw3d: for using the Xaw interface') +backup=('etc/timidity++/timidity.cfg') +source=(http://downloads.sourceforge.net/timidity/TiMidity++-${pkgver}.tar.bz2 \ + timidity.cfg timidity++.sh 2.13.2-gcc4.patch TiMidity++-2.13.2+flac-1.1.3.patch \ + timidity++-2.13.2-exiterror.patch timidity++-2.13.2-gtk26.patch \ + timidity++-2.13.2-polling.patch) +md5sums=('a82ceeb2245e22f4de2b41da21eaee32' '3fcc8f065c959205113fa7e9ab2be3c6'\ + '35606c12af9c6be9361d64fc536f046f' '0868926c5290817cacb9a1849bc043c2'\ + 'fcbd27ff83066f69a3f8bd2442a3b3e2' '31bdaea612f18e2c3d45a8a73ab44c81'\ + '16a4adec164836d4390dc6b0f9a69ce9' '3f0034ead451cdd1078868e9e9b0494c') +sha1sums=('8e603146e1164335303a5ac5dff291f369241b4e' '660b3afbb720d26e8f008034cee66dd8da082d6e'\ + '9f3e732a7ca1e97119a76df62ecf154df04d4f77' '8d50618a2379c078b07e8d0fc59457855c16106c'\ + '59b0dbe3cde8f7b41d83676d8c37809255d3fb36' '7cd697b4f7cb1ce45cec46c2e0f6e5e8bf1d9d60'\ + 'ce115e84d99708f0bdb5b57bd98b0c3514fa2bf4' '6abaedaecdecabf9dc76c062f7157571aed53984') + +build() { + cd "${srcdir}/TiMidity++-${pkgver}" + patch -p1 < ../2.13.2-gcc4.patch + patch -p1 < ../TiMidity++-2.13.2+flac-1.1.3.patch + patch -p1 < ../timidity++-2.13.2-exiterror.patch + patch -p0 < ../timidity++-2.13.2-gtk26.patch + patch -p0 < ../timidity++-2.13.2-polling.patch + sed -i 's/tcl8.4/tcl8.5/' configure + sed -i 's/tk8.4/tk8.5/' configure + + ./configure --prefix=/usr --mandir=/usr/share/man --with-default-path=/etc/timidity++/ \ + --enable-server --enable-alsaseq --enable-spectrogram \ + --enable-audio=alsa,oss,ao,vorbis,flac,esd,jack \ + --enable-dynamic=ncurses,tcltk,vt100,xaw,gtk \ + --disable-gtktest + make +} + +package() { + cd "${srcdir}/TiMidity++-${pkgver}" + make DESTDIR="${pkgdir}" install + install -D -m644 ../timidity.cfg "${pkgdir}/etc/timidity++/timidity.cfg" + install -D -m755 ../timidity++.sh "${pkgdir}/etc/rc.d/timidity++" +} diff --git a/extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch b/extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch new file mode 100644 index 000000000..200d011a3 --- /dev/null +++ b/extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch @@ -0,0 +1,349 @@ +diff -urN TiMidity++-2.13.2.orig/configure.in TiMidity++-2.13.2/configure.in +--- TiMidity++-2.13.2.orig/configure.in 2004-10-03 15:39:52 +0300 ++++ TiMidity++-2.13.2/configure.in 2007-02-19 13:06:42 +0200 +@@ -1216,11 +1216,39 @@ + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBFLAC_CFLAGS) + LIBS="$LIBS $LIBFLAC_LIBS" + ]) +- AM_PATH_LIBOGGFLAC([ +- EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC" +- EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBOGGFLAC_CFLAGS) +- LIBS="$LIBS $LIBOGGFLAC_LIBS" +- ]) ++ # in FLAC-1.1.3, libOggFLAC was merged into libFLAC ++ # FLAC_API_VERSION_CURRENT first appears in FLAC-1.1.3 ++ AC_MSG_CHECKING(for legacy libFLAC (<1.1.13)) ++ ac_save_LIBS="$LIBS" ++ LIBS= ++ AC_TRY_RUN([ ++ #include <FLAC/export.h> ++ int main () { return FLAC_API_VERSION_CURRENT<8; } ++ ],legacy_flac=no,legacy_flac=yes,legacy_flac=no) ++ AC_MSG_RESULT($legacy_flac) ++ LIBS="$ac_save_LIBS" ++ if test "x$legacy_flac" = xyes; then ++ AM_PATH_LIBOGGFLAC([ ++ EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC" ++ EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBOGGFLAC_CFLAGS) ++ LIBS="$LIBS $LIBOGGFLAC_LIBS" ++ ]) ++ else ++ ++ AC_MSG_CHECKING(for Ogg support in libFLAC ) ++ ac_save_LIBS="$LIBS" ++ LIBS="-lFLAC -lm -logg" ++ AC_TRY_RUN([ ++ #include <FLAC/export.h> ++ int main () { return !FLAC_API_SUPPORTS_OGG_FLAC; } ++ ],ogg_flac=yes,ogg_flac=yes,ogg_flac=no) ++ AC_MSG_RESULT($ogg_flac) ++ LIBS="$ac_save_LIBS" ++ if test "x$ogg_flac" = xyes; then ++ LIBS="$LIBS -logg" ++ CFLAGS="$CFLAGS -DAU_OGGFLAC" ++ fi ++ fi + else + AC_MSG_RESULT(no) + fi +diff -urN TiMidity++-2.13.2.orig/timidity/flac_a.c TiMidity++-2.13.2/timidity/flac_a.c +--- TiMidity++-2.13.2.orig/timidity/flac_a.c 2004-05-23 07:35:44 +0300 ++++ TiMidity++-2.13.2/timidity/flac_a.c 2007-02-19 13:06:55 +0200 +@@ -38,14 +38,22 @@ + + #if defined(AU_FLAC_DLL) || defined(AU_OGGFLAC_DLL) + #include <windows.h> +-#define FLAC__EXPORT_H /* don't include "OggFLAC/export.h" */ +-#define FLAC_API +-#define OggFLAC__EXPORT_H /* don't include "FLAC/export.h" */ +-#define OggFLAC_API ++#include <FLAC/export.h> /* need export.h to figure out API version from FLAC_API_VERSION_CURRENT */ ++#undef FLAC_API ++#undef OggFLAC_API + #endif + + #include <FLAC/all.h> +-#ifdef AU_OGGFLAC ++ ++/* by LEGACY_FLAC we mean before FLAC 1.1.3 */ ++/* in FLAC 1.1.3, libOggFLAC is merged into libFLAC and all encoding layers are merged into the stream encoder */ ++#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 ++#define LEGACY_FLAC ++#else ++#undef LEGACY_FLAC ++#endif ++ ++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC) + #include <OggFLAC/stream_encoder.h> + #endif + +@@ -100,17 +108,21 @@ + unsigned long out_bytes; + union { + FLAC__StreamEncoderState flac; ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoderState s_flac; + #ifdef AU_OGGFLAC + OggFLAC__StreamEncoderState ogg; + #endif ++#endif + } state; + union { + union { + FLAC__StreamEncoder *stream; ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoder *s_stream; ++#endif + } flac; +-#ifdef AU_OGGFLAC ++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC) + union { + OggFLAC__StreamEncoder *stream; + } ogg; +@@ -158,7 +170,7 @@ + static long serial_number = 0; + FLAC_ctx *flac_ctx = NULL; + +-#ifdef AU_OGGFLAC ++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC) + static FLAC__StreamEncoderWriteStatus + ogg_stream_encoder_write_callback(const OggFLAC__StreamEncoder *encoder, + const FLAC__byte buffer[], +@@ -168,8 +180,13 @@ + static FLAC__StreamEncoderWriteStatus + flac_stream_encoder_write_callback(const FLAC__StreamEncoder *encoder, + const FLAC__byte buffer[], ++#ifdef LEGACY_FLAC + unsigned bytes, unsigned samples, ++#else ++ size_t bytes, unsigned samples, ++#endif + unsigned current_frame, void *client_data); ++#ifdef LEGACY_FLAC + static void flac_stream_encoder_metadata_callback(const FLAC__StreamEncoder *encoder, + const FLAC__StreamMetadata *metadata, + void *client_data); +@@ -181,6 +198,7 @@ + static void flac_seekable_stream_encoder_metadata_callback(const FLAC__SeekableStreamEncoder *encoder, + const FLAC__StreamMetadata *metadata, + void *client_data); ++#endif + + /* preset */ + void flac_set_compression_level(int compression_level) +@@ -281,7 +299,11 @@ + #ifdef AU_OGGFLAC + void flac_set_option_oggflac(int isogg) + { ++#ifdef LEGACY_FLAC + flac_options.isogg = isogg; ++#else ++ flac_options.isogg = (FLAC_API_SUPPORTS_OGG_FLAC && isogg); ++#endif + } + #endif + +@@ -295,6 +317,7 @@ + dpm.fd = -1; + + if (ctx != NULL) { ++#ifdef LEGACY_FLAC + #ifdef AU_OGGFLAC + if (flac_options.isogg) { + if (ctx->encoder.ogg.stream) { +@@ -317,6 +340,12 @@ + FLAC__stream_encoder_delete(ctx->encoder.flac.stream); + } + } ++#else ++ if (ctx->encoder.flac.stream) { ++ FLAC__stream_encoder_finish(ctx->encoder.flac.stream); ++ FLAC__stream_encoder_delete(ctx->encoder.flac.stream); ++ } ++#endif + free(ctx); + flac_ctx = NULL; + } +@@ -329,6 +358,9 @@ + FLAC__StreamMetadata padding; + FLAC__StreamMetadata *metadata[4]; + int num_metadata = 0; ++#ifndef LEGACY_FLAC ++ FLAC__StreamEncoderInitStatus init_status; ++#endif + + FLAC_ctx *ctx; + +@@ -371,6 +403,7 @@ + metadata[num_metadata++] = &padding; + } + ++#ifdef LEGACY_FLAC + #ifdef AU_OGGFLAC + if (flac_options.isogg) { + if ((ctx->encoder.ogg.stream = OggFLAC__stream_encoder_new()) == NULL) { +@@ -542,6 +575,67 @@ + return -1; + } + } ++#else /* !LEGACY_FLAC */ ++ if ((ctx->encoder.flac.stream = FLAC__stream_encoder_new()) == NULL) { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC stream"); ++ flac_session_close(); ++ return -1; ++ } ++ ++#ifdef AU_OGGFLAC ++ if (flac_options.isogg) { ++ /* set sequential number for serial */ ++ serial_number++; ++ if (serial_number == 1) { ++ srand(time(NULL)); ++ serial_number = rand(); ++ } ++ FLAC__stream_encoder_set_ogg_serial_number(ctx->encoder.flac.stream, serial_number); ++ } ++#endif /* AU_OGGFLAC */ ++ FLAC__stream_encoder_set_channels(ctx->encoder.flac.stream, nch); ++ /* 16bps only */ ++ FLAC__stream_encoder_set_bits_per_sample(ctx->encoder.flac.stream, 16); ++ ++ FLAC__stream_encoder_set_verify(ctx->encoder.flac.stream, flac_options.verify); ++ ++ if (!FLAC__format_sample_rate_is_valid(dpm.rate)) { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "invalid sampling rate %d", dpm.rate); ++ flac_session_close(); ++ return -1; ++ } ++ FLAC__stream_encoder_set_sample_rate(ctx->encoder.flac.stream, dpm.rate); ++ ++ FLAC__stream_encoder_set_qlp_coeff_precision(ctx->encoder.flac.stream, flac_options.qlp_coeff_precision); ++ /* expensive! */ ++ FLAC__stream_encoder_set_do_qlp_coeff_prec_search(ctx->encoder.flac.stream, flac_options.qlp_coeff_precision_search); ++ ++ if (nch == 2) { ++ FLAC__stream_encoder_set_do_mid_side_stereo(ctx->encoder.flac.stream, flac_options.mid_side); ++ FLAC__stream_encoder_set_loose_mid_side_stereo(ctx->encoder.flac.stream, flac_options.adaptive_mid_side); ++ } ++ ++ FLAC__stream_encoder_set_max_lpc_order(ctx->encoder.flac.stream, flac_options.max_lpc_order); ++ FLAC__stream_encoder_set_min_residual_partition_order(ctx->encoder.flac.stream, flac_options.min_residual_partition_order); ++ FLAC__stream_encoder_set_max_residual_partition_order(ctx->encoder.flac.stream, flac_options.max_residual_partition_order); ++ ++ FLAC__stream_encoder_set_blocksize(ctx->encoder.flac.stream, flac_options.blocksize); ++ ++ if (0 < num_metadata) ++ FLAC__stream_encoder_set_metadata(ctx->encoder.flac.stream, metadata, num_metadata); ++ ++#ifdef AU_OGGFLAC ++ if (flac_options.isogg) ++ init_status = FLAC__stream_encoder_init_ogg_stream(ctx->encoder.flac.stream, NULL, flac_stream_encoder_write_callback, NULL, NULL, NULL, ctx); ++ else ++#endif ++ init_status = FLAC__stream_encoder_init_stream(ctx->encoder.flac.stream, flac_stream_encoder_write_callback, NULL, NULL, NULL, ctx); ++ if (init_status != FLAC__STREAM_ENCODER_INIT_STATUS_OK) { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC encoder (init status: %s)", FLAC__StreamEncoderInitStatusString[init_status]); ++ flac_session_close(); ++ return -1; ++ } ++#endif + + return 0; + } +@@ -638,7 +732,7 @@ + return 0; + } + +-#ifdef AU_OGGFLAC ++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC) + static FLAC__StreamEncoderWriteStatus + ogg_stream_encoder_write_callback(const OggFLAC__StreamEncoder *encoder, + const FLAC__byte buffer[], +@@ -658,7 +752,11 @@ + static FLAC__StreamEncoderWriteStatus + flac_stream_encoder_write_callback(const FLAC__StreamEncoder *encoder, + const FLAC__byte buffer[], ++#ifdef LEGACY_FLAC + unsigned bytes, unsigned samples, ++#else ++ size_t bytes, unsigned samples, ++#endif + unsigned current_frame, void *client_data) + { + FLAC_ctx *ctx = (FLAC_ctx *)client_data; +@@ -670,6 +768,7 @@ + else + return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR; + } ++#ifdef LEGACY_FLAC + static void flac_stream_encoder_metadata_callback(const FLAC__StreamEncoder *encoder, + const FLAC__StreamMetadata *metadata, + void *client_data) +@@ -695,6 +794,7 @@ + void *client_data) + { + } ++#endif + + static int output_data(char *buf, int32 nbytes) + { +@@ -723,6 +823,7 @@ + oggbuf[i] = *s++; + } + ++#ifdef LEGACY_FLAC + #ifdef AU_OGGFLAC + if (flac_options.isogg) { + ctx->state.ogg = OggFLAC__stream_encoder_get_state(ctx->encoder.ogg.stream); +@@ -793,6 +894,29 @@ + return -1; + } + } ++#else /* !LEGACY_FLAC */ ++ ctx->state.flac = FLAC__stream_encoder_get_state(ctx->encoder.flac.stream); ++ if (ctx->state.flac != FLAC__STREAM_ENCODER_OK) { ++ if (ctx->state.flac == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR | ++ FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA) { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "FLAC stream verify error (%s)", ++ FLAC__StreamDecoderStateString[FLAC__stream_encoder_get_verify_decoder_state(ctx->encoder.flac.stream)]); ++ } ++ else { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot encode FLAC stream (%s)", ++ FLAC__StreamEncoderStateString[ctx->state.flac]); ++ } ++ flac_session_close(); ++ return -1; ++ } ++ ++ if (!FLAC__stream_encoder_process_interleaved(ctx->encoder.flac.stream, oggbuf, ++ nbytes / nch / 2 )) { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot encode FLAC stream"); ++ flac_session_close(); ++ return -1; ++ } ++#endif + ctx->in_bytes += nbytes; + + free(oggbuf); +@@ -813,6 +937,7 @@ + return; + } + ++#ifdef LEGACY_FLAC + if (flac_options.isogg) { + #ifdef AU_OGGFLAC + if ((ctx->state.ogg = OggFLAC__stream_encoder_get_state(ctx->encoder.ogg.stream)) != OggFLAC__STREAM_ENCODER_OK) { +@@ -838,6 +963,13 @@ + /* fall through */ + } + } ++#else /* !LEGACY_FLAC */ ++ if ((ctx->state.flac = FLAC__stream_encoder_get_state(ctx->encoder.flac.stream)) != FLAC__STREAM_ENCODER_OK) { ++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "FLAC stream encoder is invalid (%s)", ++ FLAC__StreamEncoderStateString[ctx->state.flac]); ++ /* fall through */ ++ } ++#endif + + ctl->cmsg(CMSG_INFO, VERB_NORMAL, "Wrote %lu/%lu bytes(%g%% compressed)", + ctx->out_bytes, ctx->in_bytes, ((double)ctx->out_bytes / (double)ctx->in_bytes) * 100.); diff --git a/extra/timidity++/timidity++-2.13.2-exiterror.patch b/extra/timidity++/timidity++-2.13.2-exiterror.patch new file mode 100644 index 000000000..01a83fead --- /dev/null +++ b/extra/timidity++/timidity++-2.13.2-exiterror.patch @@ -0,0 +1,695 @@ +diff -ur TiMidity++-2.13.2/interface/alsaseq_c.c TiMidity++-2.13.2-new/interface/alsaseq_c.c +--- TiMidity++-2.13.2/interface/alsaseq_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/alsaseq_c.c 2005-01-02 03:39:15.968158520 +0100 +@@ -177,7 +177,7 @@ + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); + static void ctl_event(CtlEvent *e); +-static void ctl_pass_playing_list(int n, char *args[]); ++static int ctl_pass_playing_list(int n, char *args[]); + + /**********************************/ + /* export the interface functions */ +@@ -308,7 +308,7 @@ + return 0; + } + +-static void ctl_pass_playing_list(int n, char *args[]) ++static int ctl_pass_playing_list(int n, char *args[]) + { + double btime; + int i, j; +@@ -323,7 +323,7 @@ + + if (alsa_seq_open(&alsactx.handle) < 0) { + fprintf(stderr, "error in snd_seq_open\n"); +- return; ++ return 1; + } + alsactx.queue = -1; + alsactx.client = snd_seq_client_id(alsactx.handle); +@@ -342,7 +342,7 @@ + int port; + port = alsa_create_port(alsactx.handle, i); + if (port < 0) +- return; ++ return 1; + alsactx.port[i] = port; + alsa_set_timestamping(&alsactx, port); + printf(" %d:%d", alsactx.client, alsactx.port[i]); +@@ -411,6 +411,7 @@ + server_reset(); + doit(&alsactx); + } ++ return 0; + } + + /* +diff -ur TiMidity++-2.13.2/interface/emacs_c.c TiMidity++-2.13.2-new/interface/emacs_c.c +--- TiMidity++-2.13.2/interface/emacs_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/emacs_c.c 2005-01-02 03:02:02.000000000 +0100 +@@ -78,7 +78,7 @@ + static void ctl_close(void); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static void ctl_event(CtlEvent *e); + static int read_ready(void); + static int emacs_type = 0; /* 0:emacs, 1:mule, 2:?? +@@ -249,7 +249,7 @@ + return s; + } + +-static void ctl_pass_playing_list(int argc, char *argv[]) ++static int ctl_pass_playing_list(int argc, char *argv[]) + { + int i; + char cmd[BUFSIZ]; +@@ -274,7 +274,7 @@ + { + for(i = 1; i < argc; i++) + play_midi_file(argv[i]); +- return; ++ return 0; + } + + /* Main Loop */ +@@ -296,11 +296,11 @@ + ctl_refresh(); + break; + case RC_QUIT: +- return; ++ return 0; + } /* skipping others command */ + } + else if(!strncmp(cmd, "QUIT", 4)) +- return; ++ return 0; + else + continue; /* skipping unknown command */ + } +diff -ur TiMidity++-2.13.2/interface/gtk_c.c TiMidity++-2.13.2-new/interface/gtk_c.c +--- TiMidity++-2.13.2/interface/gtk_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/gtk_c.c 2005-01-02 03:35:53.447946272 +0100 +@@ -57,7 +57,7 @@ + + static int ctl_open(int using_stdin, int using_stdout); + static void ctl_close(void); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); + static void ctl_event(CtlEvent *e); +@@ -528,7 +528,7 @@ + #endif + } + +-static void ++static int + ctl_pass_playing_list(int number_of_files, char *list_of_files[]) + { + int i=0; +@@ -558,7 +558,7 @@ + } + else { + if (command==RC_QUIT) +- return; ++ return 0; + if (command==RC_ERROR) + command=RC_TUNE_END; /* Launch next file */ + +@@ -580,6 +580,7 @@ + command = ctl_blocking_read(&val); + } + } ++ return 0; + } + + /* +diff -ur TiMidity++-2.13.2/interface/mac_c.c TiMidity++-2.13.2-new/interface/mac_c.c +--- TiMidity++-2.13.2/interface/mac_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/mac_c.c 2005-01-02 03:04:13.000000000 +0100 +@@ -71,7 +71,7 @@ + static void ctl_pitch_bend(int channel, int val); + static void ctl_reset(void); + static int ctl_open(int using_stdin, int using_stdout); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static void ctl_close(void); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +@@ -955,7 +955,7 @@ + } + + +-static void ctl_pass_playing_list(int init_number_of_files, ++static int ctl_pass_playing_list(int init_number_of_files, + char * /*init_list_of_files*/ []) + { + EventRecord event; +@@ -983,6 +983,7 @@ + mac_HandleEvent(&event); + } + Do_Quit(); ++ return 0; + } + + static Boolean UserWantsControl() +diff -ur TiMidity++-2.13.2/interface/motif_c.c TiMidity++-2.13.2-new/interface/motif_c.c +--- TiMidity++-2.13.2/interface/motif_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/motif_c.c 2005-01-02 03:05:04.000000000 +0100 +@@ -60,7 +60,7 @@ + static void ctl_close(void); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static void ctl_event(CtlEvent *e); + + static int motif_ready = 0; +@@ -346,12 +346,13 @@ + return(ctl_blocking_read(valp)); + } + +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]) ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]) + { + int i=0; + char file_to_play[1000]; + int command; + int32 val; ++ int retval; + + motif_ready = 1; + +@@ -381,12 +382,13 @@ + else + { + if (command==RC_QUIT) +- return; ++ return 0; + + switch(command) + { + case RC_ERROR: + m_pipe_int_write(ERROR_MESSAGE); ++ retval=1; + break; + case RC_NONE: + break; +@@ -411,6 +413,7 @@ + command = ctl_blocking_read(&val); + } + } ++ return retval; + } + + /* +diff -ur TiMidity++-2.13.2/interface/ncurs_c.c TiMidity++-2.13.2-new/interface/ncurs_c.c +--- TiMidity++-2.13.2/interface/ncurs_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/ncurs_c.c 2005-01-02 03:05:48.000000000 +0100 +@@ -174,7 +174,7 @@ + + static int ctl_open(int using_stdin, int using_stdout); + static void ctl_close(void); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); + static void ctl_event(CtlEvent *e); +@@ -3100,7 +3100,7 @@ + reuse_mblock(&tmpbuffer); + } + +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]) ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]) + { + int i; + int act_number_of_files; +@@ -3128,7 +3128,7 @@ + + if (file_list.number<0) { + cmsg(CMSG_FATAL, VERB_NORMAL, "No MIDI file to play!"); +- return; ++ return 1; + } + + ctl_listmode_max=1; +@@ -3169,7 +3169,7 @@ + if(!(ctl.flags & CTLF_LIST_LOOP) || stdin_check) + { + aq_flush(0); +- return; ++ return 0; + } + i = 0; + if(rc == RC_TUNE_END) +@@ -3187,7 +3187,7 @@ + + /* else fall through */ + case RC_QUIT: +- return; ++ return 0; + } + ctl_reset(); + } +diff -ur TiMidity++-2.13.2/interface/portmidisyn_c.c TiMidity++-2.13.2-new/interface/portmidisyn_c.c +--- TiMidity++-2.13.2/interface/portmidisyn_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/portmidisyn_c.c 2005-01-02 03:13:05.000000000 +0100 +@@ -96,7 +96,7 @@ + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); + static void ctl_event(CtlEvent *e); +-static void ctl_pass_playing_list(int n, char *args[]); ++static int ctl_pass_playing_list(int n, char *args[]); + + #ifndef __W32__ + static void init_keybord(void); +@@ -215,17 +215,17 @@ + + #ifdef IA_W32G_SYN + extern void w32g_syn_doit(void); +-extern void w32g_syn_ctl_pass_playing_list(int n_, char *args_[]); ++extern int w32g_syn_ctl_pass_playing_list(int n_, char *args_[]); + + +-static void ctl_pass_playing_list(int n, char *args[]) ++static int ctl_pass_playing_list(int n, char *args[]) + { +- w32g_syn_ctl_pass_playing_list ( n, args ); ++ return w32g_syn_ctl_pass_playing_list ( n, args ); + } + #endif + + #ifndef IA_W32G_SYN +-static void ctl_pass_playing_list(int n, char *args[]) ++static int ctl_pass_playing_list(int n, char *args[]) + #else + // 0: OK, 2: Require to reset. + int ctl_pass_playing_list2(int n, char *args[]) +@@ -241,7 +241,7 @@ + #ifndef IA_W32G_SYN + if(n > MAX_PORT ){ + printf( "Usage: timidity -iW [Midi interface No s]\n"); +- return; ++ return 1; + } + #endif + +@@ -347,11 +347,7 @@ + #endif /* USE_GTK_GUI */ + rtsyn_close(); + +-#ifdef IA_W32G_SYN + return 0; +-#else +- return; +-#endif + } + + +diff -ur TiMidity++-2.13.2/interface/server_c.c TiMidity++-2.13.2-new/interface/server_c.c +--- TiMidity++-2.13.2/interface/server_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/server_c.c 2005-01-02 03:07:38.000000000 +0100 +@@ -176,7 +176,7 @@ + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); + static void ctl_event(CtlEvent *e); +-static void ctl_pass_playing_list(int n, char *args[]); ++static int ctl_pass_playing_list(int n, char *args[]); + + /**********************************/ + /* export the interface functions */ +@@ -356,14 +356,14 @@ + static void compute_sample_increment(void); + static void server_reset(void); + +-static void ctl_pass_playing_list(int n, char *args[]) ++static int ctl_pass_playing_list(int n, char *args[]) + { + int sock; + + if(n != 2 && n != 1) + { + fprintf(stderr, "Usage: timidity -ir control-port [data-port]\n"); +- return; ++ return 1; + } + + #ifdef SIGPIPE +@@ -379,7 +379,7 @@ + if (control_port) { + sock = pasv_open(&control_port); + if(sock == -1) +- return; ++ return 1; + } + opt_realtime_playing = 1; /* Enable loading patch while playing */ + allocate_cache_size = 0; /* Don't use pre-calclated samples */ +@@ -404,7 +404,7 @@ + continue; + perror("accept"); + close(sock); +- return; ++ return 1; + } + } + else control_fd = 0; +@@ -446,6 +446,7 @@ + if (!control_port) + break; + } ++ return 0; + } + + #define MAX_GETCMD_PARAMS 8 +diff -ur TiMidity++-2.13.2/interface/tk_c.c TiMidity++-2.13.2-new/interface/tk_c.c +--- TiMidity++-2.13.2/interface/tk_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/tk_c.c 2005-01-02 03:08:48.000000000 +0100 +@@ -86,7 +86,7 @@ + static void ctl_close(void); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static int ctl_blocking_read(int32 *valp); + static void ctl_note(int status, int ch, int note, int vel); + static void ctl_event(CtlEvent *e); +@@ -587,7 +587,7 @@ + return(ctl_blocking_read(valp)); + } + +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]) ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]) + { + int i=0; + char local[1000]; +@@ -618,7 +618,7 @@ + /* if really QUIT */ + k_pipe_gets(local, sizeof(local)-1); + if (*local == 'Z') +- return; ++ return 0; + /* only stop playing..*/ + } + if (command==RC_CHANGE_VOLUME) /* init volume */ +@@ -646,6 +646,7 @@ + command = ctl_blocking_read(&val); + } + } ++ return 0; + } + + +diff -ur TiMidity++-2.13.2/interface/w32g_c.c TiMidity++-2.13.2-new/interface/w32g_c.c +--- TiMidity++-2.13.2/interface/w32g_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/w32g_c.c 2005-01-02 03:10:03.000000000 +0100 +@@ -86,7 +86,7 @@ + + static int ctl_open(int using_stdin, int using_stdout); + static void ctl_close(void); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static void ctl_event(CtlEvent *e); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +@@ -662,7 +662,7 @@ + } + + extern BOOL SetWrdWndActive(void); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]) ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]) + { + static int init_flag = 1; + int rc; +@@ -779,7 +779,7 @@ + if(ctl.flags & CTLF_AUTOEXIT) { + if(play_mode->fd != -1) + aq_flush(0); +- return; ++ return 0; + } + break; + } +@@ -803,7 +803,7 @@ + if(ctl.flags & CTLF_AUTOEXIT){ + if(play_mode->fd != -1) + aq_flush(0); +- return; ++ return 0; + } + if((ctl.flags & CTLF_LIST_LOOP) && w32g_nvalid_playlist()) + { +@@ -839,7 +839,7 @@ + case RC_QUIT: + if(play_mode->fd != -1) + aq_flush(1); +- return; ++ return 0; + + case RC_CHANGE_VOLUME: + amplification += value; +@@ -868,6 +868,7 @@ + PrefSettingApplyReally(); + rc = RC_NONE; + } ++ return 0; + } + + static void ctl_lcd_mark(int flag, int x, int y) +diff -ur TiMidity++-2.13.2/interface/w32g_syn.c TiMidity++-2.13.2-new/interface/w32g_syn.c +--- TiMidity++-2.13.2/interface/w32g_syn.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/w32g_syn.c 2005-01-02 03:10:49.000000000 +0100 +@@ -281,7 +281,7 @@ + static int wait_for_termination_of_syn_thread ( void ); + int w32g_message_set ( int cmd ); + int w32g_message_get ( w32g_syn_message_t *msg ); +-void w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] ); ++int w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] ); + int w32g_syn_do_before_pref_apply ( void ); + int w32g_syn_do_after_pref_apply ( void ); + +@@ -1403,7 +1403,7 @@ + } + } + +-void w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] ) ++int w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] ) + { + int i; + #ifndef TWSYNSRV +@@ -1471,6 +1471,7 @@ + } + #endif + if ( w32g_syn.quit_state < 2 ) w32g_syn.quit_state = 2; ++ return 0; + } + + int w32g_syn_do_before_pref_apply ( void ) +diff -ur TiMidity++-2.13.2/interface/winsyn_c.c TiMidity++-2.13.2-new/interface/winsyn_c.c +--- TiMidity++-2.13.2/interface/winsyn_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/winsyn_c.c 2005-01-02 03:11:36.000000000 +0100 +@@ -88,7 +88,7 @@ + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); + static void ctl_event(CtlEvent *e); +-static void ctl_pass_playing_list(int n, char *args[]); ++static int ctl_pass_playing_list(int n, char *args[]); + + #ifndef __W32__ + static void init_keybord(void); +@@ -207,17 +207,17 @@ + + #ifdef IA_W32G_SYN + extern void w32g_syn_doit(void); +-extern void w32g_syn_ctl_pass_playing_list(int n_, char *args_[]); ++extern int w32g_syn_ctl_pass_playing_list(int n_, char *args_[]); + + +-static void ctl_pass_playing_list(int n, char *args[]) ++static int ctl_pass_playing_list(int n, char *args[]) + { +- w32g_syn_ctl_pass_playing_list ( n, args ); ++ return w32g_syn_ctl_pass_playing_list ( n, args ); + } + #endif + + #ifndef IA_W32G_SYN +-static void ctl_pass_playing_list(int n, char *args[]) ++static int ctl_pass_playing_list(int n, char *args[]) + #else + // 0: OK, 2: Require to reset. + int ctl_pass_playing_list2(int n, char *args[]) +@@ -233,7 +233,7 @@ + #ifndef IA_W32G_SYN + if(n > MAX_PORT ){ + printf( "Usage: timidity -iW [Midi interface No s]\n"); +- return; ++ return 1; + } + #endif + +@@ -339,11 +339,7 @@ + #endif /* USE_GTK_GUI */ + rtsyn_close(); + +-#ifdef IA_W32G_SYN + return 0; +-#else +- return; +-#endif + } + + +diff -ur TiMidity++-2.13.2/interface/xaw_c.c TiMidity++-2.13.2-new/interface/xaw_c.c +--- TiMidity++-2.13.2/interface/xaw_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/xaw_c.c 2005-01-02 03:11:57.000000000 +0100 +@@ -55,7 +55,7 @@ + static void ctl_close(void); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static void ctl_event(CtlEvent *e); + + static void a_pipe_open(void); +@@ -463,7 +463,7 @@ + } + } + +-static void ctl_pass_playing_list(int init_number_of_files, ++static int ctl_pass_playing_list(int init_number_of_files, + char *init_list_of_files[]) { + int current_no,command=RC_NONE,i,j; + int32 val; +diff -ur TiMidity++-2.13.2/interface/xskin_c.c TiMidity++-2.13.2-new/interface/xskin_c.c +--- TiMidity++-2.13.2/interface/xskin_c.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/interface/xskin_c.c 2005-01-02 03:12:31.000000000 +0100 +@@ -55,7 +55,7 @@ + static void ctl_close(void); + static int ctl_read(int32 *valp); + static int cmsg(int type, int verbosity_level, char *fmt, ...); +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]); ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]); + static void ctl_event(CtlEvent *e); + static void ctl_speana_data(double *val, int size); + static void initialize_exp_hz_table( void ); +@@ -342,7 +342,7 @@ + } + } + +-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]) { ++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]) { + + int current_no,command,i; + int32 val; +@@ -403,7 +403,7 @@ + command=play_midi_file(list_of_files[file_table[current_no]]); + } else { + /* Quit timidity*/ +- if (exitflag) return; ++ if (exitflag) return 0; + /* Stop playing */ + if (command==RC_QUIT) { + sprintf(local_buf,"T 00:00"); +@@ -461,6 +461,7 @@ + command=ctl_blocking_read(&val); + } + } ++ return 0; + } + + /* ------ Pipe handlers ----- */ +diff -ur TiMidity++-2.13.2/timidity/controls.h TiMidity++-2.13.2-new/timidity/controls.h +--- TiMidity++-2.13.2/timidity/controls.h 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/timidity/controls.h 2005-01-02 02:59:37.000000000 +0100 +@@ -147,7 +147,7 @@ + + int (*open)(int using_stdin, int using_stdout); + void (*close)(void); +- void (*pass_playing_list)(int number_of_files, char *list_of_files[]); ++ int (*pass_playing_list)(int number_of_files, char *list_of_files[]); + int (*read)(int32 *valp); + int (*cmsg)(int type, int verbosity_level, char *fmt, ...); + void (*event)(CtlEvent *ev); /* Control events */ +diff -ur TiMidity++-2.13.2/timidity/playmidi.c TiMidity++-2.13.2-new/timidity/playmidi.c +--- TiMidity++-2.13.2/timidity/playmidi.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/timidity/playmidi.c 2005-01-02 03:15:55.000000000 +0100 +@@ -8562,7 +8562,7 @@ + return rc; + } + +-void dumb_pass_playing_list(int number_of_files, char *list_of_files[]) ++int dumb_pass_playing_list(int number_of_files, char *list_of_files[]) + { + #ifndef CFG_FOR_SF + int i = 0; +@@ -8586,12 +8586,12 @@ + aq_flush(0); + + if(!(ctl->flags & CTLF_LIST_LOOP)) +- return; ++ return 0; + i = 0; + break; + + case RC_QUIT: +- return; ++ return 0; + } + } + #endif +diff -ur TiMidity++-2.13.2/timidity/playmidi.h TiMidity++-2.13.2-new/timidity/playmidi.h +--- TiMidity++-2.13.2/timidity/playmidi.h 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/timidity/playmidi.h 2005-01-02 03:16:07.000000000 +0100 +@@ -577,7 +577,7 @@ + extern int opt_pan_delay; + + extern int play_midi_file(char *fn); +-extern void dumb_pass_playing_list(int number_of_files, char *list_of_files[]); ++extern int dumb_pass_playing_list(int number_of_files, char *list_of_files[]); + extern void default_ctl_lyric(int lyricid); + extern int check_apply_control(void); + extern void recompute_freq(int v); +diff -ur TiMidity++-2.13.2/timidity/sndfont.c TiMidity++-2.13.2-new/timidity/sndfont.c +--- TiMidity++-2.13.2/timidity/sndfont.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/timidity/sndfont.c 2005-01-02 03:15:27.000000000 +0100 +@@ -1893,7 +1893,7 @@ + + #if CFG_FOR_SF_SUPPORT_FFT + int check_apply_control(void) { return 0; } // not pass +-void dumb_pass_playing_list(int number_of_files, char *list_of_files[]) {} ++int dumb_pass_playing_list(int number_of_files, char *list_of_files[]) {return 0;} + void recompute_freq(int v) {} // not pass + int32 control_ratio = 0; + int reduce_quality_flag = 0; +diff -ur TiMidity++-2.13.2/timidity/timidity.c TiMidity++-2.13.2-new/timidity/timidity.c +--- TiMidity++-2.13.2/timidity/timidity.c 2005-01-02 02:53:01.000000000 +0100 ++++ TiMidity++-2.13.2-new/timidity/timidity.c 2005-01-02 02:59:29.000000000 +0100 +@@ -5291,6 +5291,7 @@ + int need_stdin = 0, need_stdout = 0; + int i; + int output_fail = 0; ++ int retval; + + if(nfiles == 0 && !strchr(INTERACTIVE_INTERFACE_IDS, ctl->id_character)) + return 0; +@@ -5410,7 +5411,7 @@ + ctl->cmsg(CMSG_INFO, VERB_DEBUG_SILLY, + "pass_playing_list() nfiles=%d", nfiles); + +- ctl->pass_playing_list(nfiles, files); ++ retval=ctl->pass_playing_list(nfiles, files); + + if(intr) + aq_flush(1); +@@ -5451,7 +5452,7 @@ + url_news_connection_cache(URL_NEWS_CLOSE_CACHE); + #endif /* SUPPORT_SOCKET */ + +- return 0; ++ return retval; + } + + #ifdef IA_W32GUI diff --git a/extra/timidity++/timidity++-2.13.2-gtk26.patch b/extra/timidity++/timidity++-2.13.2-gtk26.patch new file mode 100644 index 000000000..73dc8de6c --- /dev/null +++ b/extra/timidity++/timidity++-2.13.2-gtk26.patch @@ -0,0 +1,19 @@ +--- interface/gtk_i.c 2004/12/21 16:59:33 1.1 ++++ interface/gtk_i.c 2004/12/21 16:59:41 +@@ -365,6 +365,7 @@ void + Launch_Gtk_Process(int pipe_number) + { + int argc = 0; ++ gchar **argv = NULL; + GtkWidget *button, *mbar, *swin; + GtkWidget *table, *align, *handlebox; + GtkWidget *vbox, *hbox, *vbox2, *scrolled_win; +@@ -373,7 +374,7 @@ Launch_Gtk_Process(int pipe_number) + /* enable locale */ + gtk_set_locale (); + +- gtk_init (&argc, NULL); ++ gtk_init (&argc, &argv); + + ttip = create_yellow_tooltips(); + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); diff --git a/extra/timidity++/timidity++-2.13.2-polling.patch b/extra/timidity++/timidity++-2.13.2-polling.patch new file mode 100644 index 000000000..a9638dba1 --- /dev/null +++ b/extra/timidity++/timidity++-2.13.2-polling.patch @@ -0,0 +1,34 @@ +--- interface/alsaseq_c.c 2006/12/13 23:22:53 1.28 ++++ interface/alsaseq_c.c 2008/04/16 00:14:45 1.29 +@@ -501,6 +501,8 @@ + + static void doit(struct seq_context *ctxp) + { ++ fd_set rfds; ++ struct timeval timeout; + for (;;) { + while (snd_seq_event_input_pending(ctxp->handle, 1)) { + if (do_sequencer(ctxp)) +@@ -528,15 +530,17 @@ + play_event(&ev); + aq_fill_nonblocking(); + } +- if (! ctxp->active || ! IS_STREAM_TRACE) { +- fd_set rfds; +- struct timeval timeout; +- FD_ZERO(&rfds); +- FD_SET(ctxp->fd, &rfds); ++ ++ FD_ZERO(&rfds); ++ FD_SET(ctxp->fd, &rfds); ++ if (ctxp->active) { + timeout.tv_sec = 0; + timeout.tv_usec = 10000; /* 10ms */ + if (select(ctxp->fd + 1, &rfds, NULL, NULL, &timeout) < 0) + goto __done; ++ } else { ++ if (select(ctxp->fd + 1, &rfds, NULL, NULL, NULL) < 0) ++ goto __done; + } + } + diff --git a/extra/timidity++/timidity++.sh b/extra/timidity++/timidity++.sh new file mode 100644 index 000000000..3fa13cea9 --- /dev/null +++ b/extra/timidity++/timidity++.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/bin/timidity` +case "$1" in + start) + stat_busy "Starting Timidity++ ALSA Daemon" + [ -z "$PID" ] && /usr/bin/timidity -iAD > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + echo $PID > /var/run/timidity.pid + add_daemon timidity++ + stat_done + fi + ;; + stop) + stat_busy "Stopping Timidity++ ALSA Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm /var/run/timidity.pid + rm_daemon timidity++ + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/extra/timidity++/timidity.cfg b/extra/timidity++/timidity.cfg new file mode 100644 index 000000000..59bbfa935 --- /dev/null +++ b/extra/timidity++/timidity.cfg @@ -0,0 +1,29 @@ +# details on this file and other examples see here: +# http://www.onicos.com/staff/iz/timidity/dist/cfg/sndfont.cfg +# http://www.onicos.com/staff/iz/timidity/dist/cfg/ +#---------------------------------------------------------------- +# SoundFont extension configuration +# +# soundfont <filename> [order={0|1}] [remove] +# <filename> is the path of SoundFont file. +# order: 0(preload) or 1(load after GUS). +# remove: disable specified soundfont. +# +# font exclude <tonebank> [<preset> [<keynote>]] +# font order {0|1} <tonebank> [<preset> [<keynote>]] +# <tonebank>: 0-127 +# +# font exclude 128 [<drumset> [<key>]] +# font order {0|1} 128 [<drumset> [<key>]] +#---------------------------------------------------------------- + +# change the next line to point to a soundfont you have +# soundfonts can be found e.g. here: http://www.hammersound.net/ +# soundfont /usr/share/soundfonts/DX7Piano.SF2 + +# you can do manipulations of the soundfont you load like this: +# e.g. removing drumset 99 +# font exclude 128 99 + +# load drum samples after GUS patches +# font order 1 128 |