MSSndCard * ms_snd_card_manager_get_card(MSSndCardManager *m, const char *id){ MSList *elem; for (elem=m->cards;elem!=NULL;elem=elem->next){ MSSndCard *card=(MSSndCard*)elem->data; if (id==NULL) return card; if (strcmp(ms_snd_card_get_string_id(card),id)==0) return card; } if (id!=NULL) ms_warning("no card with id %s",id); return NULL; }
bool myAudioStream::init_card() { QSettings settings("Shadowrun Comlink","MetaLink"); QString card_id; if (settings.contains("Audio playback card")) { card_id = settings.value("Audio playback card").toString(); } else { const MSList *list = ms_snd_card_manager_get_list(ms_snd_card_manager_get()); QStringList cards; while (list != NULL) { cards << ms_snd_card_get_string_id((MSSndCard*)list->data); list = list->next; } if (cards.isEmpty()) { QMessageBox::information(0, QObject::tr("No cards detected!"), QObject::tr("No cards detected!")); return false; } bool ok; card_id = QInputDialog::getItem(0, QObject::tr("Select playback card"), QObject::tr("Select playback card"), cards, 0, false, &ok); if (!ok) { return false; } settings.setValue("Audio playback card",card_id); } playcard = ms_snd_card_manager_get_card(ms_snd_card_manager_get(), card_id.toStdString().c_str()); if (playcard==NULL){ ms_error("No playback card found."); return false; } else { ms_message("Got card: %s", ms_snd_card_get_string_id(playcard)); } return true; }
void ms_snd_card_manager_add_card(MSSndCardManager *m, MSSndCard *c){ ms_message("Card '%s' added",ms_snd_card_get_string_id(c)); m->cards=ms_list_append(m->cards,c); }