Update of /cvsroot/alsa/alsa-utils/alsactl
In directory sc8-pr-cvs1:/tmp/cvs-serv20257

Modified Files:
        alsactl.c 
Log Message:
type cleanups

Index: alsactl.c
===================================================================
RCS file: /cvsroot/alsa/alsa-utils/alsactl/alsactl.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- alsactl.c   19 Sep 2002 10:26:22 -0000      1.48
+++ alsactl.c   4 Dec 2002 14:41:32 -0000       1.49
@@ -343,7 +343,8 @@
                char buf[size * 2 + 1];
                char *p = buf;
                char *hex = "0123456789abcdef";
-               const unsigned char *bytes = snd_ctl_elem_value_get_bytes(ctl);
+               const unsigned char *bytes = 
+                 (const unsigned char *)snd_ctl_elem_value_get_bytes(ctl);
                for (idx = 0; idx < size; idx++) {
                        int v = bytes[idx];
                        *p++ = hex[v >> 4];
@@ -481,7 +482,7 @@
        snd_ctl_elem_list_alloca(&list);
 
        sprintf(name, "hw:%d", cardno);
-       err = snd_ctl_open(&handle, name, 0);
+       err = snd_ctl_open(&handle, name, SND_CTL_READONLY);
        if (err < 0) {
                error("snd_ctl_open error: %s", snd_strerror(err));
                return err;
@@ -569,12 +570,11 @@
        return err;
 }
 
-
-static int config_iface(snd_config_t *n)
+static long config_iface(snd_config_t *n)
 {
-       unsigned long i;
-       unsigned long long li;
-       snd_ctl_elem_iface_t idx;
+       long i;
+       long long li;
+       snd_ctl_elem_iface_t idx; 
        const char *str;
        switch (snd_config_get_type(n)) {
        case SND_CONFIG_TYPE_INTEGER:
@@ -582,7 +582,7 @@
                return i;
        case SND_CONFIG_TYPE_INTEGER64:
                snd_config_get_integer64(n, &li);
-               return i;
+               return li;
        case SND_CONFIG_TYPE_STRING:
                snd_config_get_string(n, &str);
                break;
@@ -665,15 +665,19 @@
        snd_ctl_elem_value_t *ctl;
        snd_ctl_elem_info_t *info;
        snd_config_iterator_t i, next;
-       unsigned int numid1, iface1, device1, subdevice1, index1;
+       unsigned int numid1;
+       snd_ctl_elem_iface_t iface = -1;
+       int iface1;
        const char *name1;
        unsigned int numid;
        snd_ctl_elem_type_t type;
        unsigned int count;
-       long iface = -1;
        long device = -1;
+       long device1;
        long subdevice = -1;
+       long subdevice1;
        const char *name = NULL;
+       long index1;
        long index = -1;
        snd_config_t *value = NULL;
        long val;
@@ -702,7 +706,7 @@
                if (strcmp(fld, "comment") == 0)
                        continue;
                if (strcmp(fld, "iface") == 0) {
-                       iface = config_iface(n);
+                       iface = (snd_ctl_elem_iface_t)config_iface(n);
                        if (iface < 0) {
                                error("control.%d.%s is invalid", numid, fld);
                                return -EINVAL;
@@ -790,15 +794,15 @@
                error("warning: numid mismatch (%d/%d) for control #%d", 
                      numid, numid1, numid);
        if (iface != iface1)
-               error("warning: iface mismatch (%ld/%d) for control #%d", iface, 
iface1, numid);
+               error("warning: iface mismatch (%d/%d) for control #%d", iface, 
+iface1, numid);
        if (device != device1)
-               error("warning: device mismatch (%ld/%d) for control #%d", device, 
device1, numid);
+               error("warning: device mismatch (%ld/%ld) for control #%d", device, 
+device1, numid);
        if (subdevice != subdevice1)
-               error("warning: subdevice mismatch (%ld/%d) for control #%d", 
subdevice, subdevice1, numid);
+               error("warning: subdevice mismatch (%ld/%ld) for control #%d", 
+subdevice, subdevice1, numid);
        if (strcmp(name, name1))
                error("warning: name mismatch (%s/%s) for control #%d", name, name1, 
numid);
        if (index != index1)
-               error("warning: index mismatch (%ld/%d) for control #%d", index, 
index1, numid);
+               error("warning: index mismatch (%ld/%ld) for control #%d", index, 
+index1, numid);
 
        if (!snd_ctl_elem_info_is_writable(info))
                return 0;
@@ -887,7 +891,7 @@
                return -EINVAL;
        }
 
-       set = alloca(count);
+       set = (char*) alloca(count);
        memset(set, 0, count);
        snd_config_for_each(i, next, value) {
                snd_config_t *n = snd_config_iterator_entry(i);
@@ -957,7 +961,7 @@
  _ok:
        err = snd_ctl_elem_write(handle, ctl);
        if (err < 0) {
-               error("Cannot write control '%ld:%ld:%ld:%s:%ld' : %s", iface, device, 
subdevice, name, index, snd_strerror(err));
+               error("Cannot write control '%d:%ld:%ld:%s:%ld' : %s", (int)iface, 
+device, subdevice, name, index, snd_strerror(err));
                return err;
        }
        return 0;
@@ -1008,7 +1012,6 @@
        return err;
 }
 
-
 static int save_state(char *file, const char *cardname)
 {
        int err;
@@ -1045,7 +1048,7 @@
                        if (card < 0) {
                                if (first) {
                                        error("No soundcards found...");
-                                       return EXIT_FAILURE;
+                                       return -ENODEV;
                                }
                                break;
                        }
@@ -1059,7 +1062,7 @@
                cardno = snd_card_get_index(cardname);
                if (cardno < 0) {
                        error("Cannot find soundcard '%s'...", cardname);
-                       return EXIT_FAILURE;
+                       return cardno;
                }
                if ((err = get_controls(cardno, config))) {
                        return err;
@@ -1081,8 +1084,7 @@
        return 0;
 }
 
-
-static int load_state(char *file, const char *cardname)
+int load_state(const char *file, const char *cardname)
 {
        int err;
        snd_config_t *config;
@@ -1119,7 +1121,7 @@
                        if (card < 0) {
                                if (first) {
                                        error("No soundcards found...");
-                                       return EXIT_FAILURE;
+                                       return -ENODEV;
                                }
                                break;
                        }
@@ -1133,7 +1135,7 @@
                cardno = snd_card_get_index(cardname);
                if (cardno < 0) {
                        error("Cannot find soundcard '%s'...", cardname);
-                       return EXIT_FAILURE;
+                       return -ENODEV;
                }
                if ((err = set_controls(cardno, config)) && ! force_restore) {
                        return err;
@@ -1192,7 +1194,8 @@
 {
        snd_ctl_t *handle;
        char name[16];
-       int power_state, err;
+       unsigned int power_state;
+       int err;
 
        sprintf(name, "hw:%d", cardno);
        err = snd_ctl_open(&handle, name, 0);
@@ -1211,7 +1214,7 @@
        return 0;
 }
 
-static int set_power(int cardno, int power_state)
+static int set_power(int cardno, unsigned int power_state)
 {
        snd_ctl_t *handle;
        char name[16];
@@ -1255,7 +1258,7 @@
                        if (card < 0) {
                                if (first) {
                                        error("No soundcards found...");
-                                       return EXIT_FAILURE;
+                                       return -ENODEV;
                                }
                                break;
                        }
@@ -1277,7 +1280,7 @@
                        if (card < 0) {
                                if (first) {
                                        error("No soundcards found...");
-                                       return EXIT_FAILURE;
+                                       return -ENODEV;
                                }
                                break;
                        }
@@ -1291,13 +1294,13 @@
                cardno = snd_card_get_index(argv[0]);
                if (cardno < 0) {
                        error("Cannot find soundcard '%s'...", argv[0]);
-                       return EXIT_FAILURE;
+                       return -ENODEV;
                }
                if (argc > 1) {
                        power_state = get_int_state(argv[1]);
                        if (power_state < 0) {
                                error("Invalid power state '%s'...", argv[1]);
-                               return EXIT_FAILURE;
+                               return -EINVAL;
                        }
                        if ((err = set_power(cardno, power_state)) < 0)
                                return err;
@@ -1306,7 +1309,7 @@
                                return err;
                }
        }
-       return EXIT_SUCCESS;
+       return 0;
 }
 
 int main(int argc, char *argv[])
@@ -1322,13 +1325,14 @@
                {NULL, 0, NULL, 0},
        };
        char *cfgfile = SYS_ASOUNDRC;
+       int res;
 
        command = argv[0];
        morehelp = 0;
        while (1) {
                int c;
 
-               if ((c = getopt_long(argc, argv, "hf:dv", long_option, NULL)) < 0)
+               if ((c = getopt_long(argc, argv, "hf:dlev", long_option, NULL)) < 0)
                        break;
                switch (c) {
                case 'h':
@@ -1346,9 +1350,12 @@
                case 'v':
                        printf("alsactl version " SND_UTIL_VERSION_STR "\n");
                        return EXIT_SUCCESS;
-               default:
-                       fprintf(stderr, "\07Invalid switch or option needs an 
argument.\n");
+               case '?':               // error msg already printed
                        morehelp++;
+                       break;
+               default:                // should never happen
+                       fprintf(stderr, 
+                       "Invalid option '%c' (%d) not handled??\n", c, c);
                }
        }
        if (morehelp) {
@@ -1359,17 +1366,20 @@
                fprintf(stderr, "alsactl: Specify command...\n");
                return 0;
        }
+
        if (!strcmp(argv[optind], "store")) {
-               return save_state(cfgfile, argc - optind > 1 ? argv[optind + 1] : 
NULL) ?
-                   1 : 0;
+               res =  save_state(cfgfile,
+                  argc - optind > 1 ? argv[optind + 1] : NULL);
        } else if (!strcmp(argv[optind], "restore")) {
-               return load_state(cfgfile, argc - optind > 1 ? argv[optind + 1] : 
NULL) ?
-                   1 : 0;
+               res = load_state(cfgfile, 
+                  argc - optind > 1 ? argv[optind + 1] : NULL);
        } else if (!strcmp(argv[optind], "power")) {
-               return power((const char **)argv + optind + 1, argc - optind - 1);
+               res = power((const char **)argv + optind + 1, argc - optind - 1);
        } else {
-               fprintf(stderr, "alsactl: Unknown command '%s'...\n", argv[optind]);
+               fprintf(stderr, "alsactl: Unknown command '%s'...\n", 
+                       argv[optind]);
+               res = -ENODEV;
        }
 
-       return 0;
+       return res < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
 }



-------------------------------------------------------
This SF.net email is sponsored by: Microsoft Visual Studio.NET 
comprehensive development tool, built to increase your 
productivity. Try a free online hosted session at:
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to