const char *device_string, *params;
bool first_one = true;
void *device;
+ bool loaded = false;
pa_assert(dm);
pa_assert(type_info);
}
PA_HASHMAP_FOREACH_KV(role, device_string, pcm_devices, state) {
+ pa_log_debug("k:role(%s), v:device_string(%s)", role, device_string);
/* skip duplicate load */
if (is_playback && _core_get_sink(dm->core, device_string, NULL)) {
pa_log_debug("Already loaded %s", device_string);
first_one = false;
}
pa_log_info("load device success %s %s %s", device_string, params, role);
+ loaded = true;
+ }
+
+ if (!loaded) {
+ pa_log_error("Returning error due to no device loaded in success");
+ return -1;
}
return 0;
type = type_info->type;
- pa_log_info("type_info : %s", type);
+ pa_log_info("[%u] type_info : %s", type_idx, type);
detected_type = _device_get_detected(dm, type, NULL);
if (detected_type == DEVICE_DISCONNECTED) {
pa_log_info("Not detected yet");
_load_type_devices(type_info, true, dm);
}
handle_device_connected(dm, type, NULL, NULL, detected_type, type_info);
- } else if (device_type_is_use_external_card(type) == false) {
- dm_device_direction_t direction;
- direction = device_type_get_static_direction(type);
+ } else if (!device_type_is_use_external_card(type)) {
+ dm_device_direction_t direction = device_type_get_static_direction(type);
if (direction == DM_DEVICE_DIRECTION_NONE) {
pa_log_warn("Wrong direction");
continue;
}
- if (direction & DM_DEVICE_DIRECTION_OUT)
- _load_type_devices(type_info, true, dm);
- if (direction & DM_DEVICE_DIRECTION_IN)
- _load_type_devices(type_info, false, dm);
- handle_device_connected(dm, type, NULL, NULL, detected_type, type_info);
+
+ if ( _load_type_devices(type_info, (direction & DM_DEVICE_DIRECTION_OUT), dm) == 0)
+ handle_device_connected(dm, type, NULL, NULL, detected_type, type_info);
+ else
+ pa_log_warn("type %s failed....", type);
+
} else {
pa_log_warn("Invalid case");
}
}
+ pa_log_debug("Load Builtin Devices Done");
+
return 0;
}