diff -ruN TiMidity++-2.11.2/ChangeLog TiMidity++-2.11.3/ChangeLog --- TiMidity++-2.11.2/ChangeLog Sat Jan 12 18:47:34 2002 +++ TiMidity++-2.11.3/ChangeLog Fri Jan 18 11:25:24 2002 @@ -1,3 +1,36 @@ +2002-01-18 Masanao Izumo + + * Version 2.11.3 released. + +2002-01-17 Daisuke Aoki + + * configs/msc-config.h,interface/{w32g_i.c,w32g_pref.c,w32g_res.h, + w32g_res.rc}, + timidity/{common.c,gogo_a.c,vorbis_a.c,w32g_vorbisenc_dll.c}: + - Updated windows version. + - Bug fixed about gogo dll. + - Bug fixed about dialog menu. + * script/{dllutl.rb,script/readme.txt}: + Dynamic import source generator for dll (vorbis, gogo). + +2002-01-17 Thomas Klausner + + * timidity/C/timidity.1: Document fixed. + +2002-01-16 Saito + + * timidity/{playmidi.c,readmidi.c}: Bug fixed + +2002-01-16 Kentaro Sato + + * timidity/{playmidi.c,readmidi.c}: Bug fixed + +2002-01-16 Masanao Izumo + + * timidity/instrum.c: Bug fixed. + * timidity/readmidi.c: Added TIMIDITY_TOOLS macro to build for timidity + tools. + 2002-01-12 Masanao Izumo * Version 2.11.2 released. diff -ruN TiMidity++-2.11.2/Makefile.am TiMidity++-2.11.3/Makefile.am --- TiMidity++-2.11.2/Makefile.am Wed Jan 9 17:06:18 2002 +++ TiMidity++-2.11.3/Makefile.am Fri Jan 18 08:40:17 2002 @@ -24,7 +24,8 @@ interface \ libunimod \ timidity \ - doc + doc \ + script EXTRA_DIST = \ AUTHORS \ diff -ruN TiMidity++-2.11.2/Makefile.in TiMidity++-2.11.3/Makefile.in --- TiMidity++-2.11.2/Makefile.in Wed Jan 9 17:09:21 2002 +++ TiMidity++-2.11.3/Makefile.in Fri Jan 18 08:43:15 2002 @@ -135,7 +135,8 @@ interface \ libunimod \ timidity \ - doc + doc \ + script EXTRA_DIST = \ diff -ruN TiMidity++-2.11.2/NEWS TiMidity++-2.11.3/NEWS --- TiMidity++-2.11.2/NEWS Sat Jan 12 16:39:00 2002 +++ TiMidity++-2.11.3/NEWS Fri Jan 18 08:58:53 2002 @@ -1,3 +1,6 @@ +01/18, 2002 + * Version 2.11.3 released. + 01/12, 2002 * Version 2.11.2 released. diff -ruN TiMidity++-2.11.2/configs/msc-config.h TiMidity++-2.11.3/configs/msc-config.h --- TiMidity++-2.11.2/configs/msc-config.h Sat Jan 12 19:35:15 2002 +++ TiMidity++-2.11.3/configs/msc-config.h Fri Jan 18 11:25:36 2002 @@ -267,7 +267,7 @@ /* In VDS Macro AAA=BBB is not available. */ #define __W32__ -#define TIMID_VERSION "2.11.2" +#define TIMID_VERSION "2.11.3" #define DEFAULT_PATH ".\\" #define AU_W32 #define AU_VORBIS diff -ruN TiMidity++-2.11.2/configure TiMidity++-2.11.3/configure --- TiMidity++-2.11.2/configure Wed Jan 9 17:09:24 2002 +++ TiMidity++-2.11.3/configure Fri Jan 18 08:41:40 2002 @@ -1400,7 +1400,7 @@ # Define the identity of the package. PACKAGE=TiMidity++ -VERSION=2.11.2 +VERSION=2.11.3 cat >>confdefs.h <confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -11442,10 +11442,11 @@ "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/C/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/C/Makefile" ;; "doc/ja_JP.ujis/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/ja_JP.ujis/Makefile" ;; + "script/Makefile" ) CONFIG_FILES="$CONFIG_FILES script/Makefile" ;; "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "interface.h" ) CONFIG_HEADERS="$CONFIG_HEADERS interface.h" ;; - *) { { echo "$as_me:11448: error: invalid argument: $ac_config_target" >&5 + *) { { echo "$as_me:11449: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac @@ -11774,7 +11775,7 @@ esac if test x"$ac_file" != x-; then - { echo "$as_me:11777: creating $ac_file" >&5 + { echo "$as_me:11778: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi @@ -11792,7 +11793,7 @@ -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:11795: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:11796: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -11805,7 +11806,7 @@ echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:11808: error: cannot find input file: $f" >&5 + { { echo "$as_me:11809: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -11866,7 +11867,7 @@ * ) ac_file_in=$ac_file.in ;; esac - test x"$ac_file" != x- && { echo "$as_me:11869: creating $ac_file" >&5 + test x"$ac_file" != x- && { echo "$as_me:11870: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the @@ -11877,7 +11878,7 @@ -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:11880: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:11881: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -11890,7 +11891,7 @@ echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:11893: error: cannot find input file: $f" >&5 + { { echo "$as_me:11894: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -12007,7 +12008,7 @@ rm -f $tmp/in if test x"$ac_file" != x-; then if cmp -s $ac_file $tmp/config.h 2>/dev/null; then - { echo "$as_me:12010: $ac_file is unchanged" >&5 + { echo "$as_me:12011: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ diff -ruN TiMidity++-2.11.2/configure.in TiMidity++-2.11.3/configure.in --- TiMidity++-2.11.2/configure.in Wed Jan 9 17:05:18 2002 +++ TiMidity++-2.11.3/configure.in Fri Jan 18 08:41:28 2002 @@ -55,7 +55,7 @@ AC_INIT(timidity/timidity.c) SHELL=${CONFIG_SHELL-/bin/sh} AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE(TiMidity++, 2.11.2) +AM_INIT_AUTOMAKE(TiMidity++, 2.11.3) dnl To use CONTAINS() macro (See acinclude.m4) CONTAINS_INIT @@ -1431,4 +1431,5 @@ utils/Makefile doc/Makefile doc/C/Makefile -doc/ja_JP.ujis/Makefile]) +doc/ja_JP.ujis/Makefile +script/Makefile]) diff -ruN TiMidity++-2.11.2/doc/C/timidity.1 TiMidity++-2.11.3/doc/C/timidity.1 --- TiMidity++-2.11.2/doc/C/timidity.1 Wed Jan 9 17:11:59 2002 +++ TiMidity++-2.11.3/doc/C/timidity.1 Thu Jan 17 11:31:04 2002 @@ -359,10 +359,10 @@ .TP .B \-k " msec" Specify audio queue time limit to reduce voices. -If the remaining audio buffer is less than \fImsec\fB milliseconds, +If the remaining audio buffer is less than \fImsec\fP milliseconds, TiMidity tries to kill some voices. This feature makes it possible to play complicated MIDI files on slow CPUs. -Setting \fImsec\fB to zero tells TiMidity to never remove any voices. +Setting \fImsec\fP to zero tells TiMidity to never remove any voices. .TP .B \-L " directory" diff -ruN TiMidity++-2.11.2/interface/w32g_i.c TiMidity++-2.11.3/interface/w32g_i.c --- TiMidity++-2.11.2/interface/w32g_i.c Sat Jan 12 16:38:07 2002 +++ TiMidity++-2.11.3/interface/w32g_i.c Fri Jan 18 08:39:56 2002 @@ -2953,6 +2953,7 @@ "TiMidity Win32 version by Davide Moretti ." NLS "TiMidity Windows 95 port by Nicolas Witczak." NLS "TiMidity Win32 GUI by Daisuke Aoki ." NLS +" Japanese menu, dialog, etc by Saito ." NLS "TiMidity++ by Masanao Izumo ." NLS ,timidity_version); MessageBox(hParentWnd, VersionText, "Version", MB_OK); diff -ruN TiMidity++-2.11.2/interface/w32g_pref.c TiMidity++-2.11.3/interface/w32g_pref.c --- TiMidity++-2.11.2/interface/w32g_pref.c Sat Jan 12 16:37:01 2002 +++ TiMidity++-2.11.3/interface/w32g_pref.c Fri Jan 18 08:39:56 2002 @@ -413,6 +413,7 @@ play_mode->close_output(); restart = (PlayerLanguage != sp_temp->PlayerLanguage); +// restart |= (strcmp(sp_temp->ConfigFile,ConfigFile) != 0); if(sp_temp->PlayerLanguage == LANGUAGE_JAPANESE) strcpy(st_temp->output_text_code, "SJIS"); else @@ -2628,6 +2629,17 @@ // IDC_COMBO_MODE_jp CB_INFO_TYPE2_BEGIN(IDC_COMBO_MODE_jp) + "VBR 品質 1 (低)",(char *)1, + "VBR 品質 2",(char *)2, + "VBR 品質 3",(char *)3, + "VBR 品質 4",(char *)4, + "VBR 品質 5",(char *)5, + "VBR 品質 6",(char *)6, + "VBR 品質 7",(char *)7, + "VBR 品質 8 (デフォルト)",(char *)8, + "VBR 品質 9",(char *)9, + "VBR 品質 10 (高)",(char *)10, +#if 0 "デフォルト(約128kbps VBR)",(char *)0, "約112kbps VBR",(char *)1, "約128kbps VBR",(char *)2, @@ -2635,11 +2647,23 @@ "約192kbps VBR",(char *)4, "約256kbps VBR",(char *)5, "約350kbps VBR",(char *)6, +#endif NULL CB_INFO_TYPE2_END // IDC_COMBO_MODE_en CB_INFO_TYPE2_BEGIN(IDC_COMBO_MODE_en) + "VBR Quality 1 (low)",(char *)1, + "VBR Quality 2",(char *)2, + "VBR Quality 3",(char *)3, + "VBR Quality 4",(char *)4, + "VBR Quality 5",(char *)5, + "VBR Quality 6",(char *)6, + "VBR Quality 7",(char *)7, + "VBR Quality 8 (default)",(char *)8, + "VBR Quality 9",(char *)9, + "VBR Quality 10 (high)",(char *)10, +#if 0 "Default (About 128kbps VBR)",(char *)0, "About 112kbps VBR",(char *)1, "About 128kbps VBR",(char *)2, @@ -2647,6 +2671,7 @@ "About 192kbps VBR",(char *)4, "About 256kbps VBR",(char *)5, "About 350kbps VBR",(char *)6, +#endif NULL CB_INFO_TYPE2_END diff -ruN TiMidity++-2.11.2/interface/w32g_res.h TiMidity++-2.11.3/interface/w32g_res.h --- TiMidity++-2.11.2/interface/w32g_res.h Wed Jan 9 19:05:51 2002 +++ TiMidity++-2.11.3/interface/w32g_res.h Fri Jan 18 08:39:56 2002 @@ -1,21 +1,3 @@ -// TiMidity++ -- MIDI to WAVE converter and player -// Copyright (C) 1999-2002 Masanao Izumo -// Copyright (C) 1995 Tuukka Toivonen -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - //{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by w32g_res.rc diff -ruN TiMidity++-2.11.2/interface/w32g_res.rc TiMidity++-2.11.3/interface/w32g_res.rc --- TiMidity++-2.11.2/interface/w32g_res.rc Wed Jan 9 19:05:45 2002 +++ TiMidity++-2.11.3/interface/w32g_res.rc Fri Jan 18 11:14:40 2002 @@ -1,22 +1,3 @@ -// TiMidity++ -- MIDI to WAVE converter and player -// Copyright (C) 1999-2002 Masanao Izumo -// Copyright (C) 1995 Tuukka Toivonen -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - //Microsoft Developer Studio generated resource script. // #include "w32g_res.h" @@ -671,16 +652,16 @@ WS_TABSTOP,8,63,35,8 LTEXT "Sample rate (Hz)",IDC_STATIC,65,46,50,8,WS_TABSTOP EDITTEXT IDC_EDIT_SAMPLE_RATE,122,44,32,12,ES_NUMBER | WS_GROUP - PUSHBUTTON "L",IDC_BUTTON_LOW,65,59,8,14,BS_CENTER - PUSHBUTTON "M",IDC_BUTTON_MIDDLE,73,59,10,14,BS_CENTER - PUSHBUTTON "H",IDC_BUTTON_HIGH,84,59,10,14,BS_CENTER - PUSHBUTTON "4",IDC_BUTTON_4,95,59,8,14,BS_CENTER - PUSHBUTTON "8",IDC_BUTTON_8,103,59,8,14,BS_CENTER - PUSHBUTTON "16",IDC_BUTTON_16,111,59,12,14,BS_CENTER - PUSHBUTTON "24",IDC_BUTTON_24,123,59,12,14,BS_CENTER - PUSHBUTTON "32",IDC_BUTTON_32,135,59,12,14,BS_CENTER - PUSHBUTTON "40",IDC_BUTTON_40,147,59,12,14,BS_CENTER - PUSHBUTTON "48",IDC_BUTTON_48,159,59,12,14,BS_CENTER + PUSHBUTTON "L",IDC_BUTTON_LOW,60,60,16,14,BS_CENTER + PUSHBUTTON "M",IDC_BUTTON_MIDDLE,76,60,16,14,BS_CENTER + PUSHBUTTON "H",IDC_BUTTON_HIGH,92,60,16,14,BS_CENTER + PUSHBUTTON "4",IDC_BUTTON_4,108,60,12,14,BS_CENTER + PUSHBUTTON "8",IDC_BUTTON_8,120,60,12,14,BS_CENTER + PUSHBUTTON "16",IDC_BUTTON_16,132,60,12,14,BS_CENTER + PUSHBUTTON "24",IDC_BUTTON_24,144,60,12,14,BS_CENTER + PUSHBUTTON "32",IDC_BUTTON_32,156,60,12,14,BS_CENTER + PUSHBUTTON "40",IDC_BUTTON_40,168,60,12,14,BS_CENTER + PUSHBUTTON "48",IDC_BUTTON_48,180,60,12,14,BS_CENTER GROUPBOX "Output",IDC_GROUPBOX_OUTPUT,4,80,193,41,WS_GROUP | WS_TABSTOP PUSHBUTTON "Output File",IDC_BUTTON_OUTPUT_FILE,4,123,42,14, @@ -1305,8 +1286,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,11,0,0 - PRODUCTVERSION 2,11,0,0 + FILEVERSION 2,11,2,0 + PRODUCTVERSION 2,11,2,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -1324,14 +1305,14 @@ VALUE "Comments", "\0" VALUE "CompanyName", "\0" VALUE "FileDescription", "timw32g\0" - VALUE "FileVersion", "2, 11, 0, 0\0" + VALUE "FileVersion", "2, 11, 2, 0\0" VALUE "InternalName", "timw32g\0" VALUE "LegalCopyright", "Copyright (C) 1999-2002 Masanao Izumo \r\nCopyright (C) 1995 Tuukka Toivonen \0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "timw32g.exe\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "TiMidity++ Win32GUI Version\0" - VALUE "ProductVersion", "2, 11, 0, 0\0" + VALUE "ProductVersion", "2, 11, 2, 0\0" VALUE "SpecialBuild", "\0" END END diff -ruN TiMidity++-2.11.2/script/Makefile.am TiMidity++-2.11.3/script/Makefile.am --- TiMidity++-2.11.2/script/Makefile.am Thu Jan 1 09:00:00 1970 +++ TiMidity++-2.11.3/script/Makefile.am Fri Jan 18 08:40:36 2002 @@ -0,0 +1 @@ +EXTRA_DIST = dllutl.rb readme.txt diff -ruN TiMidity++-2.11.2/script/Makefile.in TiMidity++-2.11.3/script/Makefile.in --- TiMidity++-2.11.2/script/Makefile.in Thu Jan 1 09:00:00 1970 +++ TiMidity++-2.11.3/script/Makefile.in Fri Jan 18 08:43:16 2002 @@ -0,0 +1,230 @@ +# Makefile.in generated automatically by automake 1.5 from Makefile.am. + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +ALSA_CFLAGS = @ALSA_CFLAGS@ +ALSA_LIBS = @ALSA_LIBS@ +AMTAR = @AMTAR@ +AWK = @AWK@ +CC = @CC@ +DEPDIR = @DEPDIR@ +ELFILES = @ELFILES@ +EMACS = @EMACS@ +ESD_CFLAGS = @ESD_CFLAGS@ +ESD_CONFIG = @ESD_CONFIG@ +ESD_LIBS = @ESD_LIBS@ +EXEEXT = @EXEEXT@ +EXTRALIBS = @EXTRALIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTERFACE_SRCS = @INTERFACE_SRCS@ +LN_S = @LN_S@ +NETSRCS = @NETSRCS@ +OBJEXT = @OBJEXT@ +OGG_CFLAGS = @OGG_CFLAGS@ +OGG_LIBS = @OGG_LIBS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +SHCFLAGS = @SHCFLAGS@ +SHLD = @SHLD@ +SYSEXTRAS = @SYSEXTRAS@ +VERSION = @VERSION@ +VORBISENC_LIBS = @VORBISENC_LIBS@ +VORBISFILE_LIBS = @VORBISFILE_LIBS@ +VORBIS_CFLAGS = @VORBIS_CFLAGS@ +VORBIS_LIBS = @VORBIS_LIBS@ +WISH = @WISH@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +am__include = @am__include@ +am__quote = @am__quote@ +dynamic_targets = @dynamic_targets@ +install_sh = @install_sh@ +lispdir = @lispdir@ +program_transform_name = @program_transform_name@ +so = @so@ +tcltk_dep = @tcltk_dep@ +timidity_LDFLAGS = @timidity_LDFLAGS@ + +EXTRA_DIST = dllutl.rb readme.txt +subdir = script +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/interface.h +CONFIG_CLEAN_FILES = +DIST_SOURCES = +DIST_COMMON = Makefile.am Makefile.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu script/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && \ + CONFIG_HEADERS= CONFIG_LINKS= \ + CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status +uninstall-info-am: +tags: TAGS +TAGS: + + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + $(mkinstalldirs) "$(distdir)/$$dir"; \ + fi; \ + if test -d $$d/$$file; then \ + cp -pR $$d/$$file $(distdir) \ + || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile + +installdirs: + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +uninstall-am: uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am info info-am install \ + install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic uninstall uninstall-am uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -ruN TiMidity++-2.11.2/script/dllutl.rb TiMidity++-2.11.3/script/dllutl.rb --- TiMidity++-2.11.2/script/dllutl.rb Thu Jan 1 09:00:00 1970 +++ TiMidity++-2.11.3/script/dllutl.rb Fri Jan 18 08:39:56 2002 @@ -0,0 +1,159 @@ +#!/usr/local/bin/ruby + +# DLL のダイナミックロード用ツール +# 1行目 クラス名 +# 2行目 dll 名 +# 3行目以降 関数プロトタイプ +# なファイル source を +# ruby dllutl.rb < source +# としてやれば、その関数を dll からダイナミックロードしてくれる +# ソースを自動作成してくれる。ただし、あまり複雑な関数プロトタイプには +# 未対応。特に () がらみ。 +# +# 適用:Public Domain +# +# Version 0.1p +# +# Daisuke Aoki + +def arg_ana(args) + list = [] + temp = "" + if args.index(",")==nil + temp = args + else + temp = args.split(/,/) + end + for i in temp + if i == "void" + return [] + end + if i =~ /\s*(.*)\s+(\S+)\s*/ + rest = $2 + if rest =~ /(\s*\**\s*\**\s*\**\s*\**\s*)(.*)/ + list << $2 + else + return nil + end + else + return nil + end + end + return list +end + +class_name = "default_name" +dll_name = "default_name.dll" +class_name = gets.chomp +dll_name = gets.chomp + +funclist = [] +while gets +# if $_ =~ /(\s*[^\s]\s+\**)([^\(]+)(\(.*\))\;\s*/ +# if $_ =~ /(\s*\S+\s+)([^\(]+)(\(.*\))\;\s*/ + if $_ =~ /^#.*/ + next + end + rest = $_ + part_prev = "" + part_func = "" + part_post = "" + if rest =~ /\s*(.*)\s*(\(.*?\))\s*;/ + rest = $1 + part_post << $2 + if rest =~ /\s*(.*)\s+(\S+)\s*/ + part_prev << $1 + rest = $2 + if rest =~ /(\s*\**\s*\**\s*\**\s*\**\s*)(.*)/ + part_prev << $1 + part_func << $2 +# printf("<%s><%s><%s>\n",part_prev,part_func,part_post) + end + end + end + if part_func!="" + funclist << [part_prev,part_func,part_post] + end +end + +print "/***************************************************************\n" +printf " name: %s dll: %s \n",class_name,dll_name +print "***************************************************************/\n" + +print "\n" +printf "extern int load_%s(void);\n",class_name +printf "extern void free_%s(void);\n",class_name +print "\n" + +for i in funclist + printf "typedef %s(*type_%s)%s;\n",i[0],i[1],i[2] +end +printf "\nstatic struct %s_ {\n",class_name +for i in funclist + printf "\t type_%s %s;\n",i[1],i[1] +end +printf "} %s;\n\n",class_name + +printf "static volatile HANDLE h_%s = NULL;\n\n",class_name + +printf "void free_%s(void) +{ +\tif(h_%s){ +\t\tFreeLibrary(h_%s); +\t\th_%s = NULL; +\t} +} + +",class_name,class_name,class_name,class_name + +printf "int load_%s(void) +{ +\tif(!h_%s){ +\t\th_%s = LoadLibrary(\"%s\"); +\t\tif(!h_%s) return -1; +\t} +",class_name,class_name,class_name,dll_name,class_name +for i in funclist + printf "\t%s.%s = (type_%s)GetProcAddress(h_%s,\"%s\");\n",class_name,i[1],i[1],class_name,i[1] + printf "\tif(!%s.%s){ free_%s(); return -1; }\n",class_name,i[1],class_name +end +printf "\treturn 0;\n}\n\n" + +for i in funclist + printf "%s %s%s +{ +\tif(h_%s){ +",i[0],i[1],i[2],class_name + if i[0] =~ /\s*void\s*/ + printf "\t\t%s.%s(",class_name,i[1] + else + printf "\t\treturn %s.%s(",class_name,i[1] + end + args = "" + if i[2] =~ /\((.*)\)/ + args = $1.strip + end + arglist = arg_ana(args) + if arglist == nil + print "\n@@@ BAD @@@\n" + exit + end + num = 0 + for j in arglist + if j != "void" + print "," if num!=0 + print j + num += 1 + end + end + print ");\n" + if i[0] =~ /\s*void\s*/ + printf "\t}\n" + else + printf "\t}\n\treturn (%s)0;\n",i[0] + end + printf "}\n\n" +end + +print "/***************************************************************/\n" + diff -ruN TiMidity++-2.11.2/script/readme.txt TiMidity++-2.11.3/script/readme.txt --- TiMidity++-2.11.2/script/readme.txt Thu Jan 1 09:00:00 1970 +++ TiMidity++-2.11.3/script/readme.txt Fri Jan 18 08:39:56 2002 @@ -0,0 +1,2 @@ +dllutl.rb: dynamic import source generator for dll (vorbis, gogo). + diff -ruN TiMidity++-2.11.2/timidity/common.c TiMidity++-2.11.3/timidity/common.c --- TiMidity++-2.11.2/timidity/common.c Wed Jan 9 19:18:40 2002 +++ TiMidity++-2.11.3/timidity/common.c Fri Jan 18 08:39:56 2002 @@ -28,7 +28,9 @@ #include #include #include +#ifdef HAVE_SYS_TIME_H #include +#endif /* HAVE_SYS_TIME_H */ #include #include #include @@ -141,7 +143,12 @@ v /= 62; XXXXXX[5] = letters[v % 62]; - fd = open(tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR); +#ifdef _MSC_VER +#define S_IRUSR 0 +#define S_IWUSR 0 +#endif + + fd = open(tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR); if (fd >= 0) { errno = save_errno; diff -ruN TiMidity++-2.11.2/timidity/gogo_a.c TiMidity++-2.11.3/timidity/gogo_a.c --- TiMidity++-2.11.2/timidity/gogo_a.c Wed Jan 9 19:17:54 2002 +++ TiMidity++-2.11.3/timidity/gogo_a.c Fri Jan 18 08:39:56 2002 @@ -950,14 +950,19 @@ { MERET rval; struct MCP_INPDEV_USERFUNC mcp_inpdev_userfunc; + unsigned long gogo_vercode; + char gogo_verstring[1024]; gogo_buffer_reset(); rval = MPGE_initializeWork(); if(rval != ME_NOERR){ gogo_error(rval); gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } + MPGE_getVersion(&gogo_vercode,gogo_verstring); + ctl->cmsg(CMSG_INFO, VERB_NORMAL, "Gogo: %s", gogo_verstring); memset(&mcp_inpdev_userfunc,0,sizeof(struct MCP_INPDEV_USERFUNC)); mcp_inpdev_userfunc.pUserFunc = gogoUserFunc; mcp_inpdev_userfunc.nSize = MC_INPDEV_MEMORY_NOSIZE; @@ -977,43 +982,55 @@ if(rval != ME_NOERR){ gogo_error(rval); gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } - rval = MPGE_setConfigure(MC_STARTOFFSET,(UPARAM)0,(UPARAM)0); - if(rval != ME_NOERR){ - gogo_error(rval); - gogo_buffer_termination = -1; - return -1; + if(gogo_vercode<300){ + rval = MPGE_setConfigure(MC_STARTOFFSET,(UPARAM)0,(UPARAM)0); + if(rval != ME_NOERR){ + gogo_error(rval); + gogo_buffer_termination = -1; + MPGE_endCoder(); + return -1; + } } #if 0 rval = MPGE_setConfigure(MC_INPFREQ,(UPARAM)dpm.rate,(UPARAM)0); if(rval != ME_NOERR){ gogo_error(rval); gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } #endif + if(gogo_vercode<300){ rval = MPGE_setConfigure(MC_BYTE_SWAP,(UPARAM)((dpm.encoding & PE_BYTESWAP) ? TRUE : FALSE),(UPARAM)0); if(rval != ME_NOERR){ gogo_error(rval); gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } rval = MPGE_setConfigure(MC_8BIT_PCM,(UPARAM)((dpm.encoding & PE_16BIT) ? FALSE : TRUE),(UPARAM)0); if(rval != ME_NOERR){ gogo_error(rval); gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } rval = MPGE_setConfigure(MC_MONO_PCM,(UPARAM)((dpm.encoding & PE_MONO) ? TRUE : FALSE),(UPARAM)0); if(rval != ME_NOERR){ gogo_error(rval); gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } + } rval = MPGE_detectConfigure(); if( rval != ME_NOERR ){ gogo_error(rval); + gogo_buffer_termination = -1; + MPGE_endCoder(); return -1; } else { // UPARAM curFrame; diff -ruN TiMidity++-2.11.2/timidity/instrum.c TiMidity++-2.11.3/timidity/instrum.c --- TiMidity++-2.11.2/timidity/instrum.c Wed Jan 9 19:17:43 2002 +++ TiMidity++-2.11.3/timidity/instrum.c Wed Jan 16 12:31:41 2002 @@ -782,7 +782,13 @@ for(i = 0; i < ip->samples; i++) ip->sample[i].volume = bank->tone[prog].amp / 100.0; } - if(ip != NULL) bank->tone[((dr)?0:prog)].comment = ip->instname; + if (ip != NULL) { + int i; + i = (dr ? 0 : prog); + if (bank->tone[i].comment) + free(bank->tone[i].comment); + bank->tone[i].comment = safe_strdup(ip->instname); + } return ip; } @@ -801,8 +807,11 @@ /* preload soundfont */ ip = load_soundfont_inst(0, font_bank, font_preset, font_keynote); - if(ip != NULL) bank->tone[prog].comment = ip->instname; - + if (ip != NULL) { + if (bank->tone[prog].comment) + free(bank->tone[prog].comment); + bank->tone[prog].comment = safe_strdup(ip->instname); + } if(ip == NULL) { @@ -818,7 +827,11 @@ if(ip == NULL) { /* no patch; search soundfont again */ ip = load_soundfont_inst(1, font_bank, font_preset, font_keynote); - if(ip != NULL) bank->tone[0].comment = ip->instname; + if (ip != NULL) { + if (bank->tone[0].comment) + free(bank->tone[0].comment); + bank->tone[0].comment = safe_strdup(ip->instname); + } } } diff -ruN TiMidity++-2.11.2/timidity/playmidi.c TiMidity++-2.11.3/timidity/playmidi.c --- TiMidity++-2.11.2/timidity/playmidi.c Sat Jan 12 18:57:44 2002 +++ TiMidity++-2.11.3/timidity/playmidi.c Wed Jan 16 19:03:15 2002 @@ -380,6 +380,7 @@ d[i]->drum_panning = NO_PANNING; memset(d[i]->drum_envelope_rate, 0, sizeof(d[i]->drum_envelope_rate)); + d[i]->pan_random = 0; d[i]->drum_level = 1; d[i]->note = 0; d[i]->delay_level = 0; @@ -392,6 +393,7 @@ d[note]->drum_panning = NO_PANNING; memset(d[note]->drum_envelope_rate, 0, sizeof(d[note]->drum_envelope_rate)); + d[note]->pan_random = 0; d[note]->drum_level = 1; d[note]->note = 0; d[note]->delay_level = 0; @@ -2745,9 +2747,10 @@ if(!opt_tva_attack) { break; } val = val & 0x7F; note = channel[ch].lastlrpn; + + if(channel[ch].drums[note] == NULL) {break;} val -= 64; ctl->cmsg(CMSG_INFO,VERB_NOISY,"XG Drum Attack Time (CH:%d NOTE:%d VALUE:%d)",ch,note,val); - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} channel[ch].drums[note]->drum_envelope_rate[0] = val / 2; break; case NRPN_ADDR_1700: /* Drum EG Decay Time (XG) */ @@ -2756,16 +2759,18 @@ if(!opt_tva_decay) { break; } val = val & 0x7F; note = channel[ch].lastlrpn; + + if(channel[ch].drums[note] == NULL) {break;} val -= 64; ctl->cmsg(CMSG_INFO,VERB_NOISY,"XG Drum Decay Time (CH:%d NOTE:%d VALUE:%d)",ch,note,val); - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} channel[ch].drums[note]->drum_envelope_rate[1] = val / 2; break; case NRPN_ADDR_1800: /* Coarse Pitch of Drum (GS) */ ctl->cmsg(CMSG_INFO,VERB_NOISY,"Coarse Pitch of Drum (CH:%d VALUE:%d)",ch,val); drumflag = 1; - note = channel[ch].lastlrpn; - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} + note = channel[ch].lastlrpn; + + if(channel[ch].drums[note] == NULL) {break;} val = val - 64 + note; val = val & 0x7F; channel[ch].drums[note]->note = val; @@ -2777,10 +2782,11 @@ case NRPN_ADDR_1A00: /* Level of Drum */ drumflag = 1; note = channel[ch].lastlrpn; + + if(channel[ch].drums[note] == NULL) {break;} if(val > 127) {val = 127;} else if(val < 0) {val = 0;} ctl->cmsg(CMSG_INFO,VERB_NOISY,"Drum Instrument TVA Level (CH:%d NOTE:%d VALUE:%d)",ch,note,val); - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} channel[ch].drums[note]->drum_level = (double)val / 127; break; case NRPN_ADDR_1C00: /* Panpot of Drum */ @@ -2802,22 +2808,26 @@ case NRPN_ADDR_1D00: /* Reverb Send Level of Drum */ ctl->cmsg(CMSG_INFO,VERB_NOISY,"Reverb Send Level of Drum (CH:%d VALUE:%d)",ch,val); drumflag = 1; - note = channel[ch].lastlrpn; - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} + note = channel[ch].lastlrpn; + + if(channel[ch].drums[note] == NULL) {break;} channel[ch].drums[note]->reverb_level = val; break; case NRPN_ADDR_1E00: /* Chorus Send Level of Drum */ ctl->cmsg(CMSG_INFO,VERB_NOISY,"Chorus Send Level of Drum (CH:%d VALUE:%d)",ch,val); drumflag = 1; note = channel[ch].lastlrpn; - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} + + if(channel[ch].drums[note] == NULL) {break;} channel[ch].drums[note]->chorus_level = val; break; case NRPN_ADDR_1F00: /* Variation Send Level of Drum */ ctl->cmsg(CMSG_INFO,VERB_NOISY,"Variation Send Level of Drum (CH:%d VALUE:%d)",ch,val); drumflag = 1; - note = channel[ch].lastlrpn; - if(channel[ch].drums[note] == NULL) {play_midi_setup_drums(ch, note);} + note = channel[ch].lastlrpn; + + if(channel[ch].drums[note] == NULL) {break;} + channel[ch].drums[note]->delay_level = val; break; case RPN_ADDR_0000: /* Pitch bend sensitivity */ diff -ruN TiMidity++-2.11.2/timidity/readmidi.c TiMidity++-2.11.3/timidity/readmidi.c --- TiMidity++-2.11.2/timidity/readmidi.c Sat Jan 12 18:48:06 2002 +++ TiMidity++-2.11.3/timidity/readmidi.c Wed Jan 16 19:09:51 2002 @@ -727,7 +727,11 @@ ctl->cmsg(CMSG_INFO,VERB_NOISY,"Velocity Sense Offset: %02X",val[7]); break; case 0x1C: - MIDIEVENT(at,ME_PAN,p,val[7],0); + if (val[7] == 0) { + MIDIEVENT(at, ME_RANDOM_PAN, p, 0, 0); + } else { + MIDIEVENT(at,ME_PAN,p,val[7],0); + } num_events++; break; case 0x21: @@ -940,6 +944,7 @@ case 0xB00: /* Source Prog */ userdrum_prog = val[7]; break; +#if !defined(TIMIDITY_TOOLS) case 0xC00: /* Source Note */ alloc_instrument_bank(1,64+udn); if(drumset[userdrum_prog]) { @@ -955,6 +960,7 @@ userdrum_prog = 0; userdrum_map = 0; break; +#endif } break; } @@ -1045,12 +1051,6 @@ SETMIDIEVENT(*ev, 0, ME_RECEIVE_CHANNEL, (uint8)p, *body >= 64, 0); #endif return 0; - } - - if((addr & 0xFFF0FF) == 0x40101C) /* Random pan */ - { - SETMIDIEVENT(*ev, 0, ME_RANDOM_PAN, p, 0, 0); - return 1; } if(0x402000 <= addr && addr <= 0x402F5A) /* Controller Routing */ diff -ruN TiMidity++-2.11.2/timidity/timidity.c TiMidity++-2.11.3/timidity/timidity.c --- TiMidity++-2.11.2/timidity/timidity.c Wed Jan 9 19:21:17 2002 +++ TiMidity++-2.11.3/timidity/timidity.c Wed Jan 16 12:31:56 2002 @@ -2809,7 +2809,7 @@ s[2] = '\n'; write(2, s, 3); - if(sig == SIGINT && intr < 0) + if(sig == SIGINT && intr < 1) { intr++; signal(SIGINT, sigterm_exit); /* For SysV base */ diff -ruN TiMidity++-2.11.2/timidity/vorbis_a.c TiMidity++-2.11.3/timidity/vorbis_a.c --- TiMidity++-2.11.2/timidity/vorbis_a.c Wed Jan 9 19:12:56 2002 +++ TiMidity++-2.11.3/timidity/vorbis_a.c Fri Jan 18 08:44:57 2002 @@ -93,7 +93,7 @@ extern char *w32g_output_dir; extern int w32g_auto_output_mode; extern int vorbis_ConfigDialogInfoApply(void); -int ogg_vorbis_mode = 0; /* initial mode. */ +int ogg_vorbis_mode = 8; /* initial mode. */ #endif /*************************************************************************/ @@ -104,6 +104,7 @@ { int bitrate; +#if 0 /* choose an encoding mode */ /* (mode 0: -> mode2 */ /* (mode 1: 44kHz stereo uncoupled, N/A\n */ @@ -132,6 +133,14 @@ bitrate = 160 * 1000; break; } return bitrate; +#else + if (ogg_vorbis_mode<1 || ogg_vorbis_mode > 10) + bitrate = 8; + else + bitrate = ogg_vorbis_mode; + return bitrate; +#endif + return (int)(nch * rate * (128000.0 / (2.0 * 44100.0)) + 0.5); /* +0.5 for rounding */ } #else static int @@ -192,9 +201,15 @@ /* choose an encoding mode */ vorbis_info_init(&vi); +#ifndef IA_W32GUI bitrate = choose_bitrate(nch, dpm.rate); ctl->cmsg(CMSG_INFO,VERB_NOISY,"Target encoding bitrate: %dbps", bitrate); vorbis_encode_init(&vi, nch, dpm.rate, -1, bitrate, -1); +#else + bitrate = choose_bitrate(nch, dpm.rate); + ctl->cmsg(CMSG_INFO,VERB_NOISY,"Target encoding VBR quality: %d", bitrate); + vorbis_encode_init_vbr(&vi, nch, dpm.rate, (float)bitrate/10); +#endif { /* add a comment */ @@ -203,7 +218,7 @@ vorbis_comment_init(&vc); location_string = - (char *)safe_malloc(strlen(comment) + sizeof("LOCATION=")); + (char *)safe_malloc(strlen(comment) + sizeof("LOCATION=") + 2); strcpy(location_string, "LOCATION="); strcat(location_string, comment); vorbis_comment_add(&vc, (char *)location_string); diff -ruN TiMidity++-2.11.2/timidity/w32g_vorbisenc_dll.c TiMidity++-2.11.3/timidity/w32g_vorbisenc_dll.c --- TiMidity++-2.11.2/timidity/w32g_vorbisenc_dll.c Wed Jan 9 17:21:50 2002 +++ TiMidity++-2.11.3/timidity/w32g_vorbisenc_dll.c Fri Jan 18 08:39:56 2002 @@ -36,10 +36,12 @@ extern void free_vorbisenc_dll(void); typedef int(*type_vorbis_encode_init)(vorbis_info *vi,long channels,long rate,long max_bitrate,long nominal_bitrate,long min_bitrate); +typedef int(*type_vorbis_encode_init_vbr)(vorbis_info *vi,long channels,long rate,float base_quality); typedef int(*type_vorbis_encode_ctl)(vorbis_info *vi,int number,void *arg); static struct vorbisenc_dll_ { type_vorbis_encode_init vorbis_encode_init; + type_vorbis_encode_init_vbr vorbis_encode_init_vbr; type_vorbis_encode_ctl vorbis_encode_ctl; } vorbisenc_dll; @@ -61,6 +63,8 @@ } vorbisenc_dll.vorbis_encode_init = (type_vorbis_encode_init)GetProcAddress(h_vorbisenc_dll,"vorbis_encode_init"); if(!vorbisenc_dll.vorbis_encode_init){ free_vorbisenc_dll(); return -1; } + vorbisenc_dll.vorbis_encode_init_vbr = (type_vorbis_encode_init_vbr)GetProcAddress(h_vorbisenc_dll,"vorbis_encode_init_vbr"); + if(!vorbisenc_dll.vorbis_encode_init_vbr){ free_vorbisenc_dll(); return -1; } vorbisenc_dll.vorbis_encode_ctl = (type_vorbis_encode_ctl)GetProcAddress(h_vorbisenc_dll,"vorbis_encode_ctl"); if(!vorbisenc_dll.vorbis_encode_ctl){ free_vorbisenc_dll(); return -1; } return 0; @@ -70,6 +74,14 @@ { if(h_vorbisenc_dll){ return vorbisenc_dll.vorbis_encode_init(vi,channels,rate,max_bitrate,nominal_bitrate,min_bitrate); + } + return (int)0; +} + +int vorbis_encode_init_vbr(vorbis_info *vi,long channels,long rate,float base_quality) +{ + if(h_vorbisenc_dll){ + return vorbisenc_dll.vorbis_encode_init_vbr(vi,channels,rate,base_quality); } return (int)0; }