diff -urN soundtracker-0.5.8/AUTHORS soundtracker-0.5.9/AUTHORS --- soundtracker-0.5.8/AUTHORS Tue Sep 19 17:36:18 2000 +++ soundtracker-0.5.9/AUTHORS Mon Sep 25 15:01:10 2000 @@ -68,6 +68,8 @@ (pointed out some stupid leaks) Fabian Giesen (Win32 port) +Felix Bohmann + (borrowed me his SGI O2 for the IRIX port) Translations diff -urN soundtracker-0.5.8/ChangeLog soundtracker-0.5.9/ChangeLog --- soundtracker-0.5.8/ChangeLog Tue Sep 19 18:19:09 2000 +++ soundtracker-0.5.9/ChangeLog Mon Sep 25 14:58:33 2000 @@ -1,3 +1,58 @@ +2000-09-25 Michael Krause + + * Released v0.5.9 + + * app/tracker.c: Rewrote expose/draw/update handling. + + * app/sample-display.c: Rewrote expose/draw/update handling a + little bit (using an idle function). Now switching notebook pages + works without problems. + + * app/sample-editor.c (sample_editor_handle_keys): If we have a + selection, play only the selected part of the sample. + + * app/mixer.h: XM Player and mixers can now play part of the + sample only. Added new method 'setsmplend' to mixer structure for + this. + + * app/sample-editor.c (sample_editor_load_wav_main): Init relnote + and finetune such that samples are played at C-6 in original + speed. + (sample_editor_ok_clicked): Here as well. + + * app/xm.c (xm_freq_note_to_relnote_finetune): If a specified FT + note is to be played at a specific frequency, return the needed + relnote and finetune settings. + +2000-09-24 Michael Krause + + * app/audio.h: Remove #include -- fixes compiler + warnings on IRIX. + + * app/midi-settings.c: Use new prefs_() functions. + + * app/main.c (main): Add dummy drivers if no actual drivers for + the architecture are available. + + * app/mixers/kb-x86.c: Cleanups. Changed name appearing to the + user to "kbfloat", since it's no longer x86-specific. + + * app/mixers/kb-x86-asm.S (kbasm_mix): val*vl+val*vr = + val*(vl+vr). Using basic ring properties can help make your code + shorter :) + + * app/mixers/kbfloat-mix.c: Portable C version of the cubically + interpolating mixer. + + * configure.in (sgi_support): Added checks for IRIX dmedia + library. Cleanups. Added '--disable-asm' option. + + * app/xm.c (xm_load_xm_instrument): Endianness-convert envelope + points to host order. + (xm_save_xm_instrument): Here as well. + + * app/drivers/irix-output.c: Added IRIX 5.x output driver. + 2000-09-19 Michael Krause * Released v0.5.8 diff -urN soundtracker-0.5.8/INSTALL soundtracker-0.5.9/INSTALL --- soundtracker-0.5.8/INSTALL Tue Sep 19 17:41:47 2000 +++ soundtracker-0.5.9/INSTALL Sun Sep 24 14:24:35 2000 @@ -15,21 +15,22 @@ - optionally, GNOME 1.0.1 gnome-config --version (available from http://www.gnome.org/) +- optional: compression utilities zip, lha, zcat (gunzip) and + bunzip2. All of them except for bunzip2 have been around for a + decade now. As for bunzip2, you might like to check on its + version. Should be around 0.9.0b. Standard Un*x bundles (RedHat + etc) will come with all these utilities. + - under Linux, glibc 2.1.x is recommended (available from ftp://ftp.gnu.org/gnu/glibc/) -- optional: compression utilities zip, lha, zcat (gunzip) and -bunzip2. all of them accept for bunzip2 have been around for a decade -now. as for bunzip2, you might like to check on it's version. should -be around 0.9.0b. Nb/ standard unix bundles (redhat etc) will come -with all this utilities. - Installing GNOME is strongly recommended. Some features are only available when you compile with GNOME. You only need the gnome-libs distribution, it's really not hard to compile yourself. RedHat 6.0 and other recent distributions also carry a recent GNOME installation. You do NOT need to run an actual GNOME desktop if you like KDE or -plain X11 better, but having the libraries installed helps. +plain X11 better, but having the libraries installed gives you some +more features than in the plain GTK+ version. If you don't have libaudiofile, you will not be able to load or save samples in the sample editor (loading and saving modules will work, @@ -63,6 +64,12 @@ make If this gives errors or warnings, please report. + +If you get errors related to files with "intl" in their path name or +other NLS trouble, reconfigure with --disable-nls. + +If you get errors related to assembly language files, reconfigure with +--disable-asm. If it worked (which is highly probable on any i386 Linux system which fulfills the requirements listed above), you can now 'make install' as diff -urN soundtracker-0.5.8/NEWS soundtracker-0.5.9/NEWS --- soundtracker-0.5.8/NEWS Tue Sep 19 18:06:12 2000 +++ soundtracker-0.5.9/NEWS Mon Sep 25 15:03:57 2000 @@ -4,6 +4,18 @@ responsible for having coded a particular feature (full names in AUTHORS file). +What is new in soundtracker-0.5.9 (25-Sep-2000): + +* MIDI compiles again +* Sample editor now plays selected region of sample only +* After loading a WAV, initialize relnote and finetune so that + the sample is played at the original speed on C-6 +* High-quality mixer available on all platforms now +* Widget exposure fixes +* Some endianness fixes +* SGI / IRIX port (no sampling driver, though) + (use --disable-nls during configuration) + What is new in soundtracker-0.5.8 (19-Sep-2000): * Inc/Dec command value function (tmaka) diff -urN soundtracker-0.5.8/README soundtracker-0.5.9/README --- soundtracker-0.5.8/README Tue Sep 19 18:06:14 2000 +++ soundtracker-0.5.9/README Mon Sep 25 14:58:34 2000 @@ -4,7 +4,7 @@ http://www.soundtracker.org/ -------------------------------------------------------------- - v0.5.8 --- THIS IS A DEVELOPMENT VERSION! + v0.5.9 --- THIS IS A DEVELOPMENT VERSION! Written and (C) 1998-2000 by Michael Krause [ raw style / lego ] diff -urN soundtracker-0.5.8/TODO soundtracker-0.5.9/TODO --- soundtracker-0.5.8/TODO Tue Sep 19 18:00:52 2000 +++ soundtracker-0.5.9/TODO Mon Sep 25 14:54:24 2000 @@ -1,19 +1,6 @@ things to do and known bugs (in no particular order) ------------------------------------------------------- -SAMPLE EDITOR: "play selection" button. (don't loop the sample then) - -sample display: exposing doesn't work when switching from one -workspace back to the soundtracker workspace and a sample is playing -(mixerpos is being moved). need to rethink all this -gtk_widget_queue_redraw() stuff. - -tracker: some fonts (for example lucida console 80) report strange -font heights so that the tracker's rows overlap sometimes. or am i -miscalculating something? - -nach dem samplen finetune+relnote so initen, daß das sample auf c-4 -original abgespielt wird. @@ -65,8 +52,6 @@ > I think it would be nice, if you had an option to load only the samples > from a module, not the whole module, just like in my old OctaMed. -space-bar -> keyboard configuration - delink / link tab!!! MAIN WINDOW "CONTROL PANEL": the scopes must be able to be replaced by @@ -78,12 +63,10 @@ TRACKER WIDGET: should work with arbitrary note types, effects, and so on. should support per-cell background/foreground colors, fonts -shoullld be configurable etc. extend xmnote. +should be configurable etc. extend xmnote. CLAVIER: highlight currently played notes! -GUI: alternative scope (rgb box or something) - GUI-SETTINGS / TRACKER: h <-> b GNOME / AUTOMAKE: Use official gnome macros instead of the xchat @@ -93,8 +76,6 @@ SAMPLE EDITOR: lowpass / highpass / bandpass, mix two samples, resampling functions. -SAMPLE EDITOR: needs some serious re-design (i mean the gui). - SCOPE GROUP: toggle display of channel numbers. PLAYLIST WIDGET: write a playlist widget which always displays the @@ -159,9 +140,14 @@ >-----> need to put ALL the keys handling to keys.c (no more GDK_* cases in >track-editor.c, for example) +tracker: some fonts (for example lucida console 80) report strange +font heights so that the tracker's rows overlap sometimes. or am i +miscalculating something? + + ====== PLAYER / LOADER ======== -endianness conversion is probably screwed up everywhere. +check endianness conversion for {audiofile / raw} sample {loader / saver}. load 15 sample mods @@ -173,24 +159,23 @@ mod.savage, spotlight madmix, alice d., abyss-tr -- fix note retriggering when only instrument column is set. -PLAYER / MIXER: what happens if you use 9xx to jump behind the loop -end? - mod saver -.pat loading +GUS patch (.pat) loading ====== MIXER ====== -combine C parts of old and new mixers +the idea of having mixer modules is a bit silly, especially when the +mixer has to do more jobs than now. -global filter - -st_mixer_info->data should be a gint16*! rewrite all void* -arithmetic.. remove current_word_length +virtual channel support (for impulse tracker modules) +sample-stream input support (as opposed to fixed samples) -- then it's +only a short way to unit-generator support such as Buzz or Octal have +it. +(global filter, kb's xm extension) ====== DRIVERS ======= @@ -216,14 +201,6 @@ ====== MISC ====== -TIME-BUFFER: rewrite, optimize, respect maximum time delta value. - -EVERYWHERE: use of pthread_create isn't quite consistent with use of -gthread_* functions everywhere else. - -MAILING LIST: put an archive on the home page. code some fancy -php3+mysql database with search function. - idea why realtime scheduling doesn't work: mutexes in player thread are spinloops, so they take up 100% cpu time when waiting and the main thread can't release the mutexes. @@ -234,6 +211,14 @@ > `soundtracker --render song.xm song.wav' ? extend tips dialog + +scopes under irix with integer32 don't work + +nls under irix doesn't work + +save wav's with a sample rate that would be set by the xm player at +C-6. + ====== FUTURE ======= diff -urN soundtracker-0.5.8/acconfig.h soundtracker-0.5.9/acconfig.h --- soundtracker-0.5.8/acconfig.h Wed Mar 29 18:30:07 2000 +++ soundtracker-0.5.9/acconfig.h Sun Sep 24 11:53:42 2000 @@ -5,9 +5,11 @@ #undef DRIVER_ALSA #undef DRIVER_ALSA_050 #undef DRIVER_ESD +#undef DRIVER_SGI #undef USE_GNOME #undef NO_AUDIOFILE #undef NO_GASP +#undef NO_ASM #undef ENABLE_NLS #undef HAVE_CATGETS diff -urN soundtracker-0.5.8/app/Makefile.am soundtracker-0.5.9/app/Makefile.am --- soundtracker-0.5.8/app/Makefile.am Sun Sep 17 17:33:48 2000 +++ soundtracker-0.5.9/app/Makefile.am Mon Sep 25 12:06:00 2000 @@ -8,7 +8,7 @@ cheat-sheet.c cheat-sheet.h \ clavier.c clavier.h \ driver.h driver-in.h driver-out.h \ - endian-conv.h \ + endian-conv.c endian-conv.h \ envelope-box.c envelope-box.h \ errors.c errors.h \ event-waiter.c event-waiter.h \ diff -urN soundtracker-0.5.8/app/Makefile.in soundtracker-0.5.9/app/Makefile.in --- soundtracker-0.5.8/app/Makefile.in Tue Sep 19 18:20:31 2000 +++ soundtracker-0.5.9/app/Makefile.in Mon Sep 25 15:07:56 2000 @@ -99,7 +99,7 @@ bin_PROGRAMS = soundtracker -soundtracker_SOURCES = audio.c audio.h audioconfig.c audioconfig.h cheat-sheet.c cheat-sheet.h clavier.c clavier.h driver.h driver-in.h driver-out.h endian-conv.h envelope-box.c envelope-box.h errors.c errors.h event-waiter.c event-waiter.h extspinbutton.c extspinbutton.h file-operations.c file-operations.h gui-settings.c gui-settings.h gui-subs.c gui-subs.h gui.c gui.h i18n.h instrument-editor.c instrument-editor.h keys.c keys.h main.c main.h menubar.c menubar.h midi.c midi.h midi-settings.c midi-settings.h midi-utils.c midi-utils.h mixer.h module-info.c module-info.h playlist.c playlist.h poll.c poll.h preferences.c preferences.h recode.c recode.h sample-display.c sample-display.h sample-editor.c sample-editor.h scope-group.c scope-group.h st-subs.c st-subs.h time-buffer.c time-buffer.h tips-dialog.c tips-dialog.h track-editor.c track-editor.h tracker.c tracker.h tracker-settings.c tracker-settings.h transposition.c transposition.h xm.c xm.h xm-player.c xm-player.h +soundtracker_SOURCES = audio.c audio.h audioconfig.c audioconfig.h cheat-sheet.c cheat-sheet.h clavier.c clavier.h driver.h driver-in.h driver-out.h endian-conv.c endian-conv.h envelope-box.c envelope-box.h errors.c errors.h event-waiter.c event-waiter.h extspinbutton.c extspinbutton.h file-operations.c file-operations.h gui-settings.c gui-settings.h gui-subs.c gui-subs.h gui.c gui.h i18n.h instrument-editor.c instrument-editor.h keys.c keys.h main.c main.h menubar.c menubar.h midi.c midi.h midi-settings.c midi-settings.h midi-utils.c midi-utils.h mixer.h module-info.c module-info.h playlist.c playlist.h poll.c poll.h preferences.c preferences.h recode.c recode.h sample-display.c sample-display.h sample-editor.c sample-editor.h scope-group.c scope-group.h st-subs.c st-subs.h time-buffer.c time-buffer.h tips-dialog.c tips-dialog.h track-editor.c track-editor.h tracker.c tracker.h tracker-settings.c tracker-settings.h transposition.c transposition.h xm.c xm.h xm-player.c xm-player.h soundtracker_LDADD = drivers/libdrivers.a mixers/libmixers.a @@ -120,7 +120,7 @@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ soundtracker_OBJECTS = audio.o audioconfig.o cheat-sheet.o clavier.o \ -envelope-box.o errors.o event-waiter.o extspinbutton.o \ +endian-conv.o envelope-box.o errors.o event-waiter.o extspinbutton.o \ file-operations.o gui-settings.o gui-subs.o gui.o instrument-editor.o \ keys.o main.o menubar.o midi.o midi-settings.o midi-utils.o \ module-info.o playlist.o poll.o preferences.o recode.o sample-display.o \ @@ -326,6 +326,7 @@ gui.h cheat-sheet.o: cheat-sheet.c ../config.h i18n.h clavier.o: clavier.c clavier.h +endian-conv.o: endian-conv.c ../config.h endian-conv.h envelope-box.o: envelope-box.c ../config.h i18n.h gui-subs.h \ envelope-box.h xm.h mixer.h gui-settings.h errors.o: errors.c audio.h mixer.h driver-out.h driver.h preferences.h \ @@ -357,14 +358,6 @@ time-buffer.h event-waiter.h keys.h track-editor.h tracker.h \ tracker-settings.h clavier.h errors.h sample-editor.h \ driver-in.h gui-settings.h module-info.h file-operations.h -interpolate-fx.o: interpolate-fx.c ../config.h i18n.h gui.h gui-subs.h \ - audio.h mixer.h driver-out.h driver.h time-buffer.h \ - interpolate-fx.h track-editor.h tracker.h xm.h \ - tracker-settings.h -interpolation.o: interpolation.c ../config.h i18n.h gui.h gui-subs.h \ - audio.h mixer.h driver-out.h driver.h time-buffer.h \ - interpolation.h track-editor.h tracker.h xm.h \ - tracker-settings.h keys.o: keys.c ../config.h i18n.h keys.h gui-subs.h gui.h audio.h \ mixer.h driver-out.h driver.h preferences.h time-buffer.h \ event-waiter.h menubar.h diff -urN soundtracker-0.5.8/app/audio.c soundtracker-0.5.9/app/audio.c --- soundtracker-0.5.8/app/audio.c Sun Sep 17 18:36:44 2000 +++ soundtracker-0.5.9/app/audio.c Mon Sep 25 12:33:15 2000 @@ -293,7 +293,8 @@ audio_ctlpipe_play_note_full (int channel, int note, STSample *sample, - int offset) + guint32 offset, + guint32 count) { audio_backpipe_id a = AUDIO_BACKPIPE_PLAYING_NOTE_STARTED; @@ -312,7 +313,7 @@ if(!playing) return; - xmplayer_play_note_full(channel, note, sample, offset); + xmplayer_play_note_full(channel, note, sample, offset, count); } static void @@ -427,7 +428,7 @@ GList *pl; PollInput *pi; audio_ctlpipe_id c; - int a[3], i, npl; + int a[4], i, npl; void *b; float af; @@ -481,8 +482,8 @@ case AUDIO_CTLPIPE_PLAY_NOTE_FULL: readpipe(ctlpipe, &a[0], 2 * sizeof(a[0])); readpipe(ctlpipe, &b, 1 * sizeof(b)); - readpipe(ctlpipe, &a[2], 1 * sizeof(a[0])); - audio_ctlpipe_play_note_full(a[0], a[1], b, a[2]); + readpipe(ctlpipe, &a[2], 2 * sizeof(a[0])); + audio_ctlpipe_play_note_full(a[0], a[1], b, a[2], a[3]); break; case AUDIO_CTLPIPE_PLAY_NOTE_KEYOFF: readpipe(ctlpipe, a, 1 * sizeof(a[0])); @@ -936,6 +937,13 @@ guint32 offset) { mixer->setsmplpos(channel, offset); +} + +void +driver_setsmplend (int channel, + guint32 offset) +{ + mixer->setsmplend(channel, offset); } void diff -urN soundtracker-0.5.8/app/audio.h soundtracker-0.5.9/app/audio.h --- soundtracker-0.5.8/app/audio.h Sun Sep 17 17:46:41 2000 +++ soundtracker-0.5.9/app/audio.h Mon Sep 25 12:26:58 2000 @@ -25,7 +25,6 @@ #include #include -#include #include "mixer.h" #include "driver-out.h" @@ -40,7 +39,7 @@ AUDIO_CTLPIPE_PLAY_SONG, /* int songpos, int patpos */ AUDIO_CTLPIPE_PLAY_PATTERN, /* int pattern, int patpos, int only_one_row */ AUDIO_CTLPIPE_PLAY_NOTE, /* int channel, int note, int instrument */ - AUDIO_CTLPIPE_PLAY_NOTE_FULL, /* int channel, int note, STSample *sample, int offset */ + AUDIO_CTLPIPE_PLAY_NOTE_FULL, /* int channel, int note, STSample *sample, int offset, int count */ AUDIO_CTLPIPE_PLAY_NOTE_KEYOFF, /* int channel */ AUDIO_CTLPIPE_STOP_PLAYING, /* void */ AUDIO_CTLPIPE_SET_SONGPOS, /* int songpos */ @@ -141,6 +140,8 @@ st_mixer_sample_info *si); void driver_stopnote (int channel); void driver_setsmplpos (int channel, + guint32 offset); +void driver_setsmplend (int channel, guint32 offset); void driver_setfreq (int channel, float frequency); diff -urN soundtracker-0.5.8/app/drivers/Makefile.am soundtracker-0.5.9/app/drivers/Makefile.am --- soundtracker-0.5.8/app/drivers/Makefile.am Tue Sep 19 17:38:07 2000 +++ soundtracker-0.5.9/app/drivers/Makefile.am Sun Sep 24 18:23:08 2000 @@ -2,14 +2,16 @@ noinst_LIBRARIES = libdrivers.a libdrivers_a_SOURCES = \ - oss-output.c \ - oss-input.c \ alsa-output.c \ alsa-input.c \ alsa2-output.c \ alsa2-input.c \ dsound-output.c \ + dummy-drivers.c \ esd-output.c \ - file-output.c + file-output.c \ + irix-output.c \ + oss-output.c \ + oss-input.c INCLUDES = -I.. diff -urN soundtracker-0.5.8/app/drivers/Makefile.in soundtracker-0.5.9/app/drivers/Makefile.in --- soundtracker-0.5.8/app/drivers/Makefile.in Tue Sep 19 18:20:32 2000 +++ soundtracker-0.5.9/app/drivers/Makefile.in Mon Sep 25 15:07:58 2000 @@ -97,7 +97,7 @@ noinst_LIBRARIES = libdrivers.a -libdrivers_a_SOURCES = oss-output.c oss-input.c alsa-output.c alsa-input.c alsa2-output.c alsa2-input.c dsound-output.c esd-output.c file-output.c +libdrivers_a_SOURCES = alsa-output.c alsa-input.c alsa2-output.c alsa2-input.c dsound-output.c dummy-drivers.c esd-output.c file-output.c irix-output.c oss-output.c oss-input.c INCLUDES = -I.. @@ -112,9 +112,9 @@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libdrivers_a_LIBADD = -libdrivers_a_OBJECTS = oss-output.o oss-input.o alsa-output.o \ -alsa-input.o alsa2-output.o alsa2-input.o dsound-output.o esd-output.o \ -file-output.o +libdrivers_a_OBJECTS = alsa-output.o alsa-input.o alsa2-output.o \ +alsa2-input.o dsound-output.o dummy-drivers.o esd-output.o \ +file-output.o irix-output.o oss-output.o oss-input.o AR = ar CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -223,12 +223,13 @@ alsa2-input.o: alsa2-input.c ../../config.h alsa2-output.o: alsa2-output.c ../../config.h dsound-output.o: dsound-output.c ../../config.h -esd-output.o: esd-output.c ../../config.h ../i18n.h ../driver-out.h \ - ../driver.h ../preferences.h ../mixer.h ../errors.h \ - ../gui-subs.h +dummy-drivers.o: dummy-drivers.c ../../config.h ../i18n.h ../driver-in.h \ + ../driver.h ../preferences.h ../driver-out.h +esd-output.o: esd-output.c ../../config.h file-output.o: file-output.c ../../config.h ../i18n.h ../driver-out.h \ ../driver.h ../preferences.h ../mixer.h ../errors.h \ ../gui-subs.h +irix-output.o: irix-output.c ../../config.h oss-input.o: oss-input.c ../../config.h ../i18n.h ../driver-in.h \ ../driver.h ../preferences.h ../mixer.h ../errors.h \ ../gui-subs.h diff -urN soundtracker-0.5.8/app/drivers/dummy-drivers.c soundtracker-0.5.9/app/drivers/dummy-drivers.c --- soundtracker-0.5.8/app/drivers/dummy-drivers.c Thu Jan 1 01:00:00 1970 +++ soundtracker-0.5.9/app/drivers/dummy-drivers.c Sun Sep 24 18:19:39 2000 @@ -0,0 +1,109 @@ + +/* + * The Real SoundTracker - Dummy drivers + * + * Copyright (C) 2000 Michael Krause + * + * 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. + */ + +#include + +#include + +#include "i18n.h" +#include "driver-in.h" +#include "driver-out.h" + +typedef struct dummy_driver { + GtkWidget *configwidget; +} dummy_driver; + +static void +dummy_make_config_widgets (dummy_driver *d) +{ + GtkWidget *thing, *mainbox; + + d->configwidget = mainbox = gtk_vbox_new(FALSE, 2); + + thing = gtk_label_new(_("No driver available for your system.")); + gtk_box_pack_start(GTK_BOX(mainbox), thing, FALSE, TRUE, 0); + gtk_widget_show(thing); +} + +static GtkWidget * +dummy_getwidget (void *dp) +{ + dummy_driver * const d = dp; + + return d->configwidget; +} + +static void * +dummy_new (void) +{ + dummy_driver *d = g_new(dummy_driver, 1); + + dummy_make_config_widgets(d); + + return d; +} + +static void +dummy_destroy (void *dp) +{ + dummy_driver * const d = dp; + + gtk_widget_destroy(d->configwidget); + g_free(dp); +} + +static void +dummy_release (void *dp) +{ +} + +static gboolean +dummy_open (void *dp) +{ + return FALSE; +} + +st_out_driver driver_out_dummy = { + { "No Output", + + dummy_new, + dummy_destroy, + + dummy_open, + dummy_release, + + dummy_getwidget, + }, +}; + +st_out_driver driver_in_dummy = { + { "No Input", + + dummy_new, + dummy_destroy, + + dummy_open, + dummy_release, + + dummy_getwidget, + }, +}; + diff -urN soundtracker-0.5.8/app/drivers/irix-output.c soundtracker-0.5.9/app/drivers/irix-output.c --- soundtracker-0.5.8/app/drivers/irix-output.c Thu Jan 1 01:00:00 1970 +++ soundtracker-0.5.9/app/drivers/irix-output.c Sun Sep 24 22:50:08 2000 @@ -0,0 +1,243 @@ + +/* + * The Real SoundTracker - IRIX 5.x (output) driver. + * + * Copyright (C) 2000 Michael Krause + * Inspired by libmikmod's drv_sgi.c + * + * 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. + */ + +#include + +#if DRIVER_SGI + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "i18n.h" +#include "driver-out.h" +#include "mixer.h" +#include "errors.h" +#include "gui-subs.h" +#include "preferences.h" + +#define DEFAULT_SGI_FRAGSIZE 2048 + +typedef struct irix_driver { + GtkWidget *configwidget; + GMutex *configmutex; + + ALconfig sgi_config; + ALport sgi_port; + int sample_factor; + int sgi_fragsize; + int sgi_bufsize; + char *audiobuffer; + + gboolean firstpoll; + gpointer polltag; + double outtime; + double playtime; +} irix_driver; + +static void +irix_poll_ready_playing (gpointer data, + gint source, + GdkInputCondition condition) +{ + irix_driver * const d = data; + struct timeval tv; + + if(!d->firstpoll) { + alWriteFrames(d->sgi_port, d->audiobuffer, d->sgi_fragsize); + + if(1) { + gettimeofday(&tv, NULL); + d->outtime = tv.tv_sec + tv.tv_usec / 1e6; + d->playtime += (double) d->sgi_fragsize / 48000; + } + } + + d->firstpoll = FALSE; + + audio_mix(d->audiobuffer, d->sgi_fragsize, 48000, ST_MIXER_FORMAT_S16_BE | ST_MIXER_FORMAT_STEREO); +} + +static void +irix_make_config_widgets (irix_driver *d) +{ + GtkWidget *thing, *mainbox; + + d->configwidget = mainbox = gtk_vbox_new(FALSE, 2); + + thing = gtk_label_new(_("no settings (yet), sorry!")); + gtk_box_pack_start(GTK_BOX(mainbox), thing, FALSE, TRUE, 0); + gtk_widget_show(thing); +} + +static GtkWidget * +irix_getwidget (void *dp) +{ + irix_driver * const d = dp; + + return d->configwidget; +} + +static void * +irix_new (void) +{ + irix_driver *d = g_new(irix_driver, 1); + + d->configmutex = g_mutex_new(); + + d->sgi_fragsize = DEFAULT_SGI_FRAGSIZE; + d->audiobuffer = NULL; + d->polltag = NULL; + + irix_make_config_widgets(d); + + return d; +} + +static void +irix_destroy (void *dp) +{ + irix_driver * const d = dp; + + gtk_widget_destroy(d->configwidget); + g_mutex_free(d->configmutex); + + g_free(dp); +} + +static void +irix_release (void *dp) +{ + irix_driver * const d = dp; + + audio_poll_remove(d->polltag); + d->polltag = NULL; + + if(d->sgi_port) { + alClosePort(d->sgi_port); + d->sgi_port = NULL; + } + + if(d->sgi_config) { + alFreeConfig(d->sgi_config); + d->sgi_config = NULL; + } + + if(d->audiobuffer) { + free(d->audiobuffer); + d->audiobuffer = NULL; + } +} + +static gboolean +irix_open (void *dp) +{ + irix_driver * const d = dp; + + long chpars[] = { AL_OUTPUT_RATE, AL_RATE_48000 }; + + ALseterrorhandler(0); + ALsetparams(AL_DEFAULT_DEVICE, chpars, 2); + + if(!(d->sgi_config = ALnewconfig())) { + error_error("ALnewconfig() failed."); + goto out; + } + + if(ALsetwidth(d->sgi_config, AL_SAMPLE_16) < 0) { + error_error("16 Bit output not supported."); + goto out; + } + d->sample_factor = 1; + + if(ALsetchannels(d->sgi_config, AL_STEREO) < 0) { + error_error("Stereo output not supported."); + goto out; + } + + d->sgi_bufsize = d->sgi_fragsize * 2 * 2; // stereo, 16 bit + + alSetQueueSize(d->sgi_config, d->sgi_fragsize); + if(!(d->sgi_port = ALopenport("soundtracker", "w", d->sgi_config))) { + error_error("Couldn't open audio port."); + goto out; + } + + if(!(d->audiobuffer = calloc(1, d->sgi_bufsize))) + goto out; + + alSetFillPoint(d->sgi_port, d->sgi_fragsize / 2); + d->polltag = audio_poll_add(alGetFD(d->sgi_port), GDK_INPUT_WRITE, + irix_poll_ready_playing, d); + d->firstpoll = FALSE; + d->outtime = 0.0; + d->playtime = 0.0; + return TRUE; + + out: + irix_release(dp); + return FALSE; +} + +static double +irix_get_play_time (void *dp) +{ + irix_driver * const d = dp; + + if(1) { + struct timeval tv; + double curtime; + + gettimeofday(&tv, NULL); + curtime = tv.tv_sec + tv.tv_usec / 1e6; + + return d->playtime + curtime - d->outtime; + } +} + +st_out_driver driver_out_irix = { + { "IRIX Output", + + irix_new, + irix_destroy, + + irix_open, + irix_release, + + irix_getwidget, + }, + + irix_get_play_time, +}; + +#endif /* DRIVER_IRIX */ diff -urN soundtracker-0.5.8/app/endian-conv.c soundtracker-0.5.9/app/endian-conv.c --- soundtracker-0.5.8/app/endian-conv.c Thu Jan 1 01:00:00 1970 +++ soundtracker-0.5.9/app/endian-conv.c Mon Sep 25 12:05:51 2000 @@ -0,0 +1,50 @@ + +/* + * The Real SoundTracker - Endianness conversion + * + * Copyright (C) 1998-2000 Michael Krause + * + * 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. + */ + +#include + +#include "endian-conv.h" + +void +le_16_array_to_host_order (gint16 *data, + int count) +{ +#ifdef WORDS_BIGENDIAN + for(; count; count--, data++) { + gint8 *p = (gint8*)data; + gint8 a = p[0]; + p[0] = p[1]; + p[1] = a; + } +#endif +} + +void +byteswap_16_array (gint16 *data, + int count) +{ + for(; count; count--, data++) { + gint8 *p = (gint8*)data; + gint8 a = p[0]; + p[0] = p[1]; + p[1] = a; + } +} diff -urN soundtracker-0.5.8/app/endian-conv.h soundtracker-0.5.9/app/endian-conv.h --- soundtracker-0.5.8/app/endian-conv.h Tue Aug 15 12:09:48 2000 +++ soundtracker-0.5.9/app/endian-conv.h Mon Sep 25 12:06:21 2000 @@ -24,6 +24,8 @@ #include +#include + static inline guint32 get_le_32 (guint8 *src) { diff -urN soundtracker-0.5.8/app/gui.c soundtracker-0.5.9/app/gui.c --- soundtracker-0.5.8/app/gui.c Mon Sep 18 18:26:33 2000 +++ soundtracker-0.5.9/app/gui.c Mon Sep 25 12:26:58 2000 @@ -986,17 +986,23 @@ } void -gui_play_note_full (int channel, - int note, +gui_play_note_full (unsigned channel, + unsigned note, STSample *sample, - int offset) + guint32 offset, + guint32 count) { + int x; audio_ctlpipe_id a = AUDIO_CTLPIPE_PLAY_NOTE_FULL; + + g_assert(sizeof(int) == sizeof(unsigned)); + write(audio_ctlpipe, &a, sizeof(a)); write(audio_ctlpipe, &channel, sizeof(channel)); write(audio_ctlpipe, ¬e, sizeof(note)); write(audio_ctlpipe, &sample, sizeof(sample)); - write(audio_ctlpipe, &offset, sizeof(offset)); + x = offset; write(audio_ctlpipe, &x, sizeof(x)); + x = count; write(audio_ctlpipe, &x, sizeof(x)); gui_ewc_startstop++; } diff -urN soundtracker-0.5.8/app/gui.h soundtracker-0.5.9/app/gui.h --- soundtracker-0.5.8/app/gui.h Wed May 10 16:27:23 2000 +++ soundtracker-0.5.9/app/gui.h Mon Sep 25 12:16:31 2000 @@ -67,10 +67,11 @@ void gui_play_note (int channel, int note); -void gui_play_note_full (int channel, - int note, +void gui_play_note_full (unsigned channel, + unsigned note, struct STSample *sample, - int offset); + guint32 offset, + guint32 count); void gui_play_note_keyoff (int channel); void gui_play_stop (void); diff -urN soundtracker-0.5.8/app/main.c soundtracker-0.5.9/app/main.c --- soundtracker-0.5.8/app/main.c Tue Sep 19 17:57:55 2000 +++ soundtracker-0.5.9/app/main.c Sun Sep 24 18:22:43 2000 @@ -62,7 +62,10 @@ char *argv[]) { extern void - driver_out_oss, driver_in_oss, + driver_out_dummy, driver_in_dummy, +#ifdef DRIVER_OSS + driver_out_oss, driver_in_oss, +#endif #ifdef DRIVER_ALSA driver_out_alsa, driver_in_alsa, #endif @@ -72,6 +75,9 @@ #ifdef DRIVER_ESD driver_out_esd, #endif +#ifdef DRIVER_SGI + driver_out_irix, +#endif #ifndef NO_AUDIOFILE // driver_out_file, #endif @@ -81,9 +87,7 @@ #if defined(_WIN32) driver_out_dsound, #endif -#if defined(__i386__) && !defined(NO_GASP) - mixer_kb_x86, -#endif + mixer_kbfloat, mixer_integer32; @@ -113,11 +117,8 @@ audio_ctlpipe = pipea[1]; audio_backpipe = pipeb[0]; -#if defined(__i386__) && !defined(NO_GASP) mixers = g_list_append(mixers, - &mixer_kb_x86); -#endif - + &mixer_kbfloat); mixers = g_list_append(mixers, &mixer_integer32); @@ -152,6 +153,11 @@ &driver_out_esd); #endif +#ifdef DRIVER_SGI + drivers[DRIVER_OUTPUT] = g_list_append(drivers[DRIVER_OUTPUT], + &driver_out_irix); +#endif + #ifdef _WIN32 drivers[DRIVER_OUTPUT] = g_list_append(drivers[DRIVER_OUTPUT], &driver_out_dsound); @@ -168,8 +174,12 @@ #endif if(g_list_length(drivers[DRIVER_OUTPUT]) == 0) { - fprintf(stderr, "Sorry, there's no output driver for your OS. Stopping."); - exit(1); + drivers[DRIVER_OUTPUT] = g_list_append(drivers[DRIVER_OUTPUT], + &driver_out_dummy); + } + if(g_list_length(drivers[DRIVER_INPUT]) == 0) { + drivers[DRIVER_INPUT] = g_list_append(drivers[DRIVER_INPUT], + &driver_in_dummy); } g_assert(g_list_length(mixers) >= 1); diff -urN soundtracker-0.5.8/app/midi-settings.c soundtracker-0.5.9/app/midi-settings.c --- soundtracker-0.5.8/app/midi-settings.c Tue Sep 19 16:35:27 2000 +++ soundtracker-0.5.9/app/midi-settings.c Sun Sep 24 18:29:24 2000 @@ -1,3 +1,4 @@ + /* * Copyright (C) 2000 Luc Tanguay * Copyright (C) 1998-2000 Michael Krause @@ -89,12 +90,11 @@ midi_load_config (void) { char buf[256]; - FILE *f; - + prefs_node *f; sprintf(buf, "%s/midi", prefs_get_prefsdir()); - f = fopen(buf, "rb"); + f = prefs_open_read("midi"); if (f) { prefs_get_int(f, "input-client", &midi_settings.input_client); @@ -105,7 +105,7 @@ prefs_get_int(f, "input-volume-enabled", &midi_settings.volume_enabled); - fclose(f); + prefs_close(f); } } /* midi_load_config() */ @@ -118,13 +118,9 @@ midi_save_config (void) { char buf[256]; - FILE *f; - + prefs_node *f; - prefs_check_prefs_dir(); - sprintf(buf, "%s/midi", prefs_get_prefsdir()); - - f = fopen(buf, "wb"); + f = prefs_open_write("midi"); if(!f) return; @@ -133,7 +129,7 @@ prefs_put_int(f, "input-channel-enabled", midi_settings.channel_enabled); prefs_put_int(f, "input-volume-enabled", midi_settings.volume_enabled); - fclose(f); + prefs_close(f); } /* midi_save_config() */ @@ -273,7 +269,7 @@ } break; - case MIDI_SETTINGS_OUTPUT_PAGE:break; + case MIDI_SETTINGS_OUTPUT_PAGE: break; default: diff -urN soundtracker-0.5.8/app/mixer.h soundtracker-0.5.9/app/mixer.h --- soundtracker-0.5.8/app/mixer.h Sat Mar 25 10:55:39 2000 +++ soundtracker-0.5.9/app/mixer.h Mon Sep 25 13:34:08 2000 @@ -25,11 +25,11 @@ #include typedef struct st_mixer_sample_info { - guint32 looptype; /* see ST_MIXER_SAMPLE_LOOPTYPE_ defines below */ + guint32 looptype; /* see ST_MIXER_SAMPLE_LOOPTYPE_ defines below */ guint32 length; /* length in samples, not in bytes */ guint32 loopstart; /* offset in samples, not in bytes */ guint32 loopend; /* offset to first sample not being played */ - void *data; /* pointer to sample data */ + gint16 *data; /* pointer to sample data */ GMutex *lock; } st_mixer_sample_info; @@ -79,6 +79,9 @@ /* set curent sample play position */ void (*setsmplpos) (int channel, guint32 offset); + + /* set curent sample play end position */ + void (*setsmplend) (int channel, guint32 offset); /* set replay frequency (Hz) */ void (*setfreq) (int channel, float frequency); diff -urN soundtracker-0.5.8/app/mixers/Makefile.am soundtracker-0.5.9/app/mixers/Makefile.am --- soundtracker-0.5.8/app/mixers/Makefile.am Tue Sep 19 17:55:49 2000 +++ soundtracker-0.5.9/app/mixers/Makefile.am Sun Sep 24 19:26:33 2000 @@ -2,17 +2,26 @@ kb-x86-asm-built.S: kb-x86-asm.S gasp kb-x86-asm.S > kb-x86-asm-built.S -EXTRA_DIST = kb-x86-asm.S kb-x86-asmIntel.a +EXTRA_DIST = kb-x86-asm.S kb-x86-asmIntel.a \ + integer32.c integer32-asm.S integer32-asm.h noinst_LIBRARIES = libmixers.a +if NO_ASM +MIXERSOURCES = \ + integer32.c \ + kb-x86.c kbfloat-mix.c kb-x86-asm.h +else if GASP_IS_THERE MIXERSOURCES = \ integer32.c integer32-asm.S integer32-asm.h \ - kb-x86.c kb-x86-asm-built.S kb-x86-asm.h + kb-x86.c kbfloat-mix.c kb-x86-asm.h kb-x86-asm-built.S else MIXERSOURCES = \ - integer32.c integer32-asm.S integer32-asm.h + integer32.c integer32-asm.S integer32-asm.h \ + kb-x86.c kbfloat-mix.c kb-x86-asm.h +endif + endif libmixers_a_SOURCES = $(MIXERSOURCES) diff -urN soundtracker-0.5.8/app/mixers/Makefile.in soundtracker-0.5.9/app/mixers/Makefile.in --- soundtracker-0.5.8/app/mixers/Makefile.in Tue Sep 19 18:20:33 2000 +++ soundtracker-0.5.9/app/mixers/Makefile.in Mon Sep 25 15:07:59 2000 @@ -95,11 +95,13 @@ l = @l@ sedpath = @sedpath@ -EXTRA_DIST = kb-x86-asm.S kb-x86-asmIntel.a +EXTRA_DIST = kb-x86-asm.S kb-x86-asmIntel.a integer32.c integer32-asm.S integer32-asm.h + noinst_LIBRARIES = libmixers.a -@GASP_IS_THERE_TRUE@MIXERSOURCES = integer32.c integer32-asm.S integer32-asm.h kb-x86.c kb-x86-asm-built.S kb-x86-asm.h -@GASP_IS_THERE_FALSE@MIXERSOURCES = integer32.c integer32-asm.S integer32-asm.h +@NO_ASM_TRUE@MIXERSOURCES = integer32.c kb-x86.c kbfloat-mix.c kb-x86-asm.h +@NO_ASM_FALSE@@GASP_IS_THERE_TRUE@MIXERSOURCES = integer32.c integer32-asm.S integer32-asm.h kb-x86.c kbfloat-mix.c kb-x86-asm.h kb-x86-asm-built.S +@NO_ASM_FALSE@@GASP_IS_THERE_FALSE@MIXERSOURCES = integer32.c integer32-asm.S integer32-asm.h kb-x86.c kbfloat-mix.c kb-x86-asm.h libmixers_a_SOURCES = $(MIXERSOURCES) @@ -115,9 +117,16 @@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libmixers_a_LIBADD = -@GASP_IS_THERE_TRUE@libmixers_a_OBJECTS = integer32.o integer32-asm.o \ -@GASP_IS_THERE_TRUE@kb-x86.o kb-x86-asm-built.o -@GASP_IS_THERE_FALSE@libmixers_a_OBJECTS = integer32.o integer32-asm.o +@GASP_IS_THERE_TRUE@@NO_ASM_TRUE@libmixers_a_OBJECTS = integer32.o \ +@GASP_IS_THERE_TRUE@@NO_ASM_TRUE@kb-x86.o kbfloat-mix.o +@GASP_IS_THERE_TRUE@@NO_ASM_FALSE@libmixers_a_OBJECTS = integer32.o \ +@GASP_IS_THERE_TRUE@@NO_ASM_FALSE@integer32-asm.o kb-x86.o \ +@GASP_IS_THERE_TRUE@@NO_ASM_FALSE@kbfloat-mix.o kb-x86-asm-built.o +@GASP_IS_THERE_FALSE@@NO_ASM_TRUE@libmixers_a_OBJECTS = integer32.o \ +@GASP_IS_THERE_FALSE@@NO_ASM_TRUE@kb-x86.o kbfloat-mix.o +@GASP_IS_THERE_FALSE@@NO_ASM_FALSE@libmixers_a_OBJECTS = integer32.o \ +@GASP_IS_THERE_FALSE@@NO_ASM_FALSE@integer32-asm.o kb-x86.o \ +@GASP_IS_THERE_FALSE@@NO_ASM_FALSE@kbfloat-mix.o AR = ar CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -224,6 +233,7 @@ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook integer32.o: integer32.c ../../config.h ../mixer.h integer32-asm.h kb-x86.o: kb-x86.c ../../config.h ../mixer.h kb-x86-asm.h +kbfloat-mix.o: kbfloat-mix.c ../../config.h kb-x86-asm.h info-am: info: info-am diff -urN soundtracker-0.5.8/app/mixers/integer32.c soundtracker-0.5.9/app/mixers/integer32.c --- soundtracker-0.5.8/app/mixers/integer32.c Mon Mar 27 14:06:36 2000 +++ soundtracker-0.5.9/app/mixers/integer32.c Mon Sep 25 12:56:45 2000 @@ -28,7 +28,13 @@ #include "mixer.h" -#if defined(__i386__) +#if defined(__i386__) && !defined(NO_ASM) +#define MIX_ASM 1 +#else +#undef MIX_ASM +#endif + +#ifdef MIX_ASM #include "integer32-asm.h" #endif @@ -42,6 +48,7 @@ void *data; /* copy of sample->data */ guint32 length; /* length of sample (converted) */ + guint32 playend; /* for a forced premature end of the sample */ int running; /* this channel is active */ guint32 current; /* current playback position in sample (converted) */ @@ -150,6 +157,7 @@ c->sample = s; c->data = s->data; c->length = MIN(s->length, MAX_SAMPLE_LENGTH) << ACCURACY; + c->playend = 0; c->running = 1; c->speed = 1; c->current = 0; @@ -182,6 +190,17 @@ } static void +integer32_setsmplend (int channel, + guint32 offset) +{ + integer32_channel *c = &channels[channel]; + + if(c->current != 0 || offset < c->length >> ACCURACY) { + c->playend = MIN(offset, MAX_SAMPLE_LENGTH) << ACCURACY; + } +} + +static void integer32_setfreq (int channel, float frequency) { @@ -231,7 +250,7 @@ int vl = 0; int vr = 0; gint16 *data; -#if !defined(__i386__) +#ifndef MIX_ASM int s, val; #endif @@ -262,7 +281,7 @@ while(t) { /* Check how much of the sample we can fill in one run */ - if(c->loopflags) { + if(c->loopflags && c->playend == 0) { looplen = c->loopend - c->loopstart; g_assert(looplen > 0); if(c->loopflags == ST_MIXER_SAMPLE_LOOPTYPE_AMIGA) { @@ -298,7 +317,7 @@ g_assert(offs2end >= 0); done = offs2end / c->speed + 1; } else /* if(c->loopflags == LOOP_NO) */ { - done = (c->length - c->current) / c->speed; + done = ((c->playend ? c->playend : c->length) - c->current) / c->speed; if(!done) { c->running = 0; break; @@ -322,7 +341,7 @@ data = c->data; if(scopebufs) { if(stereo) { -#if defined(__i386__) +#ifdef MIX_ASM j = mixerasm_stereo_16_scopes(c->current, c->speed * c->direction, data, m, scopedata, v, vl, vr, @@ -339,7 +358,7 @@ } #endif } else { -#if defined(__i386__) +#ifdef MIX_ASM j = mixerasm_mono_16_scopes(c->current, c->speed * c->direction, data, m, scopedata, v, @@ -359,7 +378,7 @@ if(stereo) { vl *= v; vr *= v; -#if defined(__i386__) +#ifdef MIX_ASM j = mixerasm_stereo_16(c->current, c->speed * c->direction, data, m, vl, vr, @@ -375,7 +394,7 @@ } #endif } else { -#if defined(__i386__) +#ifdef MIX_ASM j = mixerasm_mono_16(c->current, c->speed * c->direction, data, m, v, @@ -436,7 +455,7 @@ st_mixer mixer_integer32 = { "integer32", - "Basic 32bit integers mixer, no interpolation", + "Integers mixer, no interpolation, no filters, maximum sample length 1M", integer32_setnumch, integer32_updatesample, @@ -449,6 +468,7 @@ integer32_startnote, integer32_stopnote, integer32_setsmplpos, + integer32_setsmplend, integer32_setfreq, integer32_setvolume, integer32_setpanning, diff -urN soundtracker-0.5.8/app/mixers/kb-x86-asm.S soundtracker-0.5.9/app/mixers/kb-x86-asm.S --- soundtracker-0.5.8/app/mixers/kb-x86-asm.S Sun Apr 9 20:56:01 2000 +++ soundtracker-0.5.9/app/mixers/kb-x86-asm.S Sun Sep 24 14:50:51 2000 @@ -3,6 +3,8 @@ * The Real SoundTracker - Cubically interpolating mixing routines * with IT style filter support * + * Highly optimized i386 version. + * * Copyright (C) 1999-2000 Tammo Hinrichs * Copyright (C) 2000 Michael Krause * @@ -51,20 +53,6 @@ .text -.globl kbasm_prepare_mixer -kbasm_prepare_mixer: - pushl %ebp - movl %esp,%ebp - - pushl %eax - - // nothing happening here right now... - - popl %eax - - leave - ret - .globl kbasm_post_mixing kbasm_post_mixing: pushl %ebp @@ -78,10 +66,11 @@ finit - movl kb_x86_outbuf,%edi - movl kb_x86_tempbuf,%esi - movl kb_x86_nsamples,%ecx - addl %ecx,%ecx // stereo + movl 8(%ebp),%esi + movl 12(%ebp),%edi + movl 16(%ebp),%ecx + addl %ecx,%ecx // stereo + flds 20(%ebp) // amp call clipstereo @@ -95,7 +84,6 @@ ret clipstereo: // convert/clip samples, 16bit signed - flds kb_x86_amplification flds clampmin // (min) (amp) flds clampmax // (max) (min) (amp) movw $32767,%bx @@ -285,11 +273,9 @@ .AIF \SCOPES EQ 1 !! Scopes - fld %st(0) !! (val) (val) (vr) (vl) - fmul %st(2),%st !! (val*vr) (val) (vr) (vl) - fld %st(1) !! (val) (val*vr) (val) (vr) (vl) - fmul %st(4),%st !! (val*vl) (val*vr) (val) (vr) (vl) - faddp %st,%st(1) !! (val*vl + val*vr) (val) (vr) (vl) + fld %st(1) !! (vr) (val) (vr) (vl) + fadd %st(3) !! (vr + vl) (val) (vr) (vl) + fmul %st(1),%st !! (val * (vr + vl)) (val) (vr) (vl) fistp (%esp) !! (val) (vr) (vl) lea 2(%esp),%esp .AENDI diff -urN soundtracker-0.5.8/app/mixers/kb-x86-asm.h soundtracker-0.5.9/app/mixers/kb-x86-asm.h --- soundtracker-0.5.8/app/mixers/kb-x86-asm.h Sun Apr 9 20:54:35 2000 +++ soundtracker-0.5.9/app/mixers/kb-x86-asm.h Sun Sep 24 14:34:49 2000 @@ -25,8 +25,8 @@ #include -gboolean kbasm_post_mixing (void); // returns "clipped" flag -void kbasm_mix_channel (void *channel_data); // 8 +/* The numbers at the end of the lines are structure field offsets on + 32-bit machines: */ typedef struct kb_x86_mixer_data { float volleft; // left volume (1.0=normal) 0 @@ -35,7 +35,7 @@ float volrampr; // right volramp (dvol/sample) 12 gint16 *positioni; // pointer to sample data 16 guint32 positionf; // fractional part of pointer 20 - guint32 freqi; // integer part of delta 24 + gint32 freqi; // integer part of delta 24 guint32 freqf; // fractional part of delta 28 float *mixbuffer; // pointer to destination buffer 32 guint32 numsamples; // number of samples to render 36 @@ -53,13 +53,12 @@ #define KB_X86_MIXER_FLAGS_SCOPES (1 << 4) #define KB_X86_MIXER_FLAGS_VOLRAMP (1 << 5) -void kbasm_mix (kb_x86_mixer_data *data); // 8 +void kbasm_mix (kb_x86_mixer_data *data); -extern guint32 *kb_x86_tempbuf; -extern gint16 *kb_x86_outbuf; -extern guint32 kb_x86_nsamples; - -extern float kb_x86_amplification; +gboolean kbasm_post_mixing (float *mixbuffer, + gint16 *outbuffer, + unsigned numsamples, + float amplification); extern float kb_x86_ct0[256]; extern float kb_x86_ct1[256]; diff -urN soundtracker-0.5.8/app/mixers/kb-x86.c soundtracker-0.5.9/app/mixers/kb-x86.c --- soundtracker-0.5.8/app/mixers/kb-x86.c Sun Apr 9 21:00:25 2000 +++ soundtracker-0.5.9/app/mixers/kb-x86.c Mon Sep 25 13:03:55 2000 @@ -5,7 +5,9 @@ * * Copyright (C) 2000 Michael Krause * Copyright (C) 1999-2000 Tammo Hinrichs - * + + * Despite its name, this mixer can run on every platform. + * 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 @@ -23,8 +25,6 @@ #include -#if defined(__i386__) - #include #include #include @@ -36,14 +36,10 @@ static int num_channels, mixfreq; static int clipflag; +static float *kb_x86_tempbuf = NULL; static int kb_x86_tempbufsize = 0; -static gint16 *kb_x86_scopebuf = NULL; -guint32 *kb_x86_tempbuf = NULL; -gint16 *kb_x86_outbuf; -guint32 kb_x86_nsamples; - -float kb_x86_amplification = 0.25; +static float kb_x86_amplification = 0.25; float kb_x86_ct0[256]; float kb_x86_ct1[256]; @@ -53,13 +49,15 @@ typedef struct kb_x86_channel { st_mixer_sample_info *sample; - void *data; + void *data; // for updatesample() to see if sample has changed int looptype; guint32 length; + guint32 flags; // see below float volume; // 0.0 ... 1.0 float panning; // 0.0 ... 1.0 int direction; // +1 for forward, -1 for backward + guint32 playend; // for a forced premature end of the sample float volleft; // left volume (1.0 = no change) float volright; // rite volume (1.0 = no change) @@ -81,18 +79,19 @@ float fb1; // filter bp buffer } kb_x86_channel; -#define KB_X86_FLAG_LOOP_UNIDIRECTIONAL 1 -#define KB_X86_FLAG_LOOP_BIDIRECTIONAL 2 -#define KB_X86_FLAG_SAMPLE_RUNNING 4 -#define KB_X86_FLAG_JUST_STARTED 8 -#define KB_X86_FLAG_UPPER_ACTIVE 16 -#define KB_X86_FLAG_STOP_AFTER_VOLRAMP 32 -#define KB_X86_FLAG_DO_SAMPLE_START_DECLICK 64 +#define KB_FLAG_LOOP_UNIDIRECTIONAL 1 +#define KB_FLAG_LOOP_BIDIRECTIONAL 2 +#define KB_FLAG_SAMPLE_RUNNING 4 +#define KB_FLAG_JUST_STARTED 8 +#define KB_FLAG_UPPER_ACTIVE 16 +#define KB_FLAG_STOP_AFTER_VOLRAMP 32 +#define KB_FLAG_DO_SAMPLE_START_DECLICK 64 -// The asm code can theoretically handle 256 voices +// This is an artificial limit. The code can do more channels. static kb_x86_channel channels[2 * 32]; -#define KB_X86_SAMPLE_PADDING 3 // number of samples the mixer needs after the one pointed to by smpposw +// Number of samples the mixer needs in advance +#define KB_X86_SAMPLE_PADDING 3 // A ramp from 32768 to 0 should take RAMP_MAX_DURATION seconds #define RAMP_MAX_DURATION 0.001 @@ -117,7 +116,7 @@ of the volume ramp, we need to store the kb_x86_channel data blocks of both the old channel and the new channel. Because of this, our channels[] array is twice as large, and in the lower copy, the - KB_X86_FLAG_UPPER_ACTIVE flag is active when the upper copy is the + KB_FLAG_UPPER_ACTIVE flag is active when the upper copy is the one with the currently running main sample and the lower copy is only the fading out old sample. @@ -129,7 +128,7 @@ { kb_x86_channel *c = &channels[channel]; - if(c->flags & KB_X86_FLAG_UPPER_ACTIVE) { + if(c->flags & KB_FLAG_UPPER_ACTIVE) { c = &channels[channel + 32]; } @@ -145,14 +144,14 @@ for(i = 0; i < 2 * 32; i++) { c = &channels[i]; - if(c->sample != si || !(c->flags & KB_X86_FLAG_SAMPLE_RUNNING)) { + if(c->sample != si || !(c->flags & KB_FLAG_SAMPLE_RUNNING)) { continue; } if(c->data != si->data || c->length != si->length || c->looptype != si->looptype) { - c->flags &= ~KB_X86_FLAG_SAMPLE_RUNNING; + c->flags &= ~KB_FLAG_SAMPLE_RUNNING; continue; } @@ -232,7 +231,7 @@ { kb_x86_channel *c = kb_x86_get_channel_struct(channel); - c->flags &= KB_X86_FLAG_UPPER_ACTIVE; + c->flags &= KB_FLAG_UPPER_ACTIVE; c->sample = s; @@ -243,10 +242,11 @@ c->positionw = 0; c->positionf = 0; + c->playend = 0; if(s->looptype == ST_MIXER_SAMPLE_LOOPTYPE_AMIGA) { - c->flags |= KB_X86_FLAG_LOOP_UNIDIRECTIONAL; + c->flags |= KB_FLAG_LOOP_UNIDIRECTIONAL; } else if(s->looptype == ST_MIXER_SAMPLE_LOOPTYPE_PINGPONG) { - c->flags |= KB_X86_FLAG_LOOP_BIDIRECTIONAL; + c->flags |= KB_FLAG_LOOP_BIDIRECTIONAL; } c->direction = 1; c->ramp_num_samples = 0; @@ -254,7 +254,7 @@ c->ffreq = 1.0; c->fl1 = 0.0; c->fb1 = 0.0; - c->flags |= KB_X86_FLAG_SAMPLE_RUNNING | KB_X86_FLAG_JUST_STARTED; + c->flags |= KB_FLAG_SAMPLE_RUNNING | KB_FLAG_JUST_STARTED; } static void @@ -263,16 +263,16 @@ kb_x86_channel *c = &channels[channel]; kb_x86_channel *current_used_chan = kb_x86_get_channel_struct(channel); - if(current_used_chan->flags & KB_X86_FLAG_SAMPLE_RUNNING) { + if(current_used_chan->flags & KB_FLAG_SAMPLE_RUNNING) { if(current_used_chan != c) { - c->flags &= ~KB_X86_FLAG_UPPER_ACTIVE; + c->flags &= ~KB_FLAG_UPPER_ACTIVE; } else { - c->flags |= KB_X86_FLAG_UPPER_ACTIVE; + c->flags |= KB_FLAG_UPPER_ACTIVE; } c = current_used_chan; - c->flags |= KB_X86_FLAG_STOP_AFTER_VOLRAMP; + c->flags |= KB_FLAG_STOP_AFTER_VOLRAMP; c->ramp_num_samples = RAMP_MAX_DURATION * mixfreq; if(c->ramp_num_samples == 0) { @@ -297,12 +297,26 @@ c->positionf = 0; c->direction = 1; - if(c->flags & KB_X86_FLAG_JUST_STARTED && offset > 0) { + if(c->flags & KB_FLAG_JUST_STARTED && offset > 0) { /* User has used 9xx command - declick sample start */ - c->flags |= KB_X86_FLAG_DO_SAMPLE_START_DECLICK; + c->flags |= KB_FLAG_DO_SAMPLE_START_DECLICK; } } else { - c->flags &= KB_X86_FLAG_UPPER_ACTIVE; + c->flags &= KB_FLAG_UPPER_ACTIVE; + } + } +} + +static void +kb_x86_setsmplend (int channel, + guint32 offset) +{ + kb_x86_channel *c = kb_x86_get_channel_struct(channel); + + if(c->sample && c->flags != 0) { + if(c->positionw != 0 || offset < c->sample->length) { + // only end if the selection is not the whole sample + c->playend = offset; } } } @@ -327,7 +341,7 @@ g_assert(c->rampdestleft >= 0.0 && c->rampdestleft <= 1.0); g_assert(c->rampdestright >= 0.0 && c->rampdestright <= 1.0); - if(c->flags & KB_X86_FLAG_JUST_STARTED) { + if(c->flags & KB_FLAG_JUST_STARTED) { c->volleft = c->rampdestleft; c->volright = c->rampdestright; } else { @@ -421,31 +435,23 @@ static guint32 kb_x86_mix_sub (kb_x86_channel *ch, - gboolean loopit, - gboolean gonnapingpong, guint32 num_samples_left, - gboolean volramping) + gboolean volramping, + float *mixbuf, + gint16 *scopebuf) { kb_x86_mixer_data md; - /* This routine has not yet been optimized. It contains a lot of - ugly 64 bit arithmetic that could probably be rewritten to use - 32 bits only and thus be faster. It still contains a lot of - assertions that make it even slower. But the running time of - this routine is only relevant for short loops where it is - called very often. - - As far as the 64bits arithmetic is concerned, gcc actually - compiles this quite well for the i386. The only real drawback - is the 64bits division, since gcc has to call external library - routines for this. */ + const gboolean loopit = (ch->playend == 0) && + (ch->flags & (KB_FLAG_LOOP_UNIDIRECTIONAL | KB_FLAG_LOOP_BIDIRECTIONAL)); + const gboolean gonnapingpong = loopit && (ch->flags & KB_FLAG_LOOP_BIDIRECTIONAL); - const gint32 ende = loopit ? ch->sample->loopend : ch->sample->length; - const gint64 ende64 = (guint64)ende << 32; const gint64 lstart64 = ((guint64)ch->sample->loopstart) << 32; const gint32 pos = ch->positionw; const gint64 freq64 = (((guint64)ch->freqw) << 32) + (guint64)ch->freqf; const gint64 pos64 = ((guint64)(ch->positionw) << 32) + (guint64)ch->positionf; + const gint32 ende = (ch->playend != 0) ? (ch->playend) : (loopit ? ch->sample->loopend : ch->length); + const gint64 ende64 = (guint64)ende << 32; int num_samples; @@ -464,12 +470,12 @@ md.freqi = ch->freqw; md.freqf = ch->freqf; } else { - gint64 freq64_ = -(gint64)freq64; + gint64 freq64_ = -freq64; md.freqi = freq64_ >> 32; md.freqf = freq64_ & 0xffffffff; } - md.mixbuffer = (float*)kb_x86_tempbuf; - md.scopebuf = kb_x86_scopebuf; + md.mixbuffer = mixbuf; + md.scopebuf = scopebuf; md.freso = ch->freso; md.ffreq = ch->ffreq; md.fl1 = ch->fl1; @@ -552,28 +558,7 @@ } else { if(ch->positionw >= ende) { /* A sample without loop has just ended. */ -#if 0 -/* Disabled sample-end exponential declicking, because hi-hats and - other white-noise samples get ugly clicks. Some autoregressive - prediction code could be of help here, but that's a lot of code - - on the other hand not having clean sample ends is really the - composer's problem. - - My theory for the reason of these clicks: a hi-hat is essentially a - purely stochastic process - adding a linear declick here actually - introduces a click, because there is no deterministic signal (mean - value) to be declicked. - - If you want to hear this yourself, enable this block by changing - #if 0 to if #1 up there, then load some loud hi-hat, cut it in the - middle and play it. Listen to the sample end. Note: The necessary - code is only in v0.5.3; in v0.5.4 I've removed that completely. -*/ - md.numsamples = num_samples_left; - md.lastl = ch->lastl; - kbasm_declick_postproc(&md); -#endif - ch->flags &= KB_X86_FLAG_UPPER_ACTIVE; + ch->flags &= KB_FLAG_UPPER_ACTIVE; return num_samples_left; } } @@ -714,34 +699,33 @@ if(count > kb_x86_tempbufsize) { free(kb_x86_tempbuf); kb_x86_tempbufsize = count; - kb_x86_tempbuf = malloc(8 * kb_x86_tempbufsize); + kb_x86_tempbuf = malloc(2 * sizeof(float) * kb_x86_tempbufsize); } - kb_x86_nsamples = count; - memset(kb_x86_tempbuf, 0, count * sizeof(float) * 2); + memset(kb_x86_tempbuf, 0, 2 * sizeof(float) * count); for(chnr = 0; chnr < 2 * 32; chnr++) { kb_x86_channel *ch = channels + chnr; - guint32 *tempbuf = kb_x86_tempbuf; + float *tempbuf = kb_x86_tempbuf; int num_samples_left = count; gint16 *scopedata = NULL; if((chnr & 31) >= num_channels) continue; - if(scopebufs && (chnr < 32 || (channels[chnr - 32].flags & KB_X86_FLAG_UPPER_ACTIVE))) { + if(scopebufs && (chnr < 32 || (channels[chnr - 32].flags & KB_FLAG_UPPER_ACTIVE))) { scopedata = scopebufs[chnr & 31] + scopebuf_offset; } - if(!(ch->flags & KB_X86_FLAG_SAMPLE_RUNNING)) { + if(!(ch->flags & KB_FLAG_SAMPLE_RUNNING)) { if(scopedata) { memset(scopedata, 0, 2 * num_samples_left); } continue; } - if(ch->flags & KB_X86_FLAG_JUST_STARTED) { - if(ch->flags & KB_X86_FLAG_DO_SAMPLE_START_DECLICK) { + if(ch->flags & KB_FLAG_JUST_STARTED) { + if(ch->flags & KB_FLAG_DO_SAMPLE_START_DECLICK) { ch->ramp_num_samples = RAMP_MAX_DURATION * mixfreq; if(ch->ramp_num_samples == 0) { ch->ramp_num_samples = 1; @@ -752,26 +736,20 @@ ch->rampright = (ch->rampdestright - ch->volright) / ch->ramp_num_samples; } - ch->flags &= ~KB_X86_FLAG_JUST_STARTED; + ch->flags &= ~KB_FLAG_JUST_STARTED; } - kb_x86_scopebuf = scopedata; - g_assert(ch->sample->lock); g_mutex_lock(ch->sample->lock); - while(num_samples_left && (ch->flags & KB_X86_FLAG_SAMPLE_RUNNING)) { + while(num_samples_left && (ch->flags & KB_FLAG_SAMPLE_RUNNING)) { int num_samples = 0; gboolean vol_ramping = (ch->ramp_num_samples != 0); int max_samples_this_time = vol_ramping ? MIN(ch->ramp_num_samples, num_samples_left) : num_samples_left; - if(ch->flags & KB_X86_FLAG_LOOP_UNIDIRECTIONAL) { - num_samples = kb_x86_mix_sub(ch, TRUE, FALSE, max_samples_this_time, vol_ramping); - } else if(ch->flags & KB_X86_FLAG_LOOP_BIDIRECTIONAL) { - num_samples = kb_x86_mix_sub(ch, TRUE, TRUE, max_samples_this_time, vol_ramping); - } else /* no loop */ { - num_samples = kb_x86_mix_sub(ch, FALSE, FALSE, max_samples_this_time, vol_ramping); - } + num_samples = kb_x86_mix_sub(ch, + max_samples_this_time, vol_ramping, + tempbuf, scopedata); if(vol_ramping) { ch->ramp_num_samples -= num_samples; @@ -779,28 +757,24 @@ /* Volume ramping finished. */ ch->volleft = ch->rampdestleft; ch->volright = ch->rampdestright; - if(ch->flags & KB_X86_FLAG_STOP_AFTER_VOLRAMP) { + if(ch->flags & KB_FLAG_STOP_AFTER_VOLRAMP) { /* This was only a declicking channel. Stop sample. */ - ch->flags &= KB_X86_FLAG_UPPER_ACTIVE; + ch->flags &= KB_FLAG_UPPER_ACTIVE; } } } num_samples_left -= num_samples; - kb_x86_tempbuf += (num_samples * 2); - if(kb_x86_scopebuf) { - kb_x86_scopebuf += num_samples; + tempbuf += (num_samples * 2); + if(scopedata) { + scopedata += num_samples; } } g_mutex_unlock(ch->sample->lock); - - kb_x86_tempbuf = tempbuf; } - kb_x86_outbuf = dest; - kb_x86_nsamples = count; - clipflag = kbasm_post_mixing(); + clipflag = kbasm_post_mixing(kb_x86_tempbuf, (gint16*)dest, count, kb_x86_amplification); return dest + count * 2 * 2; } @@ -814,7 +788,7 @@ for(i = 0; i < 32; i++) { kb_x86_channel *c = kb_x86_get_channel_struct(i); - if(c->flags & KB_X86_FLAG_SAMPLE_RUNNING) { + if(c->flags & KB_FLAG_SAMPLE_RUNNING) { array[i].current_sample = c->sample; pos = c->positionw; if(pos < 0) { @@ -829,9 +803,9 @@ } } -st_mixer mixer_kb_x86 = { - "kb_x86", - "HQ FPU mixer with cubic interpolation and IT filters", +st_mixer mixer_kbfloat = { + "kbfloat", + "High-quality FPU mixer, cubic interpolation, IT filters, unlimited length samples", kb_x86_setnumch, kb_x86_updatesample, @@ -844,6 +818,7 @@ kb_x86_startnote, kb_x86_stopnote, kb_x86_setsmplpos, + kb_x86_setsmplend, kb_x86_setfreq, kb_x86_setvolume, kb_x86_setpanning, @@ -856,5 +831,3 @@ NULL }; - -#endif /* defined(__i386__) */ diff -urN soundtracker-0.5.8/app/mixers/kbfloat-mix.c soundtracker-0.5.9/app/mixers/kbfloat-mix.c --- soundtracker-0.5.8/app/mixers/kbfloat-mix.c Thu Jan 1 01:00:00 1970 +++ soundtracker-0.5.9/app/mixers/kbfloat-mix.c Mon Sep 25 15:07:31 2000 @@ -0,0 +1,401 @@ + +/* + * The Real SoundTracker - Cubically interpolating mixing routines + * with IT style filter support + * + * Very unoptimized portable C version. + * + * Copyright (C) 2000 Michael Krause + * + * 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. + */ + +#include + +#include "kb-x86-asm.h" + +#if defined(NO_ASM) || defined(NO_GASP) || !defined(__i386__) + +gboolean +kbasm_post_mixing (float *tempbuf, + gint16 *outbuf, + unsigned n, + float amp) +{ + gboolean clipped = FALSE; + + n *= 2; + + while(n--) { + float a = *tempbuf++ * amp; + if(a < -32768.0) { + a = -32768.0; + clipped = TRUE; + } + if(a > 32767.0) { + a = 32767.0; + clipped = TRUE; + } + *outbuf ++= (gint16)a; + } + + return clipped; +} + +#define CUBICMIXER_COMMON_HEAD \ + gint16 *positioni = data->positioni; \ + guint32 positionf = data->positionf; \ + float *mixbuffer = data->mixbuffer; \ + float fl1 = data->fl1; \ + float fb1 = data->fb1; \ + float voll = data->volleft; \ + float volr = data->volright; \ + unsigned n = data->numsamples; + +#define CUBICMIXER_COMMON_LOOP_START \ + while(n--) { \ + float s0; \ + guint32 positionf_new; \ + s0 = positioni[0] * kb_x86_ct0[positionf >> 24]; + +#define CUBICMIXER_LOOP_FORWARD \ + s0 += positioni[1] * kb_x86_ct1[positionf >> 24]; \ + s0 += positioni[2] * kb_x86_ct2[positionf >> 24]; \ + s0 += positioni[3] * kb_x86_ct3[positionf >> 24]; + +#define CUBICMIXER_LOOP_BACKWARD \ + s0 += positioni[-1] * kb_x86_ct1[-positionf >> 24]; \ + s0 += positioni[-2] * kb_x86_ct2[-positionf >> 24]; \ + s0 += positioni[-3] * kb_x86_ct3[-positionf >> 24]; + +#define CUBICMIXER_ADVANCE_POINTER \ + positionf_new = positionf + data->freqf; \ + if(positionf_new < positionf) { \ + positioni++; \ + } \ + positionf = positionf_new; \ + positioni += data->freqi; + +#define CUBICMIXER_FILTER \ + fb1 = data->freso * fb1 + data->ffreq * (s0 - fl1); \ + fl1 += data->ffreq * fb1; \ + s0 = fl1; + +#define CUBICMIXER_SCOPES \ + *scopebuf++ = (gint16)(s0 * (voll + volr)); + +#define CUBICMIXER_WRITE_OUT \ + *mixbuffer++ += s0 * voll; \ + *mixbuffer++ += s0 * volr; + +#define CUBICMIXER_VOLRAMP \ + voll += data->volrampl; \ + volr += data->volrampr; + +#define CUBICMIXER_COMMON_FOOT \ + data->volleft = voll; \ + data->volright = volr; \ + data->positioni = positioni; \ + data->positionf = positionf; \ + data->mixbuffer = mixbuffer; \ + data->fl1 = fl1; \ + data->fb1 = fb1; + +/* --- 0 --- */ +static void +kbfloat_mix_cubic_noscopes_unfiltered_forward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_noscopes_unfiltered_backward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_noscopes_filtered_forward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_noscopes_filtered_backward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +/* --- 4 --- */ +static void +kbfloat_mix_cubic_scopes_unfiltered_forward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_scopes_unfiltered_backward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_scopes_filtered_forward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_scopes_filtered_backward_noramp (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + } + + CUBICMIXER_COMMON_FOOT +} + +/* --- 8 --- */ +static void +kbfloat_mix_cubic_noscopes_unfiltered_forward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_noscopes_unfiltered_backward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_noscopes_filtered_forward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_noscopes_filtered_backward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +/* --- 12 --- */ +static void +kbfloat_mix_cubic_scopes_unfiltered_forward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_scopes_unfiltered_backward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_scopes_filtered_forward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_FORWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void +kbfloat_mix_cubic_scopes_filtered_backward (kb_x86_mixer_data *data) +{ + CUBICMIXER_COMMON_HEAD + gint16 *scopebuf = data->scopebuf; + + CUBICMIXER_COMMON_LOOP_START + CUBICMIXER_LOOP_BACKWARD + CUBICMIXER_ADVANCE_POINTER + CUBICMIXER_FILTER + CUBICMIXER_SCOPES + CUBICMIXER_WRITE_OUT + CUBICMIXER_VOLRAMP + } + + CUBICMIXER_COMMON_FOOT +} + +static void (*kbfloat_mixers[16])(kb_x86_mixer_data *) = { + kbfloat_mix_cubic_noscopes_unfiltered_forward_noramp, + kbfloat_mix_cubic_noscopes_unfiltered_backward_noramp, + kbfloat_mix_cubic_noscopes_filtered_forward_noramp, + kbfloat_mix_cubic_noscopes_filtered_backward_noramp, + kbfloat_mix_cubic_scopes_unfiltered_forward_noramp, + kbfloat_mix_cubic_scopes_unfiltered_backward_noramp, + kbfloat_mix_cubic_scopes_filtered_forward_noramp, + kbfloat_mix_cubic_scopes_filtered_backward_noramp, + kbfloat_mix_cubic_noscopes_unfiltered_forward, + kbfloat_mix_cubic_noscopes_unfiltered_backward, + kbfloat_mix_cubic_noscopes_filtered_forward, + kbfloat_mix_cubic_noscopes_filtered_backward, + kbfloat_mix_cubic_scopes_unfiltered_forward, + kbfloat_mix_cubic_scopes_unfiltered_backward, + kbfloat_mix_cubic_scopes_filtered_forward, + kbfloat_mix_cubic_scopes_filtered_backward +}; + +void +kbasm_mix (kb_x86_mixer_data *data) +{ + kbfloat_mixers[data->flags >> 2](data); +} + +#endif diff -urN soundtracker-0.5.8/app/sample-display.c soundtracker-0.5.9/app/sample-display.c --- soundtracker-0.5.8/app/sample-display.c Tue Aug 15 13:45:09 2000 +++ soundtracker-0.5.9/app/sample-display.c Mon Sep 25 14:24:06 2000 @@ -24,6 +24,7 @@ #include "sample-display.h" #include +#include #define XPOS_TO_OFFSET(x) (s->win_start + ((guint64)(x)) * s->win_length / s->width) #define OFFSET_RANGE(l, x) (x < 0 ? 0 : (x >= l ? l - 1 : x)) @@ -56,9 +57,19 @@ static guint sample_display_signals[LAST_SIGNAL] = { 0 }; -static int sample_display_startoffset_to_xpos (SampleDisplay *s, - int offset); +static int sample_display_startoffset_to_xpos (SampleDisplay *s, + int offset); +static gint sample_display_idle_draw_function (SampleDisplay *s); +static void +sample_display_idle_draw (SampleDisplay *s) +{ + if(!s->idle_handler) { + s->idle_handler = gtk_idle_add((GtkFunction)sample_display_idle_draw_function, + (gpointer)s); + g_assert(s->idle_handler != 0); + } +} void sample_display_enable_zero_line (SampleDisplay *s, @@ -67,7 +78,6 @@ s->display_zero_line = enable; if(s->datalen) { - s->complete_redraw = 1; gtk_widget_queue_draw(GTK_WIDGET(s)); } } @@ -122,9 +132,8 @@ s->selecting = 0; s->loop_start = -1; - - s->complete_redraw = 1; - gtk_widget_queue_draw(GTK_WIDGET(s)); + + gtk_widget_queue_draw(GTK_WIDGET(s)); } void @@ -163,7 +172,6 @@ s->loop_start = start; s->loop_end = end; - s->complete_redraw = 1; gtk_widget_queue_draw(GTK_WIDGET(s)); gtk_signal_emit(GTK_OBJECT(s), sample_display_signals[SIG_LOOP_CHANGED], start, end); } @@ -186,7 +194,7 @@ s->sel_start = start; s->sel_end = end; - gtk_widget_queue_draw(GTK_WIDGET(s)); + sample_display_idle_draw(s); gtk_signal_emit(GTK_OBJECT(s), sample_display_signals[SIG_SELECTION_CHANGED], start, end); } @@ -202,7 +210,7 @@ if(offset != s->mixerpos) { s->mixerpos = offset; - gtk_widget_queue_draw(GTK_WIDGET(s)); + sample_display_idle_draw(s); } } @@ -221,7 +229,6 @@ s->win_length = end - start; gtk_signal_emit(GTK_OBJECT(s), sample_display_signals[SIG_WINDOW_CHANGED], start, end); - s->complete_redraw = 1; gtk_widget_queue_draw(GTK_WIDGET(s)); } @@ -481,13 +488,14 @@ if(s->mixerpos != -1) { sample_display_do_marker_line(widget->window, s, 0, s->mixerpos, x_min, x_max, s->mixerpos_gc); + s->old_mixerpos = s->mixerpos; } } } static void -sample_display_draw (GtkWidget *widget, - GdkRectangle *area) +sample_display_draw_update (GtkWidget *widget, + GdkRectangle *area) { SampleDisplay *s = SAMPLE_DISPLAY(widget); GdkRectangle area2 = { 0, 0, 0, s->height }; @@ -496,12 +504,6 @@ const int x_max = area->x + area->width; gboolean special_draw = FALSE; - if(s->complete_redraw) { - s->complete_redraw = 0; - sample_display_draw_main(widget, area); - return; - } - if(s->mixerpos != s->old_mixerpos) { /* Redraw area of old position, redraw area of new position. */ for(i = 0; i < 2; i++) { @@ -564,6 +566,13 @@ } } +static void +sample_display_draw (GtkWidget *widget, + GdkRectangle *area) +{ + sample_display_draw_main(widget, area); +} + static gint sample_display_expose (GtkWidget *widget, GdkEventExpose *event) @@ -572,6 +581,20 @@ return FALSE; } +static gint +sample_display_idle_draw_function (SampleDisplay *s) +{ + GdkRectangle area = { 0, 0, s->width, s->height }; + + if(GTK_WIDGET_MAPPED(GTK_WIDGET(s))) { + sample_display_draw_update(GTK_WIDGET(s), &area); + } + + gtk_idle_remove(s->idle_handler); + s->idle_handler = 0; + return TRUE; +} + static void sample_display_handle_motion (SampleDisplay *s, int x, @@ -658,15 +681,14 @@ if(s->sel_start != ss || s->sel_end != se) { s->sel_start = ss; s->sel_end = se; - gtk_widget_queue_draw(GTK_WIDGET(s)); + sample_display_idle_draw(s); gtk_signal_emit(GTK_OBJECT(s), sample_display_signals[SIG_SELECTION_CHANGED], ss, se); } if(s->loop_start != ls || s->loop_end != le) { s->loop_start = ls; s->loop_end = le; - s->complete_redraw = 1; - gtk_widget_queue_draw(GTK_WIDGET(s)); + sample_display_idle_draw(s); gtk_signal_emit(GTK_OBJECT(s), sample_display_signals[SIG_LOOP_CHANGED], ls, le); } } @@ -862,7 +884,7 @@ static void sample_display_init (SampleDisplay *s) { - s->complete_redraw = 0; + s->idle_handler = 0; } guint diff -urN soundtracker-0.5.8/app/sample-display.h soundtracker-0.5.9/app/sample-display.h --- soundtracker-0.5.8/app/sample-display.h Sat Feb 19 11:58:33 2000 +++ soundtracker-0.5.9/app/sample-display.h Mon Sep 25 14:24:06 2000 @@ -48,6 +48,7 @@ int width, height; GdkGC *bg_gc, *fg_gc, *loop_gc, *mixerpos_gc; + guint idle_handler; void *data; int datalen; @@ -56,7 +57,6 @@ int datacopylen; int win_start, win_length; - int complete_redraw; int mixerpos, old_mixerpos; /* current playing offset of the sample */ diff -urN soundtracker-0.5.8/app/sample-editor.c soundtracker-0.5.9/app/sample-editor.c --- soundtracker-0.5.8/app/sample-editor.c Fri Aug 25 16:34:26 2000 +++ soundtracker-0.5.9/app/sample-editor.c Mon Sep 25 12:57:50 2000 @@ -56,6 +56,7 @@ #include "module-info.h" #include "file-operations.h" #include "gui-settings.h" +#include "xm.h" // == GUI variables @@ -570,15 +571,21 @@ gboolean pressed) { int i; + int s = sampledisplay->sel_start, e = sampledisplay->sel_end; if(!pressed) return FALSE; + if(s == -1) { + s = 0; + e = current_sample->sample.length; + } + i = keys_get_key_meaning(keyval, ENCODE_MODIFIERS(shift, ctrl, alt)); if(i != -1 && KEYS_MEANING_TYPE(i) == KEYS_MEANING_NOTE) { i += 12 * gui_get_current_octave_value() + 1; if(i < 96 && current_sample != NULL) { - gui_play_note_full(tracker->cursor_ch, i, current_sample, 0); + gui_play_note_full(tracker->cursor_ch, i, current_sample, s, e - s); } return TRUE; } @@ -1178,6 +1185,7 @@ void *sbuf, *sbuf_loadto; int len; int i, count; + float rate; statusbar_update(STATUS_LOADING_SAMPLE, TRUE); @@ -1219,6 +1227,17 @@ current_sample->treat_as_8bit = (wavload_sampleWidth == 8); current_sample->sample.length = wavload_frameCount; + // Initialize relnote and finetune such that sample is played in original speed + if(wavload_with_audiofile) { + rate = afGetRate(wavload_file, AF_DEFAULT_TRACK); + } else { + rate = 44100.0; + } + xm_freq_note_to_relnote_finetune(rate, + 6 * 12 + 1, // at C-6 + ¤t_sample->relnote, + ¤t_sample->finetune); + if(wavload_sampleWidth == 8) { if(wavload_with_audiofile || wavload_unsignedwords) { st_sample_8bit_signed_unsigned(sbuf_loadto, len / 2); @@ -1601,6 +1620,7 @@ { AFfilehandle outfile; AFfilesetup outfilesetup; + double rate = 44100.0; statusbar_update(STATUS_SAVING_SAMPLE, TRUE); @@ -1610,6 +1630,7 @@ afInitFileFormat(outfilesetup, AF_FILE_WAVE); afInitChannels(outfilesetup, AF_DEFAULT_TRACK, 1); afInitSampleFormat(outfilesetup, AF_DEFAULT_TRACK, AF_SAMPFMT_TWOSCOMP, current_sample->treat_as_8bit ? 8 : 16); + afInitRate(outfilesetup, AF_DEFAULT_TRACK, rate); outfile = afOpenFile(fn, "w", outfilesetup); afFreeFileSetup(outfilesetup); @@ -1853,6 +1874,7 @@ struct recordbuf *r, *r2; gint16 *sbuf; char *samplename = _(""); + double rate = 44100.0; sampling_driver->common.release(sampling_driver_object); @@ -1887,10 +1909,13 @@ current_sample->sample.length = recordedlen; current_sample->volume = 64; - current_sample->finetune = 0; current_sample->panning = 128; - current_sample->relnote = 0; current_sample->treat_as_8bit = FALSE; + + xm_freq_note_to_relnote_finetune(rate, + 6 * 12 + 1, // at C-6 + ¤t_sample->relnote, + ¤t_sample->finetune); sample_editor_unlock_sample(); diff -urN soundtracker-0.5.8/app/track-editor.c soundtracker-0.5.9/app/track-editor.c --- soundtracker-0.5.8/app/track-editor.c Tue Sep 19 17:21:15 2000 +++ soundtracker-0.5.9/app/track-editor.c Mon Sep 25 12:01:22 2000 @@ -190,8 +190,7 @@ sprintf(tmp_buf, " ] "); strcat(ed_buf, tmp_buf); - - bzero(tmp_buf, strlen(tmp_buf)); + memset(tmp_buf, 0, strlen(tmp_buf)); strcat(ed_buf, "[Cmd: "); /* enum values maybe for fx numbers ? */ @@ -239,7 +238,7 @@ } strcat(ed_buf, tmp_buf); - bzero(tmp_buf, strlen(tmp_buf)); + memset(tmp_buf, 0, strlen(tmp_buf)); cmd_p1 = (note->fxparam&0xf0)>>4; cmd_p2 = note->fxparam&0xf; diff -urN soundtracker-0.5.8/app/tracker.c soundtracker-0.5.9/app/tracker.c --- soundtracker-0.5.8/app/tracker.c Sun Sep 17 18:26:30 2000 +++ soundtracker-0.5.9/app/tracker.c Mon Sep 25 14:53:33 2000 @@ -24,13 +24,12 @@ #include #include +#include #include "tracker.h" #include "main.h" #include "gui-settings.h" -#define XFONTNAME "7x13" - const char * const notenames[96] = { "C-0", "C#0", "D-0", "D#0", "E-0", "F-0", "F#0", "G-0", "G#0", "A-0", "A#0", "H-0", "C-1", "C#1", "D-1", "D#1", "E-1", "F-1", "F#1", "G-1", "G#1", "A-1", "A#1", "H-1", @@ -63,13 +62,23 @@ LAST_SIGNAL }; -#define OLDPOS_MAGIC_REDRAW -6666 - #define CLEAR(win, x, y, w, h) \ do { gdk_draw_rectangle(win, t->bg_gc, TRUE, x, y, w, h); } while(0) static guint tracker_signals[LAST_SIGNAL] = { 0 }; +static gint tracker_idle_draw_function (Tracker *t); + +static void +tracker_idle_draw (Tracker *t) +{ + if(!t->idle_handler) { + t->idle_handler = gtk_idle_add((GtkFunction)tracker_idle_draw_function, + (gpointer)t); + g_assert(t->idle_handler != 0); + } +} + void tracker_set_num_channels (Tracker *t, int n) @@ -96,9 +105,10 @@ if(t->curpattern != NULL) { if(t->inSelMode) { /* Force re-draw of patterns in block selection mode */ - t->oldpos = OLDPOS_MAGIC_REDRAW; + gtk_widget_queue_draw(GTK_WIDGET(t)); + } else { + tracker_idle_draw(t); } - gtk_widget_queue_draw(GTK_WIDGET(t)); gtk_signal_emit(GTK_OBJECT(t), tracker_signals[SIG_PATPOS], row, t->curpattern->length, t->disp_rows); } } @@ -107,7 +117,6 @@ void tracker_redraw (Tracker *t) { - t->oldpos = OLDPOS_MAGIC_REDRAW; gtk_widget_queue_draw(GTK_WIDGET(t)); } @@ -133,7 +142,6 @@ if(t->curpattern != pattern) { t->curpattern = pattern; - t->oldpos = OLDPOS_MAGIC_REDRAW; if(pattern != NULL) { if(t->patpos >= pattern->length) t->patpos = pattern->length - 1; @@ -158,9 +166,6 @@ widget = GTK_WIDGET(t); if(GTK_WIDGET_REALIZED(widget)) { - t->oldpos = OLDPOS_MAGIC_REDRAW; - gtk_widget_queue_draw(GTK_WIDGET(t)); - if(on) { t->pixmap = gdk_pixmap_new(widget->window, widget->allocation.width, widget->allocation.height, -1); CLEAR(t->pixmap, 0, 0, widget->allocation.width, widget->allocation.height); @@ -170,6 +175,7 @@ } gdk_gc_set_exposures(t->bg_gc, !on); + gtk_widget_queue_draw(GTK_WIDGET(t)); } } @@ -187,7 +193,6 @@ g_return_if_fail(left_channel + t->disp_numchans <= t->num_channels); t->leftchan = left_channel; - t->oldpos = OLDPOS_MAGIC_REDRAW; gtk_widget_queue_draw(GTK_WIDGET(t)); if(t->cursor_ch < t->leftchan) @@ -241,9 +246,10 @@ if(t->inSelMode) { /* Force re-draw of patterns in block selection mode */ - t->oldpos = OLDPOS_MAGIC_REDRAW; + gtk_widget_queue_draw(GTK_WIDGET(t)); + } else { + tracker_idle_draw(t); } - gtk_widget_queue_draw(GTK_WIDGET(t)); } void @@ -437,12 +443,12 @@ } static void -print_notes_line(GtkWidget *widget, - GdkDrawable *win, - int y, - int ch, - int numch, - int row) +print_notes_line (GtkWidget *widget, + GdkDrawable *win, + int y, + int ch, + int numch, + int row) { Tracker *t = TRACKER(widget); char buf[32*15]; @@ -651,8 +657,8 @@ } static void -tracker_draw (GtkWidget *widget, - GdkRectangle *area) +tracker_draw_clever (GtkWidget *widget, + GdkRectangle *area) { Tracker *t; int dist, absdist; @@ -732,40 +738,44 @@ } } +static void +tracker_draw_stupid (GtkWidget *widget, + GdkRectangle *area) +{ + Tracker *t = TRACKER(widget); + + t->oldpos = -666; + tracker_draw_clever(widget, area); +} + +static void +tracker_draw (GtkWidget *widget, + GdkRectangle *area) +{ + tracker_draw_stupid(widget, area); +} + static gint tracker_expose (GtkWidget *widget, GdkEventExpose *event) { - Tracker *t = TRACKER(widget); - int ytemp; + tracker_draw_stupid(widget, &event->area); + return FALSE; +} - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (IS_TRACKER(widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); +static gint +tracker_idle_draw_function (Tracker *t) +{ + GtkWidget *widget = GTK_WIDGET(t); + GdkRectangle area = { 0, 0, widget->allocation.width, widget->allocation.height }; - if(t->enable_backing_store) { - tracker_draw(widget, &event->area); - } else { - if(!t->curpattern) - return FALSE; - if(t->oldpos == OLDPOS_MAGIC_REDRAW) { - tracker_draw(widget, &event->area); - } else { - CLEAR(widget->window, event->area.x, event->area.y, event->area.width, event->area.height); - print_notes_and_bars(widget, widget->window, event->area.x, event->area.y, event->area.width, event->area.height, t->oldpos); - print_channel_numbers(widget, widget->window); - print_cursor(widget, widget->window); - - /* update the cursor */ - ytemp = t->disp_cursor * t->fonth + t->disp_starty; - // could test if the cursor line really NEEDS to be redrawn - gdk_draw_rectangle(widget->window, t->bg_cursor_gc, TRUE, 0, ytemp, widget->allocation.width, t->fonth); - print_notes_and_bars(widget, widget->window, 0, ytemp, widget->allocation.width, t->fonth, t->oldpos); - print_cursor(widget, widget->window); - } + if(GTK_WIDGET_MAPPED(GTK_WIDGET(t))) { + tracker_draw_clever(GTK_WIDGET(t), &area); } - return FALSE; + gtk_idle_remove(t->idle_handler); + t->idle_handler = 0; + return TRUE; } static void @@ -805,7 +815,6 @@ t->disp_numchans = t->num_channels; t->disp_startx = (u - t->disp_numchans * t->disp_chanwidth) / 2 + line_numbers_space + 5; - t->oldpos = OLDPOS_MAGIC_REDRAW; adjust_xpanning(t); if(t->curpattern) { @@ -854,7 +863,6 @@ widget = GTK_WIDGET(t); if(GTK_WIDGET_REALIZED(widget)) { init_display(t, widget->allocation.width, widget->allocation.height); - t->oldpos = OLDPOS_MAGIC_REDRAW; t->patpos = 0; t->cursor_ch = 0; t->cursor_item = 0; diff -urN soundtracker-0.5.8/app/tracker.h soundtracker-0.5.9/app/tracker.h --- soundtracker-0.5.8/app/tracker.h Sat Aug 12 13:58:45 2000 +++ soundtracker-0.5.9/app/tracker.h Mon Sep 25 14:24:06 2000 @@ -66,6 +66,7 @@ GdkColor colors[TRACKERCOL_LAST]; int enable_backing_store; GdkPixmap *pixmap; + guint idle_handler; XMPattern *curpattern; int patpos, oldpos; diff -urN soundtracker-0.5.8/app/xm-player.c soundtracker-0.5.9/app/xm-player.c --- soundtracker-0.5.8/app/xm-player.c Sun Sep 17 17:14:53 2000 +++ soundtracker-0.5.9/app/xm-player.c Mon Sep 25 12:26:58 2000 @@ -49,9 +49,6 @@ PLAYING_NOTE, }; -#define PITCH_NOTE (16 * 4 * 4) -#define PITCH_OCTAVE (12 * PITCH_NOTE) - static inline int env_length (STEnvelope *env) { @@ -216,6 +213,7 @@ int nextstop; STSample *nextsamp; int nextpos; + int sampleplayend; /* don't play all of the sample, but stop at (here) */ STSample *cursamp; STInstrument *curins; int hacksample; /* if 1, then simply play the sample pointed to by cursamp */ @@ -439,15 +437,15 @@ } static gint32 -xm_player_get_note_frq (channel *ch) +xm_player_get_note_pitch (channel *ch) { if(!ismod) { - gint32 frq = 48*256 - (((procnot - 1) << 8) - ch->chCurNormNote); - + gint32 pitch = 48*256 - (((procnot - 1) << 8) - ch->chCurNormNote); + if(linearfreq) - return frq; + return pitch; else - return mcpGetFreq6848(frq); + return mcpGetFreq6848(pitch); } else { int note = procnot - 1 - 36; @@ -507,9 +505,10 @@ nn = -ch->cursamp->relnote*256 - (gint16)(procdat << 4) + 0x80; ch->chCurNormNote = nn; - ch->chPitch = ch->chFinalPitch = ch->chPortaToPitch = xm_player_get_note_frq(ch); + ch->chPitch = ch->chFinalPitch = ch->chPortaToPitch = xm_player_get_note_pitch(ch); ch->nextpos=0; + ch->sampleplayend=-1; if (proccmd==xmpCmdOffset) { if (procdat!=0) @@ -525,7 +524,7 @@ ch->chMRetrigPos=0; ch->chTremorPos=0; } else { - ch->chPortaToPitch = xm_player_get_note_frq(ch); + ch->chPortaToPitch = xm_player_get_note_pitch(ch); } } @@ -607,9 +606,10 @@ nn = -ch->cursamp->relnote*256 - (gint16)(procdat << 4) + 0x80; ch->chCurNormNote = nn; - ch->chPitch = ch->chFinalPitch = ch->chPortaToPitch = xm_player_get_note_frq(ch); + ch->chPitch = ch->chFinalPitch = ch->chPortaToPitch = xm_player_get_note_pitch(ch); ch->nextpos=0; + ch->sampleplayend=-1; if (proccmd==xmpCmdOffset) { if (procdat!=0) @@ -623,7 +623,7 @@ ch->chMRetrigPos=0; ch->chTremorPos=0; } else { - ch->chPortaToPitch = xm_player_get_note_frq(ch); + ch->chPortaToPitch = xm_player_get_note_pitch(ch); } } @@ -730,6 +730,9 @@ } if(ch->nextpos != -1) { driver_setsmplpos(chnr, ch->nextpos); + if(ch->sampleplayend != -1) { + driver_setsmplend(chnr, ch->sampleplayend); + } } if(ismod) { if(ch->chFinalPitch != 0) { /* == 0 happens on tru_funk.mod */ @@ -1347,6 +1350,7 @@ break; ch->chMRetrigPos=0; ch->nextpos=0; + ch->sampleplayend=-1; switch (ch->chMRetrigAct) { case 0: case 8: break; @@ -1377,6 +1381,7 @@ break; if (!(curtick%ch->chActionTick)) { ch->nextpos=0; + ch->sampleplayend=-1; } break; case xmpCmdNoteCut: @@ -1538,6 +1543,7 @@ channels[channel].chReso = 0; channels[channel].nextpos = -1; + channels[channel].sampleplayend = -1; channels[channel].nextstop = 1; xmplayer_final_channel_ops(channel); @@ -1548,7 +1554,8 @@ xmplayer_play_note_full (int chnr, int note, STSample *sample, - int offset) + guint32 offset, + guint32 count) { gint32 nn; channel *ch = &channels[chnr]; @@ -1580,7 +1587,7 @@ nn = -ch->cursamp->relnote*256 - ch->cursamp->finetune*2; ch->chCurNormNote = nn; - ch->chPitch = ch->chFinalPitch = ch->chPortaToPitch = xm_player_get_note_frq(ch); + ch->chPitch = ch->chFinalPitch = ch->chPortaToPitch = xm_player_get_note_pitch(ch); ch->chVibPos=0; ch->chTremPos=0; @@ -1607,6 +1614,7 @@ ch->hacksample = 1; ch->nextstop = 1; ch->nextpos = offset; + ch->sampleplayend = offset + count; xmplayer_final_channel_ops(chnr); return TRUE; diff -urN soundtracker-0.5.8/app/xm-player.h soundtracker-0.5.9/app/xm-player.h --- soundtracker-0.5.8/app/xm-player.h Sun Sep 17 16:33:05 2000 +++ soundtracker-0.5.9/app/xm-player.h Mon Sep 25 12:26:58 2000 @@ -34,7 +34,11 @@ gboolean xmplayer_init_play_song (int songpos, int patpos); gboolean xmplayer_init_play_pattern (int pattern, int patpos, int only1row); gboolean xmplayer_play_note (int channel, int note, int instrument); -gboolean xmplayer_play_note_full (int channel, int note, STSample *sample, int offset); +gboolean xmplayer_play_note_full (int channel, + int note, + STSample *sample, + guint32 offset, + guint32 count); void xmplayer_play_note_keyoff (int channel); double xmplayer_play (void); void xmplayer_stop (void); diff -urN soundtracker-0.5.8/app/xm.c soundtracker-0.5.9/app/xm.c --- soundtracker-0.5.8/app/xm.c Tue Sep 19 16:48:18 2000 +++ soundtracker-0.5.9/app/xm.c Mon Sep 25 12:05:51 2000 @@ -30,6 +30,7 @@ #include #include #include +#include #include @@ -55,29 +56,33 @@ }; void -le_16_array_to_host_order (gint16 *data, - int count) +xm_freq_note_to_relnote_finetune (float frequency, + unsigned note, + gint8 *relnote, + gint8 *finetune) { -#ifdef WORDS_BIGENDIAN - for(; count; count--, data++) { - gint8 *p = (gint8*)data; - gint8 a = p[0]; - p[0] = p[1]; - p[1] = a; + int pitch = - log(frequency / 8363.0) / M_LN2 * (float)PITCH_OCTAVE; + int nn = 256 * (49 - note) - pitch; + int rn; + + /* nn is now 256*relnote + 2*finetune. Find those two unknowns. */ + for(rn = 0; nn < -256; rn--) { + nn += 256; + } + for(; nn > 255; rn++) { + nn -= 256; } -#endif -} -void -byteswap_16_array (gint16 *data, - int count) -{ - for(; count; count--, data++) { - gint8 *p = (gint8*)data; - gint8 a = p[0]; - p[0] = p[1]; - p[1] = a; + if(rn < -96) { + rn = -96; + } else if(rn > +96) { + rn = +96; } + + g_assert(nn >= -256 && nn <= 255); + + *relnote = rn; + *finetune = nn / 2; } static void @@ -464,7 +469,9 @@ } fread(instr->samplemap, 1, 96, f); fread(instr->vol_env.points, 1, 48, f); + le_16_array_to_host_order((gint16*)instr->vol_env.points, 24); fread(instr->pan_env.points, 1, 48, f); + le_16_array_to_host_order((gint16*)instr->pan_env.points, 24); fread(b, 1, sizeof(b), f); instr->vol_env.num_points = b[0]; @@ -631,7 +638,7 @@ FILE *f, gboolean mode) { - guint8 h[38]; + guint8 h[48]; int num_samples; num_samples = st_instrument_num_save_samples(instr); @@ -660,8 +667,12 @@ fwrite(h, 1, 4, f); fwrite(instr->samplemap, 1, 96, f); - fwrite(instr->vol_env.points, 1, 48, f); - fwrite(instr->pan_env.points, 1, 48, f); + memcpy(h, instr->vol_env.points, 48); + le_16_array_to_host_order((gint16*)h, 24); + fwrite(h, 1, 48, f); + memcpy(h, instr->pan_env.points, 48); + le_16_array_to_host_order((gint16*)h, 24); + fwrite(h, 1, 48, f); memset(&h, 0, 38); h[0] = instr->vol_env.num_points; diff -urN soundtracker-0.5.8/app/xm.h soundtracker-0.5.9/app/xm.h --- soundtracker-0.5.8/app/xm.h Mon Sep 18 18:36:00 2000 +++ soundtracker-0.5.9/app/xm.h Mon Sep 25 11:14:49 2000 @@ -40,6 +40,9 @@ #define XM_NOTE_VOLUME_MIN 0x10 #define XM_NOTE_VOLUME_MAX 0x50 +#define PITCH_NOTE (16 * 4 * 4) +#define PITCH_OCTAVE (12 * PITCH_NOTE) + typedef struct XMNote { unsigned char note; unsigned char instrument; @@ -164,5 +167,11 @@ xm->modified = val; } } + +void +xm_freq_note_to_relnote_finetune (float frequency, + unsigned note, + gint8 *relnote, + gint8 *finetune); #endif /* _XM_H */ diff -urN soundtracker-0.5.8/config.h.in soundtracker-0.5.9/config.h.in --- soundtracker-0.5.8/config.h.in Wed Mar 29 18:30:27 2000 +++ soundtracker-0.5.9/config.h.in Sun Sep 24 11:55:50 2000 @@ -51,9 +51,11 @@ #undef DRIVER_ALSA #undef DRIVER_ALSA_050 #undef DRIVER_ESD +#undef DRIVER_SGI #undef USE_GNOME #undef NO_AUDIOFILE #undef NO_GASP +#undef NO_ASM #undef ENABLE_NLS #undef HAVE_CATGETS diff -urN soundtracker-0.5.8/configure soundtracker-0.5.9/configure --- soundtracker-0.5.8/configure Tue Sep 19 18:11:06 2000 +++ soundtracker-0.5.9/configure Sun Sep 24 15:04:37 2000 @@ -12,6 +12,8 @@ ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help + --disable-asm Disable use of assembler optimizations" +ac_help="$ac_help --disable-nls do not use Native Language Support" ac_help="$ac_help --with-included-gettext use the GNU gettext library included here" @@ -32,15 +34,19 @@ ac_help="$ac_help --disable-audiofiletest Do not try to compile and run a test AUDIOFILE program" ac_help="$ac_help - --disable-alsa Disable ALSA (default = no)" + --disable-oss Disable OSS driver (default = try)" +ac_help="$ac_help + --disable-alsa Disable ALSA driver (default = try)" ac_help="$ac_help - --disable-esd Disable ESD (default = no)" + --disable-esd Disable ESD driver (default = try)" ac_help="$ac_help --with-esd-prefix=PFX Prefix where ESD is installed (optional)" ac_help="$ac_help --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)" ac_help="$ac_help --disable-esdtest Do not try to compile and run a test ESD program" +ac_help="$ac_help + --disable-sgi Disable SGI driver (default = try)" # Initialize some variables set by options. # The variables have the same names as the options, with @@ -582,7 +588,7 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:586: checking for a BSD compatible install" >&5 +echo "configure:592: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -635,7 +641,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:639: checking whether build environment is sane" >&5 +echo "configure:645: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -692,7 +698,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:696: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:702: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -721,7 +727,7 @@ PACKAGE=soundtracker -VERSION=0.5.8 +VERSION=0.5.9 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -738,7 +744,7 @@ missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:742: checking for working aclocal" >&5 +echo "configure:748: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -751,7 +757,7 @@ fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:755: checking for working autoconf" >&5 +echo "configure:761: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -764,7 +770,7 @@ fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:768: checking for working automake" >&5 +echo "configure:774: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -777,7 +783,7 @@ fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:781: checking for working autoheader" >&5 +echo "configure:787: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -790,7 +796,7 @@ fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:794: checking for working makeinfo" >&5 +echo "configure:800: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -811,7 +817,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:815: checking for $ac_word" >&5 +echo "configure:821: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -841,7 +847,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:845: checking for $ac_word" >&5 +echo "configure:851: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -892,7 +898,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:896: checking for $ac_word" >&5 +echo "configure:902: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -924,7 +930,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:928: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:934: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -935,12 +941,12 @@ cat > conftest.$ac_ext << EOF -#line 939 "configure" +#line 945 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -966,12 +972,12 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:970: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:976: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:975: checking whether we are using GNU C" >&5 +echo "configure:981: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -980,7 +986,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:984: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:990: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -999,7 +1005,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1003: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1009: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1033,7 +1039,7 @@ # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1037: checking for $ac_word" >&5 +echo "configure:1043: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_sedpath'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1065,10 +1071,34 @@ echo "$ac_t""no" 1>&6 fi -# Extract the first word of "gasp", so it can be a program name with args. + +if test $GCC != yes; then + echo "Fatal error: Need gcc" + exit 1 +fi + +# Check whether --enable-asm or --disable-asm was given. +if test "${enable_asm+set}" = set; then + enableval="$enable_asm" + asm_support=no +fi + + + + +if test x$asm_support = xno; then + NO_ASM_TRUE= + NO_ASM_FALSE='#' +else + NO_ASM_TRUE='#' + NO_ASM_FALSE= +fi + +if test x$asm_support != xno; then + # Extract the first word of "gasp", so it can be a program name with args. set dummy gasp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1072: checking for $ac_word" >&5 +echo "configure:1102: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GASPPATH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1101,19 +1131,14 @@ fi -if test $GCC != yes; then - echo "Fatal error: Need gcc" - exit 1 -fi - -if test ! -n "$GASPPATH"; then + if test ! -n "$GASPPATH"; then cat >> confdefs.h <<\EOF #define NO_GASP 1 EOF -fi - + fi + if test -n "$GASPPATH"; then GASP_IS_THERE_TRUE= @@ -1122,13 +1147,19 @@ GASP_IS_THERE_TRUE='#' GASP_IS_THERE_FALSE= fi +else + cat >> confdefs.h <<\EOF +#define NO_ASM 1 +EOF + +fi CFLAGS="$CFLAGS -Wall" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1132: checking for $ac_word" >&5 +echo "configure:1163: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1159,7 +1190,7 @@ HAVE_POLL="no" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1163: checking how to run the C preprocessor" >&5 +echo "configure:1194: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1174,13 +1205,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1191,13 +1222,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1201: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1208,13 +1239,13 @@ rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1218: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1242,17 +1273,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1246: checking for $ac_hdr" >&5 +echo "configure:1277: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1256: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1275,12 +1306,12 @@ for ac_func in poll do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1279: checking for $ac_func" >&5 +echo "configure:1310: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1337,12 +1368,12 @@ for ac_func in select do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1341: checking for $ac_func" >&5 +echo "configure:1372: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1395,7 +1426,7 @@ ALL_LINGUAS="de es fr it pl ja ru" echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:1399: checking for POSIXized ISC" >&5 +echo "configure:1430: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -1416,12 +1447,12 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1420: checking for ANSI C header files" >&5 +echo "configure:1451: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1429,7 +1460,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1446,7 +1477,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1464,7 +1495,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1485,7 +1516,7 @@ : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1496,7 +1527,7 @@ exit (0); } EOF -if { (eval echo configure:1500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1520,12 +1551,12 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1524: checking for working const" >&5 +echo "configure:1555: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1595,21 +1626,21 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1599: checking for inline" >&5 +echo "configure:1630: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -1635,12 +1666,12 @@ esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:1639: checking for off_t" >&5 +echo "configure:1670: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1668,12 +1699,12 @@ fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:1672: checking for size_t" >&5 +echo "configure:1703: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1703,19 +1734,19 @@ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:1707: checking for working alloca.h" >&5 +echo "configure:1738: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:1719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -1736,12 +1767,12 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:1740: checking for alloca" >&5 +echo "configure:1771: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -1801,12 +1832,12 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:1805: checking whether alloca needs Cray hooks" >&5 +echo "configure:1836: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 -echo "configure:1835: checking for $ac_func" >&5 +echo "configure:1866: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1886,7 +1917,7 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:1890: checking stack direction for C alloca" >&5 +echo "configure:1921: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1894,7 +1925,7 @@ ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -1938,17 +1969,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1942: checking for $ac_hdr" >&5 +echo "configure:1973: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1952: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1983: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1977,12 +2008,12 @@ for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1981: checking for $ac_func" >&5 +echo "configure:2012: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2030,7 +2061,7 @@ done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:2034: checking for working mmap" >&5 +echo "configure:2065: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2038,7 +2069,7 @@ ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -2206,17 +2237,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2210: checking for $ac_hdr" >&5 +echo "configure:2241: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2246,12 +2277,12 @@ strdup __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2250: checking for $ac_func" >&5 +echo "configure:2281: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2303,12 +2334,12 @@ for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2307: checking for $ac_func" >&5 +echo "configure:2338: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2365,19 +2396,19 @@ if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:2369: checking for LC_MESSAGES" >&5 +echo "configure:2400: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:2381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -2398,7 +2429,7 @@ fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:2402: checking whether NLS is requested" >&5 +echo "configure:2433: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -2418,7 +2449,7 @@ EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:2422: checking whether included gettext is requested" >&5 +echo "configure:2453: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -2437,17 +2468,17 @@ ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:2441: checking for libintl.h" >&5 +echo "configure:2472: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2482: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2464,19 +2495,19 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:2468: checking for gettext in libc" >&5 +echo "configure:2499: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:2480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -2492,7 +2523,7 @@ if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:2496: checking for bindtextdomain in -lintl" >&5 +echo "configure:2527: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2500,7 +2531,7 @@ ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2527,12 +2558,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:2531: checking for gettext in libintl" >&5 +echo "configure:2562: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2536: checking for gettext in -lintl" >&5 +echo "configure:2567: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2540,7 +2571,7 @@ ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2590,7 +2621,7 @@ # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2594: checking for $ac_word" >&5 +echo "configure:2625: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2624,12 +2655,12 @@ for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2628: checking for $ac_func" >&5 +echo "configure:2659: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2679,7 +2710,7 @@ # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2683: checking for $ac_word" >&5 +echo "configure:2714: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2715,7 +2746,7 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2719: checking for $ac_word" >&5 +echo "configure:2750: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2747,7 +2778,7 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -2778,7 +2809,7 @@ if test "$CATOBJEXT" = "NONE"; then echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 -echo "configure:2782: checking whether catgets can be used" >&5 +echo "configure:2813: checking whether catgets can be used" >&5 # Check whether --with-catgets or --without-catgets was given. if test "${with_catgets+set}" = set; then withval="$with_catgets" @@ -2791,7 +2822,7 @@ if test "$nls_cv_use_catgets" = "yes"; then echo $ac_n "checking for main in -li""... $ac_c" 1>&6 -echo "configure:2795: checking for main in -li" >&5 +echo "configure:2826: checking for main in -li" >&5 ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2799,14 +2830,14 @@ ac_save_LIBS="$LIBS" LIBS="-li $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2834,12 +2865,12 @@ fi echo $ac_n "checking for catgets""... $ac_c" 1>&6 -echo "configure:2838: checking for catgets" >&5 +echo "configure:2869: checking for catgets" >&5 if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_catgets=yes" else @@ -2884,7 +2915,7 @@ # Extract the first word of "gencat", so it can be a program name with args. set dummy gencat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2888: checking for $ac_word" >&5 +echo "configure:2919: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2920,7 +2951,7 @@ # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2924: checking for $ac_word" >&5 +echo "configure:2955: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2957,7 +2988,7 @@ # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2961: checking for $ac_word" >&5 +echo "configure:2992: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2992,7 +3023,7 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2996: checking for $ac_word" >&5 +echo "configure:3027: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3050,7 +3081,7 @@ # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3054: checking for $ac_word" >&5 +echo "configure:3085: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3084,7 +3115,7 @@ # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3088: checking for $ac_word" >&5 +echo "configure:3119: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3120,7 +3151,7 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3124: checking for $ac_word" >&5 +echo "configure:3155: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3213,7 +3244,7 @@ LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:3217: checking for catalogs to be installed" >&5 +echo "configure:3248: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -3241,17 +3272,17 @@ if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:3245: checking for linux/version.h" >&5 +echo "configure:3276: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3286: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3367,7 +3398,7 @@ # Extract the first word of "gtk-config", so it can be a program name with args. set dummy gtk-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3371: checking for $ac_word" >&5 +echo "configure:3402: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3402,7 +3433,7 @@ min_gtk_version=1.2.2 echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 -echo "configure:3406: checking for GTK - version >= $min_gtk_version" >&5 +echo "configure:3437: checking for GTK - version >= $min_gtk_version" >&5 no_gtk="" if test "$GTK_CONFIG" = "no" ; then no_gtk=yes @@ -3425,7 +3456,7 @@ echo $ac_n "cross compiling; assumed OK... $ac_c" else cat > conftest.$ac_ext < @@ -3503,7 +3534,7 @@ } EOF -if { (eval echo configure:3507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -3537,7 +3568,7 @@ CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat > conftest.$ac_ext < @@ -3547,7 +3578,7 @@ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } EOF -if { (eval echo configure:3551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK or finding the wrong" @@ -3600,7 +3631,7 @@ # Extract the first word of "gnome-config", so it can be a program name with args. set dummy gnome-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3604: checking for $ac_word" >&5 +echo "configure:3635: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_gnomepath'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3633,7 +3664,7 @@ fi echo $ac_n "checking for Gnome compile flags""... $ac_c" 1>&6 -echo "configure:3637: checking for Gnome compile flags" >&5 +echo "configure:3668: checking for Gnome compile flags" >&5 GNOME_CFLAGS=`$gnomepath gnomeui --cflags 2>/dev/null` GNOME_VER=`$gnomepath --version |$sedpath 's/gnome-libs //'` GNOME_MAJOR=`echo $GNOME_VER |$sedpath 's/\([0-9]**\).\([0-9]**\).\([0-9]**\)/\1/'` @@ -3715,7 +3746,7 @@ # Extract the first word of "audiofile-config", so it can be a program name with args. set dummy audiofile-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3719: checking for $ac_word" >&5 +echo "configure:3750: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AUDIOFILE_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3750,7 +3781,7 @@ min_audiofile_version=0.1.5 echo $ac_n "checking for AUDIOFILE - version >= $min_audiofile_version""... $ac_c" 1>&6 -echo "configure:3754: checking for AUDIOFILE - version >= $min_audiofile_version" >&5 +echo "configure:3785: checking for AUDIOFILE - version >= $min_audiofile_version" >&5 no_audiofile="" if test "$AUDIOFILE_CONFIG" = "no" ; then no_audiofile=yes @@ -3773,7 +3804,7 @@ echo $ac_n "cross compiling; assumed OK... $ac_c" else cat > conftest.$ac_ext < @@ -3831,7 +3862,7 @@ EOF -if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -3866,7 +3897,7 @@ CFLAGS="$CFLAGS $AUDIOFILE_CFLAGS" LIBS="$LIBS $AUDIOFILE_LIBS" cat > conftest.$ac_ext < @@ -3876,7 +3907,7 @@ return 0; ; return 0; } EOF -if { (eval echo configure:3880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding AUDIOFILE or finding the wrong" @@ -3916,12 +3947,12 @@ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3920: checking for ANSI C header files" >&5 +echo "configure:3951: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3929,7 +3960,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3964: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3946,7 +3977,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3964,7 +3995,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3985,7 +4016,7 @@ : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3996,7 +4027,7 @@ exit (0); } EOF -if { (eval echo configure:4000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4021,21 +4052,29 @@ -for ac_hdr in sys/soundcard.h machine/soundcard.h +# Check whether --enable-oss or --disable-oss was given. +if test "${enable_oss+set}" = set; then + enableval="$enable_oss" + oss_support=no +fi + + +if test x$oss_support != xno; then + for ac_hdr in sys/soundcard.h machine/soundcard.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4029: checking for $ac_hdr" >&5 +echo "configure:4068: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4061,13 +4100,14 @@ fi done -if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \ - test "${ac_cv_header_machine_soundcard_h}" = "yes"; then + if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \ + test "${ac_cv_header_machine_soundcard_h}" = "yes"; then cat >> confdefs.h <<\EOF #define DRIVER_OSS 1 EOF -fi + fi +fi # Check whether --enable-alsa or --disable-alsa was given. @@ -4079,7 +4119,7 @@ if test x$alsa_support != xno; then echo $ac_n "checking for snd_cards in -lasound""... $ac_c" 1>&6 -echo "configure:4083: checking for snd_cards in -lasound" >&5 +echo "configure:4123: checking for snd_cards in -lasound" >&5 ac_lib_var=`echo asound'_'snd_cards | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4087,7 +4127,7 @@ ac_save_LIBS="$LIBS" LIBS="-lasound $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4123,7 +4163,7 @@ LIBS="$LIBS -lasound" fi echo $ac_n "checking for snd_pcm_capture_params in -lasound""... $ac_c" 1>&6 -echo "configure:4127: checking for snd_pcm_capture_params in -lasound" >&5 +echo "configure:4167: checking for snd_pcm_capture_params in -lasound" >&5 ac_lib_var=`echo asound'_'snd_pcm_capture_params | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4131,7 +4171,7 @@ ac_save_LIBS="$LIBS" LIBS="-lasound $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4175,7 +4215,7 @@ fi echo $ac_n "checking for snd_pcm_channel_params in -lasound""... $ac_c" 1>&6 -echo "configure:4179: checking for snd_pcm_channel_params in -lasound" >&5 +echo "configure:4219: checking for snd_pcm_channel_params in -lasound" >&5 ac_lib_var=`echo asound'_'snd_pcm_channel_params | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4183,7 +4223,7 @@ ac_save_LIBS="$LIBS" LIBS="-lasound $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4278,7 +4318,7 @@ # Extract the first word of "esd-config", so it can be a program name with args. set dummy esd-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4282: checking for $ac_word" >&5 +echo "configure:4322: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_ESD_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4313,7 +4353,7 @@ min_esd_version=0.2.8 echo $ac_n "checking for ESD - version >= $min_esd_version""... $ac_c" 1>&6 -echo "configure:4317: checking for ESD - version >= $min_esd_version" >&5 +echo "configure:4357: checking for ESD - version >= $min_esd_version" >&5 no_esd="" if test "$ESD_CONFIG" = "no" ; then no_esd=yes @@ -4337,7 +4377,7 @@ echo $ac_n "cross compiling; assumed OK... $ac_c" else cat > conftest.$ac_ext < @@ -4395,7 +4435,7 @@ EOF -if { (eval echo configure:4399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4429,7 +4469,7 @@ CFLAGS="$CFLAGS $ESD_CFLAGS" LIBS="$LIBS $ESD_LIBS" cat > conftest.$ac_ext < @@ -4439,7 +4479,7 @@ return 0; ; return 0; } EOF -if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding ESD or finding the wrong" @@ -4475,12 +4515,12 @@ for ac_func in esd_play_stream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4479: checking for $ac_func" >&5 +echo "configure:4519: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4547,15 +4587,114 @@ fi +# Check whether --enable-sgi or --disable-sgi was given. +if test "${enable_sgi+set}" = set; then + enableval="$enable_sgi" + sgi_support=no +fi + + +case `uname` in + IRIX*) + if test x$sgi_support != xno; then + ac_safe=`echo "dmedia/audio.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for dmedia/audio.h""... $ac_c" 1>&6 +echo "configure:4603: checking for dmedia/audio.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:4613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_header_dmedia_audio_h = yes + then + echo $ac_n "checking for ALseterrorhandler in -laudio""... $ac_c" 1>&6 +echo "configure:4637: checking for ALseterrorhandler in -laudio" >&5 +ac_lib_var=`echo audio'_'ALseterrorhandler | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-laudio $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + driver_sgi=yes +else + echo "$ac_t""no" 1>&6 +fi + + if test $driver_sgi = yes + then + cat >> confdefs.h <<\EOF +#define DRIVER_SGI 1 +EOF + + LIBS="$LIBS -laudio" + fi + fi + fi + ;; +esac + + echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4552: checking whether byte ordering is bigendian" >&5 +echo "configure:4691: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -4566,11 +4705,11 @@ #endif ; return 0; } EOF -if { (eval echo configure:4570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -4581,7 +4720,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:4585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4724: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4601,7 +4740,7 @@ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -4638,9 +4777,11 @@ fi -if test ! -n "$GASPPATH"; then +if test x$asm_support != xno; then + if test ! -n "$GASPPATH"; then echo "*** The GNU assembler preprocessor (gasp) couldn't be found on your machine:" - echo " * The high-quality kb_x86 mixer will not be built." + echo " * Assembly language optimizations will not be built." + fi fi trap '' 1 2 15 @@ -4797,6 +4938,8 @@ s%@SET_MAKE@%$SET_MAKE%g s%@CC@%$CC%g s%@sedpath@%$sedpath%g +s%@NO_ASM_TRUE@%$NO_ASM_TRUE%g +s%@NO_ASM_FALSE@%$NO_ASM_FALSE%g s%@GASPPATH@%$GASPPATH%g s%@GASP_IS_THERE_TRUE@%$GASP_IS_THERE_TRUE%g s%@GASP_IS_THERE_FALSE@%$GASP_IS_THERE_FALSE%g diff -urN soundtracker-0.5.8/configure.in soundtracker-0.5.9/configure.in --- soundtracker-0.5.8/configure.in Tue Sep 19 18:06:14 2000 +++ soundtracker-0.5.9/configure.in Sun Sep 24 15:03:42 2000 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(app/endian-conv.h) -AM_INIT_AUTOMAKE(soundtracker, 0.5.8) +AM_INIT_AUTOMAKE(soundtracker, 0.5.9) AM_CONFIG_HEADER(config.h) dnl ----------------------------------------------------------------------- @@ -10,18 +10,29 @@ AC_PROG_CC AC_PATH_PROG(sedpath, sed) -AC_PATH_PROG(GASPPATH, gasp) if test $GCC != yes; then echo "Fatal error: Need gcc" exit 1 fi -if test ! -n "$GASPPATH"; then +AC_ARG_ENABLE(asm, +[ --disable-asm Disable use of assembler optimizations], +asm_support=no) + +AM_CONDITIONAL(NO_ASM, test x$asm_support = xno) + +if test x$asm_support != xno; then + AC_PATH_PROG(GASPPATH, gasp) + + if test ! -n "$GASPPATH"; then AC_DEFINE(NO_GASP) -fi + fi -AM_CONDITIONAL(GASP_IS_THERE, test -n "$GASPPATH") + AM_CONDITIONAL(GASP_IS_THERE, test -n "$GASPPATH") +else + AC_DEFINE(NO_ASM) +fi CFLAGS="$CFLAGS -Wall" @@ -113,18 +124,24 @@ dnl Test for OSS headers dnl ----------------------------------------------------------------------- -AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h) -if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \ - test "${ac_cv_header_machine_soundcard_h}" = "yes"; then +AC_ARG_ENABLE(oss, +[ --disable-oss Disable OSS driver (default = try)], +oss_support=no) + +if test x$oss_support != xno; then + AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h) + if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \ + test "${ac_cv_header_machine_soundcard_h}" = "yes"; then AC_DEFINE(DRIVER_OSS) -fi + fi +fi dnl ----------------------------------------------------------------------- dnl Test for ALSA-lib dnl ----------------------------------------------------------------------- AC_ARG_ENABLE(alsa, -[ --disable-alsa Disable ALSA (default = no)], +[ --disable-alsa Disable ALSA driver (default = try)], alsa_support=no) if test x$alsa_support != xno; then @@ -145,7 +162,7 @@ dnl ----------------------------------------------------------------------- AC_ARG_ENABLE(esd, -[ --disable-esd Disable ESD (default = no)], +[ --disable-esd Disable ESD driver (default = try)], esd_support=no) if test x$esd_support != xno; then @@ -159,12 +176,42 @@ fi fi +dnl ----------------------------------------------------------------------- +dnl Test for SGI audio +dnl ----------------------------------------------------------------------- + +AC_ARG_ENABLE(sgi, +[ --disable-sgi Disable SGI driver (default = try)], +sgi_support=no) + +case `uname` in + IRIX*) + if test x$sgi_support != xno; then + AC_CHECK_HEADER(dmedia/audio.h) + if test $ac_cv_header_dmedia_audio_h = yes + then + AC_CHECK_LIB(audio,ALseterrorhandler,driver_sgi=yes) + if test $driver_sgi = yes + then + AC_DEFINE(DRIVER_SGI) + LIBS="$LIBS -laudio" + fi + fi + fi + ;; +esac + +dnl ----------------------------------------------------------------------- +dnl Other tests +dnl ----------------------------------------------------------------------- AC_C_BIGENDIAN -if test ! -n "$GASPPATH"; then +if test x$asm_support != xno; then + if test ! -n "$GASPPATH"; then echo "*** The GNU assembler preprocessor (gasp) couldn't be found on your machine:" - echo " * The high-quality kb_x86 mixer will not be built." + echo " * Assembly language optimizations will not be built." + fi fi AC_OUTPUT([ diff -urN soundtracker-0.5.8/doc/hacking.html soundtracker-0.5.9/doc/hacking.html --- soundtracker-0.5.8/doc/hacking.html Tue Sep 19 18:11:22 2000 +++ soundtracker-0.5.9/doc/hacking.html Sun Sep 24 18:57:57 2000 @@ -1,7 +1,7 @@ + from hacking.texi on 24 September 2000 --> SoundTracker internals @@ -308,7 +308,7 @@


-This document was generated on 19 September 2000 using the +This document was generated on 24 September 2000 using the texi2html translator version 1.51.

diff -urN soundtracker-0.5.8/doc/xm.txt soundtracker-0.5.9/doc/xm.txt --- soundtracker-0.5.8/doc/xm.txt Mon Mar 27 12:25:13 2000 +++ soundtracker-0.5.9/doc/xm.txt Mon Sep 25 15:01:58 2000 @@ -1,273 +1,273 @@ - - The XM module format description for XM files version $0104. - - By Mr.H of Triton in 1994. - - - Be prepared! Are you sure you want to know? :-) - - ============================================================================ - - - ****************************** - * The XM file structure: * - ****************************** - - Offset Length Type - - 0 17 (char) ID text: 'Extended module: ' - 17 20 (char) Module name, padded with zeroes - 37 1 (char) $1a - 38 20 (char) Tracker name - 58 2 (word) Version number, hi-byte major and low-byte minor - The current format is version $0103 - - 60 4 (dword) Header size - +4 2 (word) Song length (in patten order table) - +6 2 (word) Restart position - +8 2 (word) Number of channels (2,4,6,8,10,...,32) - +10 2 (word) Number of patterns (max 256) - +12 2 (word) Number of instruments (max 128) - +14 2 (word) Flags: bit 0: 0 = Amiga frequency table (see below); - 1 = Linear frequency table - +16 2 (word) Default tempo - +18 2 (word) Default BPM - +20 256 (byte) Pattern order table - - Patterns: - --------- - - ? 4 (dword) Pattern header length - +4 1 (byte) Packing type (always 0) - +5 2 (word) Number of rows in pattern (1..256) - +7 2 (word) Packed patterndata size - - ? ? Packed pattern data - - Instruments: - ------------ - - ? 4 (dword) Instrument size - +4 22 (char) Instrument name - +26 1 (byte) Instrument type (always 0) - +27 2 (word) Number of samples in instrument - - If the number of samples > 0, then the this will follow: - - ! +29 4 (dword) Sample header size - ! +33 96 (byte) Sample number for all notes - ! +129 48 (byte) Points for volume envelope - ! +177 48 (byte) Points for panning envelope - ! +225 1 (byte) Number of volume points - ! +226 1 (byte) Number of panning points - ! +227 1 (byte) Volume sustain point - ! +228 1 (byte) Volume loop start point - ! +229 1 (byte) Volume loop end point - ! +230 1 (byte) Panning sustain point - ! +231 1 (byte) Panning loop start point - ! +232 1 (byte) Panning loop end point - ! +233 1 (byte) Volume type: bit 0: On; 1: Sustain; 2: Loop - ! +234 1 (byte) Panning type: bit 0: On; 1: Sustain; 2: Loop - ! +235 1 (byte) Vibrato type - ! +236 1 (byte) Vibrato sweep - ! +237 1 (byte) Vibrato depth - ! +238 1 (byte) Vibrato rate - ! +239 2 (word) Volume fadeout - ! +241 2 (word) Reserved - ! - ! Sample headers: - ! --------------- - ! - ! ? 4 (dword) Sample length - ! +4 4 (dword) Sample loop start - ! +8 4 (dword) Sample loop length - ! +12 1 (byte) Volume - ! +13 1 (byte) Finetune (signed byte -16..+15) - ! +14 1 (byte) Type: Bit 0-1: 0 = No loop, 1 = Forward loop, - ! 2 = Ping-pong loop; - ! 4: 16-bit sampledata - ! +15 1 (byte) Panning (0-255) - ! +16 1 (byte) Relative note number (signed byte) - ! +17 1 (byte) Reserved - ! +18 22 (char) Sample name - ! - ! Sample data: - ! ------------ - ! - ! ? ? Sample data (signed): The samples are stored - ! as delta values. To convert to real data: - ! - ! old=0; - ! for i=1 to len - ! new=sample[i]+old; - ! sample[i]=new; - ! old=new; - - - - *********************** - * Pattern format: * - *********************** - - The patterns are stored as ordinary MOD patterns, except that each - note is stored as 5 bytes: - - ? 1 (byte) Note (0-71, 0 = C-0) - +1 1 (byte) Instrument (0-128) - +2 1 (byte) Volume column byte (see below) - +3 1 (byte) Effect type - +4 1 (byte) Effect parameter - - A simle packing scheme is also adopted, so that the patterns not become - TOO large: Since the MSB in the note value is never used, if is used for - the compression. If the bit is set, then the other bits are interpreted - as follows: - - bit 0 set: Note follows - 1 set: Instrument follows - 2 set: Volume column byte follows - 3 set: Effect type follows - 4 set: Guess what! - - It is very simple, but far from optimal. If you want a better, - you can always repack the patterns in your loader. - - - - ****************************** - * Volumes and envelopes: * - ****************************** - - The volume formula: - - FinalVol=(FadeOutVol/65536)*(EnvelopeVol/64)*(GlobalVol/64)*(Vol/64)*Scale; - - The panning formula: - - FinalPan=Pan+(EnvelopePan-32)*(128-Abs(Pan-128))/32; - - Envelope: - --------- - - The envelopes are processed once per frame, instead of every frame where - no new notes are read. This is also true for the instrument vibrato and - the fadeout. Since I am so lazy and the tracker is rather self-explaining - I am not going to write any more for the moment. - - - ******************************** - * Periods and frequencies: * - ******************************** - - PatternNote = 0..95 (0 = C-0, 95 = B-7) - - FineTune = -128..+127 (-128 = -1 halftone, +127 = +127/128 halftones) - RelativeTone = -96..95 (0 => C-4 = C-4) - - RealNote = PatternNote + RelativeTone; (0..118, 0 = C-0, 118 = A#9) - - Linear frequence table: - ----------------------- - - Period = 10*12*16*4 - Note*16*4 - FineTune/2; - Frequency = 8363*2^((6*12*16*4 - Period) / (12*16*4)); - - Amiga frequence table: - ---------------------- - - Period = (PeriodTab[(Note MOD 12)*8 + FineTune/16]*(1-Frac(FineTune/16)) + - PeriodTab[(Note MOD 12)*8 + FineTune/16]*(Frac(FineTune/16))) - *16/2^(Note DIV 12); - (The period is interpolated for finer finetune values) - Frequency = 8363*1712/Period; - - PeriodTab = Array[0..12*8-1] of Word = ( - 907,900,894,887,881,875,868,862,856,850,844,838,832,826,820,814, - 808,802,796,791,785,779,774,768,762,757,752,746,741,736,730,725, - 720,715,709,704,699,694,689,684,678,675,670,665,660,655,651,646, - 640,636,632,628,623,619,614,610,604,601,597,592,588,584,580,575, - 570,567,563,559,555,551,547,543,538,535,532,528,524,520,516,513, - 508,505,502,498,494,491,487,484,480,477,474,470,467,463,460,457); - - - ************************* - * Standard effects: * - ************************* - - 0 Appregio - 1 (*) Porta up - 2 (*) Porta down - 3 (*) Tone porta - 4 (*) Vibrato - 5 (*) Tone porta+Volume slide - 6 (*) Vibrato+Volume slide - 7 (*) Tremolo - 8 Set panning - 9 Sample offset - A (*) Volume slide - B Position jump - C Set volume - D Pattern break - E1 (*) Fine porta up - E2 (*) Fine porta down - E3 Set gliss control - E4 Set vibrato control - E5 Set finetune - E6 Set loop begin/loop - E7 Set tremolo control - E9 Retrig note - EA (*) Fine volume slide up - EB (*) Fine volume slide down - EC Note cut - ED Note delay - EE Pattern delay - F Set tempo/BPM - G Set global volume - H (*) Global volume slide - K Key off - L Set envelope position - P (*) Panning slide - R (*) Multi retrig note - T Tremor - X1 (*) Extra fine porta up - X2 (*) Extra fine porta down - - (*) = If the command byte is zero, the last nonzero byte for the - command should be used. - - ********************************* - * Effects in volume column: * - ********************************* - - All effects in the volume column should work as the standard effects. - The volume column is interpreted before the standard effects, so - some standard effects may override volume column effects. - - Value Meaning - - 0 Do nothing - $10-$50 Set volume Value-$10 - : : : - : : : - $60-$6f Volume slide down - $70-$7f Volume slide up - $80-$8f Fine volume slide down - $90-$9f Fine volume slide up - $a0-$af Set vibrato speed - $b0-$bf Vibrato - $c0-$cf Set panning - $d0-$df Panning slide left - $e0-$ef Panning slide right - $f0-$ff Tone porta - - - ============================================================================ - - This should be just about everything (I hope?). You will probably need - some information about the MOD format and maybe about S3M. - - Have fun! - - Fredrik Huss / Mr.H of Triton + + The XM module format description for XM files version $0104. + + By Mr.H of Triton in 1994. + + - Be prepared! Are you sure you want to know? :-) + + ============================================================================ + + + ****************************** + * The XM file structure: * + ****************************** + + Offset Length Type + + 0 17 (char) ID text: 'Extended module: ' + 17 20 (char) Module name, padded with zeroes + 37 1 (char) $1a + 38 20 (char) Tracker name + 58 2 (word) Version number, hi-byte major and low-byte minor + The current format is version $0103 + + 60 4 (dword) Header size + +4 2 (word) Song length (in patten order table) + +6 2 (word) Restart position + +8 2 (word) Number of channels (2,4,6,8,10,...,32) + +10 2 (word) Number of patterns (max 256) + +12 2 (word) Number of instruments (max 128) + +14 2 (word) Flags: bit 0: 0 = Amiga frequency table (see below); + 1 = Linear frequency table + +16 2 (word) Default tempo + +18 2 (word) Default BPM + +20 256 (byte) Pattern order table + + Patterns: + --------- + + ? 4 (dword) Pattern header length + +4 1 (byte) Packing type (always 0) + +5 2 (word) Number of rows in pattern (1..256) + +7 2 (word) Packed patterndata size + + ? ? Packed pattern data + + Instruments: + ------------ + + ? 4 (dword) Instrument size + +4 22 (char) Instrument name + +26 1 (byte) Instrument type (always 0) + +27 2 (word) Number of samples in instrument + + If the number of samples > 0, then the this will follow: + + ! +29 4 (dword) Sample header size + ! +33 96 (byte) Sample number for all notes + ! +129 48 (byte) Points for volume envelope + ! +177 48 (byte) Points for panning envelope + ! +225 1 (byte) Number of volume points + ! +226 1 (byte) Number of panning points + ! +227 1 (byte) Volume sustain point + ! +228 1 (byte) Volume loop start point + ! +229 1 (byte) Volume loop end point + ! +230 1 (byte) Panning sustain point + ! +231 1 (byte) Panning loop start point + ! +232 1 (byte) Panning loop end point + ! +233 1 (byte) Volume type: bit 0: On; 1: Sustain; 2: Loop + ! +234 1 (byte) Panning type: bit 0: On; 1: Sustain; 2: Loop + ! +235 1 (byte) Vibrato type + ! +236 1 (byte) Vibrato sweep + ! +237 1 (byte) Vibrato depth + ! +238 1 (byte) Vibrato rate + ! +239 2 (word) Volume fadeout + ! +241 2 (word) Reserved + ! + ! Sample headers: + ! --------------- + ! + ! ? 4 (dword) Sample length + ! +4 4 (dword) Sample loop start + ! +8 4 (dword) Sample loop length + ! +12 1 (byte) Volume + ! +13 1 (byte) Finetune (signed byte -16..+15) + ! +14 1 (byte) Type: Bit 0-1: 0 = No loop, 1 = Forward loop, + ! 2 = Ping-pong loop; + ! 4: 16-bit sampledata + ! +15 1 (byte) Panning (0-255) + ! +16 1 (byte) Relative note number (signed byte) + ! +17 1 (byte) Reserved + ! +18 22 (char) Sample name + ! + ! Sample data: + ! ------------ + ! + ! ? ? Sample data (signed): The samples are stored + ! as delta values. To convert to real data: + ! + ! old=0; + ! for i=1 to len + ! new=sample[i]+old; + ! sample[i]=new; + ! old=new; + + + + *********************** + * Pattern format: * + *********************** + + The patterns are stored as ordinary MOD patterns, except that each + note is stored as 5 bytes: + + ? 1 (byte) Note (0-71, 0 = C-0) + +1 1 (byte) Instrument (0-128) + +2 1 (byte) Volume column byte (see below) + +3 1 (byte) Effect type + +4 1 (byte) Effect parameter + + A simle packing scheme is also adopted, so that the patterns not become + TOO large: Since the MSB in the note value is never used, if is used for + the compression. If the bit is set, then the other bits are interpreted + as follows: + + bit 0 set: Note follows + 1 set: Instrument follows + 2 set: Volume column byte follows + 3 set: Effect type follows + 4 set: Guess what! + + It is very simple, but far from optimal. If you want a better, + you can always repack the patterns in your loader. + + + + ****************************** + * Volumes and envelopes: * + ****************************** + + The volume formula: + + FinalVol=(FadeOutVol/65536)*(EnvelopeVol/64)*(GlobalVol/64)*(Vol/64)*Scale; + + The panning formula: + + FinalPan=Pan+(EnvelopePan-32)*(128-Abs(Pan-128))/32; + + Envelope: + --------- + + The envelopes are processed once per frame, instead of every frame where + no new notes are read. This is also true for the instrument vibrato and + the fadeout. Since I am so lazy and the tracker is rather self-explaining + I am not going to write any more for the moment. + + + ******************************** + * Periods and frequencies: * + ******************************** + + PatternNote = 0..95 (0 = C-0, 95 = B-7) + + FineTune = -128..+127 (-128 = -1 halftone, +127 = +127/128 halftones) + RelativeTone = -96..95 (0 => C-4 = C-4) + + RealNote = PatternNote + RelativeTone; (0..118, 0 = C-0, 118 = A#9) + + Linear frequence table: + ----------------------- + + Period = 10*12*16*4 - Note*16*4 - FineTune/2; + Frequency = 8363*2^((6*12*16*4 - Period) / (12*16*4)); + + Amiga frequence table: + ---------------------- + + Period = (PeriodTab[(Note MOD 12)*8 + FineTune/16]*(1-Frac(FineTune/16)) + + PeriodTab[(Note MOD 12)*8 + FineTune/16]*(Frac(FineTune/16))) + *16/2^(Note DIV 12); + (The period is interpolated for finer finetune values) + Frequency = 8363*1712/Period; + + PeriodTab = Array[0..12*8-1] of Word = ( + 907,900,894,887,881,875,868,862,856,850,844,838,832,826,820,814, + 808,802,796,791,785,779,774,768,762,757,752,746,741,736,730,725, + 720,715,709,704,699,694,689,684,678,675,670,665,660,655,651,646, + 640,636,632,628,623,619,614,610,604,601,597,592,588,584,580,575, + 570,567,563,559,555,551,547,543,538,535,532,528,524,520,516,513, + 508,505,502,498,494,491,487,484,480,477,474,470,467,463,460,457); + + + ************************* + * Standard effects: * + ************************* + + 0 Appregio + 1 (*) Porta up + 2 (*) Porta down + 3 (*) Tone porta + 4 (*) Vibrato + 5 (*) Tone porta+Volume slide + 6 (*) Vibrato+Volume slide + 7 (*) Tremolo + 8 Set panning + 9 Sample offset + A (*) Volume slide + B Position jump + C Set volume + D Pattern break + E1 (*) Fine porta up + E2 (*) Fine porta down + E3 Set gliss control + E4 Set vibrato control + E5 Set finetune + E6 Set loop begin/loop + E7 Set tremolo control + E9 Retrig note + EA (*) Fine volume slide up + EB (*) Fine volume slide down + EC Note cut + ED Note delay + EE Pattern delay + F Set tempo/BPM + G Set global volume + H (*) Global volume slide + K Key off + L Set envelope position + P (*) Panning slide + R (*) Multi retrig note + T Tremor + X1 (*) Extra fine porta up + X2 (*) Extra fine porta down + + (*) = If the command byte is zero, the last nonzero byte for the + command should be used. + + ********************************* + * Effects in volume column: * + ********************************* + + All effects in the volume column should work as the standard effects. + The volume column is interpreted before the standard effects, so + some standard effects may override volume column effects. + + Value Meaning + + 0 Do nothing + $10-$50 Set volume Value-$10 + : : : + : : : + $60-$6f Volume slide down + $70-$7f Volume slide up + $80-$8f Fine volume slide down + $90-$9f Fine volume slide up + $a0-$af Set vibrato speed + $b0-$bf Vibrato + $c0-$cf Set panning + $d0-$df Panning slide left + $e0-$ef Panning slide right + $f0-$ff Tone porta + + + ============================================================================ + + This should be just about everything (I hope?). You will probably need + some information about the MOD format and maybe about S3M. + + Have fun! + + Fredrik Huss / Mr.H of Triton Binary files soundtracker-0.5.8/po/de.gmo and soundtracker-0.5.9/po/de.gmo differ diff -urN soundtracker-0.5.8/po/de.po soundtracker-0.5.9/po/de.po --- soundtracker-0.5.8/po/de.po Tue Sep 19 18:20:26 2000 +++ soundtracker-0.5.9/po/de.po Mon Sep 25 15:07:50 2000 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: soundtracker-0.3.3\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 1999-09-21 23:00+02:00\n" "Last-Translator: Colin Marquardt \n" "Language-Team: German \n" @@ -53,7 +53,7 @@ msgid "Mixers" msgstr "Modifizierer:" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "Schließen" @@ -74,12 +74,12 @@ msgstr "Diese Änderungen werden erst beim nächsten Neustart wirksam." #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "Auflösung:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "Kanäle:" @@ -154,7 +154,7 @@ msgid "no settings (yet), sorry!" msgstr "Keine Einstellungen (zur Zeit), sorry!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "Kann Datei nicht zum Schreiben öffnen." @@ -231,11 +231,11 @@ msgid "Loop" msgstr "Loop" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "Anfang" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "Ende" @@ -258,7 +258,7 @@ msgid "Save Song" msgstr "Spiele Song" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "Lade Sample" @@ -441,8 +441,8 @@ msgid "Question" msgstr "Frage" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "Abbrechen" @@ -470,64 +470,64 @@ msgid "Are you sure you want to overwrite the file?" msgstr "Sind sie sicher, daß Sie die Datei überschreiben wollen?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "Lade XM..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "Speichere XM..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "" -#: app/gui.c:1295 +#: app/gui.c:1301 #, fuzzy msgid "Save song as XM..." msgstr "Speichere WAV..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "Spiele Song" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "Spiele Pattern" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "Stop" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "Anzahl der Kanäle:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "Pattern" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "PatLänge" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "Oktave" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "Springe" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "Instr" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "Sample" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1265,7 +1265,7 @@ msgid "Linear" msgstr "Linear" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "Amiga" @@ -1305,157 +1305,157 @@ "Ein Verzeichnis namens '.soundtracker' wurde in Ihrem Home-Verzeichnis \n" "angelegt, um Konfigurationsdateien darin zu speichern.\n" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "Keine Loop" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "PingPong" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "8 Bits" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "16 Bits" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "Sample-Editor" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "Lautstärke" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "Balance" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "Feineinstellung" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 #, fuzzy msgid "Selection:" msgstr "_Auswahl" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 #, fuzzy msgid "None" msgstr "Note:" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 #, fuzzy msgid "Length:" msgstr "Länge" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "RelNote" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 #, fuzzy msgid "Load Sample..." msgstr "Lade Sample..." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 #, fuzzy msgid "Save WAV..." msgstr "Speichere WAV..." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 #, fuzzy msgid "Save region as WAV..." msgstr "Speichere WAV..." -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "Speichere WAV" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "Monitor" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "Lautstärke" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "Zoom in Auswahl" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "Zeige alles" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "Zoom in (+50%)" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "Zoom out (-50%)" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 #, fuzzy msgid "Reverse" msgstr "Entfernen" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "Ausschneiden" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "Entfernen" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "Kopieren" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "Einfügen" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 #, fuzzy msgid "Clear Sample" msgstr "Lade Sample" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 #, fuzzy msgid "(no selection)" msgstr "Zoom in Auswahl" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "Lesefehler." -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 #, fuzzy msgid "Load stereo sample" msgstr "Lade Sample" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1463,26 +1463,26 @@ "Please choose which channel to load:" msgstr "" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 #, fuzzy msgid "Left" msgstr "Links [%]:" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 #, fuzzy msgid "Right" msgstr "Rechts [%]:" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 #, fuzzy msgid "Load raw sample" msgstr "Lade Sample" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1490,82 +1490,82 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "OK" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "Kann Sample nicht lesen" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "Sample ist zu lang für aktuelles Mixer-Modul. Lade trotzdem." -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 #, fuzzy msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "Kann nur mono- 8 und 16 Bit Samples verarbeiten" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "" -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "Starte Sampling" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "Sampling-Fenster" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" "Aufgezeichnetes Sample ist zu lang für aktuelles Mixer-Modul. Verwende es " "trotzdem." -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "Normalisieren" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "Ausführen" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "Lautstärke-Anpassung" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "Lineare Lautstärkenverringerung auf Markierung" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "Links [%]:" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "Rechts [%]:" @@ -1875,11 +1875,11 @@ msgid "square" msgstr "Rechteck" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "Jazz-Edit:" -#: app/track-editor.c:378 +#: app/track-editor.c:377 #, fuzzy msgid "Tracker" msgstr "_Track" @@ -1991,43 +1991,43 @@ msgid "Instrument 2:" msgstr "Instrument 2:" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "Patternlänge außerhalb des Bereiches: %d.\n" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "Datei ist kein XI-Instrument." -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "Unbekannte XI-Version 0x%x\n" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "Ungültiger vibtype %d, verwende Sinus.\n" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "Fehler beim Laden der Pattern." -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "Kann Datei nicht öffnen" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" "XM-Header-Länge != 276. Vielleicht ein pre-0.0.12 SoundTracker-Modul? :-)\n" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "Fehler beim Laden der Instrumente." -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" @@ -2036,7 +2036,7 @@ "Modul enthält Sample(s), die zu lang für den aktuellen Mixer sind..\n" "Maximale Sample-Länge ist %d." -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "Kein FastTracker XM und kein unterstütztes MOD-Format!" diff -urN soundtracker-0.5.8/po/es.po soundtracker-0.5.9/po/es.po --- soundtracker-0.5.8/po/es.po Tue Sep 19 18:20:26 2000 +++ soundtracker-0.5.9/po/es.po Mon Sep 25 15:07:51 2000 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 1999-10-02 23:58+0200\n" "Last-Translator: German Gomez >\n" "Language-Team: Spanish \n" @@ -54,7 +54,7 @@ msgid "Mixers" msgstr "Modificadores" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "" @@ -75,12 +75,12 @@ msgstr "Estos cambios no tendrán efecto hasta la próxima reproducción" #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "Resolución:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "Canales:" @@ -157,7 +157,7 @@ msgid "no settings (yet), sorry!" msgstr "no hay preferencias (todavía), ¡lo siento!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "" @@ -234,11 +234,11 @@ msgid "Loop" msgstr "Ciclo" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "Comienzo" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "Final" @@ -260,7 +260,7 @@ msgid "Save Song" msgstr "Reproducir Cancion" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "" @@ -433,8 +433,8 @@ msgid "Question" msgstr "Pregunta" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "Cancelar" @@ -462,64 +462,64 @@ msgid "Are you sure you want to overwrite the file?" msgstr "¿Seguro que quiere sobrescribir el fichero?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "Abrir XM..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "Guardar XM..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "" -#: app/gui.c:1295 +#: app/gui.c:1301 #, fuzzy msgid "Save song as XM..." msgstr "Guardar XM..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "Reproducir Cancion" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "Reproducir Patrón" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "Parar" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "Número de Canales:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "Patrón" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "Longitud del Patrón" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "Octava" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "Saltar" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "Instrumento" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "Muestra" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1214,7 +1214,7 @@ msgid "Linear" msgstr "" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "" @@ -1252,153 +1252,153 @@ "home directory to store configuration files.\n" msgstr "" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 #, fuzzy msgid "Selection:" msgstr "Resolución:" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 #, fuzzy msgid "None" msgstr "Nota:" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 #, fuzzy msgid "Length:" msgstr "Longitud" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 #, fuzzy msgid "Load Sample..." msgstr "Abrir XM..." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 #, fuzzy msgid "Save WAV..." msgstr "Guardar XM..." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 msgid "Save region as WAV..." msgstr "" -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 msgid "Reverse" msgstr "" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 #, fuzzy msgid "Clear Sample" msgstr "Muestra" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 msgid "(no selection)" msgstr "" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "" -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 msgid "Load stereo sample" msgstr "" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1406,25 +1406,25 @@ "Please choose which channel to load:" msgstr "" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 #, fuzzy msgid "Left" msgstr "Longitud" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 msgid "Right" msgstr "" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 #, fuzzy msgid "Load raw sample" msgstr "Abrir XM..." -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1432,79 +1432,79 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "" -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "" -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "" @@ -1789,11 +1789,11 @@ msgid "square" msgstr "Cuadrada" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "" -#: app/track-editor.c:378 +#: app/track-editor.c:377 msgid "Tracker" msgstr "" @@ -1903,49 +1903,49 @@ msgid "Instrument 2:" msgstr "" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "" -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "" -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "" -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" "Maximum sample length is %d." msgstr "" -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "" diff -urN soundtracker-0.5.8/po/fr.po soundtracker-0.5.9/po/fr.po --- soundtracker-0.5.8/po/fr.po Tue Sep 19 18:20:26 2000 +++ soundtracker-0.5.9/po/fr.po Mon Sep 25 15:07:51 2000 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: soundtracker-0.5.0\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 2000-03-21 19:19+01:00\n" "Last-Translator: Saïd Bougribate \n" "Language-Team: French \n" @@ -54,7 +54,7 @@ msgid "Mixers" msgstr "Modificateur:" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "Fermer" @@ -75,12 +75,12 @@ msgstr "Les changments ne prendront effet qu'au redémarrage de l'application." #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "Résolution:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "Canaux:" @@ -156,7 +156,7 @@ msgid "no settings (yet), sorry!" msgstr "Pas de configuration (pour l'instant), désolé!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "Impossible d'ouvrir le fichier pour l'écriture." @@ -233,11 +233,11 @@ msgid "Loop" msgstr "Boucle" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "Démarrer" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "Fin" @@ -260,7 +260,7 @@ msgid "Save Song" msgstr "Joue la Musique" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "Charge Echantillon" @@ -442,8 +442,8 @@ msgid "Question" msgstr "Question" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "Annuler" @@ -471,64 +471,64 @@ msgid "Are you sure you want to overwrite the file?" msgstr "Etes vous sur de vouloir supprimer ce fichier?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "Charge XM..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "Sauve XM..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "" -#: app/gui.c:1295 +#: app/gui.c:1301 #, fuzzy msgid "Save song as XM..." msgstr "Sauve XM..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "Joue la Musique" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "Joue le Pattern" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "Stop" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "Nombre de canaux:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "Pattern" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "Durée du pattern" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "Octave" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "Saut" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "Instrument" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "Echantillon" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1240,7 +1240,7 @@ msgid "Linear" msgstr "Linéaire" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "Amiga" @@ -1280,157 +1280,157 @@ "Un répertoire appeler '.soundtracker' a été créé dans votre\n" "répertoire maison pour y créer un fichier de sauvegarde .\n" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "Pas de boucle" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "Ping Pong" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "8 bits" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "16 bits" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "Editeur d'échantillon" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "Volume" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "Panoramique" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "Regulation affinée" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 #, fuzzy msgid "Selection:" msgstr "_Sélection" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 #, fuzzy msgid "None" msgstr "Note:" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 #, fuzzy msgid "Length:" msgstr "Durée" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "NoteRelative" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 #, fuzzy msgid "Load Sample..." msgstr "Charge Echantillon.." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 #, fuzzy msgid "Save WAV..." msgstr "Sauve WAV.." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 #, fuzzy msgid "Save region as WAV..." msgstr "Sauve WAV.." -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "Sauve WAV" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "Moniteur" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "Rampe du Volume" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "Zoom la sélection" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "Montrer tout" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "Zoom avant (+50%)" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "Zoom arrière (-50%)" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 #, fuzzy msgid "Reverse" msgstr "Enlever" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "Couper" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "Enlever" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "Copier" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "Coller" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 #, fuzzy msgid "Clear Sample" msgstr "Charge Echantillon" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 #, fuzzy msgid "(no selection)" msgstr "Zoom la sélection" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "Erreur de lecture." -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 #, fuzzy msgid "Load stereo sample" msgstr "Charge Echantillon" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1438,26 +1438,26 @@ "Please choose which channel to load:" msgstr "" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 #, fuzzy msgid "Left" msgstr "Gauche [%]:" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 #, fuzzy msgid "Right" msgstr "Droit [%]:" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 #, fuzzy msgid "Load raw sample" msgstr "Charge Echantillon" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1465,82 +1465,82 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "OK" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "Impossible de lire l'échantillon" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "" "L'échantillon est trop long pour le mixer. Continue chargement néanmoins." -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 #, fuzzy msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "Ne peut supporter que les échantillons mono 8/16 bits" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "" -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "Démarre l'échantillonage" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "Fenêtre d'echantillonage" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" "L'échantillon enregistré est trop long pour le mixer. Continue néanmoins." -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "Normaliser" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "Exécuter" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "Rampe du Volume" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "Appliquer un volume linéaire à la sélection " -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "Gauche [%]:" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "Droit [%]:" @@ -1849,11 +1849,11 @@ msgid "square" msgstr "Square" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "Jazz Edition:" -#: app/track-editor.c:378 +#: app/track-editor.c:377 #, fuzzy msgid "Tracker" msgstr "T_rack" @@ -1965,44 +1965,44 @@ msgid "Instrument 2:" msgstr "Instrument 2:" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "La durée du pattern est dépassée: %d.\n" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "Le fichier n'est pas un instrument XI." -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "Version XI 0x%x inconnue\n" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "Tipe de vibrato %d invalide, utilise le Sinus.\n" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "Erreur lors de la lecture des patterns." -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "Ne peut ouvrir le fichier" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" "La longueur de l'entête du XM est != 276. Il se peut que ce soit un module\n" "de la pré-version 0.0.12 de SoundTracker? :-)\n" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "Erreur lors de la lecture des instruments." -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" @@ -2011,7 +2011,7 @@ "Le module contient de(s) sample(s) qui sont trop long pour le mixer.\n" "La taille maximum est de %d." -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "Il n'y a pas de XM FastTracker et de format MOD supporté!" diff -urN soundtracker-0.5.8/po/it.po soundtracker-0.5.9/po/it.po --- soundtracker-0.5.8/po/it.po Tue Sep 19 18:20:27 2000 +++ soundtracker-0.5.9/po/it.po Mon Sep 25 15:07:51 2000 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: soundtracker-0.5.7\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 2000-09-02 19:19+01:00\n" "Last-Translator: Yuri Bongiorno \n" "Language-Team: Italian \n" @@ -50,7 +50,7 @@ msgid "Mixers" msgstr "Mixer" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "Chiudi" @@ -71,12 +71,12 @@ msgstr "Questi cambiamenti avranno effetto alla prossima riproduzione." #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "Risoluzione:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "Canali:" @@ -157,7 +157,7 @@ msgid "no settings (yet), sorry!" msgstr "non ci sono (ancora) impostazioni, mi dispiace!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "Impossibile aprire il file per la scrittura." @@ -234,11 +234,11 @@ msgid "Loop" msgstr "Ciclo" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "Inizio" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "Fine" @@ -258,7 +258,7 @@ msgid "Save Song" msgstr "Salva il brano" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "Carica il campione" @@ -419,8 +419,8 @@ msgid "Question" msgstr "Domanda" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "Annulla" @@ -448,63 +448,63 @@ msgid "Are you sure you want to overwrite the file?" msgstr "Sei sicuro di voler sovrascrivere il file?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "Carica XM..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "Salva XM..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "Riversa il modulo su file WAV..." -#: app/gui.c:1295 +#: app/gui.c:1301 msgid "Save song as XM..." msgstr "Salva il brano come XM..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "Suona brano" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "Suona pattern" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "Stop" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "Numero di canali:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "Pattern" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "Lunghezza pattern" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "Ottava" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "Passo" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "Strumento" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "Campione" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "%M:%S" @@ -1192,7 +1192,7 @@ msgid "Linear" msgstr "Lineare" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "Amiga" @@ -1232,147 +1232,147 @@ "Una directory chiamata '.soundtracker' è stata creata nella tua\n" "home directory per immagazzinare i file di configurazione.\n" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "Nessun ciclo" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "Ping Pong" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "8 bit" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "16 bit" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "Editor del campione" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "Volume" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "Pan" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "Regolazione fine" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 msgid "Selection:" msgstr "Selezione:" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 msgid "None" msgstr "Niente" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "Tutto" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 msgid "Length:" msgstr "Lunghezza:" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "Imposta come ciclo" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "Nota relativa" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 msgid "Load Sample..." msgstr "Carica il campione..." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 msgid "Save WAV..." msgstr "Salva WAV..." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 msgid "Save region as WAV..." msgstr "Salva la regione come WAV..." -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "Salva WAV" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "Salva la regione" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "Monitor" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "Rampa di volume" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "Zoom sulla selezione" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "Mostra tutto" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "Zoom avanti (+50%)" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "Zoom indietro (-50%)" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 msgid "Reverse" msgstr "Capovolgi" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "Taglia" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "Rimuove" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "Copia" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "Incolla" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 msgid "Clear Sample" msgstr "Cancella campione" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 msgid "(no selection)" msgstr "(nessuna selezione)" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "Errore di lettura." -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 msgid "Load stereo sample" msgstr "Carica il campione stereo" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1384,23 +1384,23 @@ "\n" "Per favore scegli quale canale caricare:" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 msgid "Left" msgstr "Sinistra" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "Mix" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 msgid "Right" msgstr "Destra" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 msgid "Load raw sample" msgstr "Carica campione raw" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1412,80 +1412,80 @@ "\n" "Per favore scegli un formato:" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "Formato word" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "OK" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "Impossibile leggere il campione" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "Il campione è troppo lungo per l'attuale mixer. Lo carico comunque." -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "Può solo gestire campioni da 8 e 16 bit fino a 2 canali" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "Niente da salvare." -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "Inizia il campionamento" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "Nessun driver di campionamento libero" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "Finestra di campionamento" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" "Il campione registrato è troppo lungo per l'attuale mixer. Lo uso comunque." -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "Normalizza" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "Esegui" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "Rampa di volume" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "Esegue una dissolvenza lineare del volume sulla selezione" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "Sinistra [%]:" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "H" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "D" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "Destra [%]:" @@ -1774,11 +1774,11 @@ msgid "square" msgstr "quadro" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "Jazz Edit:" -#: app/track-editor.c:378 +#: app/track-editor.c:377 msgid "Tracker" msgstr "Tracker" @@ -1886,44 +1886,44 @@ msgid "Instrument 2:" msgstr "Strumento 2:" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "La lunghezza del pattern è fuori dall'intervallo: %d.\n" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "Il file non è uno strumento XI." -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "Versione XI 0x%x sconosciuta\n" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "Tipo di vibrato %d non valido, uso il seno.\n" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "Errore durante il caricamento dei pattern." -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "Impossibile aprire il file" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" "La lunghezza dell'header è != 276. Forse il modulo appartiene a una versione " "di Soundtracker precedente alla 0.0.12? :-)\n" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "Errore durante il caricamento degli strumenti." -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" @@ -1932,6 +1932,6 @@ "Il modulo contiene campioni che sono troppo lunghi per l'attuale mixer.\n" "La lunghezza massima del campione è %d." -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "Non è un XM di FastTracker nè un formato MOD supportato!" diff -urN soundtracker-0.5.8/po/ja.po soundtracker-0.5.9/po/ja.po --- soundtracker-0.5.8/po/ja.po Tue Sep 19 18:20:27 2000 +++ soundtracker-0.5.9/po/ja.po Mon Sep 25 15:07:51 2000 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: SoundTracker 0.3.10\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 2000-06-06 15:08+09:00\n" "Last-Translator: Atsushi Yamagata \n" "MIME-Version: 1.0\n" @@ -50,7 +50,7 @@ msgid "Mixers" msgstr "¥ß¥­¥µ" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "ÊĤ¸¤ë" @@ -71,12 +71,12 @@ msgstr "±éÁÕ¤òºÆ³«¤¹¤ë¤Þ¤Ç¤³¤ì¤é¤ÎÊѹ¹¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¡£" #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "²òÁüÅÙ:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "¥Á¥ã¥ó¥Í¥ë:" @@ -155,7 +155,7 @@ msgid "no settings (yet), sorry!" msgstr "¤¹¤ß¤Þ¤»¤ó¡¢(¤Þ¤À)ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó¡£" @@ -232,11 +232,11 @@ msgid "Loop" msgstr "¥ë¡¼¥×" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "³«»Ï" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "½ªÎ»" @@ -256,7 +256,7 @@ msgid "Save Song" msgstr "¶ÊÊݸ" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "¥µ¥ó¥×¥ë¡¦¥í¡¼¥É" @@ -417,8 +417,8 @@ msgid "Question" msgstr "¼ÁÌä" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "¼è¾Ã" @@ -446,63 +446,63 @@ msgid "Are you sure you want to overwrite the file?" msgstr "¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤·¤¿¤¤¤Î¤Ï³Î¤«¤Ç¤¹¤«?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "XM¥í¡¼¥É..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "XMÊݸ..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "WAV¤È¤·¤Æ¥â¥¸¥å¡¼¥ë¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë..." -#: app/gui.c:1295 +#: app/gui.c:1301 msgid "Save song as XM..." msgstr "XM¤È¤·¤Æ¶ÊÊݸ..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "¶Ê±éÁÕ" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "¥Ñ¥¿¡¼¥ó±éÁÕ" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "Ää»ß" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "¥Á¥ã¥ó¥Í¥ë¿ô:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "¥Ñ¥¿¡¼¥ó" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "¥Ñ¥¿¡¼¥óĹ" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "¥ª¥¯¥¿¡¼¥Ö" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "¥¸¥ã¥ó¥×" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "³Ú´ï" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "¥µ¥ó¥×¥ë" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1193,7 +1193,7 @@ msgid "Linear" msgstr "Àþ·¿" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "Amiga" @@ -1233,148 +1233,148 @@ "ÀßÄê¥Õ¥¡¥¤¥ë¤òµ­²±¤¹¤ë¤¿¤á¡¢¤¢¤Ê¤¿¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë\n" "¥Ç¥£¥ì¥¯¥È¥ê'.soundtracker'¤¬À¸À®¤µ¤ì¤Þ¤¹¡£\n" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "¥ë¡¼¥×̵¤·" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "¥Ô¥ó¥Ý¥ó" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "8¥Ó¥Ã¥È" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "16¥Ó¥Ã¥È" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "¥µ¥ó¥×¥ëÊÔ½¸" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "²»ÎÌ" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "ÈùÄ´À°" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 msgid "Selection:" msgstr "ÁªÂò:" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 msgid "None" msgstr "̵" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "Á´¤Æ" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 msgid "Length:" msgstr "Ťµ:" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 #, fuzzy msgid "Set as loop" msgstr "¥ë¡¼¥×³«»ÏÀßÄê/¥ë¡¼¥×" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 msgid "Load Sample..." msgstr "¥µ¥ó¥×¥ë¡¦¥í¡¼¥É..." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 msgid "Save WAV..." msgstr "WAVÊݸ..." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 msgid "Save region as WAV..." msgstr "WAV¤È¤·¤ÆÈϰÏÊݸ..." -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "WAVÊݸ" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "ÈϰÏÊݸ" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "¥â¥Ë¥¿" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "ÁªÂòÉôʬ³ÈÂç" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "Á´¤ÆÉ½¼¨" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "³ÈÂç(+50%)" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "½Ì¾®(-50%)" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 msgid "Reverse" msgstr "¥ê¥Ð¡¼¥¹" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "ÀÚ¼è" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "°Üư" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "¥³¥Ô¡¼" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "ŽÉÕ" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 msgid "Clear Sample" msgstr "¥µ¥ó¥×¥ë¾Ãµî" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 msgid "(no selection)" msgstr "(̵ÁªÂò)" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "<º£Å½ÉÕ¤±¤µ¤ì¤Þ¤·¤¿>" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "ÆÉ¤ß¹þ¤ß¥¨¥é¡¼¡£" -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 msgid "Load stereo sample" msgstr "¥¹¥Æ¥ì¥ª¡¦¥µ¥ó¥×¥ë¡¦¥í¡¼¥É" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1386,24 +1386,24 @@ "\n" "¥í¡¼¥É¤¹¤ë¤¿¤á¤Î¥Á¥ã¥ó¥Í¥ë¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤:" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 msgid "Left" msgstr "º¸" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "¥ß¥Ã¥¯¥¹" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 msgid "Right" msgstr "±¦" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 #, fuzzy msgid "Load raw sample" msgstr "¥¹¥Æ¥ì¥ª¡¦¥µ¥ó¥×¥ë¡¦¥í¡¼¥É" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1411,83 +1411,83 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "λ²ò" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "¥µ¥ó¥×¥ë¤¬ÆÉ¤ß¹þ¤á¤Þ¤»¤ó" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "" "¥µ¥ó¥×¥ë¤¬¸½ºß¤Î¥ß¥­¥µ¡¦¥â¥¸¥å¡¼¥ë¤Ë¤ÏĹ²á¤®¤Þ¤¹¡£\n" "¤È¤Ë¤«¤¯¥í¡¼¥É¤·¤Þ¤¹¡£" -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "2¥Á¥ã¥ó¥Í¥ë¤Þ¤Ç¤Ç 8¡¢16¥Ó¥Ã¥È¡¦¥µ¥ó¥×¥ë¤Î¤ß½èÍý¤Ç¤­¤Þ¤¹" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "²¿¤âÊݸ¤·¤Ê¤¤¡£" -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "¥µ¥ó¥×¥ê¥ó¥°³«»Ï" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "¥µ¥ó¥×¥ê¥ó¥°¡¦¥É¥é¥¤¥Ð¤¬»ÈÍѤǤ­¤Þ¤»¤ó" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "¥µ¥ó¥×¥ê¥ó¥°¡¦¥¦¥£¥ó¥É¥¦" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "<º£¥µ¥ó¥×¥ê¥ó¥°¤·¤Þ¤·¤¿>" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" "Ï¿²»¤·¤¿¥µ¥ó¥×¥ë¤¬¸½ºß¤Î¥ß¥­¥µ¡¦¥â¥¸¥å¡¼¥ë¤Ë¤ÏĹ²á¤®¤Þ¤¹¡£\n" "¤È¤Ë¤«¤¯¤½¤ì¤ò»È¤¤¤Þ¤¹¡£" -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "µ¬³Ê²½" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "¼Â¹Ô" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "ÁªÂò»þ¤Ë²»Î̤òÀþ·¿¤Ë¥Õ¥§¡¼¥É¤¹¤ë" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "º¸ [%]:" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "±¦ [%]:" @@ -1775,11 +1775,11 @@ msgid "square" msgstr "¶ë·ÁÇÈ" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "JazzÊÔ½¸:" -#: app/track-editor.c:378 +#: app/track-editor.c:377 msgid "Tracker" msgstr "¥È¥é¥Ã¥«¡¼" @@ -1887,44 +1887,44 @@ msgid "Instrument 2:" msgstr "³Ú´ï 2:" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "¥Ñ¥¿¡¼¥óŤ¬ÈϰϤò±Û¤¨¤Þ¤·¤¿: %d.\n" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "¥Õ¥¡¥¤¥ë¤¬XI³Ú´ï¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£" -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "̤ÃΤÎXI¥Ð¡¼¥¸¥ç¥ó0x%x¤Ç¤¹\n" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "ÉÔÀµ¤Ê¥Ð¥¤¥Ö¥ì¡¼¥·¥ç¥ó·¿%d¡¢Àµ¸¹ÇȤò»ÈÍѤ·¤Þ¤¹¡£\n" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "¥Ñ¥¿¡¼¥ó¤Î¥í¡¼¥ÉÃæ¤Ë¥¨¥é¡¼¡£" -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" "XM¥Ø¥Ã¥ÀŤ¬276¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n" "¶²¤é¤¯pre-0.0.12 SoundTracker¥â¥¸¥å¡¼¥ë¤Ç¤Ï? :-)\n" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "³Ú´ï¤Î¥í¡¼¥ÉÃæ¤Ë¥¨¥é¡¼¡£" -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" @@ -1933,7 +1933,7 @@ "¥â¥¸¥å¡¼¥ë¤¬¸½ºß¤Î¥ß¥­¥µ¡¦¥â¥¸¥å¡¼¥ë¤Ë¤ÏĹ²á¤®¤ë¥µ¥ó¥×¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£\n" "¥µ¥ó¥×¥ë¤ÎºÇÂçŤÏ%d¤Ç¤¹¡£" -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "" "FastTracker XM¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤¿MOD¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤â¤¢¤ê¤Þ¤»¤ó!" Binary files soundtracker-0.5.8/po/pl.gmo and soundtracker-0.5.9/po/pl.gmo differ diff -urN soundtracker-0.5.8/po/pl.po soundtracker-0.5.9/po/pl.po --- soundtracker-0.5.8/po/pl.po Tue Sep 19 18:20:27 2000 +++ soundtracker-0.5.9/po/pl.po Mon Sep 25 15:07:51 2000 @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: soundtracker\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 1999-09-05 15:58+0200\n" "Last-Translator: GNOME PL Team\n" "Language-Team: Polish \n" @@ -49,7 +49,7 @@ msgid "Mixers" msgstr "Modyfikatory:" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "Zamknij" @@ -70,12 +70,12 @@ msgstr "Zmiany odnios± efekt po ponownym rozpoczêciu odgrywania." #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "Rozdzielczo¶æ:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "Kana³y:" @@ -153,7 +153,7 @@ msgid "no settings (yet), sorry!" msgstr "na razie brak ustawieñ!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "Nie mo¿na otworzyæ pliku do zapisu." @@ -230,11 +230,11 @@ msgid "Loop" msgstr "Pêtla" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "Pocz±tek" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "Koniec" @@ -257,7 +257,7 @@ msgid "Save Song" msgstr "Odtwórz utwór" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "Wczytaj próbkê" @@ -437,8 +437,8 @@ msgid "Question" msgstr "Pytanie" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "Anuluj" @@ -466,64 +466,64 @@ msgid "Are you sure you want to overwrite the file?" msgstr "Czy na pewno chcesz nadpisaæ plik?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "Wczytaj XM..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "Zapisz XM..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "" -#: app/gui.c:1295 +#: app/gui.c:1301 #, fuzzy msgid "Save song as XM..." msgstr "Zapisz XM..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "Odtwórz utwór" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "Odtwórz pattern" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "Zatrzymaj" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "Liczba kana³ów:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "Pattern" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "D³ugPat" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "Oktawa" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "Skok" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "Instr" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "Próbka" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1257,7 +1257,7 @@ msgid "Linear" msgstr "Liniowe" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "Amiga" @@ -1297,157 +1297,157 @@ "W katalogu domowym zosta³ utworzony katalog .soundtracker, w\n" "którym zapisywane bêd± pliki konfiguracyjne.\n" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "Bez pêtli" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "PingPong" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "8 bitów" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "16 bitów" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "Edytor próbek" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "G³o¶no¶æ" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "Przemieszczenie" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "Dopasowanie" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 #, fuzzy msgid "Selection:" msgstr "Rozdzielczo¶æ:" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 #, fuzzy msgid "None" msgstr "Nuta:" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 #, fuzzy msgid "Length:" msgstr "D³ugo¶æ" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "WzglNuta" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 #, fuzzy msgid "Load Sample..." msgstr "Wczytaj próbkê.." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 #, fuzzy msgid "Save WAV..." msgstr "Zapisz WAV.." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 #, fuzzy msgid "Save region as WAV..." msgstr "Zapisz WAV.." -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "Zapisz WAV" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "Monitoruj" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "Nachyl g³o¶no¶æ" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "Powiêksz do zaznaczenia" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "Wy¶wietl ca³o¶æ" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "Powiêksz (+50%)" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "Pomniejsz (-50%)" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 #, fuzzy msgid "Reverse" msgstr "Usuñ" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "Wytnij" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "Usuñ" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "Kopiuj" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "Wklej" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 #, fuzzy msgid "Clear Sample" msgstr "Wczytaj próbkê" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 #, fuzzy msgid "(no selection)" msgstr "Powiêksz do zaznaczenia" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "B³±d odczytu." -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 #, fuzzy msgid "Load stereo sample" msgstr "Wczytaj próbkê" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1455,26 +1455,26 @@ "Please choose which channel to load:" msgstr "" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 #, fuzzy msgid "Left" msgstr "Lewy [%s]:" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 #, fuzzy msgid "Right" msgstr "Prawy [%]:" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 #, fuzzy msgid "Load raw sample" msgstr "Wczytaj próbkê" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1482,83 +1482,83 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "OK" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "Nie mo¿na wczytaæ próbki" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "" "Próbka jest zbyt d³uga dla aktualnego modu³u miksera. Pomimo tego wczytywana." -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 #, fuzzy msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "Obs³ugiwane s± tylko próbki 8 i 16 bitowe" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "" -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "Rozpocznij próbkowanie" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "Okno próbkowania" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" "Nagrana próbka jest zbyt d³uga dla modu³u miksera. Pomimo tego zostanie " "wykorzystana." -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "Normalizuj" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "Wykonaj" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "Nachylenie g³o¶no¶ci" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "Liniowa zmiana g³o¶no¶ci zaznaczonego fragmentu" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "Lewy [%s]:" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "Prawy [%]:" @@ -1864,11 +1864,11 @@ msgid "square" msgstr "Prostok±t" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "Jazzowa edycja:" -#: app/track-editor.c:378 +#: app/track-editor.c:377 #, fuzzy msgid "Tracker" msgstr "Tryb ProTrackera" @@ -1979,43 +1979,43 @@ msgid "Instrument 2:" msgstr "Instrument 2:" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "D³ugo¶æ patternu poza zakresem: %d.\n" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "Plik nie zawiera instrumentów w formacie XI." -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "Nieznana wersja 0x%x XI\n" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "Niepoprawny typ wibrato %d, wykorzystanie sinusa.\n" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "B³±d podczas wczytywania instrumentów." -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "Nie mo¿na otworzyæ pliku" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" "D³ugo¶æ nag³ówka XM != 276. Mo¿e to modu³ SoundTrackera przed 0.0.12? :-)\n" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "B³±d podczas wczytywania instrumentów." -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" @@ -2024,7 +2024,7 @@ "Modu³ zawiera próbki, które s± zbyt d³ugie dla aktualnego miksera.\n" "Maksymalna d³ugo¶æ próbki wynosi %d." -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "Plik nie jest w formacie XM FastTrackera ani w formacie MOD!" Binary files soundtracker-0.5.8/po/ru.gmo and soundtracker-0.5.9/po/ru.gmo differ diff -urN soundtracker-0.5.8/po/ru.po soundtracker-0.5.9/po/ru.po --- soundtracker-0.5.8/po/ru.po Tue Sep 19 18:20:27 2000 +++ soundtracker-0.5.9/po/ru.po Mon Sep 25 15:07:52 2000 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: soundtracker-0.3.10\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: 2000-02-21 11:12+0200\n" "Last-Translator: Michael Shigorin \n" "Language-Team: Russian \n" @@ -53,7 +53,7 @@ msgid "Mixers" msgstr "ïÂßÅÄÉÎÉÔØ" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "úÁËÒÙÔØ" @@ -74,12 +74,12 @@ msgstr "üÔÉ ÉÚÍÅÎÅÎÉÑ ×ÓÔÕÐÑÔ × ÓÉÌÕ ÐÒÉ ÓÌÅÄÕÀÝÅÍ ×ÏÓÐÒÏÉÚ×ÅÄÅÎÉÉ." #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "òÁÚÒÅÛÅÎÉÅ:" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "ëÁÎÁÌÙ:" @@ -160,7 +160,7 @@ msgid "no settings (yet), sorry!" msgstr "(ÐÏËÁ) ÎÅÔ ÎÁÓÔÒÏÅË, ÓÏÒÒÉ!" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÄÌÑ ÚÁÐÉÓÉ." @@ -237,11 +237,11 @@ msgid "Loop" msgstr "ãÉËÌ" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "îÁÞÁÌÏ" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "ëÏÎÅÃ" @@ -262,7 +262,7 @@ msgid "Save Song" msgstr "óÏÈÒÁÎÉÔØ ÕÞÁÓÔÏË" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "úÁÇÒÕÚÉÔØ ÓÜÍÐÌ" @@ -440,8 +440,8 @@ msgid "Question" msgstr "÷ÏÐÒÏÓ" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "ïÔÍÅÎÁ" @@ -469,64 +469,64 @@ msgid "Are you sure you want to overwrite the file?" msgstr "÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÐÅÒÅÚÁÐÉÓÁÔØ ÆÁÊÌ?" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "úÁÇÒÕÚÉÔØ XM..." -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "óÏÈÒÁÎÉÔØ XM..." -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "úÁÐÉÓÁÔØ ÍÏÄÕÌØ ËÁË WAV..." -#: app/gui.c:1295 +#: app/gui.c:1301 #, fuzzy msgid "Save song as XM..." msgstr "óÏÈÒÁÎÉÔØ ÕÞÁÓÔÏË ËÁË WAV..." -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "éÇÒÁÔØ ÐÅÓÎÀ" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "éÇÒÁÔØ ÐÁÔÔÅÒÎ" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "óÔÏÐ" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "ëÏÌÉÞÅÓÔ×Ï ËÁÎÁÌÏ×:" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "ðÁÔÔÅÒÎ" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "äÌÉÎÁ ÐÁÔÔÅÒÎÁ:" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "ïËÔÁ×Á" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "ðÒÙÖÏË" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "éÎÓÔÒÕÍÅÎÔ" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "óÜÍÐÌ" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Linear" msgstr "ìÉÎÅÊÎÏ" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "Amiga" @@ -1266,152 +1266,152 @@ "ëÁÔÁÌÏÇ ÐÏÄ ÎÁÚ×ÁÎÉÅÍ '.soundtracker' ÓÏÚÄÁÎ × ×ÁÛÅÍ ÄÏÍÁÛÎÅÍ\n" "ËÁÔÁÌÏÇÅ ÄÌÑ ÈÒÁÎÅÎÉÑ × ÎÅÍ ÆÁÊÌÏ× ËÏÎÆÉÇÕÒÁÃÉÉ.\n" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "îÅÔ ÃÉËÌÁ" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "ðÉÎÇ-ÐÏÎÇ" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "8 ÂÉÔ" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "16 ÂÉÔ" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "òÅÄÁËÔÏÒ ÓÜÍÐÌÏ×" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "çÒÏÍËÏÓÔØ" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "ðÁÎÏÒÁÍÉÒÏ×ÁÎÉÅ" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "ðÏÄÓÔÒÏÊËÁ" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 #, fuzzy msgid "Selection:" msgstr "_÷ÙÄÅÌÅÎÉÅ" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 #, fuzzy msgid "None" msgstr "îÏÔÁ:" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 #, fuzzy msgid "All" msgstr "÷ÙÄÅÌÉÔØ ×ÓÅ" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 #, fuzzy msgid "Length:" msgstr "äÌÉÎÁ" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "ïÔÎ. ÎÏÔÁ" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 msgid "Load Sample..." msgstr "úÁÇÒÕÚÉÔØ ÓÜÍÐÌ..." -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 msgid "Save WAV..." msgstr "óÏÈÒÁÎÉÔØ WAV..." -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 msgid "Save region as WAV..." msgstr "óÏÈÒÁÎÉÔØ ÕÞÁÓÔÏË ËÁË WAV..." -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "óÏÈÒÁÎÉÔØ WAV" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "óÏÈÒÁÎÉÔØ ÕÞÁÓÔÏË" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "óÌÅÄÉÔØ" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "óÐÁÄ ÇÒÏÍËÏÓÔÉ" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "õ×ÅÌÉÞÉÔØ ×ÙÄÅÌÅÎÉÅ" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "ðÏËÁÚÁÔØ ×ÓÅ" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "õ×ÅÌÉÞÉÔØ (+50%)" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "õÍÅÎØÛÉÔØ (-50%)" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 msgid "Reverse" msgstr "ðÅÒÅ×ÅÒÎÕÔØ" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "÷ÙÒÅÚÁÔØ" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "õÄÁÌÉÔØ" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "ëÏÐÉÒÏ×ÁÔØ" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "÷ÓÔÁ×ÉÔØ" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 msgid "Clear Sample" msgstr "ïÞÉÓÔÉÔØ ÓÜÍÐÌ" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 #, fuzzy msgid "(no selection)" msgstr "õ×ÅÌÉÞÉÔØ ×ÙÄÅÌÅÎÉÅ" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "<ÔÏÌØËÏ ×ÓÔÁ×ÌÅÎÏ>" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ." -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 msgid "Load stereo sample" msgstr "úÁÇÒÕÚÉÔØ ÓÔÅÒÅÏÓÜÍÐÌ" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1423,24 +1423,24 @@ "\n" "÷ÙÂÅÒÉÔÅ, ËÁËÏÊ ÉÚ ËÁÎÁÌÏ× ÚÁÇÒÕÚÉÔØ:" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 msgid "Left" msgstr "ìÅ×ÙÊ" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "ïÂßÅÄÉÎÉÔØ" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 msgid "Right" msgstr "ðÒÁ×ÙÊ" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 #, fuzzy msgid "Load raw sample" msgstr "úÁÇÒÕÚÉÔØ ÓÔÅÒÅÏÓÜÍÐÌ" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1448,80 +1448,80 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "ïë" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÓÜÍÐÌ" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "óÜÍÐÌ ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÄÌÑ ÔÅËÕÝÅÇÏ ÍÉËÓÅÒ-ÍÏÄÕÌÑ. îÏ ÇÒÕÚÉÍ." -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "ðÏÄÄÅÒÖÉ×ÁÀÔÓÑ ÔÏÌØËÏ ÓÜÍÐÌÙ 8/16 ÂÉÔ, ÄÏ 2 ËÁÎÁÌÏ×" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "îÅÞÅÇÏ ÓÏÈÒÁÎÑÔØ." -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "îÁÞÁÔØ ÏÃÉÆÒÏ×ËÕ" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "ïËÎÏ ÏÃÉÆÒÏ×ËÉ" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "<ÔÏÌØËÏ ÏÃÉÆÒÏ×ÁÎÏ>" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" "úÁÐÉÓÁÎÎÙÊ ÓÜÍÐÌ ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÄÌÑ ÔÅËÕÝÅÇÏ ÍÉËÓÅÒ-ÍÏÄÕÌÑ. îÏ ÇÒÕÚÉÍ." -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "îÏÒÍÁÌÉÚÏ×ÁÔØ" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "÷ÙÐÏÌÎÉÔØ" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "óÐÁÄ ÇÒÏÍËÏÓÔÉ" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "ðÒÏÉÚ×ÅÓÔÉ ÌÉÎÅÊÎÏÅ ÓÐÁÄÁÎÉÅ ÇÒÏÍËÏÓÔÉ ÎÁ ×ÙÂÒÁÎÎÏÍ ÕÞÁÓÔËÅ" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "ìÅ×ÙÊ [%]:" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "ðÒÁ×ÙÊ [%]:" @@ -1827,11 +1827,11 @@ msgid "square" msgstr "ðÒÑÍÏÕÇÏÌØÎÉË" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "òÅÄÁËÔÉÒÏ×ÁÎÉÅ Jazz:" -#: app/track-editor.c:378 +#: app/track-editor.c:377 msgid "Tracker" msgstr "ôÒÅËÅÒ" @@ -1942,42 +1942,42 @@ msgid "Instrument 2:" msgstr "éÎÓÔÒÕÍÅÎÔ 2:" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "äÌÉÎÁ ÐÁÔÔÅÒÎÁ ×ÎÅ ÄÉÁÐÁÚÏÎÁ: %d.\n" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "æÁÊÌ ÎÅ ÓÏÄÅÒÖÉÔ ÉÎÓÔÒÕÍÅÎÔ XI." -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "îÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ XI 0x%x\n" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "îÅ×ÅÒÎÙÊ ÔÉÐ ×ÉÂÒÁÔÏ %d, ÉÓÐÏÌØÚÕÀ ÓÉÎÕÓÏÉÄÕ.\n" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "ïÛÉÂËÁ ÐÒÉ ÚÁÇÒÕÚËÅ ÐÁÔÔÅÒÎÏ×." -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "äÌÉÎÁ ÚÁÇÏÌÏ×ËÁ XM != 276. íÏÖÅÔ, ÜÔÏ ÏÔ SoundTracker <0.0.12? :-)\n" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "ïÛÉÂËÁ ÐÒÉ ÚÁÇÒÕÚËÅ ÉÎÓÔÒÕÍÅÎÔÏ×." -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" @@ -1986,7 +1986,7 @@ "íÏÄÕÌØ ÓÏÄÅÒÖÉÔ ÓÜÍÐÌ(Ù) ÓÏ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÄÌÑ ÔÅËÕÝÅÇÏ ÍÉËÓÅÒÁ ÄÌÉÎÏÊ.\n" "íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÓÜÍÐÌÁ -- %d." -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "îÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÆÏÒÍÁÔ MOD ÉÌÉ ÎÅ FastTracker XM!" diff -urN soundtracker-0.5.8/po/soundtracker.pot soundtracker-0.5.9/po/soundtracker.pot --- soundtracker-0.5.8/po/soundtracker.pot Tue Sep 19 18:20:26 2000 +++ soundtracker-0.5.9/po/soundtracker.pot Mon Sep 25 14:53:41 2000 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-09-19 18:20+0200\n" +"POT-Creation-Date: 2000-09-25 14:53+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,7 +50,7 @@ msgid "Mixers" msgstr "" -#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1937 +#: app/audioconfig.c:321 app/gui-settings.c:547 app/sample-editor.c:1962 #: app/tips-dialog.c:165 app/transposition.c:313 msgid "Close" msgstr "" @@ -71,12 +71,12 @@ msgstr "" #: app/drivers/alsa-input.c:205 app/drivers/alsa-output.c:211 -#: app/drivers/oss-output.c:200 app/sample-editor.c:1468 +#: app/drivers/oss-output.c:200 app/sample-editor.c:1487 msgid "Resolution:" msgstr "" #: app/drivers/alsa-input.c:215 app/drivers/alsa-output.c:221 -#: app/drivers/oss-output.c:210 app/sample-editor.c:1498 +#: app/drivers/oss-output.c:210 app/sample-editor.c:1517 msgid "Channels:" msgstr "" @@ -145,7 +145,7 @@ msgid "no settings (yet), sorry!" msgstr "" -#: app/drivers/file-output.c:161 app/sample-editor.c:1617 +#: app/drivers/file-output.c:161 app/sample-editor.c:1638 msgid "Can't open file for writing." msgstr "" @@ -213,11 +213,11 @@ msgid "Loop" msgstr "" -#: app/envelope-box.c:1015 app/sample-editor.c:239 +#: app/envelope-box.c:1015 app/sample-editor.c:240 msgid "Start" msgstr "" -#: app/envelope-box.c:1016 app/sample-editor.c:240 +#: app/envelope-box.c:1016 app/sample-editor.c:241 msgid "End" msgstr "" @@ -237,7 +237,7 @@ msgid "Save Song" msgstr "" -#: app/file-operations.c:157 app/sample-editor.c:347 +#: app/file-operations.c:157 app/sample-editor.c:348 msgid "Load Sample" msgstr "" @@ -397,8 +397,8 @@ msgid "Question" msgstr "" -#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1380 -#: app/sample-editor.c:1517 app/sample-editor.c:1719 +#: app/gui-subs.c:489 app/keys.c:705 app/sample-editor.c:1399 +#: app/sample-editor.c:1536 app/sample-editor.c:1740 msgid "Cancel" msgstr "" @@ -424,63 +424,63 @@ msgid "Are you sure you want to overwrite the file?" msgstr "" -#: app/gui.c:1287 +#: app/gui.c:1293 msgid "Load XM..." msgstr "" -#: app/gui.c:1289 +#: app/gui.c:1295 msgid "Save XM..." msgstr "" -#: app/gui.c:1292 +#: app/gui.c:1298 msgid "Render module as WAV..." msgstr "" -#: app/gui.c:1295 +#: app/gui.c:1301 msgid "Save song as XM..." msgstr "" -#: app/gui.c:1346 +#: app/gui.c:1352 msgid "Play Song" msgstr "" -#: app/gui.c:1352 +#: app/gui.c:1358 msgid "Play Pattern" msgstr "" -#: app/gui.c:1358 +#: app/gui.c:1364 msgid "Stop" msgstr "" -#: app/gui.c:1377 +#: app/gui.c:1383 msgid "Number of Channels:" msgstr "" -#: app/gui.c:1393 app/playlist.c:316 +#: app/gui.c:1399 app/playlist.c:316 msgid "Pattern" msgstr "" -#: app/gui.c:1409 +#: app/gui.c:1415 msgid "PatLength" msgstr "" -#: app/gui.c:1501 +#: app/gui.c:1507 msgid "Octave" msgstr "" -#: app/gui.c:1511 +#: app/gui.c:1517 msgid "Jump" msgstr "" -#: app/gui.c:1521 +#: app/gui.c:1527 msgid "Instr" msgstr "" -#: app/gui.c:1536 +#: app/gui.c:1542 msgid "Sample" msgstr "" -#: app/gui.c:1599 +#: app/gui.c:1605 msgid "%M:%S" msgstr "" @@ -1145,7 +1145,7 @@ msgid "Linear" msgstr "" -#: app/module-info.c:117 app/sample-editor.c:199 +#: app/module-info.c:117 app/sample-editor.c:200 msgid "Amiga" msgstr "" @@ -1183,147 +1183,147 @@ "home directory to store configuration files.\n" msgstr "" -#: app/sample-editor.c:198 +#: app/sample-editor.c:199 msgid "No loop" msgstr "" -#: app/sample-editor.c:200 +#: app/sample-editor.c:201 msgid "PingPong" msgstr "" -#: app/sample-editor.c:204 +#: app/sample-editor.c:205 msgid "8 bits" msgstr "" -#: app/sample-editor.c:205 +#: app/sample-editor.c:206 msgid "16 bits" msgstr "" -#: app/sample-editor.c:211 +#: app/sample-editor.c:212 msgid "Sample Editor" msgstr "" -#: app/sample-editor.c:251 +#: app/sample-editor.c:252 msgid "Volume" msgstr "" -#: app/sample-editor.c:252 +#: app/sample-editor.c:253 msgid "Panning" msgstr "" -#: app/sample-editor.c:253 +#: app/sample-editor.c:254 msgid "Finetune" msgstr "" -#: app/sample-editor.c:273 +#: app/sample-editor.c:274 msgid "Selection:" msgstr "" -#: app/sample-editor.c:277 app/track-editor.c:170 app/track-editor.c:180 +#: app/sample-editor.c:278 app/track-editor.c:170 app/track-editor.c:180 msgid "None" msgstr "" -#: app/sample-editor.c:283 +#: app/sample-editor.c:284 msgid "All" msgstr "" -#: app/sample-editor.c:304 +#: app/sample-editor.c:305 msgid "Length:" msgstr "" -#: app/sample-editor.c:320 +#: app/sample-editor.c:321 msgid "Set as loop" msgstr "" -#: app/sample-editor.c:328 +#: app/sample-editor.c:329 msgid "RelNote" msgstr "" -#: app/sample-editor.c:339 +#: app/sample-editor.c:340 msgid "Load Sample..." msgstr "" -#: app/sample-editor.c:341 +#: app/sample-editor.c:342 msgid "Save WAV..." msgstr "" -#: app/sample-editor.c:343 +#: app/sample-editor.c:344 msgid "Save region as WAV..." msgstr "" -#: app/sample-editor.c:356 +#: app/sample-editor.c:357 msgid "Save WAV" msgstr "" -#: app/sample-editor.c:366 +#: app/sample-editor.c:367 msgid "Save Region" msgstr "" -#: app/sample-editor.c:377 +#: app/sample-editor.c:378 msgid "Monitor" msgstr "" -#: app/sample-editor.c:383 +#: app/sample-editor.c:384 msgid "Volume Ramp" msgstr "" -#: app/sample-editor.c:393 +#: app/sample-editor.c:394 msgid "Zoom to selection" msgstr "" -#: app/sample-editor.c:399 +#: app/sample-editor.c:400 msgid "Show all" msgstr "" -#: app/sample-editor.c:405 +#: app/sample-editor.c:406 msgid "Zoom in (+50%)" msgstr "" -#: app/sample-editor.c:411 +#: app/sample-editor.c:412 msgid "Zoom out (-50%)" msgstr "" -#: app/sample-editor.c:417 +#: app/sample-editor.c:418 msgid "Reverse" msgstr "" -#: app/sample-editor.c:427 +#: app/sample-editor.c:428 msgid "Cut" msgstr "" -#: app/sample-editor.c:433 +#: app/sample-editor.c:434 msgid "Remove" msgstr "" -#: app/sample-editor.c:439 +#: app/sample-editor.c:440 msgid "Copy" msgstr "" -#: app/sample-editor.c:445 +#: app/sample-editor.c:446 msgid "Paste" msgstr "" -#: app/sample-editor.c:451 +#: app/sample-editor.c:452 msgid "Clear Sample" msgstr "" -#: app/sample-editor.c:489 +#: app/sample-editor.c:490 msgid "(no selection)" msgstr "" -#: app/sample-editor.c:1082 +#: app/sample-editor.c:1089 msgid "" msgstr "" -#: app/sample-editor.c:1198 app/sample-editor.c:1210 +#: app/sample-editor.c:1206 app/sample-editor.c:1218 msgid "Read error." msgstr "" -#: app/sample-editor.c:1336 +#: app/sample-editor.c:1355 msgid "Load stereo sample" msgstr "" -#: app/sample-editor.c:1344 +#: app/sample-editor.c:1363 msgid "" "You have selected a stereo sample!\n" "(SoundTracker can only handle mono samples!)\n" @@ -1331,23 +1331,23 @@ "Please choose which channel to load:" msgstr "" -#: app/sample-editor.c:1355 +#: app/sample-editor.c:1374 msgid "Left" msgstr "" -#: app/sample-editor.c:1361 +#: app/sample-editor.c:1380 msgid "Mix" msgstr "" -#: app/sample-editor.c:1367 +#: app/sample-editor.c:1386 msgid "Right" msgstr "" -#: app/sample-editor.c:1445 +#: app/sample-editor.c:1464 msgid "Load raw sample" msgstr "" -#: app/sample-editor.c:1453 +#: app/sample-editor.c:1472 msgid "" "You have selected a sample that is not\n" "in a known format. You can load the raw data now.\n" @@ -1355,79 +1355,79 @@ "Please choose a format:" msgstr "" -#: app/sample-editor.c:1479 +#: app/sample-editor.c:1498 msgid "Wortformat:" msgstr "" -#: app/sample-editor.c:1511 app/sample-editor.c:1704 +#: app/sample-editor.c:1530 app/sample-editor.c:1725 msgid "OK" msgstr "" -#: app/sample-editor.c:1557 +#: app/sample-editor.c:1576 msgid "Can't read sample" msgstr "" -#: app/sample-editor.c:1566 +#: app/sample-editor.c:1585 msgid "Sample is too long for current mixer module. Loading anyway." msgstr "" -#: app/sample-editor.c:1580 +#: app/sample-editor.c:1599 msgid "Can only handle 8 and 16 bit samples with up to 2 channels" msgstr "" -#: app/sample-editor.c:1677 +#: app/sample-editor.c:1698 msgid "Nothing to save." msgstr "" -#: app/sample-editor.c:1712 +#: app/sample-editor.c:1733 msgid "Start sampling" msgstr "" -#: app/sample-editor.c:1742 +#: app/sample-editor.c:1763 msgid "No sampling driver available" msgstr "" -#: app/sample-editor.c:1752 app/sample-editor.c:1755 +#: app/sample-editor.c:1773 app/sample-editor.c:1776 msgid "Sampling Window" msgstr "" -#: app/sample-editor.c:1855 +#: app/sample-editor.c:1876 msgid "" msgstr "" -#: app/sample-editor.c:1885 +#: app/sample-editor.c:1907 msgid "Recorded sample is too long for current mixer module. Using it anyway." msgstr "" -#: app/sample-editor.c:1935 +#: app/sample-editor.c:1960 msgid "Normalize" msgstr "" -#: app/sample-editor.c:1936 +#: app/sample-editor.c:1961 msgid "Execute" msgstr "" -#: app/sample-editor.c:1946 app/sample-editor.c:1949 +#: app/sample-editor.c:1971 app/sample-editor.c:1974 msgid "Volume Ramping" msgstr "" -#: app/sample-editor.c:1965 +#: app/sample-editor.c:1990 msgid "Perform linear volume fade on Selection" msgstr "" -#: app/sample-editor.c:1977 +#: app/sample-editor.c:2002 msgid "Left [%]:" msgstr "" -#: app/sample-editor.c:1980 app/sample-editor.c:1997 +#: app/sample-editor.c:2005 app/sample-editor.c:2022 msgid "H" msgstr "" -#: app/sample-editor.c:1986 app/sample-editor.c:2003 +#: app/sample-editor.c:2011 app/sample-editor.c:2028 msgid "D" msgstr "" -#: app/sample-editor.c:1994 +#: app/sample-editor.c:2019 msgid "Right [%]:" msgstr "" @@ -1702,11 +1702,11 @@ msgid "square" msgstr "" -#: app/track-editor.c:333 +#: app/track-editor.c:332 msgid "Jazz Edit:" msgstr "" -#: app/track-editor.c:378 +#: app/track-editor.c:377 msgid "Tracker" msgstr "" @@ -1814,48 +1814,48 @@ msgid "Instrument 2:" msgstr "" -#: app/xm.c:183 +#: app/xm.c:188 #, c-format msgid "Pattern length out of range: %d.\n" msgstr "" -#: app/xm.c:519 +#: app/xm.c:526 msgid "File is no XI instrument." msgstr "" -#: app/xm.c:529 +#: app/xm.c:536 #, c-format msgid "Unknown XI version 0x%x\n" msgstr "" -#: app/xm.c:559 +#: app/xm.c:566 #, c-format msgid "Invalid vibtype %d, using Sine.\n" msgstr "" -#: app/xm.c:827 app/xm.c:944 +#: app/xm.c:838 app/xm.c:955 msgid "Error while loading patterns." msgstr "" -#: app/xm.c:892 +#: app/xm.c:903 msgid "Can't open file" msgstr "" -#: app/xm.c:906 +#: app/xm.c:917 msgid "XM header length != 276. Maybe a pre-0.0.12 SoundTracker module? :-)\n" msgstr "" -#: app/xm.c:950 +#: app/xm.c:961 msgid "Error while loading instruments." msgstr "" -#: app/xm.c:961 +#: app/xm.c:972 #, c-format msgid "" "Module contains sample(s) that are too long for the current mixer.\n" "Maximum sample length is %d." msgstr "" -#: app/xm.c:1285 +#: app/xm.c:1296 msgid "No FastTracker XM and no supported MOD format!" msgstr "" diff -urN soundtracker-0.5.8/soundtracker.spec soundtracker-0.5.9/soundtracker.spec --- soundtracker-0.5.8/soundtracker.spec Tue Sep 19 18:06:13 2000 +++ soundtracker-0.5.9/soundtracker.spec Mon Sep 25 14:58:34 2000 @@ -1,6 +1,6 @@ %define name soundtracker -%define version 0.5.8 -%define release 20 +%define version 0.5.9 +%define release 21 %define prefix /usr Summary: Sound modules editor/player