openbsd-ports/audio/xmmix/patches/patch-mixer_c
naddy bfa330f604 Submitted by Dan Weeks <danimal@danimal.org>:
* md5->distinfo
* rename/update patches
* updated homepage and master_sites
* take over maintainership
2002-01-14 13:47:21 +00:00

88 lines
2.0 KiB
Plaintext

$OpenBSD: patch-mixer_c,v 1.1 2002/01/14 13:47:22 naddy Exp $
--- mixer.c.orig Thu Nov 7 11:00:26 1996
+++ mixer.c Sun Jan 13 20:18:56 2002
@@ -104,6 +104,14 @@ STATIC ctlinfo_t ctlsav; /* Saved state
***********************/
+#if defined(__NetBSD__) || defined(__OpenBSD__)
+void
+mxchg(int sig)
+{
+ deliverSIGIO();
+}
+#endif
+
/*
* do_ioctl
* Perform ioctl command. If file is not yet open or if we
@@ -681,11 +689,13 @@ mx_init_drv(void)
/* Query sound driver version */
if ((fp = fopen("/dev/sndstat", "r")) == NULL) {
if (!app_data.demo) {
+#if !defined(__NetBSD__) && !defined(__OpenBSD__)
fprintf(errfp, "%s: %s: %s\n",
PROGNAME,
"Cannot open /dev/sndstat",
"assuming pre-3.0 sound driver.");
maxdevs = MAXDEVS_V2;
+#endif
}
return;
}
@@ -800,7 +810,7 @@ mx_init_hw(widgets_t *m)
/* Open device */
sprintf(errmsg, "%s: Cannot open device %s",
PROGNAME, app_data.device);
- if ((dev_fd = open(app_data.device, O_RDONLY)) < 0) {
+ if ((dev_fd = open(app_data.device, O_RDWR)) < 0) {
perror(errmsg);
exit_flag = TRUE;
}
@@ -915,6 +925,7 @@ void
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 @@ mx_start(widgets_t *m)
}
}
+#if defined(__NetBSD__) || defined(__OpenBSD__)
+ 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 @@ mx_focuschg(Widget w, XtPointer client_d
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);