Update to latest tinyalsa
authorSimon Wilson <simonwilson@google.com>
Thu, 8 Mar 2012 18:45:31 +0000 (10:45 -0800)
committerSimon Wilson <simonwilson@google.com>
Thu, 8 Mar 2012 18:45:35 +0000 (10:45 -0800)
8fe2c93 mixer: remove redundant IOCTL_ELEM_READs
b29ac1a mixer: simplify string get APIs
174d874 tinycap: add missing options to usage string

Change-Id: Id91acf6a084dac3dd0d07966330e10ffc95618bd

include/tinyalsa/asoundlib.h
mixer.c
tinycap.c
tinymix.c

index 655fe76895ce6248ae2f5d513101fb7db274c066..f3587abaa8ad3e58d9d28d3f697f2f2b873e5ea1 100644 (file)
@@ -176,13 +176,13 @@ struct mixer_ctl *mixer_get_ctl(struct mixer *mixer, unsigned int id);
 struct mixer_ctl *mixer_get_ctl_by_name(struct mixer *mixer, const char *name);
 
 /* Get info about mixer controls */
 struct mixer_ctl *mixer_get_ctl_by_name(struct mixer *mixer, const char *name);
 
 /* Get info about mixer controls */
-int mixer_ctl_get_name(struct mixer_ctl *ctl, char *name, unsigned int size);
+const char *mixer_ctl_get_name(struct mixer_ctl *ctl);
 enum mixer_ctl_type mixer_ctl_get_type(struct mixer_ctl *ctl);
 const char *mixer_ctl_get_type_string(struct mixer_ctl *ctl);
 unsigned int mixer_ctl_get_num_values(struct mixer_ctl *ctl);
 unsigned int mixer_ctl_get_num_enums(struct mixer_ctl *ctl);
 enum mixer_ctl_type mixer_ctl_get_type(struct mixer_ctl *ctl);
 const char *mixer_ctl_get_type_string(struct mixer_ctl *ctl);
 unsigned int mixer_ctl_get_num_values(struct mixer_ctl *ctl);
 unsigned int mixer_ctl_get_num_enums(struct mixer_ctl *ctl);
-int mixer_ctl_get_enum_string(struct mixer_ctl *ctl, unsigned int enum_id,
-                              char *string, unsigned int size);
+const char *mixer_ctl_get_enum_string(struct mixer_ctl *ctl,
+                                      unsigned int enum_id);
 
 /* Set and get mixer controls */
 int mixer_ctl_get_percent(struct mixer_ctl *ctl, unsigned int id);
 
 /* Set and get mixer controls */
 int mixer_ctl_get_percent(struct mixer_ctl *ctl, unsigned int id);
diff --git a/mixer.c b/mixer.c
index a7f5d21a05fda44f7045e51a16ce16ea8f494c11..4a39a4317dc069ad802a80ed13dae3653d5ff16e 100644 (file)
--- a/mixer.c
+++ b/mixer.c
@@ -193,13 +193,12 @@ struct mixer_ctl *mixer_get_ctl_by_name(struct mixer *mixer, const char *name)
     return NULL;
 }
 
     return NULL;
 }
 
-int mixer_ctl_get_name(struct mixer_ctl *ctl, char *name, unsigned int size)
+const char *mixer_ctl_get_name(struct mixer_ctl *ctl)
 {
 {
-    if (!ctl || !name || (size == 0))
-        return -EINVAL;
+    if (!ctl)
+        return NULL;
 
 
-    strncpy(name, (char *)ctl->info->id.name, size);
-    return 0;
+    return (const char *)ctl->info->id.name;
 }
 
 enum mixer_ctl_type mixer_ctl_get_type(struct mixer_ctl *ctl)
 }
 
 enum mixer_ctl_type mixer_ctl_get_type(struct mixer_ctl *ctl)
@@ -352,35 +351,21 @@ int mixer_ctl_set_value(struct mixer_ctl *ctl, unsigned int id, int value)
 
 int mixer_ctl_get_range_min(struct mixer_ctl *ctl)
 {
 
 int mixer_ctl_get_range_min(struct mixer_ctl *ctl)
 {
-    struct snd_ctl_elem_value ev;
     int ret;
 
     if (!ctl || (ctl->info->type != SNDRV_CTL_ELEM_TYPE_INTEGER))
         return -EINVAL;
 
     int ret;
 
     if (!ctl || (ctl->info->type != SNDRV_CTL_ELEM_TYPE_INTEGER))
         return -EINVAL;
 
-    memset(&ev, 0, sizeof(ev));
-    ev.id.numid = ctl->info->id.numid;
-    ret = ioctl(ctl->mixer->fd, SNDRV_CTL_IOCTL_ELEM_READ, &ev);
-    if (ret < 0)
-        return ret;
-
     return ctl->info->value.integer.min;
 }
 
 int mixer_ctl_get_range_max(struct mixer_ctl *ctl)
 {
     return ctl->info->value.integer.min;
 }
 
 int mixer_ctl_get_range_max(struct mixer_ctl *ctl)
 {
-    struct snd_ctl_elem_value ev;
     int ret;
 
     if (!ctl || (ctl->info->type != SNDRV_CTL_ELEM_TYPE_INTEGER))
         return -EINVAL;
 
     int ret;
 
     if (!ctl || (ctl->info->type != SNDRV_CTL_ELEM_TYPE_INTEGER))
         return -EINVAL;
 
-    memset(&ev, 0, sizeof(ev));
-    ev.id.numid = ctl->info->id.numid;
-    ret = ioctl(ctl->mixer->fd, SNDRV_CTL_IOCTL_ELEM_READ, &ev);
-    if (ret < 0)
-        return ret;
-
     return ctl->info->value.integer.max;
 }
 
     return ctl->info->value.integer.max;
 }
 
@@ -392,24 +377,16 @@ unsigned int mixer_ctl_get_num_enums(struct mixer_ctl *ctl)
     return ctl->info->value.enumerated.items;
 }
 
     return ctl->info->value.enumerated.items;
 }
 
-int mixer_ctl_get_enum_string(struct mixer_ctl *ctl, unsigned int enum_id,
-                              char *string, unsigned int size)
+const char *mixer_ctl_get_enum_string(struct mixer_ctl *ctl,
+                                      unsigned int enum_id)
 {
 {
-    struct snd_ctl_elem_value ev;
     int ret;
 
     if (!ctl || (ctl->info->type != SNDRV_CTL_ELEM_TYPE_ENUMERATED) ||
         (enum_id >= ctl->info->value.enumerated.items))
     int ret;
 
     if (!ctl || (ctl->info->type != SNDRV_CTL_ELEM_TYPE_ENUMERATED) ||
         (enum_id >= ctl->info->value.enumerated.items))
-        return -EINVAL;
-
-    memset(&ev, 0, sizeof(ev));
-    ev.id.numid = ctl->info->id.numid;
-    ret = ioctl(ctl->mixer->fd, SNDRV_CTL_IOCTL_ELEM_READ, &ev);
-    if (ret < 0)
-        return ret;
-    strncpy(string, (char *)ctl->ename[enum_id], size);
+        return NULL;
 
 
-    return 0;
+    return (const char *)ctl->ename[enum_id];
 }
 
 int mixer_ctl_set_enum_by_string(struct mixer_ctl *ctl, const char *string)
 }
 
 int mixer_ctl_set_enum_by_string(struct mixer_ctl *ctl, const char *string)
index a50c4178256e62adcc1a2f890f975a42463331c5..dcc238c1d5b2a18aca064a83ebb9929528c6a71e 100644 (file)
--- a/tinycap.c
+++ b/tinycap.c
@@ -82,7 +82,7 @@ int main(int argc, char **argv)
 
     if (argc < 2) {
         fprintf(stderr, "Usage: %s file.wav [-D card] [-d device] [-c channels] "
 
     if (argc < 2) {
         fprintf(stderr, "Usage: %s file.wav [-D card] [-d device] [-c channels] "
-                "[-r rate] [-b bits]\n", argv[0]);
+                "[-r rate] [-b bits] [-p period_size] [-n n_periods]\n", argv[0]);
         return 1;
     }
 
         return 1;
     }
 
index e7bd27678d9a5b2b7dbc9b0a89a93e2366d9bd0c..6427a02dbccb671799c0cb233938c6a49e028ec6 100644 (file)
--- a/tinymix.c
+++ b/tinymix.c
@@ -77,9 +77,8 @@ int main(int argc, char **argv)
 static void tinymix_list_controls(struct mixer *mixer)
 {
     struct mixer_ctl *ctl;
 static void tinymix_list_controls(struct mixer *mixer)
 {
     struct mixer_ctl *ctl;
-    const char *type;
+    const char *name, *type;
     unsigned int num_ctls, num_values;
     unsigned int num_ctls, num_values;
-    char buffer[256];
     unsigned int i;
 
     num_ctls = mixer_get_num_ctls(mixer);
     unsigned int i;
 
     num_ctls = mixer_get_num_ctls(mixer);
@@ -90,10 +89,10 @@ static void tinymix_list_controls(struct mixer *mixer)
     for (i = 0; i < num_ctls; i++) {
         ctl = mixer_get_ctl(mixer, i);
 
     for (i = 0; i < num_ctls; i++) {
         ctl = mixer_get_ctl(mixer, i);
 
-        mixer_ctl_get_name(ctl, buffer, sizeof(buffer));
+        name = mixer_ctl_get_name(ctl);
         type = mixer_ctl_get_type_string(ctl);
         num_values = mixer_ctl_get_num_values(ctl);
         type = mixer_ctl_get_type_string(ctl);
         num_values = mixer_ctl_get_num_values(ctl);
-        printf("%d\t%s\t%d\t%-40s", i, type, num_values, buffer);
+        printf("%d\t%s\t%d\t%-40s", i, type, num_values, name);
         tinymix_detail_control(mixer, i, 0);
     }
 }
         tinymix_detail_control(mixer, i, 0);
     }
 }
@@ -101,18 +100,18 @@ static void tinymix_list_controls(struct mixer *mixer)
 static void tinymix_print_enum(struct mixer_ctl *ctl, int print_all)
 {
     unsigned int num_enums;
 static void tinymix_print_enum(struct mixer_ctl *ctl, int print_all)
 {
     unsigned int num_enums;
-    char buffer[256];
     unsigned int i;
     unsigned int i;
+    const char *string;
 
     num_enums = mixer_ctl_get_num_enums(ctl);
 
     for (i = 0; i < num_enums; i++) {
 
     num_enums = mixer_ctl_get_num_enums(ctl);
 
     for (i = 0; i < num_enums; i++) {
-        mixer_ctl_get_enum_string(ctl, i, buffer, sizeof(buffer));
+        string = mixer_ctl_get_enum_string(ctl, i);
         if (print_all)
             printf("\t%s%s", mixer_ctl_get_value(ctl, 0) == (int)i ? ">" : "",
         if (print_all)
             printf("\t%s%s", mixer_ctl_get_value(ctl, 0) == (int)i ? ">" : "",
-                   buffer);
+                   string);
         else if (mixer_ctl_get_value(ctl, 0) == (int)i)
         else if (mixer_ctl_get_value(ctl, 0) == (int)i)
-            printf(" %-s", buffer);
+            printf(" %-s", string);
     }
 }
 
     }
 }
 
@@ -122,7 +121,6 @@ static void tinymix_detail_control(struct mixer *mixer, unsigned int id,
     struct mixer_ctl *ctl;
     enum mixer_ctl_type type;
     unsigned int num_values;
     struct mixer_ctl *ctl;
     enum mixer_ctl_type type;
     unsigned int num_values;
-    char buffer[256];
     unsigned int i;
     int min, max;
 
     unsigned int i;
     int min, max;
 
@@ -133,12 +131,11 @@ static void tinymix_detail_control(struct mixer *mixer, unsigned int id,
 
     ctl = mixer_get_ctl(mixer, id);
 
 
     ctl = mixer_get_ctl(mixer, id);
 
-    mixer_ctl_get_name(ctl, buffer, sizeof(buffer));
     type = mixer_ctl_get_type(ctl);
     num_values = mixer_ctl_get_num_values(ctl);
 
     if (print_all)
     type = mixer_ctl_get_type(ctl);
     num_values = mixer_ctl_get_num_values(ctl);
 
     if (print_all)
-        printf("%s:", buffer);
+        printf("%s:", mixer_ctl_get_name(ctl));
 
     for (i = 0; i < num_values; i++) {
         switch (type)
 
     for (i = 0; i < num_values; i++) {
         switch (type)