summaryrefslogtreecommitdiff
path: root/src/baseguiplus.cpp
diff options
context:
space:
mode:
authorMateusz Łukasik <mati75@linuxmint.pl>2016-10-09 22:11:11 +0200
committerMateusz Łukasik <mati75@linuxmint.pl>2016-10-09 22:11:11 +0200
commit392e79606ccba0695027b63ed872c4b0a491cd8b (patch)
treeeb7466234f0b0ee059ff39270739c928a2bceae2 /src/baseguiplus.cpp
parent029acf6821f034583700c26b013ffc67ad7690f7 (diff)
New upstream version 16.9.0~ds0
Diffstat (limited to 'src/baseguiplus.cpp')
-rw-r--r--src/baseguiplus.cpp61
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"