soundtracker, from maintainer.

A music editing program, in the grand tradition of amiga tracker programs.
This commit is contained in:
espie 2002-02-05 18:04:10 +00:00
parent ba0f462857
commit 2d6f9f9727
31 changed files with 3740 additions and 0 deletions

View File

@ -0,0 +1,70 @@
# $OpenBSD: Makefile,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
# Uses pthreads
COMMENT= "Music tracking tool for X11"
VERSION= 0.6.4
DISTNAME= soundtracker-${VERSION}
CATEGORIES= audio
NEED_VERSION= 1.504
HOMEPAGE= http://www.soundtracker.org/
MAINTAINER= Wilbern Cobb <vedge@csoft.org>
# GPL
PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
MASTER_SITE_SUBDIR= v0.6
MASTER_SITES= http://www.soundtracker.org/dl/%SUBDIR%/ \
ftp://vedge.com.ar/pub/mirror/soundtracker/%SUBDIR%/
LIB_DEPENDS= gtk.1.2::x11/gtk+ \
intl.1::devel/gettext \
iconv.2::converters/libiconv \
audiofile::devel/libaudiofile
FLAVORS= gnome sun esd
FLAVOR?= sun
USE_GMAKE= Yes
USE_X11= Yes
CONFIGURE_STYLE= gnu autoconf
CONFIGURE_ARGS+= --with-audiofile-prefix=${LOCALBASE} \
--disable-alsa \
--disable-sgi \
--disable-oss
.if ${FLAVOR:L:Mgnome}
LIB_DEPENDS+= gnome.36,gnomesupport.0,gnomeui.46,art_lgpl.4::x11/gnome/libs
.else
CONFIGURE_ARGS+= --disable-gnome
.endif
.if empty(FLAVOR:L:Msun)
CONFIGURE_ARGS+= --disable-sun
.endif
.if empty(FLAVOR:L:Mesd)
CONFIGURE_ARGS+= --disable-esd
.endif
.if ${MACHINE_ARCH} != "i386"
CONFIGURE_ARGS+= --disable-assembler
.endif
DOCS= FAQ NEWS README TODO \
doc/hacking.txt doc/xi.txt doc/xm.txt
post-extract:
@ln -s ${FILESDIR}/sun-input.c ${WRKSRC}/app/drivers
@ln -s ${FILESDIR}/sun-output.c ${WRKSRC}/app/drivers
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/soundtracker
cd ${WRKSRC} && \
${INSTALL_DATA} ${DOCS} ${PREFIX}/share/doc/soundtracker
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
MD5 (soundtracker-0.6.4.tar.gz) = 9208aca40dae30d17a15b0c5deb22a67
RMD160 (soundtracker-0.6.4.tar.gz) = 36e93a404bfb95de6a783e0f7c07eb028ab261ad
SHA1 (soundtracker-0.6.4.tar.gz) = 86e432756abca304fec1128fd7f62bc713d9f08e

View File

@ -0,0 +1,388 @@
/*
* The Real SoundTracker - Sun (input) driver.
*
* Copyright (C) 2001 CubeSoft Communications, Inc.
* <http://www.csoft.org>
*
* 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 <config.h>
#if DRIVER_SUN
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/audioio.h>
#include <unistd.h>
#include <sys/time.h>
#include <glib.h>
#include <gtk/gtk.h>
#include "i18n.h"
#include "driver-in.h"
#include "mixer.h"
#include "errors.h"
#include "gui-subs.h"
typedef struct sun_driver {
GtkWidget *configwidget;
GtkWidget *prefs_devaudio_w;
int playrate;
int stereo;
int bits;
int bufsize;
int numbufs;
int mf;
pthread_mutex_t configmutex;
int soundfd;
void *sndbuf;
int polltag;
audio_info_t info;
gchar p_devaudio[128];
int p_resolution;
int p_channels;
int p_mixfreq;
int p_bufsize;
} sun_driver;
static void
sun_poll_ready_sampling (gpointer data,
gint source,
GdkInputCondition condition)
{
sun_driver * const d = data;
printf("sampling...\n");
read(d->soundfd, d->sndbuf, d->bufsize);
sample_editor_sampled(d->sndbuf, d->bufsize, d->playrate, d->mf);
}
static void
prefs_init_from_structure (sun_driver *d)
{
gtk_entry_set_text(GTK_ENTRY(d->prefs_devaudio_w), d->p_devaudio);
}
static void
sun_devaudio_changed (void *a,
sun_driver *d)
{
strncpy(d->p_devaudio, gtk_entry_get_text(GTK_ENTRY(d->prefs_devaudio_w)),
127);
}
static void
sun_make_config_widgets (sun_driver *d)
{
GtkWidget *thing, *mainbox, *box2;
d->configwidget = mainbox = gtk_vbox_new(FALSE, 2);
thing = gtk_label_new(
_("These changes won't take effect until you restart sampling."));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(mainbox), thing, FALSE, TRUE, 0);
thing = gtk_hseparator_new();
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(mainbox), thing, FALSE, TRUE, 0);
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
thing = gtk_label_new(_("Input device (e.g. '/dev/audio'):"));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
add_empty_hbox(box2);
thing = gtk_entry_new_with_max_length(126);
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
gtk_entry_set_text(GTK_ENTRY(thing), d->p_devaudio);
gtk_signal_connect_after(GTK_OBJECT(thing), "changed",
GTK_SIGNAL_FUNC(sun_devaudio_changed), d);
d->prefs_devaudio_w = thing;
prefs_init_from_structure(d);
}
static GtkWidget *
sun_getwidget (void *dp)
{
sun_driver * const d = dp;
return d->configwidget;
}
static void *
sun_new (void)
{
sun_driver *d = g_new(sun_driver, 1);
strcpy(d->p_devaudio, "/dev/audio");
d->p_mixfreq = 44100;
d->p_channels = 1;
d->p_resolution = 16;
d->p_bufsize = 9;
d->soundfd = -1;
d->sndbuf = NULL;
d->polltag = 0;
if (pthread_mutex_init(&d->configmutex, NULL) != 0) {
return NULL;
}
sun_make_config_widgets(d);
return d;
}
static void
sun_destroy (void *dp)
{
sun_driver * const d = dp;
gtk_widget_destroy(d->configwidget);
pthread_mutex_destroy(&d->configmutex);
g_free(dp);
}
static gboolean
sun_try_format (sun_driver *d, int fmt, int precision)
{
audio_encoding_t enc;
for(enc.index = 0; ioctl(d->soundfd, AUDIO_GETENC, &enc) == 0;
enc.index++) {
if (enc.encoding == fmt && enc.precision == precision) {
d->info.record.encoding = enc.encoding;
d->info.record.precision = enc.precision;
if (ioctl(d->soundfd, AUDIO_SETINFO, &d->info) == 0) {
return TRUE;
} else {
return FALSE;
}
}
}
return FALSE;
}
static gboolean
sun_try_channels (sun_driver *d, int nch)
{
d->info.record.channels = nch;
if(ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
return FALSE;
}
return TRUE;
}
static void
sun_release (void *dp)
{
sun_driver * const d = dp;
free(d->sndbuf);
d->sndbuf = NULL;
if(d->polltag != 0) {
gdk_input_remove(d->polltag);
d->polltag = 0;
}
if(d->soundfd >= 0) {
close(d->soundfd);
d->soundfd = -1;
}
}
static gboolean
sun_open (void *dp)
{
char buf[256];
sun_driver * const d = dp;
int mf, i, fullduplex;
AUDIO_INITINFO(&d->info);
d->soundfd = open(d->p_devaudio, O_RDONLY|O_NONBLOCK);
if(d->soundfd < 0) {
sprintf(buf, _("%s: %s"), d->p_devaudio, strerror(errno));
goto out;
}
fullduplex = 1;
if (ioctl(d->soundfd, AUDIO_SETFD, &fullduplex) != 0) {
fprintf(stderr, "%s: does not support full-duplex operation\n",
d->p_devaudio);
fullduplex = 0;
}
d->info.mode = AUMODE_RECORD;
if(ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
sprintf(buf, _("%s: Cannot record (%s)"), d->p_devaudio,
strerror(errno));
goto out;
}
d->playrate = d->p_mixfreq;
d->info.record.sample_rate = d->playrate;
if(ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
sprintf(buf, _("%s: Cannot handle %dHz (%s)"), d->p_devaudio,
d->playrate, strerror(errno));
goto out;
}
d->bits = 0;
mf = 0;
if(d->p_resolution == 16) {
if(sun_try_format(d, AUDIO_ENCODING_SLINEAR_LE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_S16_LE;
} else if(sun_try_format(d, AUDIO_ENCODING_SLINEAR_BE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_S16_BE;
} else if(sun_try_format(d, AUDIO_ENCODING_ULINEAR_LE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_U16_LE;
} else if(sun_try_format(d, AUDIO_ENCODING_ULINEAR_BE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_U16_BE;
}
}
if(d->bits != 16) {
if(sun_try_format(d, AUDIO_ENCODING_SLINEAR, 8)) {
d->bits = 8;
mf = ST_MIXER_FORMAT_S8;
} else if(sun_try_format(d, AUDIO_ENCODING_PCM8, 8)) {
d->bits = 8;
mf = ST_MIXER_FORMAT_U8;
} else {
sprintf(buf, _("%s: Required sound encoding not supported.\n"),
d->p_devaudio);
goto out;
}
}
if(d->p_channels == 2 && sun_try_channels(d, 2)) {
d->stereo = 1;
mf |= ST_MIXER_FORMAT_STEREO;
} else if(sun_try_channels(d, 1)) {
d->stereo = 0;
}
d->mf = mf;
i = 0x00040000 + d->p_bufsize + d->stereo + (d->bits / 8 - 1);
d->info.blocksize = 1 << (i & 0xffff);
d->info.record.buffer_size = d->info.blocksize;
d->info.hiwat = ((unsigned)i >> 16) & 0x7fff;
printf("input blocksize %d hiwat %d\n", d->info.blocksize, d->info.hiwat);
d->info.hiwat = 1;
if (d->info.hiwat == 0) {
d->info.hiwat = 65536;
}
if (ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
sprintf(buf, _("%s: Cannot set block size (%s)"), d->p_devaudio,
strerror(errno));
goto out;
}
if (ioctl(d->soundfd, AUDIO_GETINFO, &d->info) != 0) {
sprintf(buf, _("%s: %s"), d->p_devaudio, strerror(errno));
goto out;
}
d->bufsize = d->info.blocksize;
d->numbufs = d->info.hiwat;
d->sndbuf = calloc(1, d->bufsize);
if(d->stereo == 1) {
d->bufsize /= 2;
}
if(d->bits == 16) {
d->bufsize /= 2;
}
printf("reading...\n");
read(d->soundfd, d->sndbuf, d->bufsize);
printf("done\n");
d->polltag = gdk_input_add(d->soundfd, GDK_INPUT_READ,
sun_poll_ready_sampling, d);
return TRUE;
out:
error_error(buf);
sun_release(dp);
return FALSE;
}
static gboolean
sun_loadsettings (void *dp,
prefs_node *f)
{
sun_driver * const d = dp;
prefs_get_string(f, "sun-devaudio", d->p_devaudio);
prefs_init_from_structure(d);
return TRUE;
}
static gboolean
sun_savesettings (void *dp,
prefs_node *f)
{
sun_driver * const d = dp;
prefs_put_string(f, "sun-devaudio", d->p_devaudio);
return TRUE;
}
st_in_driver driver_in_sun = {
{ "Sun Sampling",
sun_new,
sun_destroy,
sun_open,
sun_release,
sun_getwidget,
sun_loadsettings,
sun_savesettings,
}
};
#endif /* DRIVER_SUN */

View File

@ -0,0 +1,577 @@
/*
* The Real SoundTracker - Sun (output) driver.
*
* Copyright (C) 2001 CubeSoft Communications, Inc.
* <http://www.csoft.org>
*
* 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 <config.h>
#if DRIVER_SUN
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/audioio.h>
#include <unistd.h>
#include <sys/time.h>
#include <glib.h>
#include <gtk/gtk.h>
#include "i18n.h"
#include "driver-out.h"
#include "mixer.h"
#include "errors.h"
#include "gui-subs.h"
#include "preferences.h"
typedef struct sun_driver {
GtkWidget *configwidget;
GtkWidget *prefs_devaudio_w;
GtkWidget *prefs_resolution_w[2];
GtkWidget *prefs_channels_w[2];
GtkWidget *prefs_mixfreq_w[4];
GtkWidget *bufsizespin_w, *bufsizelabel_w, *estimatelabel_w;
int playrate;
int stereo;
int bits;
int fragsize;
int numfrags;
int mf;
gboolean realtimecaps;
pthread_mutex_t configmutex;
int soundfd;
void *sndbuf;
gpointer polltag;
int firstpoll;
gchar p_devaudio[128];
int p_resolution;
int p_channels;
int p_mixfreq;
int p_fragsize;
double outtime;
double playtime;
audio_info_t info;
} sun_driver;
static const int mixfreqs[] = { 8000, 16000, 22050, 44100, -1 };
static void
sun_poll_ready_playing (gpointer data,
gint source,
GdkInputCondition condition)
{
sun_driver * const d = data;
static int w;
static int size;
static struct timeval tv;
if(!d->firstpoll) {
size = (d->stereo + 1) * (d->bits / 8) * d->fragsize;
write(d->soundfd, d->sndbuf, size);
if(!d->realtimecaps) {
gettimeofday(&tv, NULL);
d->outtime = tv.tv_sec + tv.tv_usec / 1e6;
d->playtime += (double) d->fragsize / d->playrate;
}
}
d->firstpoll = FALSE;
audio_mix(d->sndbuf, d->fragsize, d->playrate, d->mf);
}
static void
prefs_init_from_structure (sun_driver *d)
{
int i;
gtk_toggle_button_set_state(
GTK_TOGGLE_BUTTON(d->prefs_resolution_w[d->p_resolution / 8 - 1]),
TRUE);
gtk_toggle_button_set_state(
GTK_TOGGLE_BUTTON(d->prefs_channels_w[d->p_channels - 1]),
TRUE);
for(i = 0; mixfreqs[i] != -1; i++) {
if(d->p_mixfreq == mixfreqs[i])
break;
}
if(mixfreqs[i] == -1) {
i = 3;
}
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(d->prefs_mixfreq_w[i]), TRUE);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->bufsizespin_w), d->p_fragsize);
gtk_entry_set_text(GTK_ENTRY(d->prefs_devaudio_w), d->p_devaudio);
}
static void
prefs_update_estimate (sun_driver *d)
{
char buf[64];
sprintf(buf, _("Estimated audio delay: %f milliseconds"),
(double)(1000 * (1 << d->p_fragsize)) / d->p_mixfreq);
gtk_label_set_text(GTK_LABEL(d->estimatelabel_w), buf);
}
static void
prefs_resolution_changed (void *a,
sun_driver *d)
{
d->p_resolution = (find_current_toggle(d->prefs_resolution_w, 2) + 1) * 8;
}
static void
prefs_channels_changed (void *a,
sun_driver *d)
{
d->p_channels = find_current_toggle(d->prefs_channels_w, 2) + 1;
}
static void
prefs_mixfreq_changed (void *a,
sun_driver *d)
{
d->p_mixfreq = mixfreqs[find_current_toggle(d->prefs_mixfreq_w, 4)];
prefs_update_estimate(d);
}
static void
prefs_fragsize_changed (GtkSpinButton *w,
sun_driver *d)
{
char buf[30];
d->p_fragsize = gtk_spin_button_get_value_as_int(w);
sprintf(buf, _("(%d samples)"), 1 << d->p_fragsize);
gtk_label_set_text(GTK_LABEL(d->bufsizelabel_w), buf);
prefs_update_estimate(d);
}
static void
sun_devaudio_changed (void *a,
sun_driver *d)
{
strncpy(d->p_devaudio, gtk_entry_get_text(GTK_ENTRY(d->prefs_devaudio_w)),
127);
}
static void
sun_make_config_widgets (sun_driver *d)
{
GtkWidget *thing, *mainbox, *box2, *box3;
static const char *resolutionlabels[] = { "8 bits", "16 bits", NULL };
static const char *channelslabels[] = { "Mono", "Stereo", NULL };
static const char *mixfreqlabels[] = { "8000", "16000", "22050", "44100",
NULL };
d->configwidget = mainbox = gtk_vbox_new(FALSE, 2);
thing = gtk_label_new(
_("These changes won't take effect until you restart playing."));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(mainbox), thing, FALSE, TRUE, 0);
thing = gtk_hseparator_new();
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(mainbox), thing, FALSE, TRUE, 0);
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
thing = gtk_label_new(_("Output device (e.g. '/dev/audio'):"));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
add_empty_hbox(box2);
thing = gtk_entry_new_with_max_length(126);
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
gtk_entry_set_text(GTK_ENTRY(thing), d->p_devaudio);
gtk_signal_connect_after(GTK_OBJECT(thing), "changed",
GTK_SIGNAL_FUNC(sun_devaudio_changed), d);
d->prefs_devaudio_w = thing;
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
thing = gtk_label_new(_("Resolution:"));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
add_empty_hbox(box2);
make_radio_group_full(resolutionlabels, box2, d->prefs_resolution_w,
FALSE, TRUE, (void(*)())prefs_resolution_changed, d);
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
thing = gtk_label_new(_("Channels:"));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
add_empty_hbox(box2);
make_radio_group_full(channelslabels, box2, d->prefs_channels_w,
FALSE, TRUE, (void(*)())prefs_channels_changed, d);
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
thing = gtk_label_new(_("Frequency [Hz]:"));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
add_empty_hbox(box2);
make_radio_group_full(mixfreqlabels, box2, d->prefs_mixfreq_w,
FALSE, TRUE, (void(*)())prefs_mixfreq_changed, d);
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
thing = gtk_label_new(_("Buffer Size:"));
gtk_widget_show(thing);
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
add_empty_hbox(box2);
box3 = gtk_vbox_new(FALSE, 2);
gtk_box_pack_start(GTK_BOX(box2), box3, FALSE, TRUE, 0);
gtk_widget_show(box3);
d->bufsizespin_w = thing = gtk_spin_button_new(GTK_ADJUSTMENT(
gtk_adjustment_new(5.0, 5.0, 15.0, 1.0, 1.0, 0.0)), 0, 0);
gtk_box_pack_start(GTK_BOX(box3), thing, FALSE, TRUE, 0);
gtk_widget_show(thing);
gtk_signal_connect (GTK_OBJECT(thing), "changed",
GTK_SIGNAL_FUNC(prefs_fragsize_changed), d);
d->bufsizelabel_w = thing = gtk_label_new("");
gtk_box_pack_start(GTK_BOX(box3), thing, FALSE, TRUE, 0);
gtk_widget_show(thing);
box2 = gtk_hbox_new(FALSE, 4);
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(mainbox), box2, FALSE, TRUE, 0);
add_empty_hbox(box2);
d->estimatelabel_w = thing = gtk_label_new("");
gtk_box_pack_start(GTK_BOX(box2), thing, FALSE, TRUE, 0);
gtk_widget_show(thing);
add_empty_hbox(box2);
prefs_init_from_structure(d);
}
static GtkWidget *
sun_getwidget (void *dp)
{
sun_driver * const d = dp;
return d->configwidget;
}
static void *
sun_new (void)
{
sun_driver *d = g_new(sun_driver, 1);
strcpy(d->p_devaudio, "/dev/audio");
d->p_mixfreq = 44100;
d->p_channels = 2;
d->p_resolution = 16;
d->p_fragsize = 11; // 2048;
d->soundfd = -1;
d->sndbuf = NULL;
d->polltag = NULL;
if (pthread_mutex_init(&d->configmutex, NULL) != 0) {
return (NULL);
}
sun_make_config_widgets(d);
return d;
}
static void
sun_destroy (void *dp)
{
sun_driver * const d = dp;
gtk_widget_destroy(d->configwidget);
pthread_mutex_destroy(&d->configmutex);
g_free(dp);
}
static gboolean
sun_try_format (sun_driver *d, int fmt, int precision)
{
audio_encoding_t enc;
for(enc.index = 0; ioctl(d->soundfd, AUDIO_GETENC, &enc) == 0;
enc.index++) {
if (enc.encoding == fmt && enc.precision == precision) {
d->info.play.encoding = enc.encoding;
d->info.play.precision = enc.precision;
if (ioctl(d->soundfd, AUDIO_SETINFO, &d->info) == 0) {
return TRUE;
} else {
return FALSE;
}
}
}
return FALSE;
}
static gboolean
sun_try_channels (sun_driver *d, int nch)
{
d->info.play.channels = nch;
if(ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
return FALSE;
}
return TRUE;
}
static void
sun_release (void *dp)
{
sun_driver * const d = dp;
free(d->sndbuf);
d->sndbuf = NULL;
audio_poll_remove(d->polltag);
d->polltag = NULL;
if(d->soundfd >= 0) {
ioctl(d->soundfd, AUDIO_FLUSH, NULL);
close(d->soundfd);
d->soundfd = -1;
}
}
static gboolean
sun_open (void *dp)
{
char buf[256];
sun_driver * const d = dp;
int mf = 0, i;
AUDIO_INITINFO(&d->info);
d->soundfd = open(d->p_devaudio, O_WRONLY);
if(d->soundfd < 0) {
sprintf(buf, _("%s: %s"), d->p_devaudio, strerror(errno));
goto out;
}
d->info.mode = AUMODE_PLAY;
if(ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
sprintf(buf, _("%s: Cannot play (%s)"), d->p_devaudio, strerror(errno));
goto out;
}
d->playrate = d->p_mixfreq;
d->info.play.sample_rate = d->playrate;
if(ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
sprintf(buf, _("%s: Cannot handle %dHz (%s)"), d->p_devaudio,
d->playrate, strerror(errno));
goto out;
}
d->bits = 0;
if(d->p_resolution == 16) {
if(sun_try_format(d, AUDIO_ENCODING_SLINEAR_LE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_S16_LE;
} else if(sun_try_format(d, AUDIO_ENCODING_SLINEAR_BE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_S16_BE;
} else if(sun_try_format(d, AUDIO_ENCODING_ULINEAR_LE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_U16_LE;
} else if(sun_try_format(d, AUDIO_ENCODING_ULINEAR_BE, 16)) {
d->bits = 16;
mf = ST_MIXER_FORMAT_U16_BE;
}
}
if(d->bits != 16) {
if(sun_try_format(d, AUDIO_ENCODING_SLINEAR, 8)) {
d->bits = 8;
mf = ST_MIXER_FORMAT_S8;
} else if(sun_try_format(d, AUDIO_ENCODING_PCM8, 8)) {
d->bits = 8;
mf = ST_MIXER_FORMAT_U8;
} else {
sprintf(buf, _("%s: Required sound encoding not supported.\n"),
d->p_devaudio);
goto out;
}
}
if(d->p_channels == 2 && sun_try_channels(d, 2)) {
d->stereo = 1;
mf |= ST_MIXER_FORMAT_STEREO;
} else if(sun_try_channels(d, 1)) {
d->stereo = 0;
}
d->mf = mf;
i = 0x00020000 + d->p_fragsize + d->stereo + (d->bits / 8 - 1);
d->info.blocksize = 1 << (i & 0xffff);
d->info.hiwat = ((unsigned)i >> 16) & 0x7fff;
if (d->info.hiwat == 0) {
d->info.hiwat = 65536;
}
if (ioctl(d->soundfd, AUDIO_SETINFO, &d->info) != 0) {
sprintf(buf, _("%s: Cannot set block size (%s)"), d->p_devaudio,
strerror(errno));
goto out;
}
if (ioctl(d->soundfd, AUDIO_GETINFO, &d->info) != 0) {
sprintf(buf, _("%s: %s"), d->p_devaudio, strerror(errno));
goto out;
}
d->fragsize = d->info.blocksize;
d->numfrags = d->info.hiwat;
#if 0
if (ioctl(d->soundfd, AUDIO_GETPROPS, &i) == 0) {
/* XXX use only if we are recording. */
d->realtimecaps = i & AUDIO_PROP_FULLDUPLEX;
}
#endif
d->sndbuf = calloc(1, d->fragsize);
if(d->stereo == 1) {
d->fragsize /= 2;
}
if(d->bits == 16) {
d->fragsize /= 2;
}
d->polltag = audio_poll_add(d->soundfd, GDK_INPUT_WRITE,
sun_poll_ready_playing, d);
d->firstpoll = TRUE;
d->playtime = 0;
return TRUE;
out:
error_error(buf);
sun_release(dp);
return FALSE;
}
static double
sun_get_play_time (void *dp)
{
sun_driver * const d = dp;
if(d->realtimecaps) {
static audio_offset_t ooffs;
ioctl(d->soundfd, AUDIO_GETOOFFS, &ooffs);
return (double)ooffs.samples /
(d->stereo + 1) / (d->bits / 8) / d->playrate;
} else {
struct timeval tv;
double curtime;
gettimeofday(&tv, NULL);
curtime = tv.tv_sec + tv.tv_usec / 1e6;
return d->playtime + curtime - d->outtime -
d->numfrags * ((double) d->fragsize / d->playrate);
}
}
static gboolean
sun_loadsettings (void *dp,
prefs_node *f)
{
sun_driver * const d = dp;
prefs_get_string(f, "sun-devaudio", d->p_devaudio);
prefs_get_int(f, "sun-resolution", &d->p_resolution);
prefs_get_int(f, "sun-channels", &d->p_channels);
prefs_get_int(f, "sun-mixfreq", &d->p_mixfreq);
prefs_get_int(f, "sun-fragsize", &d->p_fragsize);
prefs_init_from_structure(d);
return TRUE;
}
static gboolean
sun_savesettings (void *dp,
prefs_node *f)
{
sun_driver * const d = dp;
prefs_put_string(f, "sun-devaudio", d->p_devaudio);
prefs_put_int(f, "sun-resolution", d->p_resolution);
prefs_put_int(f, "sun-channels", d->p_channels);
prefs_put_int(f, "sun-mixfreq", d->p_mixfreq);
prefs_put_int(f, "sun-fragsize", d->p_fragsize);
return TRUE;
}
st_out_driver driver_out_sun = {
{ "Sun Output",
sun_new,
sun_destroy,
sun_open,
sun_release,
sun_getwidget,
sun_loadsettings,
sun_savesettings,
},
sun_get_play_time,
};
#endif /* DRIVER_SUN */

View File

@ -0,0 +1,53 @@
--- FAQ.orig Wed Jul 25 11:22:56 2001
+++ FAQ Mon Feb 4 23:35:44 2002
@@ -2,39 +2,11 @@
FAQ
====
-QQQQ: SoundTracker crashes as soon as I start it or as I press a
-button in its window, giving weird X errors.
-
-a: You don't have thread-safe X libraries (you have a libc5
-system). Read the INSTALL file.
-
-------------------------------------------------------------------------
-
-QQQQ: SoundTracker complains about not being able to open /dev/dsp.
-
-a: Either you have not configured a sound driver for your system (you
-could check that by running an MP3 player or something) - or you are
-running GNOME and your soundcard is kept busy by the E Sound Daemon,
-which you can get rid of by using "killall esd" in a shell.
-
-There's also an "ESD" driver in the Audio settings, but it's not
-possible to do any serious tracking work because of the delay
-introduced by it.
-
-------------------------------------------------------------------------
-
-QQQQ: SoundTracker crashes as soon as I use the menu bar.
-
-a: You have a too old gtk+. Read the INSTALL file.
-
------------------------------------------------------------------------
QQQQ: The sound output gets quite choppy under machine load.
-a1: Don't run the compiled executable directly, but do a full 'make
-install', this installs the executable setuid root and the audio
-thread gets a much higher priority. Read the notes in the INSTALL file
-about this subject.
+a1: Assign the soundtracker process a higher user priority (renice).
a2: Increase size of mixer buffer in the Preferences section.
@@ -47,9 +19,6 @@ scopes.
a5: Reduce scopes and patterns update frequency in the Preferences
section.
-
-a6: Install at least glibc2.1.1pre3, this fixed a strange sound bug
-for me.
------------------------------------------------------------------------

View File

@ -0,0 +1,11 @@
$OpenBSD: patch-acconfig_h,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- acconfig.h.orig Mon Feb 4 12:37:14 2002
+++ acconfig.h Mon Feb 4 12:37:19 2002
@@ -6,6 +6,7 @@
#undef DRIVER_ALSA_050
#undef DRIVER_ESD
#undef DRIVER_SGI
+#undef DRIVER_SUN
#undef USE_GNOME
#undef NO_AUDIOFILE
#undef NO_GASP

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-app_Makefile_am,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/Makefile.am.orig Mon Sep 25 07:06:00 2000
+++ app/Makefile.am Mon Feb 4 21:59:26 2002
@@ -46,17 +46,6 @@ soundtracker_SOURCES = \
soundtracker_LDADD = drivers/libdrivers.a mixers/libmixers.a
-install-exec-local:
- chown root.root $(bindir)/soundtracker
- chmod +s $(bindir)/soundtracker
- @echo ""
- @echo "***"
- @echo "*** Installing SoundTracker suid root."
- @echo "*** This improves sound responsivity, but may be a security risk"
- @echo "*** if this is a multi-user machine. See file INSTALL."
- @echo "***"
- @echo ""
-
stdir = $(datadir)/soundtracker
#INCLUDES = -DDATADIR=\"$(stdir)\" \

View File

@ -0,0 +1,228 @@
$OpenBSD: patch-app_Makefile_in,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/Makefile.in.orig Sun Aug 12 07:07:24 2001
+++ app/Makefile.in Mon Feb 4 22:01:15 2002
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -57,9 +57,12 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
AUDIOFILE_CFLAGS = @AUDIOFILE_CFLAGS@
AUDIOFILE_CONFIG = @AUDIOFILE_CONFIG@
AUDIOFILE_LIBS = @AUDIOFILE_LIBS@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
@@ -69,18 +72,18 @@ ESD_CONFIG = @ESD_CONFIG@
ESD_LIBS = @ESD_LIBS@
GASPPATH = @GASPPATH@
GENCAT = @GENCAT@
+GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
+INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LIBICONV = @LIBICONV@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
@@ -92,7 +95,6 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIB
USE_NLS = @USE_NLS@
VERSION = @VERSION@
gnomepath = @gnomepath@
-l = @l@
sedpath = @sedpath@
SUBDIRS = drivers mixers
@@ -238,7 +240,8 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
- test "$$subdir" = "." && dot_seen=yes; \
+ test "$$subdir" != "." || dot_seen=yes; \
+ true; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
@@ -299,7 +302,7 @@ distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
+ cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -316,112 +319,6 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
-audio.o: audio.c ../config.h poll.h i18n.h audio.h mixer.h driver-out.h \
- driver.h preferences.h time-buffer.h event-waiter.h main.h xm.h \
- xm-player.h endian-conv.h scope-group.h sample-display.h \
- errors.h gui-settings.h
-audioconfig.o: audioconfig.c ../config.h i18n.h audioconfig.h gui-subs.h \
- audio.h mixer.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h sample-editor.h xm.h driver-in.h \
- 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 \
- time-buffer.h event-waiter.h
-event-waiter.o: event-waiter.c event-waiter.h
-extspinbutton.o: extspinbutton.c extspinbutton.h gui.h gui-subs.h \
- audio.h mixer.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h
-file-operations.o: file-operations.c ../config.h i18n.h \
- file-operations.h keys.h track-editor.h tracker.h xm.h mixer.h \
- tracker-settings.h gui-subs.h gui.h audio.h driver-out.h \
- driver.h preferences.h time-buffer.h event-waiter.h errors.h
-gui-settings.o: gui-settings.c ../config.h i18n.h gui.h gui-subs.h \
- audio.h mixer.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h gui-settings.h scope-group.h \
- sample-display.h track-editor.h tracker.h xm.h \
- tracker-settings.h extspinbutton.h
-gui-subs.o: gui-subs.c ../config.h i18n.h gui.h gui-subs.h audio.h \
- mixer.h driver-out.h driver.h preferences.h time-buffer.h \
- event-waiter.h extspinbutton.h
-gui.o: gui.c ../config.h poll.h i18n.h gui.h gui-subs.h audio.h mixer.h \
- driver-out.h driver.h preferences.h time-buffer.h \
- event-waiter.h xm.h st-subs.h xm-player.h tracker.h main.h \
- keys.h instrument-editor.h sample-editor.h driver-in.h \
- track-editor.h tracker-settings.h scope-group.h \
- sample-display.h module-info.h menubar.h tips-dialog.h \
- gui-settings.h file-operations.h playlist.h extspinbutton.h
-instrument-editor.o: instrument-editor.c i18n.h ../config.h \
- instrument-editor.h xm.h mixer.h envelope-box.h st-subs.h gui.h \
- gui-subs.h audio.h driver-out.h driver.h preferences.h \
- 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
-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
-main.o: main.c ../config.h i18n.h gui.h gui-subs.h audio.h mixer.h \
- driver-out.h driver.h preferences.h time-buffer.h \
- event-waiter.h xm.h keys.h gui-settings.h audioconfig.h \
- tips-dialog.h menubar.h track-editor.h tracker.h \
- tracker-settings.h midi.h midi-settings.h
-menubar.o: menubar.c ../config.h i18n.h menubar.h gui.h gui-subs.h \
- audio.h mixer.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h main.h xm.h st-subs.h keys.h \
- module-info.h scope-group.h sample-display.h track-editor.h \
- tracker.h tracker-settings.h audioconfig.h gui-settings.h \
- tips-dialog.h transposition.h cheat-sheet.h file-operations.h \
- instrument-editor.h midi-settings.h
-midi-settings.o: midi-settings.c ../config.h
-midi-utils.o: midi-utils.c ../config.h
-midi.o: midi.c ../config.h
-module-info.o: module-info.c i18n.h ../config.h module-info.h gui.h \
- gui-subs.h audio.h mixer.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h xm.h st-subs.h main.h \
- sample-editor.h driver-in.h instrument-editor.h keys.h \
- track-editor.h tracker.h tracker-settings.h
-playlist.o: playlist.c ../config.h i18n.h playlist.h gui-subs.h
-poll.o: poll.c ../config.h
-preferences.o: preferences.c ../config.h i18n.h gui-subs.h preferences.h \
- menubar.h scope-group.h sample-display.h track-editor.h \
- tracker.h xm.h mixer.h tracker-settings.h errors.h
-recode.o: recode.c recode.h
-sample-display.o: sample-display.c sample-display.h
-sample-editor.o: sample-editor.c ../config.h i18n.h sample-editor.h xm.h \
- mixer.h driver-in.h driver.h preferences.h st-subs.h gui.h \
- gui-subs.h audio.h driver-out.h time-buffer.h event-waiter.h \
- instrument-editor.h sample-display.h endian-conv.h keys.h \
- track-editor.h tracker.h tracker-settings.h errors.h \
- module-info.h file-operations.h gui-settings.h
-scope-group.o: scope-group.c ../config.h scope-group.h sample-display.h \
- audio.h mixer.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h gui-subs.h gui-settings.h
-st-subs.o: st-subs.c st-subs.h xm.h mixer.h gui-settings.h
-time-buffer.o: time-buffer.c time-buffer.h
-tips-dialog.o: tips-dialog.c ../config.h i18n.h tips-dialog.h \
- preferences.h
-track-editor.o: track-editor.c i18n.h ../config.h track-editor.h \
- tracker.h xm.h mixer.h tracker-settings.h gui.h gui-subs.h \
- audio.h driver-out.h driver.h preferences.h time-buffer.h \
- event-waiter.h st-subs.h keys.h xm-player.h main.h \
- gui-settings.h menubar.h
-tracker-settings.o: tracker-settings.c ../config.h tracker-settings.h \
- tracker.h xm.h mixer.h i18n.h gui-subs.h preferences.h
-tracker.o: tracker.c tracker.h xm.h mixer.h main.h gui-settings.h
-transposition.o: transposition.c i18n.h ../config.h transposition.h \
- main.h xm.h mixer.h gui-subs.h gui.h audio.h driver-out.h \
- driver.h preferences.h time-buffer.h event-waiter.h st-subs.h \
- track-editor.h tracker.h tracker-settings.h
-xm-player.o: xm-player.c ../config.h i18n.h xm-player.h xm.h mixer.h \
- main.h audio.h driver-out.h driver.h preferences.h \
- time-buffer.h event-waiter.h
-xm.o: xm.c i18n.h ../config.h gui-settings.h xm.h mixer.h xm-player.h \
- endian-conv.h st-subs.h recode.h errors.h audio.h driver-out.h \
- driver.h preferences.h time-buffer.h event-waiter.h
-
info-am:
info: info-recursive
dvi-am:
@@ -430,7 +327,7 @@ check-am: all-am
check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
-install-exec-am: install-binPROGRAMS install-exec-local
+install-exec-am: install-binPROGRAMS
install-exec: install-exec-recursive
install-data-am:
@@ -492,24 +389,12 @@ all-recursive check-recursive installche
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck \
-install-exec-local install-exec-am install-exec install-data-am \
-install-data install-am install uninstall-am uninstall all-redirect \
-all-am all installdirs-am installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-install-exec-local:
- chown root.root $(bindir)/soundtracker
- chmod +s $(bindir)/soundtracker
- @echo ""
- @echo "***"
- @echo "*** Installing SoundTracker suid root."
- @echo "*** This improves sound responsivity, but may be a security risk"
- @echo "*** if this is a multi-user machine. See file INSTALL."
- @echo "***"
- @echo ""
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-app_drivers_Makefile_am,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/drivers/Makefile.am.orig Mon Feb 4 12:39:19 2002
+++ app/drivers/Makefile.am Mon Feb 4 12:39:27 2002
@@ -12,6 +12,8 @@ libdrivers_a_SOURCES = \
file-output.c \
irix-output.c \
oss-output.c \
- oss-input.c
+ oss-input.c \
+ sun-output.c \
+ sun-input.c
INCLUDES = -I..

View File

@ -0,0 +1,106 @@
$OpenBSD: patch-app_drivers_Makefile_in,v 1.1.1.1 2002/02/05 18:04:11 espie Exp $
--- app/drivers/Makefile.in.orig Sun Aug 12 07:07:27 2001
+++ app/drivers/Makefile.in Mon Feb 4 22:01:15 2002
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -57,9 +57,12 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
AUDIOFILE_CFLAGS = @AUDIOFILE_CFLAGS@
AUDIOFILE_CONFIG = @AUDIOFILE_CONFIG@
AUDIOFILE_LIBS = @AUDIOFILE_LIBS@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
@@ -69,18 +72,18 @@ ESD_CONFIG = @ESD_CONFIG@
ESD_LIBS = @ESD_LIBS@
GASPPATH = @GASPPATH@
GENCAT = @GENCAT@
+GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
+INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LIBICONV = @LIBICONV@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
@@ -92,12 +95,11 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIB
USE_NLS = @USE_NLS@
VERSION = @VERSION@
gnomepath = @gnomepath@
-l = @l@
sedpath = @sedpath@
noinst_LIBRARIES = libdrivers.a
-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
+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 sun-output.c sun-input.c
INCLUDES = -I..
@@ -114,7 +116,8 @@ LIBS = @LIBS@
libdrivers_a_LIBADD =
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
+file-output.o irix-output.o oss-output.o oss-input.o sun-output.o \
+sun-input.o
AR = ar
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -211,32 +214,13 @@ distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
+ cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
-alsa-input.o: alsa-input.c ../../config.h
-alsa-output.o: alsa-output.c ../../config.h
-alsa2-input.o: alsa2-input.c ../../config.h
-alsa2-output.o: alsa2-output.c ../../config.h
-dsound-output.o: dsound-output.c ../../config.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
-oss-output.o: oss-output.c ../../config.h ../i18n.h ../driver-out.h \
- ../driver.h ../preferences.h ../mixer.h ../errors.h \
- ../gui-subs.h
-
info-am:
info: info-am
dvi-am:

View File

@ -0,0 +1,47 @@
$OpenBSD: patch-app_drivers_oss_input_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/drivers/oss-input.c.orig Sat Aug 4 07:14:49 2001
+++ app/drivers/oss-input.c Mon Feb 4 04:10:05 2002
@@ -32,7 +32,13 @@
#include <sys/ioctl.h>
#include <sys/types.h>
#include <unistd.h>
-#include <sys/soundcard.h>
+#ifdef HAVE_SYS_SOUNDCARD_H
+# include <sys/soundcard.h>
+#elif HAVE_MACHINE_SOUNDCARD_H
+# include <machine/soundcard.h>
+#elif HAVE_SOUNDCARD_H
+# include <soundcard.h>
+#endif
#include <sys/time.h>
#include <glib.h>
@@ -54,7 +60,7 @@ typedef struct oss_driver {
int fragsize;
int mf;
- GMutex *configmutex;
+ pthread_mutex_t configmutex;
int soundfd;
void *sndbuf;
@@ -150,7 +156,9 @@ oss_new (void)
d->soundfd = -1;
d->sndbuf = NULL;
d->polltag = 0;
- d->configmutex = g_mutex_new();
+ if (pthread_mutex_init(&d->configmutex, NULL) != 0) {
+ return NULL;
+ }
oss_make_config_widgets(d);
@@ -163,7 +171,7 @@ oss_destroy (void *dp)
oss_driver * const d = dp;
gtk_widget_destroy(d->configwidget);
- g_mutex_free(d->configmutex);
+ pthread_mutex_destroy(&d->configmutex);
g_free(dp);
}

View File

@ -0,0 +1,47 @@
$OpenBSD: patch-app_drivers_oss_output_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/drivers/oss-output.c.orig Sat Aug 4 07:06:18 2001
+++ app/drivers/oss-output.c Mon Feb 4 04:17:56 2002
@@ -32,7 +32,13 @@
#include <sys/ioctl.h>
#include <sys/types.h>
#include <unistd.h>
-#include <sys/soundcard.h>
+#ifdef HAVE_SYS_SOUNDCARD_H
+# include <sys/soundcard.h>
+#elif HAVE_MACHINE_SOUNDCARD_H
+# include <machine/soundcard.h>
+#elif HAVE_SOUNDCARD_H
+# include <soundcard.h>
+#endif
#include <sys/time.h>
#include <glib.h>
@@ -61,7 +67,7 @@ typedef struct oss_driver {
int mf;
gboolean realtimecaps;
- GMutex *configmutex;
+ pthread_mutex_t configmutex;
int soundfd;
void *sndbuf;
@@ -307,7 +313,9 @@ oss_new (void)
d->soundfd = -1;
d->sndbuf = NULL;
d->polltag = NULL;
- d->configmutex = g_mutex_new();
+ if (pthread_mutex_init(&d->configmutex, NULL) != 0) {
+ return (NULL);
+ }
oss_make_config_widgets(d);
@@ -320,7 +328,7 @@ oss_destroy (void *dp)
oss_driver * const d = dp;
gtk_widget_destroy(d->configwidget);
- g_mutex_free(d->configmutex);
+ pthread_mutex_destroy(&d->configmutex);
g_free(dp);
}

View File

@ -0,0 +1,89 @@
$OpenBSD: patch-app_event-waiter_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/event-waiter.c.orig Mon Feb 4 04:24:29 2002
+++ app/event-waiter.c Mon Feb 4 04:37:54 2002
@@ -22,9 +22,10 @@
#include "event-waiter.h"
#include <glib.h>
+#include <pthread.h>
struct event_waiter {
- GMutex *mutex;
+ pthread_mutex_t mutex;
int counter;
double time;
};
@@ -35,7 +36,9 @@ event_waiter_new (void)
event_waiter *e = g_new(event_waiter, 1);
if(e) {
- e->mutex = g_mutex_new();
+ if (pthread_mutex_init(&e->mutex, NULL) != 0) {
+ return NULL;
+ }
event_waiter_reset(e);
}
@@ -46,7 +49,7 @@ void
event_waiter_destroy (event_waiter *e)
{
if(e) {
- g_mutex_free(e->mutex);
+ pthread_mutex_destroy(&e->mutex);
g_free(e);
}
}
@@ -56,10 +59,10 @@ event_waiter_reset (event_waiter *e)
{
g_assert(e);
- g_mutex_lock(e->mutex);
+ pthread_mutex_lock(&e->mutex);
e->counter = 0;
e->time = 0.0;
- g_mutex_unlock(e->mutex);
+ pthread_mutex_unlock(&e->mutex);
}
void
@@ -67,9 +70,9 @@ event_waiter_start (event_waiter *e)
{
g_assert(e);
- g_mutex_lock(e->mutex);
+ pthread_mutex_lock(&e->mutex);
e->counter++;
- g_mutex_unlock(e->mutex);
+ pthread_mutex_unlock(&e->mutex);
}
void
@@ -78,14 +81,14 @@ event_waiter_confirm (event_waiter *e,
{
g_assert(e);
- g_mutex_lock(e->mutex);
+ pthread_mutex_lock(&e->mutex);
if(e->counter > 0) {
e->counter--;
}
if(readytime >= e->time) {
e->time = readytime;
}
- g_mutex_unlock(e->mutex);
+ pthread_mutex_unlock(&e->mutex);
}
gboolean
@@ -96,9 +99,9 @@ event_waiter_ready (event_waiter *e,
g_assert(e);
- g_mutex_lock(e->mutex);
+ pthread_mutex_lock(&e->mutex);
result = (e->counter == 0 && currenttime >= e->time);
- g_mutex_unlock(e->mutex);
+ pthread_mutex_unlock(&e->mutex);
return result;
}

View File

@ -0,0 +1,37 @@
$OpenBSD: patch-app_main_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/main.c.orig Sun Aug 12 06:52:17 2001
+++ app/main.c Mon Feb 4 22:04:53 2002
@@ -79,6 +79,9 @@ main (int argc,
#ifdef DRIVER_SGI
driver_out_irix,
#endif
+#ifdef DRIVER_SUN
+ driver_out_sun, driver_in_sun,
+#endif
#ifndef NO_AUDIOFILE
// driver_out_file,
#endif
@@ -91,7 +94,9 @@ main (int argc,
mixer_kbfloat,
mixer_integer32;
+#ifndef __OpenBSD__
g_thread_init(NULL);
+#endif
if(pipe(pipea) || pipe(pipeb)) {
fprintf(stderr, "Cränk. Can't pipe().\n");
@@ -168,6 +173,13 @@ main (int argc,
#ifdef DRIVER_SGI
drivers[DRIVER_OUTPUT] = g_list_append(drivers[DRIVER_OUTPUT],
&driver_out_irix);
+#endif
+
+#ifdef DRIVER_SUN
+ drivers[DRIVER_OUTPUT] = g_list_append(drivers[DRIVER_OUTPUT],
+ &driver_out_sun);
+ drivers[DRIVER_INPUT] = g_list_append(drivers[DRIVER_INPUT],
+ &driver_in_sun);
#endif
#ifdef _WIN32

View File

@ -0,0 +1,20 @@
$OpenBSD: patch-app_mixer_h,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/mixer.h.orig Mon Feb 4 04:21:58 2002
+++ app/mixer.h Mon Feb 4 04:37:12 2002
@@ -23,6 +23,7 @@
#define _ST_MIXER_H
#include <glib.h>
+#include <pthread.h>
typedef struct st_mixer_sample_info {
guint32 looptype; /* see ST_MIXER_SAMPLE_LOOPTYPE_ defines below */
@@ -30,7 +31,7 @@ typedef struct st_mixer_sample_info {
guint32 loopstart; /* offset in samples, not in bytes */
guint32 loopend; /* offset to first sample not being played */
gint16 *data; /* pointer to sample data */
- GMutex *lock;
+ pthread_mutex_t *lock;
} st_mixer_sample_info;
/* values for st_mixer_sample_info.looptype */

View File

@ -0,0 +1,59 @@
$OpenBSD: patch-app_mixers_integer32_asm_S,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/mixers/integer32-asm.S.orig Sun Sep 24 14:26:09 2000
+++ app/mixers/integer32-asm.S Thu Jan 31 08:55:03 2002
@@ -28,14 +28,23 @@
--------------------------------------------------------------------------
*/
+#ifndef _C_LABEL
+# ifdef __ELF__
+# define _C_LABEL(x) x
+# else
+# define _C_LABEL(x) _ ## x
+# endif
+#endif
+#undef GLOBAL
+#define GLOBAL(x) .globl _C_LABEL(x); _C_LABEL(x):
+
#if defined(__i386__)
#define ACCURACY 12
.text
-.globl mixerasm_stereo_16_scopes
-mixerasm_stereo_16_scopes:
+GLOBAL(mixerasm_stereo_16_scopes)
pushl %ebp
movl %esp,%ebp
@@ -89,8 +98,7 @@ mixerasm_stereo_16_scopes:
leave
ret
-.globl mixerasm_mono_16_scopes
-mixerasm_mono_16_scopes:
+GLOBAL(mixerasm_mono_16_scopes)
pushl %ebp
movl %esp,%ebp
@@ -136,8 +144,7 @@ mixerasm_mono_16_scopes:
leave
ret
-.globl mixerasm_stereo_16
-mixerasm_stereo_16:
+GLOBAL(mixerasm_stereo_16)
pushl %ebp
movl %esp,%ebp
@@ -183,8 +190,7 @@ mixerasm_stereo_16:
leave
ret
-.globl mixerasm_mono_16
-mixerasm_mono_16:
+GLOBAL(mixerasm_mono_16)
pushl %ebp
movl %esp,%ebp

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-app_mixers_integer32_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/mixers/integer32.c.orig Mon Feb 4 04:35:50 2002
+++ app/mixers/integer32.c Mon Feb 4 04:36:16 2002
@@ -277,7 +277,7 @@ integer32_mix (void *dest,
}
g_assert(c->sample->lock);
- g_mutex_lock(c->sample->lock);
+ pthread_mutex_lock(c->sample->lock);
while(t) {
/* Check how much of the sample we can fill in one run */
@@ -414,7 +414,7 @@ integer32_mix (void *dest,
c->current = j;
}
- g_mutex_unlock(c->sample->lock);
+ pthread_mutex_unlock(c->sample->lock);
}
/* modules with many channels get additional amplification here */

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-app_mixers_kb-x86_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/mixers/kb-x86.c.orig Mon Feb 4 04:35:55 2002
+++ app/mixers/kb-x86.c Mon Feb 4 04:36:34 2002
@@ -739,7 +739,7 @@ kb_x86_mix (void *dest,
}
g_assert(ch->sample->lock);
- g_mutex_lock(ch->sample->lock);
+ pthread_mutex_lock(ch->sample->lock);
while(num_samples_left && (ch->flags & KB_FLAG_SAMPLE_RUNNING)) {
int num_samples = 0;
@@ -770,7 +770,7 @@ kb_x86_mix (void *dest,
}
}
- g_mutex_unlock(ch->sample->lock);
+ pthread_mutex_unlock(ch->sample->lock);
}
clipflag = kbasm_post_mixing(kb_x86_tempbuf, (gint16*)dest, count, kb_x86_amplification);

View File

@ -0,0 +1,50 @@
$OpenBSD: patch-app_mixers_kb_x86_asm_S,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/mixers/kb-x86-asm.S.orig Sun Sep 24 09:50:51 2000
+++ app/mixers/kb-x86-asm.S Thu Jan 31 08:55:03 2002
@@ -24,6 +24,16 @@
*
*/
+#ifndef _C_LABEL
+# ifdef __ELF__
+# define _C_LABEL(x) x
+# else
+# define _C_LABEL(x) _ ## x
+# endif
+#endif
+#undef GLOBAL
+#define GLOBAL(x) .globl _C_LABEL(x); _C_LABEL(x):
+
#if defined(__i386__)
.section .data
@@ -53,8 +63,7 @@ minuseins: .float -1.0
.text
-.globl kbasm_post_mixing
-kbasm_post_mixing:
+GLOBAL(kbasm_post_mixing)
pushl %ebp
movl %esp, %ebp
@@ -129,8 +138,7 @@ clipstereo: // convert/clip samples, 16b
fstp %st // -
ret
-.globl kbasm_mix
-kbasm_mix:
+GLOBAL(kbasm_mix)
pushl %ebp
movl %esp, %ebp
@@ -360,8 +368,7 @@ kbasm_mix_cubic_scopes_filtered_backward
CUBICMIXER 1 1 1 1
.section .data
-.globl kbasm_mixers
-kbasm_mixers:
+GLOBAL(kbasm_mixers)
.long kbasm_mix_cubic_noscopes_unfiltered_forward_noramp
.long kbasm_mix_cubic_noscopes_unfiltered_backward_noramp
.long kbasm_mix_cubic_noscopes_filtered_forward_noramp

View File

@ -0,0 +1,30 @@
$OpenBSD: patch-app_sample_editor_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/sample-editor.c.orig Wed Jul 25 11:46:45 2001
+++ app/sample-editor.c Mon Feb 4 04:38:32 2002
@@ -183,7 +183,7 @@ static void sample_editor_reverse_clicke
static void
sample_editor_lock_sample (void)
{
- g_mutex_lock(current_sample->sample.lock);
+ pthread_mutex_lock(current_sample->sample.lock);
}
static void
@@ -192,7 +192,7 @@ sample_editor_unlock_sample (void)
if(gui_playing_mode) {
mixer->updatesample(&current_sample->sample);
}
- g_mutex_unlock(current_sample->sample.lock);
+ pthread_mutex_unlock(current_sample->sample.lock);
}
void
@@ -462,7 +462,7 @@ sample_editor_page_create (GtkNotebook *
#if !defined(NO_AUDIOFILE) && HAVE_DLFCN_H
{ // hack, hack
void *handle, *function;
- handle = dlopen(NULL, RTLD_NOW);
+ handle = dlopen(NULL, DL_LAZY);
function = dlsym(handle, "afSetVirtualPCMMapping");
if(function == NULL) {
libaf2 = FALSE;

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-app_st-subs_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/st-subs.c.orig Mon Feb 4 04:18:39 2002
+++ app/st-subs.c Mon Feb 4 04:38:47 2002
@@ -359,7 +359,7 @@ void
st_clean_sample (STSample *s,
const char *name)
{
- GMutex *lock = s->sample.lock;
+ pthread_mutex_t *lock = s->sample.lock;
free(s->sample.data);
memset(s, 0, sizeof(STSample));
if(name)
@@ -367,8 +367,10 @@ st_clean_sample (STSample *s,
s->sample.loopend = 1;
if(lock)
s->sample.lock = lock;
- else
- s->sample.lock = g_mutex_new();
+ else {
+ s->sample.lock = malloc(sizeof(pthread_mutex_t));
+ pthread_mutex_init(s->sample.lock, NULL);
+ }
}
void

View File

@ -0,0 +1,75 @@
$OpenBSD: patch-app_time-buffer_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/time-buffer.c.orig Mon Feb 4 04:06:19 2002
+++ app/time-buffer.c Mon Feb 4 04:39:34 2002
@@ -21,13 +21,14 @@
#include "time-buffer.h"
+#include <pthread.h>
#include <glib.h>
/* This implementation of the time buffer interface might be rather
suboptimal... */
struct time_buffer {
- GMutex *mutex;
+ pthread_mutex_t mutex;
GList *list;
};
@@ -42,7 +43,9 @@ time_buffer_new (double maxtimedelta)
time_buffer *t = g_new(time_buffer, 1);
if(t) {
- t->mutex = g_mutex_new();
+ if (pthread_mutex_init(&t->mutex, NULL) != 0) {
+ return NULL;
+ }
t->list = NULL;
}
@@ -54,7 +57,7 @@ time_buffer_destroy (time_buffer *t)
{
if(t) {
g_list_free(t->list);
- g_mutex_free(t->mutex);
+ pthread_mutex_destroy(&t->mutex);
g_free(t);
}
}
@@ -75,10 +78,10 @@ time_buffer_add (time_buffer *t,
{
time_buffer_item *a = item;
- g_mutex_lock(t->mutex);
+ pthread_mutex_lock(&t->mutex);
a->time = time;
t->list = g_list_append(t->list, a);
- g_mutex_unlock(t->mutex);
+ pthread_mutex_unlock(&t->mutex);
return TRUE;
}
@@ -91,11 +94,11 @@ time_buffer_get (time_buffer *t,
void *result = NULL;
GList *list;
- g_mutex_lock(t->mutex);
+ pthread_mutex_lock(&t->mutex);
l = g_list_length(t->list);
if(l == 0) {
- g_mutex_unlock(t->mutex);
+ pthread_mutex_unlock(&t->mutex);
return NULL;
}
@@ -114,7 +117,7 @@ time_buffer_get (time_buffer *t,
result = t->list->data;
- g_mutex_unlock(t->mutex);
+ pthread_mutex_unlock(&t->mutex);
return result;
}

View File

@ -0,0 +1,24 @@
$OpenBSD: patch-app_xm_c,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- app/xm.c.orig Mon Feb 4 04:08:11 2002
+++ app/xm.c Mon Feb 4 04:39:22 2002
@@ -760,7 +760,8 @@ xm_init_locks (XM *xm)
for(i = 0; i < sizeof(xm->instruments) / sizeof(xm->instruments[0]); i++) {
STInstrument *ins = &xm->instruments[i];
for(j = 0; j < sizeof(ins->samples) / sizeof(ins->samples[0]); j++) {
- ins->samples[j].sample.lock = g_mutex_new();
+ ins->samples[j].sample.lock = malloc(sizeof(pthread_mutex_t));
+ pthread_mutex_init(ins->samples[j].sample.lock, NULL);
}
}
}
@@ -1089,7 +1090,9 @@ XM_Free (XM *xm)
STInstrument *ins = &xm->instruments[i];
st_clean_instrument(ins, NULL);
for(j = 0; j < sizeof(ins->samples) / sizeof(ins->samples[0]); j++) {
- g_mutex_free(ins->samples[j].sample.lock);
+ pthread_mutex_destroy(ins->samples[j].sample.lock);
+ free(ins->samples[j].sample.lock);
+ ins->samples[j].sample.lock = NULL;
}
}

View File

@ -0,0 +1,133 @@
$OpenBSD: patch-config_h_in,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- config.h.in.orig Mon Feb 4 12:36:39 2002
+++ config.h.in Mon Feb 4 12:37:24 2002
@@ -25,9 +25,6 @@
/* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t
-/* Define if you need to in order for stat and other things to work. */
-#undef _POSIX_SOURCE
-
/* Define to `unsigned' if <sys/types.h> doesn't define. */
#undef size_t
@@ -52,17 +49,12 @@
#undef DRIVER_ALSA_050
#undef DRIVER_ESD
#undef DRIVER_SGI
+#undef DRIVER_SUN
#undef USE_GNOME
#undef NO_AUDIOFILE
#undef NO_GASP
#undef NO_ASM
-#undef ENABLE_NLS
-#undef HAVE_CATGETS
-#undef HAVE_GETTEXT
-#undef HAVE_LC_MESSAGES
-#undef HAVE_STPCPY
-
/* Define if you have the __argz_count function. */
#undef HAVE___ARGZ_COUNT
@@ -78,12 +70,33 @@
/* Define if you have the esd_play_stream function. */
#undef HAVE_ESD_PLAY_STREAM
+/* Define if you have the feof_unlocked function. */
+#undef HAVE_FEOF_UNLOCKED
+
+/* Define if you have the fgets_unlocked function. */
+#undef HAVE_FGETS_UNLOCKED
+
/* Define if you have the getcwd function. */
#undef HAVE_GETCWD
+/* Define if you have the getegid function. */
+#undef HAVE_GETEGID
+
+/* Define if you have the geteuid function. */
+#undef HAVE_GETEUID
+
+/* Define if you have the getgid function. */
+#undef HAVE_GETGID
+
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
+/* Define if you have the getuid function. */
+#undef HAVE_GETUID
+
+/* Define if you have the mempcpy function. */
+#undef HAVE_MEMPCPY
+
/* Define if you have the munmap function. */
#undef HAVE_MUNMAP
@@ -117,6 +130,12 @@
/* Define if you have the strdup function. */
#undef HAVE_STRDUP
+/* Define if you have the strtoul function. */
+#undef HAVE_STRTOUL
+
+/* Define if you have the tsearch function. */
+#undef HAVE_TSEARCH
+
/* Define if you have the <argz.h> header file. */
#undef HAVE_ARGZ_H
@@ -138,9 +157,21 @@
/* Define if you have the <nl_types.h> header file. */
#undef HAVE_NL_TYPES_H
+/* Define if you have the <soundcard.h> header file. */
+#undef HAVE_SOUNDCARD_H
+
+/* Define if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define if you have the <sys/audioio.h> header file. */
+#undef HAVE_SYS_AUDIOIO_H
+
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
@@ -153,12 +184,28 @@
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* Define if you have the i library (-li). */
-#undef HAVE_LIBI
-
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#undef HAVE_LC_MESSAGES
+
+/* Define to 1 if translation of program messages to the user's native language
+ is requested. */
+#undef ENABLE_NLS
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,71 @@
--- configure.in.orig Wed Jul 25 11:07:33 2001
+++ configure.in Tue Feb 5 05:54:53 2002
@@ -61,10 +61,17 @@
dnl Test for GTK+ / GNOME
dnl -----------------------------------------------------------------------
+gtk_threads="gthreads"
+case `uname` in
+ OpenBSD*)
+ gtk_threads=""
+ LIBS="$LIBS -pthread -lintl"
+ ;;
+esac
AM_PATH_GTK(1.2.2,
,
AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?),
- "gthread")
+ $gtk_threads)
gnome=yes
AC_ARG_ENABLE(gnome,
@@ -76,7 +83,7 @@
AC_MSG_CHECKING(for Gnome compile flags)
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/'`
+ GNOME_MAJOR=`echo $GNOME_VER |$sedpath 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
if test "_$GNOME_MAJOR" = "_0"; then
gnome=no
AC_MSG_RESULT([old Gnome found, building without it.])
@@ -133,9 +140,15 @@
oss_support=no)
if test x$oss_support != xno; then
- AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
+ AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h)
if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \
- test "${ac_cv_header_machine_soundcard_h}" = "yes"; then
+ test "${ac_cv_header_machine_soundcard_h}" = "yes" || \
+ test "${ac_cv_header_soundcard_h}" = "yes"; then
+ case `uname` in
+ OpenBSD*)
+ LIBS="$LIBS -lossaudio"
+ ;;
+ esac
AC_DEFINE(DRIVER_OSS)
fi
fi
@@ -204,6 +217,22 @@
fi
;;
esac
+
+dnl -----------------------------------------------------------------------
+dnl Test for Sun audio
+dnl -----------------------------------------------------------------------
+
+AC_ARG_ENABLE(sun,
+[ --disable-sun Disable Sun driver (default = try)],
+sun_support=no)
+
+if test x$sun_support != xno; then
+ AC_CHECK_HEADERS(sys/audioio.h)
+ if test "${ac_cv_header_sys_audioio_h}" = "yes"; then
+ AC_DEFINE(DRIVER_SUN)
+ fi
+fi
+
dnl -----------------------------------------------------------------------
dnl Other tests

View File

@ -0,0 +1,51 @@
$OpenBSD: patch-intl_Makefile_in,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
--- intl/Makefile.in.orig Wed Aug 11 09:59:15 1999
+++ intl/Makefile.in Thu Jan 31 08:55:03 2002
@@ -62,11 +62,11 @@ SOURCES = $(COMSRCS) intl-compat.c cat-c
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
explodename.c
-OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
-finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
-explodename.$lo
-CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
-GETTOBJS = intl-compat.$lo
+OBJECTS = @INTLOBJS@ bindtextdom.o dcgettext.o dgettext.o gettext.o \
+finddomain.o loadmsgcat.o localealias.o textdomain.o l10nflist.o \
+explodename.o
+CATOBJS = cat-compat.o ../po/cat-id-tbl.o
+GETTOBJS = intl-compat.o
DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
xopen-msg.sed $(HEADERS) $(SOURCES)
DISTFILES.normal = VERSION
@@ -83,7 +83,7 @@ INCLUDES = -I.. -I. -I$(top_srcdir)/intl
all: all-@USE_INCLUDED_LIBINTL@
-all-yes: libintl.$la intlh.inst
+all-yes: libintl.a
all-no:
libintl.a: $(OBJECTS)
@@ -95,8 +95,8 @@ libintl.la: $(OBJECTS)
$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
-version-info 1:0 -rpath $(libdir)
-../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
- cd ../po && $(MAKE) cat-id-tbl.$lo
+../po/cat-id-tbl.o: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
+ cd ../po && $(MAKE) cat-id-tbl.o
check: all
@@ -151,8 +151,8 @@ uninstall:
info dvi:
$(OBJECTS): ../config.h libgettext.h
-bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
-dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
+bindtextdom.o finddomain.o loadmsgcat.o: gettextP.h gettext.h loadinfo.h
+dcgettext.o: gettextP.h gettext.h hash-string.h loadinfo.h
tags: TAGS

View File

@ -0,0 +1,58 @@
$OpenBSD: patch-po_Makefile_in_in,v 1.1.1.1 2002/02/05 18:04:11 espie Exp $
--- po/Makefile.in.in.orig Sat Feb 17 04:46:32 2001
+++ po/Makefile.in.in Sun May 20 16:47:27 2001
@@ -111,9 +111,9 @@ install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -r "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $(datadir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
@@ -123,7 +123,7 @@ install-data-yes: all
*) destdir=$(localedir);; \
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- dir=$$destdir/$$lang/LC_MESSAGES; \
+ dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $$dir; \
else \
@@ -153,12 +153,12 @@ install-data-yes: all
done
if test "$(PACKAGE)" = "gettext"; then \
if test -r "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
fi; \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
- $(gettextsrcdir)/Makefile.in.in; \
+ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
@@ -171,12 +171,12 @@ uninstall:
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
done
- rm -f $(gettextsrcdir)/po-Makefile.in.in
+ rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
check: all

View File

@ -0,0 +1,13 @@
SoundTracker is a music tracking tool for X11 similar in design to the
DOS program `FastTracker' and the Amiga legend `ProTracker'.
Packages can be built with additional FLAVORs:
gnome: SoundTracker built with gnome libraries. This is required
by the graphical volume/panning envelope editors.
sun: SoundTracker built with our native audio driver.
esd: SoundTracker built with the esound package.
WWW: ${HOMEPAGE}

View File

@ -0,0 +1,2 @@
@comment $OpenBSD: PFRAG.gnome,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
share/gnome/apps/Multimedia/soundtracker.desktop

View File

@ -0,0 +1,19 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2002/02/05 18:04:10 espie Exp $
bin/soundtracker
share/doc/soundtracker/FAQ
share/doc/soundtracker/NEWS
share/doc/soundtracker/README
share/doc/soundtracker/hacking.txt
share/doc/soundtracker/xi.txt
share/doc/soundtracker/xm.txt
share/locale/de/LC_MESSAGES/soundtracker.mo
share/locale/es/LC_MESSAGES/soundtracker.mo
share/locale/fr/LC_MESSAGES/soundtracker.mo
share/locale/gl/LC_MESSAGES/soundtracker.mo
share/locale/it/LC_MESSAGES/soundtracker.mo
share/locale/pl/LC_MESSAGES/soundtracker.mo
share/locale/ja/LC_MESSAGES/soundtracker.mo
share/locale/ru/LC_MESSAGES/soundtracker.mo
share/locale/sl/LC_MESSAGES/soundtracker.mo
%%gnome%%
@dirrm share/doc/soundtracker