Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libossaudio ossaudio: Add comments for the more obscure ...



details:   https://anonhg.NetBSD.org/src/rev/7f07c838b125
branches:  trunk
changeset: 1015165:7f07c838b125
user:      nia <nia%NetBSD.org@localhost>
date:      Fri Oct 16 12:36:01 2020 +0000

description:
ossaudio: Add comments for the more obscure parts of SNDCTL_AUDIOINFO

diffstat:

 lib/libossaudio/ossaudio.c |  27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diffs (71 lines):

diff -r 416490a485b0 -r 7f07c838b125 lib/libossaudio/ossaudio.c
--- a/lib/libossaudio/ossaudio.c        Fri Oct 16 12:23:34 2020 +0000
+++ b/lib/libossaudio/ossaudio.c        Fri Oct 16 12:36:01 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ossaudio.c,v 1.45 2020/10/16 12:23:34 nia Exp $        */
+/*     $NetBSD: ossaudio.c,v 1.46 2020/10/16 12:36:01 nia Exp $        */
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: ossaudio.c,v 1.45 2020/10/16 12:23:34 nia Exp $");
+__RCSID("$NetBSD: ossaudio.c,v 1.46 2020/10/16 12:36:01 nia Exp $");
 
 /*
  * This is an OSS (Linux) sound API emulator.
@@ -574,6 +574,15 @@
                tmpaudioinfo = (struct oss_audioinfo*)argp;
                if (tmpaudioinfo == NULL)
                        return EINVAL;
+
+               /*
+                * Takes the audio dev node as input, since this ioctl is
+                * supposed to work on the OSS /dev/mixer to query all
+                * all available audio devices.
+                *
+                * If the input device is -1, guess the device related to
+                * the open mixer device.
+                */
                if (tmpaudioinfo->dev < 0) {
                        fstat(fd, &tmpstat);
                        if ((tmpstat.st_rdev & 0xff00) == 0x2a00)
@@ -619,7 +628,7 @@
                tmpaudioinfo->caps = idat;
                ioctl(newfd, SNDCTL_DSP_GETFMTS, &tmpaudioinfo->iformats);
                tmpaudioinfo->oformats = tmpaudioinfo->iformats;
-               tmpaudioinfo->magic = -1;
+               tmpaudioinfo->magic = -1; /* reserved for "internal use" */
                memset(tmpaudioinfo->cmd, 0, sizeof(tmpaudioinfo->cmd));
                tmpaudioinfo->card_number = -1;
                memset(tmpaudioinfo->song_name, 0,
@@ -627,10 +636,10 @@
                memset(tmpaudioinfo->label, 0, sizeof(tmpaudioinfo->label));
                tmpaudioinfo->port_number = 0;
                tmpaudioinfo->mixer_dev = tmpaudioinfo->dev;
-               tmpaudioinfo->legacy_device = -1;
+               tmpaudioinfo->legacy_device = tmpaudioinfo->dev;
                tmpaudioinfo->enabled = 1;
-               tmpaudioinfo->flags = -1;
-               tmpaudioinfo->min_rate = 8000;
+               tmpaudioinfo->flags = -1; /* reserved for "future versions" */
+               tmpaudioinfo->min_rate = 1000;
                tmpaudioinfo->max_rate = 192000;
                tmpaudioinfo->nrates = 0;
                tmpaudioinfo->min_channels = 1;
@@ -639,8 +648,12 @@
                        if (fmtq.fmt.channels > (unsigned)tmpaudioinfo->max_channels)
                                tmpaudioinfo->max_channels = fmtq.fmt.channels;
                }
-               tmpaudioinfo->binding = -1;
+               tmpaudioinfo->binding = -1; /* reserved for "future versions" */
                tmpaudioinfo->rate_source = -1;
+               /*
+                * 'handle' is supposed to be globally unique. The closest
+                * we have to that is probably device nodes.
+                */
                strlcpy(tmpaudioinfo->handle, tmpaudioinfo->devnode,
                    sizeof(tmpaudioinfo->handle));
                tmpaudioinfo->next_play_engine = 0;



Home | Main Index | Thread Index | Old Index