diff options
author | Mateusz Łukasik <mati75@linuxmint.pl> | 2016-10-09 22:11:11 +0200 |
---|---|---|
committer | Mateusz Łukasik <mati75@linuxmint.pl> | 2016-10-09 22:11:11 +0200 |
commit | 392e79606ccba0695027b63ed872c4b0a491cd8b (patch) | |
tree | eb7466234f0b0ee059ff39270739c928a2bceae2 /src/baseguiplus.cpp | |
parent | 029acf6821f034583700c26b013ffc67ad7690f7 (diff) |
New upstream version 16.9.0~ds0
Diffstat (limited to 'src/baseguiplus.cpp')
-rw-r--r-- | src/baseguiplus.cpp | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/src/baseguiplus.cpp b/src/baseguiplus.cpp index f0a88c5..636aa6f 100644 --- a/src/baseguiplus.cpp +++ b/src/baseguiplus.cpp @@ -199,6 +199,12 @@ BaseGuiPlus::BaseGuiPlus( QWidget * parent, Qt::WindowFlags flags) detached_label->hide(); #endif +#ifdef SEND_AUDIO_OPTION + sendAudio_menu = new QMenu(this); + sendAudio_menu->menuAction()->setObjectName("send_audio_menu"); + updateSendAudioMenu(); +#endif + #ifdef GLOBALSHORTCUTS global_shortcuts = new GlobalShortcuts(this); global_shortcuts->setEnabled(pref->use_global_shortcuts); @@ -230,7 +236,6 @@ void BaseGuiPlus::populateMainMenu() { #ifdef SCREENS_SUPPORT videoMenu->insertMenu(videosize_menu->menuAction(), sendToScreen_menu); - //optionsMenu->addMenu(sendToScreen_menu); if (!pref->tablet_mode) { viewMenu->addSeparator(); @@ -239,6 +244,10 @@ void BaseGuiPlus::populateMainMenu() { access_menu->insertMenu(tabletModeAct, sendToScreen_menu); #endif + +#ifdef SEND_AUDIO_OPTION + audioMenu->insertMenu(audiofilter_menu->menuAction(), sendAudio_menu); +#endif } bool BaseGuiPlus::startHidden() { @@ -312,6 +321,11 @@ void BaseGuiPlus::retranslateStrings() { detached_label->setText("<img src=\"" + Images::file("send_to_screen") + "\">" + "<p style=\"color: white;\">" + tr("Video is sent to an external screen") +"</p"); #endif + +#ifdef SEND_AUDIO_OPTION + sendAudio_menu->menuAction()->setText( tr("Send &audio to") ); + sendAudio_menu->menuAction()->setIcon(Images::icon("send_audio")); +#endif } void BaseGuiPlus::updateShowAllAct() { @@ -961,4 +975,49 @@ void BaseGuiPlus::toggleFullscreen(bool b) { */ #endif +#ifdef SEND_AUDIO_OPTION +void BaseGuiPlus::updateSendAudioMenu() { + qDebug("BaseGuiPlus::updateSendAudioMenu"); + + sendAudio_menu->clear(); + QAction * a = new QAction(sendAudio_menu); + a->setText(tr("&Default audio device")); + a->setData(""); + connect(a, SIGNAL(triggered()), this, SLOT(sendAudioClicked())); + sendAudio_menu->addAction(a); + +#if USE_PULSEAUDIO_DEVICES + addListToSendAudioMenu( DeviceInfo::paDevices(), "pulse", "pulse::"); +#endif + +#if USE_ALSA_DEVICES + addListToSendAudioMenu( DeviceInfo::alsaDevices(), "alsa", "alsa:device=hw="); +#endif + +#if USE_DSOUND_DEVICES + addListToSendAudioMenu( DeviceInfo::dsoundDevices(), "dsound", "dsound:device="); +#endif +} + +void BaseGuiPlus::addListToSendAudioMenu(const DeviceList & audio_devices, const QString & prefix_name, const QString & prefix_device) { + for (int n = 0; n < audio_devices.count(); n++) { + QAction * a = new QAction(sendAudio_menu); + QString device_id = audio_devices[n].ID().toString(); + a->setText(prefix_name + " (" + device_id + " - " + audio_devices[n].desc() + ")"); + a->setData(prefix_device + device_id); + connect(a, SIGNAL(triggered()), this, SLOT(sendAudioClicked())); + sendAudio_menu->addAction(a); + } +} + +void BaseGuiPlus::sendAudioClicked() { + QAction * a = qobject_cast<QAction *> (sender()); + if (a) { + QString device = a->data().toString(); + qDebug() << "BaseGuiPlus::sendAudioClicked: device:" << device; + core->changeAO(device); + } +} +#endif + #include "moc_baseguiplus.cpp" |