_, card_id_list = ALSACtl.get_card_id_list()
for card_id in card_id_list:
print('Card {}:'.format(card_id))
- for device_id in ALSAHwdep.get_device_id_list(card_id):
+ _, device_id_list = ALSAHwdep.get_device_id_list(card_id)
+ for device_id in device_id_list:
print(' Device {}:'.format(device_id))
- info = ALSAHwdep.get_device_info(card_id, device_id)
+ _, info = ALSAHwdep.get_device_info(card_id, device_id)
for prop in ('device-id', 'card-id', 'id', 'name'):
print(' {}: {}'.format(prop, info.get_property(prop)))
print(' iface: {}'.format(info.get_property('iface').value_nick))
* Get the list of numeric ID for available hwdep devices of sound card.
*
* Nodes under sound subsystem in sysfs are used to gather the information.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
*/
-void alsahwdep_get_device_id_list(guint card_id, guint **entries,
- gsize *entry_count, GError **error)
+gboolean alsahwdep_get_device_id_list(guint card_id, guint **entries, gsize *entry_count,
+ GError **error)
{
int err;
- g_return_if_fail(entries != NULL);
- g_return_if_fail(entry_count != NULL);
- g_return_if_fail(error == NULL || *error == NULL);
+ g_return_val_if_fail(entries != NULL, FALSE);
+ g_return_val_if_fail(entry_count != NULL, FALSE);
+ g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
err = generate_hwdep_sysnum_list(entries, entry_count, card_id);
- if (err < 0)
+ if (err < 0) {
generate_file_error(error, -err, "Fail to generate list of hwdep sysnum");
+ return FALSE;
+ }
+
+ return TRUE;
}
/**
* Allocate sysname for hwdep device and return it when it exists.
*
* Nodes under sound subsystem in sysfs are used to gather the information.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
*/
-void alsahwdep_get_hwdep_sysname(guint card_id, guint device_id,
- char **sysname, GError **error)
+gboolean alsahwdep_get_hwdep_sysname(guint card_id, guint device_id, char **sysname,
+ GError **error)
{
int err;
- g_return_if_fail(sysname != NULL);
- g_return_if_fail(error == NULL || *error == NULL);
+ g_return_val_if_fail(sysname != NULL, FALSE);
+ g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
err = lookup_and_allocate_hwdep_sysname(sysname, card_id, device_id);
- if (err < 0)
+ if (err < 0) {
generate_file_error(error, -err, "Fail to generate hwdep sysname");
+ return FALSE;
+ }
+
+ return TRUE;
}
/**
* Allocate devnode string for hwdep device and return it when exists.
*
* Nodes under sound subsystem in sysfs are used to gather the information.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
*/
-void alsahwdep_get_hwdep_devnode(guint card_id, guint device_id,
- char **devnode, GError **error)
+gboolean alsahwdep_get_hwdep_devnode(guint card_id, guint device_id, char **devnode,
+ GError **error)
{
int err;
- g_return_if_fail(devnode != NULL);
- g_return_if_fail(error == NULL || *error == NULL);
+ g_return_val_if_fail(devnode != NULL, FALSE);
+ g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
err = lookup_and_allocate_hwdep_devname(devnode, card_id, device_id);
- if (err < 0)
+ if (err < 0) {
generate_file_error(error, -err, "Fail to generate hwdep devname");
+ return FALSE;
+ }
+
+ return TRUE;
}
/**
*
* The call of function executes `open(2)`, `close(2)`, and `ioctl(2)` system call
* with `SNDRV_CTL_IOCTL_HWDEP_INFO` command for ALSA control character device.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
*/
-void alsahwdep_get_device_info(guint card_id, guint device_id,
- ALSAHwdepDeviceInfo **device_info,
- GError **error)
+gboolean alsahwdep_get_device_info(guint card_id, guint device_id,
+ ALSAHwdepDeviceInfo **device_info, GError **error)
{
struct snd_hwdep_info *info;
int err;
- g_return_if_fail(device_info != NULL);
- g_return_if_fail(error == NULL || *error == NULL);
+ g_return_val_if_fail(device_info != NULL, FALSE);
+ g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
*device_info = g_object_new(ALSAHWDEP_TYPE_DEVICE_INFO, NULL);
hwdep_device_info_refer_private(*device_info, &info);
if (err < 0) {
generate_file_error(error, -err, "ioctl(HWDEP_INFO)");
g_object_unref(*device_info);
+ return FALSE;
}
+
+ return TRUE;
}
G_BEGIN_DECLS
-void alsahwdep_get_device_id_list(guint card_id, guint **entries,
- gsize *entry_count, GError **error);
+gboolean alsahwdep_get_device_id_list(guint card_id, guint **entries, gsize *entry_count,
+ GError **error);
-void alsahwdep_get_hwdep_sysname(guint card_id, guint device_id,
- char **sysname, GError **error);
+gboolean alsahwdep_get_hwdep_sysname(guint card_id, guint device_id, char **sysname,
+ GError **error);
-void alsahwdep_get_hwdep_devnode(guint card_id, guint device_id,
- char **devnode, GError **error);
+gboolean alsahwdep_get_hwdep_devnode(guint card_id, guint device_id, char **devnode,
+ GError **error);
-void alsahwdep_get_device_info(guint card_id, guint device_id,
- ALSAHwdepDeviceInfo **device_info,
- GError **error);
+gboolean alsahwdep_get_device_info(guint card_id, guint device_id,
+ ALSAHwdepDeviceInfo **device_info, GError **error);
G_END_DECLS