Move card init from alsa_scan_cards() to new card_init() function
This commit is contained in:
51
src/alsa.c
51
src/alsa.c
@@ -1067,6 +1067,32 @@ static void alsa_get_serial_number(struct alsa_card *card) {
|
|||||||
card->serial = strdup(serial);
|
card->serial = strdup(serial);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void card_init(struct alsa_card *card) {
|
||||||
|
alsa_get_elem_list(card);
|
||||||
|
alsa_set_lr_nums(card);
|
||||||
|
alsa_get_routing_controls(card);
|
||||||
|
|
||||||
|
alsa_subscribe(card);
|
||||||
|
alsa_get_usbid(card);
|
||||||
|
alsa_get_serial_number(card);
|
||||||
|
card->best_firmware_version = scarlett2_get_best_firmware_version(card->pid);
|
||||||
|
|
||||||
|
if (card->serial) {
|
||||||
|
|
||||||
|
// call the reopen callbacks for this card
|
||||||
|
struct reopen_callback *rc = g_hash_table_lookup(
|
||||||
|
reopen_callbacks, card->serial
|
||||||
|
);
|
||||||
|
if (rc)
|
||||||
|
rc->callback(rc->data);
|
||||||
|
|
||||||
|
g_hash_table_remove(reopen_callbacks, card->serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
create_card_window(card);
|
||||||
|
alsa_add_card_callback(card);
|
||||||
|
}
|
||||||
|
|
||||||
static void alsa_scan_cards(void) {
|
static void alsa_scan_cards(void) {
|
||||||
snd_ctl_card_info_t *info;
|
snd_ctl_card_info_t *info;
|
||||||
snd_ctl_t *ctl;
|
snd_ctl_t *ctl;
|
||||||
@@ -1110,30 +1136,7 @@ static void alsa_scan_cards(void) {
|
|||||||
card->name = strdup(snd_ctl_card_info_get_name(info));
|
card->name = strdup(snd_ctl_card_info_get_name(info));
|
||||||
card->handle = ctl;
|
card->handle = ctl;
|
||||||
|
|
||||||
alsa_get_elem_list(card);
|
card_init(card);
|
||||||
alsa_set_lr_nums(card);
|
|
||||||
alsa_get_routing_controls(card);
|
|
||||||
|
|
||||||
alsa_subscribe(card);
|
|
||||||
alsa_get_usbid(card);
|
|
||||||
alsa_get_serial_number(card);
|
|
||||||
card->best_firmware_version =
|
|
||||||
scarlett2_get_best_firmware_version(card->pid);
|
|
||||||
|
|
||||||
if (card->serial) {
|
|
||||||
|
|
||||||
// call the reopen callbacks for this card
|
|
||||||
struct reopen_callback *rc = g_hash_table_lookup(
|
|
||||||
reopen_callbacks, card->serial
|
|
||||||
);
|
|
||||||
if (rc)
|
|
||||||
rc->callback(rc->data);
|
|
||||||
|
|
||||||
g_hash_table_remove(reopen_callbacks, card->serial);
|
|
||||||
}
|
|
||||||
|
|
||||||
create_card_window(card);
|
|
||||||
alsa_add_card_callback(card);
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user