From: Takashi Sakamoto Date: Sat, 13 Jun 2020 05:01:36 +0000 (+0900) Subject: ctl: elem_value: split function with two argument into the one with single argument X-Git-Tag: v0.1.0~53 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=cc98991330fc3d94b140394e9eb6cb44ed3242ed;p=alsa-gobject.git ctl: elem_value: split function with two argument into the one with single argument Signed-off-by: Takashi Sakamoto --- diff --git a/src/ctl/alsactl.map b/src/ctl/alsactl.map index e82c35f..396eafd 100644 --- a/src/ctl/alsactl.map +++ b/src/ctl/alsactl.map @@ -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"; diff --git a/src/ctl/elem-value.c b/src/ctl/elem-value.c index 95040ae..a37227b 100644 --- a/src/ctl/elem-value.c +++ b/src/ctl/elem-value.c @@ -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]; } /** diff --git a/src/ctl/elem-value.h b/src/ctl/elem-value.h index cf7e14b..5e554ed 100644 --- a/src/ctl/elem-value.h +++ b/src/ctl/elem-value.h @@ -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); diff --git a/tests/alsactl-elem-value b/tests/alsactl-elem-value index 119fb14..4d1e8f7 100644 --- a/tests/alsactl-elem-value +++ b/tests/alsactl-elem-value @@ -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',