head 1.3; access; symbols pkgsrc-2026Q3:1.2.0.190 pkgsrc-2026Q3-base:1.2 pkgsrc-2026Q2:1.2.0.188 pkgsrc-2026Q2-base:1.2 pkgsrc-2026Q1:1.2.0.186 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.184 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.182 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.180 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.178 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.176 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.174 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.172 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.170 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.168 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.166 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.164 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.162 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.160 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.158 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.156 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.2.0.154 pkgsrc-2022Q1-base:1.2 pkgsrc-2021Q4:1.2.0.152 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.150 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.148 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.146 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.144 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.142 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.138 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.118 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.140 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.136 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.134 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.132 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.130 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.128 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.126 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.124 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.122 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.120 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.116 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.114 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.112 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.110 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.108 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.106 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.104 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.102 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.100 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.98 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.96 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.2.0.94 pkgsrc-2014Q3-base:1.2 pkgsrc-2014Q2:1.2.0.92 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.90 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.88 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.2.0.86 pkgsrc-2013Q3-base:1.2 pkgsrc-2013Q2:1.2.0.84 pkgsrc-2013Q2-base:1.2 pkgsrc-2013Q1:1.2.0.82 pkgsrc-2013Q1-base:1.2 pkgsrc-2012Q4:1.2.0.80 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.78 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.76 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.74 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.72 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.70 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.68 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.66 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.64 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.62 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.60 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.58 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.56 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.54 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.2.0.52 pkgsrc-2009Q2-base:1.2 pkgsrc-2009Q1:1.2.0.50 pkgsrc-2009Q1-base:1.2 pkgsrc-2008Q4:1.2.0.48 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.46 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.44 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.42 pkgsrc-2008Q2-base:1.2 cwrapper:1.2.0.40 pkgsrc-2008Q1:1.2.0.38 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.36 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.34 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.32 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.30 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.28 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.26 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.24 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.22 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.20 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.18 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.16 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.14 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.12 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.10 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.8 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.2.0.6 pkgsrc-2004Q1-base:1.2 pkgsrc-2003Q4:1.2.0.4 pkgsrc-2003Q4-base:1.2 netbsd-1-6-1:1.2.0.2 netbsd-1-6-1-base:1.2 netbsd-1-6:1.1.0.8 netbsd-1-6-RELEASE-base:1.1 pkgviews:1.1.0.4 pkgviews-base:1.1 buildlink2:1.1.0.2 buildlink2-base:1.1 netbsd-1-5-PATCH003:1.1 netbsd-1-5-PATCH001:1.1 netbsd-1-5-RELEASE:1.1 netbsd-1-4-PATCH003:1.1; locks; strict; comment @# @; 1.3 date 2026.10.09.18.17.24; author chuck; state Exp; branches; next 1.2; commitid nZKaGxjq63HZvPYG; 1.2 date 2002.10.08.12.30.57; author jlam; state Exp; branches; next 1.1; 1.1 date 2000.09.19.11.09.21; author fredb; state Exp; branches; next ; desc @@ 1.3 log @xmmix: fix ioctl cmd type error in do_ioctl() wrapper xmmix's do_ioctl() ioctl wrapper function typed the second arg of ioctl ("unsigned long request") as "int cmd" instead. this type conversion mangled the request value being passed to the ioctl syscall and resulted in an "Invalid argument" error for a FIOASYNC request on /dev/mixer. resolve by changing do_ioctl() from "int cmd" to "unsigned int cmd" to match ioctl() man page. @ text @$NetBSD: patch-ab,v 1.2 2002/10/08 12:30:57 jlam Exp $ --- mixer.c.orig 1996-11-07 16:00:26.000000000 +0000 +++ mixer.c @@@@ -104,6 +104,14 @@@@ STATIC ctlinfo_t ctlsav; /* Saved state ***********************/ +#ifdef __NetBSD__ +void +mxchg(int sig) +{ + deliverSIGIO(); +} +#endif + /* * do_ioctl * Perform ioctl command. If file is not yet open or if we @@@@ -124,7 +132,7 @@@@ STATIC ctlinfo_t ctlsav; /* Saved state * Nothing */ STATIC void -do_ioctl(int cmd, int *arg, char *name, int dir) +do_ioctl(unsigned long cmd, int *arg, char *name, int dir) { int ret; char errmsg[STR_BUF_SZ]; @@@@ -201,12 +209,18 @@@@ mx_queryhw(widgets_t *m) ctlinfo.slinfo[i].right = ((level >> 8) & 0xff); /* Sanity check */ - if (ctlinfo.slinfo[i].left > 100) - ctlinfo.slinfo[i].left = 100; +#if defined(__NetBSD__) && \ + !defined(OPEN_SOUND_SYSTEM) && !defined(UNIX_SOUND_SYSTEM) +# define SLIDER_MAX 255 +#else +# define SLIDER_MAX 100 +#endif + if (ctlinfo.slinfo[i].left > SLIDER_MAX) + ctlinfo.slinfo[i].left = SLIDER_MAX; else if (ctlinfo.slinfo[i].left < 0) ctlinfo.slinfo[i].left = 0; - if (ctlinfo.slinfo[i].right > 100) - ctlinfo.slinfo[i].right = 100; + if (ctlinfo.slinfo[i].right > SLIDER_MAX) + ctlinfo.slinfo[i].right = SLIDER_MAX; else if (ctlinfo.slinfo[i].right < 0) ctlinfo.slinfo[i].right = 0; @@@@ -674,18 +688,25 @@@@ mx_init_drv(void) } /* Set maximum number of devices supported */ +#if defined(__NetBSD__) && \ + !defined(OPEN_SOUND_SYSTEM) && !defined(UNIX_SOUND_SYSTEM) + maxdevs = SOUND_MIXER_NRDEVICES; +#else maxdevs = MAXDEVS_V3; +#endif strcpy(drv_ver, "unknown"); /* Query sound driver version */ if ((fp = fopen("/dev/sndstat", "r")) == NULL) { if (!app_data.demo) { +#if defined(OPEN_SOUND_SYSTEM) || defined(UNIX_SOUND_SYSTEM) fprintf(errfp, "%s: %s: %s\n", PROGNAME, "Cannot open /dev/sndstat", "assuming pre-3.0 sound driver."); maxdevs = MAXDEVS_V2; +#endif } return; } @@@@ -915,6 +936,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 +952,16 @@@@ mx_start(widgets_t *m) } } +#if defined(__NetBSD__) + signal(SIGIO, mxchg); +#if !defined(OPEN_SOUND_SYSTEM) && !defined(UNIX_SOUND_SYSTEM) + do_ioctl(FIOASYNC, &one, "FIOASYNC", IOC_DATA_NONE); +#endif +#endif + + /* Query hardware mixer settings */ + mx_queryhw(&widgets); + /* Update screen controls to match current status */ mx_updctl(m); } @@@@ -1539,5 +1571,21 @@@@ mx_focuschg(Widget w, XtPointer client_d } +/* + * mx_change + * Mixer device has changed + */ +/*ARGSUSED*/ +void +mx_change(XtPointer client_data) +{ + /* Query hardware mixer settings */ + mx_queryhw(&widgets); + + /* Update screen controls */ + mx_updctl(&widgets); +} + + /**************** ^^ Callback routines ^^ ****************/ @ 1.2 log @Use buildlink2 and make this work with audio/oss installed. @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- mixer.c.orig Thu Nov 7 08:00:26 1996 d20 9 d103 3 a105 3 @@@@ -1531,6 +1563,22 @@@@ mx_focuschg(Widget w, XtPointer client_d if (p->reason != XmCR_FOCUS || form == (Widget) NULL) return; d107 8 d123 1 a123 10 +/* + * mx_change + * Mixer device has changed + */ +/*ARGSUSED*/ +void +mx_change(XtPointer client_data) +{ /* Query hardware mixer settings */ mx_queryhw(&widgets); @ 1.1 log @Sliders go from 0 to 255 on NetBSD, not 0 to 100. Correct spelling -- non-existent widget type was making the "-debug" output unreadable. @ text @d3 3 a5 3 --- mixer.c.orig Thu Nov 7 10:00:26 1996 +++ mixer.c Wed Sep 13 22:46:35 2000 @@@@ -104,6 +104,14 @@@@ d20 1 a20 1 @@@@ -201,12 +209,17 @@@@ d26 2 a27 1 +#ifdef __NetBSD__ d43 1 a43 1 @@@@ -674,18 +687,24 @@@@ d47 2 a48 1 +#ifdef __NetBSD__ d59 1 a59 1 +#ifndef __NetBSD__ d69 1 a69 1 @@@@ -915,6 +934,7 @@@@ d77 1 a77 1 @@@@ -930,6 +950,14 @@@@ d83 3 a85 1 + ioctl(dev_fd, FIOASYNC, &one); d94 1 a94 1 @@@@ -1531,6 +1559,22 @@@@ @