Module Name: src Committed By: isaki Date: Sat Aug 24 05:45:25 UTC 2019
Modified Files: src/usr.bin/audiocfg: audiodev.c audiodev.h main.c Log Message: Use device unit number for index. The index number was too confusing such as 0: [ ] audio1 @ wss0 1: [*] audio0 @ yds0 in my PC for example. Here is new format: [*] audio0 @ yds0 [ ] audio1 @ wss0 In this style, devices are always listed in order of unit number and 0 always means audio0, 1 always means audio1. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/usr.bin/audiocfg/audiodev.c cvs rdiff -u -r1.7 -r1.8 src/usr.bin/audiocfg/audiodev.h cvs rdiff -u -r1.11 -r1.12 src/usr.bin/audiocfg/main.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/audiocfg/audiodev.c diff -u src/usr.bin/audiocfg/audiodev.c:1.9 src/usr.bin/audiocfg/audiodev.c:1.10 --- src/usr.bin/audiocfg/audiodev.c:1.9 Sat Aug 24 04:04:10 2019 +++ src/usr.bin/audiocfg/audiodev.c Sat Aug 24 05:45:24 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: audiodev.c,v 1.9 2019/08/24 04:04:10 isaki Exp $ */ +/* $NetBSD: audiodev.c,v 1.10 2019/08/24 05:45:24 isaki Exp $ */ /* * Copyright (c) 2010 Jared D. McNeill <jmcne...@invisible.ca> @@ -48,6 +48,7 @@ static int audiodev_test_chmask(struct a static TAILQ_HEAD(audiodevhead, audiodev) audiodevlist = TAILQ_HEAD_INITIALIZER(audiodevlist); +static unsigned int maxunit; #define AUDIODEV_SAMPLE_RATE 44100 @@ -138,6 +139,9 @@ audiodev_add(const char *pdev, const cha TAILQ_INSERT_TAIL(&audiodevlist, adev, next); + if (unit > maxunit) + maxunit = unit; + return 0; } @@ -179,29 +183,22 @@ audiodev_refresh(void) } unsigned int -audiodev_count(void) +audiodev_maxunit(void) { - struct audiodev *adev; - unsigned int n; - - n = 0; - TAILQ_FOREACH(adev, &audiodevlist, next) - ++n; - - return n; + return maxunit; } +/* + * Get audiodev corresponding to audio<i> device. + */ struct audiodev * audiodev_get(unsigned int i) { struct audiodev *adev; - unsigned int n; - n = 0; TAILQ_FOREACH(adev, &audiodevlist, next) { - if (n == i) + if (i == adev->unit) return adev; - ++n; } return NULL; Index: src/usr.bin/audiocfg/audiodev.h diff -u src/usr.bin/audiocfg/audiodev.h:1.7 src/usr.bin/audiocfg/audiodev.h:1.8 --- src/usr.bin/audiocfg/audiodev.h:1.7 Sat Aug 24 04:04:10 2019 +++ src/usr.bin/audiocfg/audiodev.h Sat Aug 24 05:45:25 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: audiodev.h,v 1.7 2019/08/24 04:04:10 isaki Exp $ */ +/* $NetBSD: audiodev.h,v 1.8 2019/08/24 05:45:25 isaki Exp $ */ /* * Copyright (c) 2010 Jared D. McNeill <jmcne...@invisible.ca> @@ -60,7 +60,7 @@ struct audiodev { }; int audiodev_refresh(void); -unsigned int audiodev_count(void); +unsigned int audiodev_maxunit(void); struct audiodev * audiodev_get(unsigned int); int audiodev_set_default(struct audiodev *); int audiodev_set_param(struct audiodev *, int, Index: src/usr.bin/audiocfg/main.c diff -u src/usr.bin/audiocfg/main.c:1.11 src/usr.bin/audiocfg/main.c:1.12 --- src/usr.bin/audiocfg/main.c:1.11 Sat Aug 24 04:04:10 2019 +++ src/usr.bin/audiocfg/main.c Sat Aug 24 05:45:25 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.11 2019/08/24 04:04:10 isaki Exp $ */ +/* $NetBSD: main.c,v 1.12 2019/08/24 05:45:25 isaki Exp $ */ /* * Copyright (c) 2010 Jared D. McNeill <jmcne...@invisible.ca> @@ -72,15 +72,15 @@ const char *encoding_names[] = { u_int encoding_max = __arraycount(encoding_names); static void -print_audiodev(struct audiodev *adev, int i) +print_audiodev(struct audiodev *adev) { struct audiofmt *f; int j; assert(adev != NULL); - printf("%u: [%c] %s @ %s: ", - i, adev->defaultdev ? '*' : ' ', + printf("[%c] %s @ %s: ", + adev->defaultdev ? '*' : ' ', adev->xname, adev->pxname); printf("%s", adev->audio_device.name); if (strlen(adev->audio_device.version) > 0) @@ -159,9 +159,12 @@ main(int argc, char *argv[]) /* NOTREACHED */ if (strcmp(argv[1], "list") == 0 && argc == 2) { - n = audiodev_count(); - for (i = 0; i < n; i++) - print_audiodev(audiodev_get(i), i); + n = audiodev_maxunit(); + for (i = 0; i <= n; i++) { + adev = audiodev_get(i); + if (adev) + print_audiodev(adev); + } } else if (strcmp(argv[1], "list") == 0 && argc == 3) { errno = 0; i = strtoul(argv[2], NULL, 10); @@ -173,7 +176,7 @@ main(int argc, char *argv[]) fprintf(stderr, "no such device\n"); return EXIT_FAILURE; } - print_audiodev(adev, i); + print_audiodev(adev); } else if (strcmp(argv[1], "default") == 0 && argc == 3) { if (*argv[2] < '0' || *argv[2] > '9') usage(argv[0]); @@ -252,7 +255,7 @@ main(int argc, char *argv[]) fprintf(stderr, "no such device\n"); return EXIT_FAILURE; } - print_audiodev(adev, i); + print_audiodev(adev); if (audiodev_test(adev) == -1) return EXIT_FAILURE; } else