]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
ctl: elem_value: split function with two argument into the one with single argument
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 13 Jun 2020 05:01:36 +0000 (14:01 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Sat, 13 Jun 2020 07:41:04 +0000 (16:41 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/ctl/alsactl.map
src/ctl/elem-value.c
src/ctl/elem-value.h
tests/alsactl-elem-value

index e82c35fb03e19407425f6ad544b2a79631e60d35..396eafd9dcdbf6eb33e2258b22ab0c76d25038f5 100644 (file)
@@ -79,8 +79,10 @@ ALSA_GOBJECT_0_0_0 {
     "alsactl_elem_value_get_enum";
     "alsactl_elem_value_set_bytes";
     "alsactl_elem_value_get_bytes";
-    "alsactl_elem_value_set_iec60958";
-    "alsactl_elem_value_get_iec60958";
+    "alsactl_elem_value_set_iec60958_user_data";
+    "alsactl_elem_value_get_iec60958_user_data";
+    "alsactl_elem_value_set_iec60958_channel_status";
+    "alsactl_elem_value_get_iec60958_channel_status";
     "alsactl_elem_value_set_int64";
     "alsactl_elem_value_get_int64";
     "alsactl_elem_value_equal";
index 95040aee8821aa373769485fec8d1364f6a3f46d..a37227b403dd6799fabe3505a9c92601f52b679d 100644 (file)
@@ -283,22 +283,16 @@ void alsactl_elem_value_get_bytes(ALSACtlElemValue *self,
 }
 
 /**
- * alsactl_elem_value_set_iec60958:
+ * alsactl_elem_value_set_iec60958_channel_status:
  * @self: A #ALSACtlElemValue.
- * @channel_status: (array length=channel_status_length)(nullable): The array of
- *                  byte data for channel status bits in IEC 60958.
- * @channel_status_length: The number of bytes in channel_status argument, up
- *                         to 24.
- * @user_data: (array length=user_data_length)(nullable): The array of byte data
- *             for user data bits in IEC 60958.
- * @user_data_length: The number of bytes in user_data argument, up to 147.
+ * @status: (array length=length): The array of byte data for channel status
+ *          bits in IEC 60958.
+ * @length: The number of bytes in channel_status argument, up to 24.
  *
- * Copy a pair of array for channel status and user data of IEC 60958 into
- * internal storage.
+ * Copy the given channel status of IEC 60958 into internal storage.
  */
-void alsactl_elem_value_set_iec60958(ALSACtlElemValue *self,
-                const guint8 *channel_status, gsize channel_status_length,
-                const guint8 *user_data, gsize user_data_length)
+void alsactl_elem_value_set_iec60958_channel_status(ALSACtlElemValue *self,
+                                        const guint8 *status, gsize length)
 {
     ALSACtlElemValuePrivate *priv;
     struct snd_ctl_elem_value *value;
@@ -308,38 +302,47 @@ void alsactl_elem_value_set_iec60958(ALSACtlElemValue *self,
     priv = alsactl_elem_value_get_instance_private(self);
     value = &priv->value;
 
-    if (channel_status != NULL) {
-        channel_status_length = MIN(channel_status_length,
-                                    G_N_ELEMENTS(value->value.iec958.status));
-        for (i = 0; i < channel_status_length; ++i)
-            value->value.iec958.status[i] = channel_status[i];
-    }
+    length = MIN(length, G_N_ELEMENTS(value->value.iec958.status));
+    for (i = 0; i < length; ++i)
+           value->value.iec958.status[i] = status[i];
+}
 
-    if (user_data != NULL) {
-        user_data_length = MIN(user_data_length,
-                               G_N_ELEMENTS(value->value.iec958.subcode));
-        for (i = 0; i < user_data_length; ++i)
-            value->value.iec958.subcode[i] = user_data[i];
-    }
+/**
+ * alsactl_elem_value_get_iec60958_channel_status:
+ * @self: A #ALSACtlElemValue.
+ * @status: (array length=length)(inout): The array of byte data for channel
+ *          status bits for IEC 60958 element.
+ * @length: The number of bytes in status argument, up to 24.
+ *
+ * Copy channel status of IEC 60958 from internal storage.
+ */
+void alsactl_elem_value_get_iec60958_channel_status(ALSACtlElemValue *self,
+                                        guint8 *const *status, gsize *length)
+{
+    ALSACtlElemValuePrivate *priv;
+    struct snd_ctl_elem_value *value;
+    int i;
+
+    g_return_if_fail(ALSACTL_IS_ELEM_VALUE(self));
+    priv = alsactl_elem_value_get_instance_private(self);
+    value = &priv->value;
+
+    *length = MIN(*length, G_N_ELEMENTS(value->value.iec958.status));
+    for (i = 0; i < *length; ++i)
+           (*status)[i] = value->value.iec958.status[i];
 }
 
 /**
- * alsactl_elem_value_get_iec60958:
+ * alsactl_elem_value_set_iec60958_user_data:
  * @self: A #ALSACtlElemValue.
- * @channel_status: (array length=channel_status_length)(inout)(nullable): The
- *                  array of byte data for channel status bits in IEC 60958.
- * @channel_status_length: The number of bytes in channel_status argument, up
- *                         to 24.
- * @user_data: (array length=user_data_length)(inout)(nullable): The array of
- *             byte data for user data bits in IEC 60958.
- * @user_data_length: The number of bytes in user_data argument, up to 147.
+ * @data: (array length=length): The array of byte data for user data bits in
+ *        IEC 60958.
+ * @length: The number of bytes in data argument, up to 147.
  *
- * Copy a pair of array for channel status and user data of IEC 60958 from
- * internal storage.
+ * Copy the given user data of IEC 60958 into internal storage.
  */
-void alsactl_elem_value_get_iec60958(ALSACtlElemValue *self,
-                guint8 *const *channel_status, gsize *channel_status_length,
-                guint8 *const *user_data, gsize *user_data_length)
+void alsactl_elem_value_set_iec60958_user_data(ALSACtlElemValue *self,
+                                        const guint8 *data, gsize length)
 {
     ALSACtlElemValuePrivate *priv;
     struct snd_ctl_elem_value *value;
@@ -349,19 +352,34 @@ void alsactl_elem_value_get_iec60958(ALSACtlElemValue *self,
     priv = alsactl_elem_value_get_instance_private(self);
     value = &priv->value;
 
-    if (channel_status != NULL) {
-        *channel_status_length = MIN(*channel_status_length,
-                                     G_N_ELEMENTS(value->value.iec958.status));
-        for (i = 0; i < *channel_status_length; ++i)
-            (*channel_status)[i] = value->value.iec958.status[i];
-    }
+    length = MIN(length, G_N_ELEMENTS(value->value.iec958.subcode));
+    for (i = 0; i < length; ++i)
+           value->value.iec958.subcode[i] = data[i];
+}
 
-    if (user_data != NULL) {
-        *user_data_length = MIN(*user_data_length,
-                                G_N_ELEMENTS(value->value.iec958.subcode));
-        for (i = 0; i < *user_data_length; ++i)
-            (*user_data)[i] = value->value.iec958.subcode[i];
-    }
+/**
+ * alsactl_elem_value_get_iec60958_user_data:
+ * @self: A #ALSACtlElemValue.
+ * @data: (array length=length)(inout): The array of byte data for user data
+ *        bits in IEC 60958.
+ * @length: The number of bytes in user_data argument, up to 147.
+ *
+ * Copy user data of IEC 60958 from internal storage.
+ */
+void alsactl_elem_value_get_iec60958_user_data(ALSACtlElemValue *self,
+                                        guint8 *const *data, gsize *length)
+{
+    ALSACtlElemValuePrivate *priv;
+    struct snd_ctl_elem_value *value;
+    int i;
+
+    g_return_if_fail(ALSACTL_IS_ELEM_VALUE(self));
+    priv = alsactl_elem_value_get_instance_private(self);
+    value = &priv->value;
+
+    *length = MIN(*length, G_N_ELEMENTS(value->value.iec958.subcode));
+    for (i = 0; i < *length; ++i)
+        (*data)[i] = value->value.iec958.subcode[i];
 }
 
 /**
index cf7e14bf7bf6a2edb61c5ff7dd43970fb082f4a1..5e554edd57980f59b0f3ac5b4a30ef7b4d435ea1 100644 (file)
@@ -69,12 +69,15 @@ void alsactl_elem_value_set_bytes(ALSACtlElemValue *self,
 void alsactl_elem_value_get_bytes(ALSACtlElemValue *self,
                                   guint8 *const *values, gsize *value_count);
 
-void alsactl_elem_value_set_iec60958(ALSACtlElemValue *self,
-                const guint8 *channel_status, gsize channel_status_length,
-                const guint8 *user_data, gsize user_data_length);
-void alsactl_elem_value_get_iec60958(ALSACtlElemValue *self,
-                guint8 *const *channel_status, gsize *channel_status_length,
-                guint8 *const *user_data, gsize *user_data_length);
+void alsactl_elem_value_set_iec60958_channel_status(ALSACtlElemValue *self,
+                                        const guint8 *status, gsize length);
+void alsactl_elem_value_get_iec60958_channel_status(ALSACtlElemValue *self,
+                                        guint8 *const *status, gsize *length);
+
+void alsactl_elem_value_set_iec60958_user_data(ALSACtlElemValue *self,
+                                        const guint8 *data, gsize length);
+void alsactl_elem_value_get_iec60958_user_data(ALSACtlElemValue *self,
+                                        guint8 *const *data, gsize *length);
 
 void alsactl_elem_value_set_int64(ALSACtlElemValue *self, const gint64 *values,
                                   gsize value_count);
index 119fb1422aa9da3697a6e21d8b35047698f0eada..4d1e8f7a27cdff0897c87c5e60ed447ebc7cdd10 100644 (file)
@@ -23,8 +23,10 @@ methods = (
     'get_enum',
     'set_bytes',
     'get_bytes',
-    'set_iec60958',
-    'get_iec60958',
+    'set_iec60958_user_data',
+    'get_iec60958_user_data',
+    'set_iec60958_channel_status',
+    'get_iec60958_channel_status',
     'set_int64',
     'get_int64',
     'equal',