mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-03 13:37:14 +08:00
Adding timidity++, midi converter for kmid2
This commit is contained in:
parent
8c560427a7
commit
73b0203d5e
30
timidity++/2.13.2-gcc4.patch
Normal file
30
timidity++/2.13.2-gcc4.patch
Normal file
@ -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));
|
58
timidity++/PKGBUILD
Normal file
58
timidity++/PKGBUILD
Normal file
@ -0,0 +1,58 @@
|
||||
#
|
||||
# Chakra Packages for Chakra, part of chakra-project.org
|
||||
#
|
||||
# maintainer (i686): Phil Miller <philm[at]chakra-project[dog]org>
|
||||
# maintainer (x86_64): Manuel Tortosa <manutortosa[at]chakra-project[dot]org>
|
||||
|
||||
# include global config
|
||||
source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
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=('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, \
|
||||
--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++"
|
||||
}
|
349
timidity++/TiMidity++-2.13.2+flac-1.1.3.patch
Normal file
349
timidity++/TiMidity++-2.13.2+flac-1.1.3.patch
Normal file
@ -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.);
|
695
timidity++/timidity++-2.13.2-exiterror.patch
Normal file
695
timidity++/timidity++-2.13.2-exiterror.patch
Normal file
@ -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
|
19
timidity++/timidity++-2.13.2-gtk26.patch
Normal file
19
timidity++/timidity++-2.13.2-gtk26.patch
Normal file
@ -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);
|
34
timidity++/timidity++-2.13.2-polling.patch
Normal file
34
timidity++/timidity++-2.13.2-polling.patch
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
|
38
timidity++/timidity++.sh
Normal file
38
timidity++/timidity++.sh
Normal file
@ -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
|
29
timidity++/timidity.cfg
Normal file
29
timidity++/timidity.cfg
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user