Update to latest tinyalsa

8fe2c93 mixer: remove redundant IOCTL_ELEM_READs
b29ac1a mixer: simplify string get APIs
174d874 tinycap: add missing options to usage string

Change-Id: Id91acf6a084dac3dd0d07966330e10ffc95618bd
diff --git a/include/tinyalsa/asoundlib.h b/include/tinyalsa/asoundlib.h
index 655fe76..f3587ab 100644
--- a/include/tinyalsa/asoundlib.h
+++ b/include/tinyalsa/asoundlib.h
@@ -176,13 +176,13 @@
 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);
-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);
diff --git a/mixer.c b/mixer.c
index a7f5d21..4a39a43 100644
--- a/mixer.c
+++ b/mixer.c
@@ -193,13 +193,12 @@
     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)
@@ -352,35 +351,21 @@
 
 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;
 
-    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)
 {
-    struct snd_ctl_elem_value ev;
     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;
 }
 
@@ -392,24 +377,16 @@
     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))
-        return -EINVAL;
+        return NULL;
 
-    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 0;
+    return (const char *)ctl->ename[enum_id];
 }
 
 int mixer_ctl_set_enum_by_string(struct mixer_ctl *ctl, const char *string)
diff --git a/tinycap.c b/tinycap.c
index a50c417..dcc238c 100644
--- a/tinycap.c
+++ b/tinycap.c
@@ -82,7 +82,7 @@
 
     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;
     }
 
diff --git a/tinymix.c b/tinymix.c
index e7bd276..6427a02 100644
--- a/tinymix.c
+++ b/tinymix.c
@@ -77,9 +77,8 @@
 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;
-    char buffer[256];
     unsigned int i;
 
     num_ctls = mixer_get_num_ctls(mixer);
@@ -90,10 +89,10 @@
     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);
-        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);
     }
 }
@@ -101,18 +100,18 @@
 static void tinymix_print_enum(struct mixer_ctl *ctl, int print_all)
 {
     unsigned int num_enums;
-    char buffer[256];
     unsigned int i;
+    const char *string;
 
     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 ? ">" : "",
-                   buffer);
+                   string);
         else if (mixer_ctl_get_value(ctl, 0) == (int)i)
-            printf(" %-s", buffer);
+            printf(" %-s", string);
     }
 }
 
@@ -122,7 +121,6 @@
     struct mixer_ctl *ctl;
     enum mixer_ctl_type type;
     unsigned int num_values;
-    char buffer[256];
     unsigned int i;
     int min, max;
 
@@ -133,12 +131,11 @@
 
     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)
-        printf("%s:", buffer);
+        printf("%s:", mixer_ctl_get_name(ctl));
 
     for (i = 0; i < num_values; i++) {
         switch (type)