| 
									
										
										
										
											2016-05-04 17:07:26 +02:00
										 |  |  | #include <gui/audiodialog.h>
 | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | #include <QTreeWidgetItem>
 | 
					
						
							| 
									
										
										
										
											2016-05-04 17:07:26 +02:00
										 |  |  | #include "ui_audiodialog.h"
 | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | #include "audio/audiodeviceinfo.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-04 17:07:26 +02:00
										 |  |  | AudioDialog::AudioDialog(AudioDeviceInfo* audioDeviceInfo, QWidget* parent) : | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	QDialog(parent), | 
					
						
							| 
									
										
										
										
											2016-05-04 17:07:26 +02:00
										 |  |  | 	ui(new Ui::AudioDialog), | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	m_audioDeviceInfo(audioDeviceInfo) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	ui->setupUi(this); | 
					
						
							| 
									
										
										
										
											2017-01-06 12:43:18 +01:00
										 |  |  | 	QTreeWidgetItem* treeItem; | 
					
						
							|  |  |  | 	int i; | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-06 12:43:18 +01:00
										 |  |  | 	// out panel
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	treeItem = new QTreeWidgetItem(ui->audioOutTree); | 
					
						
							|  |  |  | 	treeItem->setText(0, tr("Default (use first suitable device)")); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	const QList<QAudioDeviceInfo>& outputDevices = m_audioDeviceInfo->getOutputDevices(); | 
					
						
							|  |  |  | 	i = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for(QList<QAudioDeviceInfo>::const_iterator it = outputDevices.begin(); it != outputDevices.end(); ++it) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         treeItem = new QTreeWidgetItem(ui->audioOutTree); | 
					
						
							|  |  |  |         treeItem->setText(0, qPrintable(it->deviceName())); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (i == m_audioDeviceInfo->getOutputDeviceIndex()) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             ui->audioOutTree->setCurrentItem(treeItem); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         i++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // in panel
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     treeItem = new QTreeWidgetItem(ui->audioInTree); | 
					
						
							|  |  |  |     treeItem->setText(0, tr("Default (use first suitable device)")); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const QList<QAudioDeviceInfo>& inputDevices = m_audioDeviceInfo->getInputDevices(); | 
					
						
							|  |  |  |     i = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for(QList<QAudioDeviceInfo>::const_iterator it = inputDevices.begin(); it != inputDevices.end(); ++it) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         treeItem = new QTreeWidgetItem(ui->audioInTree); | 
					
						
							|  |  |  |         treeItem->setText(0, qPrintable(it->deviceName())); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (i == m_audioDeviceInfo->getInputDeviceIndex()) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             ui->audioInTree->setCurrentItem(treeItem); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         i++; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-01-06 03:02:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if(ui->audioOutTree->currentItem() == NULL) | 
					
						
							|  |  |  |         ui->audioOutTree->setCurrentItem(ui->audioOutTree->topLevelItem(0)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if(ui->audioInTree->currentItem() == NULL) | 
					
						
							|  |  |  | 		ui->audioInTree->setCurrentItem(ui->audioInTree->topLevelItem(0)); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ui->tabWidget->setCurrentIndex(0); | 
					
						
							| 
									
										
										
										
											2017-01-06 12:43:18 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     m_inputVolume = m_audioDeviceInfo->m_inputVolume; | 
					
						
							|  |  |  | 	ui->inputVolume->setValue((int) (m_inputVolume * 100.0f)); | 
					
						
							|  |  |  | 	ui->inputVolumeText->setText(QString("%1").arg(m_inputVolume, 0, 'f', 2)); | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-04 17:07:26 +02:00
										 |  |  | AudioDialog::~AudioDialog() | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | { | 
					
						
							|  |  |  | 	delete ui; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-04 17:07:26 +02:00
										 |  |  | void AudioDialog::accept() | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2017-01-06 12:43:18 +01:00
										 |  |  |     int inIndex = ui->audioInTree->indexOfTopLevelItem(ui->audioInTree->currentItem()); | 
					
						
							|  |  |  |     int outIndex = ui->audioOutTree->indexOfTopLevelItem(ui->audioOutTree->currentItem()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_audioDeviceInfo->m_inputDeviceIndex = inIndex - 1; | 
					
						
							|  |  |  |     m_audioDeviceInfo->m_outputDeviceIndex = outIndex - 1; | 
					
						
							|  |  |  |     m_audioDeviceInfo->m_inputVolume = m_inputVolume; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-18 16:52:39 +01:00
										 |  |  | 	QDialog::accept(); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-01-06 03:13:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | void AudioDialog::on_inputVolume_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-01-06 12:43:18 +01:00
										 |  |  |     m_inputVolume = (float) value / 100.0f; | 
					
						
							|  |  |  |     ui->inputVolumeText->setText(QString("%1").arg(m_inputVolume, 0, 'f', 2)); | 
					
						
							| 
									
										
										
										
											2017-01-06 03:13:53 +01:00
										 |  |  | } |