Неизвестное аудиоустройство

Я включил мобильную гарнитуру (динамики в ухе с микрометром), но это продолжает открываться.

Неизвестное аудиоустройство
Какое устройство Вы включали?
Наушники | гарнитура | микрофон
Отмена | звуковые настройки

Есть ли какое-либо место в файловой системе, где я могу hardcode эта установка?

anjanesh@anjanesh-Latitude-3560:~$ dpkg -l | grep -i jack
ii  libjack-jackd2-0:amd64                                1.9.9.5+20130622git7de15e7a-1ubuntu1                     amd64        JACK Audio Connection Kit (libraries)

Ubuntu 14.04 LTS на моем ноутбуке Dell Latitude 3560.

1
задан 29 July 2018 в 12:13

1 ответ

Я нашел источник этого окна. Это unity-settings-daemonплагин, расположенный в строке 99 из plugins/media-keys/what-did-you-plug-in/dialog-window.cdialog_create функция, вызванная позже wdypi_dialog_run):

88    gtk_window_set_title(GTK_WINDOW(d->dialog), _("Unknown Audio Device"));
...
99    d->label = gtk_label_new(_("What kind of device did you plug in?"));
...
103   d->hp_btn = create_icon_button(WDYPI_DIALOG_HEADPHONES, _("Headphones"), "audio-headphones");
...
106   d->hs_btn = create_icon_button(WDYPI_DIALOG_HEADSET, _("Headset"), "audio-headset");
...
110   d->mic_btn = create_icon_button(WDYPI_DIALOG_MICROPHONE, _("Microphone"), "audio-input-microphone");
...
115   d->cancel_btn = gtk_dialog_add_button(GTK_DIALOG(d->dialog), _("Cancel"), GTK_RESPONSE_CANCEL);
116   d->settings_btn = gtk_dialog_add_button(GTK_DIALOG(d->dialog), _("Sound Settings…"), GTK_RESPONSE_YES);

Это диалоговое окно показывает событие PulseAudio, посмотрите строку 2720 из plugins/media-keys/gsd-media-keys-manager.c: on_control_card_info_updated вызовы pa_backend_card_changed (затем это звонит get_headset_ports) :

static headset_ports get_headset_ports(const pa_card_info *c)
{
    headset_ports h = {NULL, NULL, NULL};
    int i;
    for (i = 0; i < c->n_ports; i++) {
        pa_card_port_info *p = c->ports[i];
        if (!strcmp(p->name, "analog-output-headphones"))
            h.headphones = p;
        else if (!strcmp(p->name, "analog-input-microphone-headset"))
            h.headsetmic = p;
        else if (!strcmp(p->name, "analog-input-microphone"))
            h.headphonemic = p;
    }
    return h;
}

и наконец выставочное диалоговое окно с on_wdypi_popup и wdypi_dialog_run.

В установленной системе эта фраза ("Какое устройство Вы включали?"), найден в:

unity-settings-daemon: /usr/lib/unity-settings-daemon/usd-test-media-keys
unity-settings-daemon: /usr/lib/unity-settings-daemon-1.0/libmedia-keys.so

Согласно нажатию исходного кода "Sound Settings" откроется unity-control-center sound.


Примечание: libjack-jackd2-0:amd64 пакет предварительно установлен на чистой Ubuntu 14.04 LTS.

$ aptitude why libjack-jackd2-0:amd64
i   gstreamer1.0-plugins-good Depends libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116                                 

$ aptitude why gstreamer1.0-plugins-good
i   rhythmbox Depends gstreamer1.0-plugins-good (>= 1.0.6)

Звук сохраняется PulseAudio и затем Демоном Настроек Единицы.

1
ответ дан 7 December 2019 в 15:16

Другие вопросы по тегам:

Похожие вопросы: