summaryrefslogtreecommitdiff
path: root/amixer
diff options
context:
space:
mode:
authorGiuliano Pochini <pochini@shiny.it>2005-02-04 15:35:27 +0000
committerTakashi Iwai <tiwai@suse.de>2005-02-04 15:35:27 +0000
commit943bf551e1ea814560d0936140e2e01ce4c264af (patch)
treec145fbc69a2bad4ad9a1691119b2e6849b3ac6fa /amixer
parent4d710af54352082d27a8a630a1af640c568384f5 (diff)
downloadalsa-utils-943bf551e1ea814560d0936140e2e01ce4c264af.tar.gz
amixer no-range-checking option
This patch adds the --nocheck option that disables range checking. It helps debugging drivers. Signed-off-by: Giuliano Pochini <pochini@shiny.it>
Diffstat (limited to 'amixer')
-rw-r--r--amixer/amixer.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/amixer/amixer.c b/amixer/amixer.c
index 97fe5d5..e4fec88 100644
--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -38,6 +38,7 @@
#define HELPID_INACTIVE 1004
#define HELPID_DEBUG 1005
#define HELPID_VERSION 1006
+#define HELPID_NOCHECK 1007
#define LEVEL_BASIC (1<<0)
#define LEVEL_INACTIVE (1<<1)
@@ -45,6 +46,7 @@
int quiet = 0;
int debugflag = 0;
+int no_check = 0;
char card[64] = "default";
static void error(const char *fmt,...)
@@ -66,6 +68,7 @@ static int help(void)
printf(" -c,--card N select the card\n");
printf(" -D,--device N select the device, default '%s'\n", card);
printf(" -d,--debug debug mode\n");
+ printf(" -n,--nocheck do not perform range checking\n");
printf(" -v,--version print version of this program\n");
printf(" -q,--quiet be quiet\n");
printf(" -i,--inactive show also inactive controls\n");
@@ -161,6 +164,8 @@ static const char *control_access(snd_ctl_elem_info_t *info)
static int check_range(int val, int min, int max)
{
+ if (no_check)
+ return val;
if (val < min)
return min;
if (val > max)
@@ -1456,6 +1461,7 @@ int main(int argc, char *argv[])
{"quiet", 0, NULL, HELPID_QUIET},
{"inactive", 0, NULL, HELPID_INACTIVE},
{"debug", 0, NULL, HELPID_DEBUG},
+ {"nocheck", 0, NULL, HELPID_NOCHECK},
{"version", 0, NULL, HELPID_VERSION},
{NULL, 0, NULL, 0},
};
@@ -1464,7 +1470,7 @@ int main(int argc, char *argv[])
while (1) {
int c;
- if ((c = getopt_long(argc, argv, "hc:D:qidv", long_option, NULL)) < 0)
+ if ((c = getopt_long(argc, argv, "hc:D:qidnv", long_option, NULL)) < 0)
break;
switch (c) {
case 'h':
@@ -1501,6 +1507,10 @@ int main(int argc, char *argv[])
case HELPID_DEBUG:
debugflag = 1;
break;
+ case 'n':
+ case HELPID_NOCHECK:
+ no_check = 1;
+ break;
case 'v':
case HELPID_VERSION:
printf("amixer version " SND_UTIL_VERSION_STR "\n");