pkgsrc/audio/xmmix/patches/patch-aa
1998-08-07 10:35:47 +00:00

176 lines
3.8 KiB
Text

$NetBSD: patch-aa,v 1.4 1998/08/07 10:36:22 agc Exp $
--- ../xmmix-1.2/Imakefile Sun Jul 14 19:48:56 1996
+++ ./Imakefile Fri Oct 24 23:34:17 1997
@@ -43,7 +43,7 @@
* #include "Motif.tmpl"
* #include "Motif.rules"
*/
-LOCAL_LIBRARIES= XmClientLibs
+LOCAL_LIBRARIES= -lXm -lXt -lX11 -lossaudio
/*
--- ../xmmix-1.2/appenv.h Sun Jul 14 19:48:59 1996
+++ ./appenv.h Fri Oct 24 23:33:47 1997
@@ -59,7 +59,13 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
+#ifdef __NetBSD__
+#include <soundcard.h>
+/* Ensure we SIGIO */
+#undef _POSIX_SOURCE
+#else
#include <sys/soundcard.h>
+#endif
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
--- ../xmmix-1.2/main.c Thu Nov 7 17:01:43 1996
+++ ./main.c Mon Aug 11 23:12:51 1997
@@ -159,7 +159,7 @@
post_realize_config(&widgets);
/* Register callback routines */
- register_callbacks(&widgets);
+ register_callbacks(&widgets, app);
/* Initialize screen controls */
mx_start(&widgets);
--- ../xmmix-1.2/mixer.c Thu Nov 7 17:00:26 1996
+++ ./mixer.c Mon Aug 11 23:20:15 1997
@@ -104,6 +104,14 @@
***********************/
+#ifdef __NetBSD__
+void
+mxchg(int sig)
+{
+ deliverSIGIO();
+}
+#endif
+
/*
* do_ioctl
* Perform ioctl command. If file is not yet open or if we
@@ -681,11 +689,13 @@
/* Query sound driver version */
if ((fp = fopen("/dev/sndstat", "r")) == NULL) {
if (!app_data.demo) {
+#ifndef __NetBSD__
fprintf(errfp, "%s: %s: %s\n",
PROGNAME,
"Cannot open /dev/sndstat",
"assuming pre-3.0 sound driver.");
maxdevs = MAXDEVS_V2;
+#endif
}
return;
}
@@ -915,6 +925,7 @@
mx_start(widgets_t *m)
{
char msg[256];
+ int one = 1;
if (app_data.autoload != NULL && app_data.autoload[0] != '\0' &&
strcmp(app_data.autoload, "/dev/null") != 0) {
@@ -930,6 +941,14 @@
}
}
+#if defined(__NetBSD__)
+ signal(SIGIO, mxchg);
+ ioctl(dev_fd, FIOASYNC, &one);
+#endif
+
+ /* Query hardware mixer settings */
+ mx_queryhw(&widgets);
+
/* Update screen controls to match current status */
mx_updctl(m);
}
@@ -1531,6 +1550,22 @@
if (p->reason != XmCR_FOCUS || form == (Widget) NULL)
return;
+ /* Query hardware mixer settings */
+ mx_queryhw(&widgets);
+
+ /* Update screen controls */
+ mx_updctl(&widgets);
+}
+
+
+/*
+ * mx_change
+ * Mixer device has changed
+ */
+/*ARGSUSED*/
+void
+mx_change(XtPointer client_data)
+{
/* Query hardware mixer settings */
mx_queryhw(&widgets);
--- ../xmmix-1.2/mixer.h Sun Jul 14 19:49:04 1996
+++ ./mixer.h Mon Aug 11 23:19:17 1997
@@ -78,6 +78,7 @@
extern void mx_fsok_btn(Widget, XtPointer, XtPointer);
extern void mx_fscancel_btn(Widget, XtPointer, XtPointer);
extern void mx_focuschg(Widget, XtPointer, XtPointer);
+extern void mx_change(XtPointer);
#endif /* __MIXER_H__ */
--- ../xmmix-1.2/widget.c Sun Jul 14 19:49:09 1996
+++ ./widget.c Sat Oct 25 00:24:43 1997
@@ -973,6 +973,10 @@
delw = XmInternAtom(display, "WM_DELETE_WINDOW", False);
}
+static XtSignalId sigid;
+void deliverSIGIO() {
+ XtNoticeSignal(sigid);
+}
/*
* register_callbacks
@@ -985,7 +989,7 @@
* Nothing
*/
void
-register_callbacks(widgets_t *m)
+register_callbacks(widgets_t *m, XtAppContext app)
{
int i;
@@ -1126,6 +1130,15 @@
XmNfocusCallback,
(XtCallbackProc) mx_focuschg, (XtPointer) m->form
);
+
+#ifdef __NetBSD__
+ /*
+ * Mixer SIGIO change callback
+ */
+ sigid = XtAppAddSignal(app,
+ (XtSignalCallbackProc) mx_change, (XtPointer) 0
+ );
+#endif
/*
* Install WM_DELETE_WINDOW handler
--- ../xmmix-1.2/widget.h Sun Jul 14 19:49:10 1996
+++ ./widget.h Mon Aug 11 23:13:43 1997
@@ -119,7 +119,7 @@
extern void widget_init(widgets_t *);
extern void create_widgets(widgets_t *);
extern void post_realize_config(widgets_t *);
-extern void register_callbacks(widgets_t *);
+extern void register_callbacks(widgets_t *, XtAppContext);
#endif /* __WIDGET_H__ */