mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 04:50:29 -04:00 
			
		
		
		
	Multiple audio support: removed audio methods from DSP engine and use AudioDeviceManager instead
This commit is contained in:
		
							parent
							
								
									f387ae884c
								
							
						
					
					
						commit
						15e62814de
					
				| @ -63,7 +63,7 @@ AMDemod::AMDemod(DeviceSourceAPI *deviceAPI) : | ||||
| 
 | ||||
| 	m_magsq = 0.0; | ||||
| 
 | ||||
| 	DSPEngine::instance()->addAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo); | ||||
|     m_audioNetSink = new AudioNetSink(0); // parent thread allocated dynamically
 | ||||
|     m_audioNetSink->setDestination(m_settings.m_udpAddress, m_settings.m_udpPort); | ||||
| 
 | ||||
| @ -78,7 +78,7 @@ AMDemod::AMDemod(DeviceSourceAPI *deviceAPI) : | ||||
| 
 | ||||
| AMDemod::~AMDemod() | ||||
| { | ||||
| 	DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
|     delete m_audioNetSink; | ||||
|     m_deviceAPI->removeChannelAPI(this); | ||||
|     m_deviceAPI->removeThreadedSink(m_threadedChannelizer); | ||||
|  | ||||
| @ -84,7 +84,7 @@ BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) : | ||||
| 	m_audioBuffer.resize(16384); | ||||
| 	m_audioBufferFill = 0; | ||||
| 
 | ||||
| 	DSPEngine::instance()->addAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo); | ||||
|     m_audioNetSink = new AudioNetSink(0); // parent thread allocated dynamically
 | ||||
|     m_audioNetSink->setDestination(m_settings.m_udpAddress, m_settings.m_udpPort); | ||||
|     m_audioNetSink->setStereo(true); | ||||
| @ -105,7 +105,7 @@ BFMDemod::~BFMDemod() | ||||
| 		delete m_rfFilter; | ||||
| 	} | ||||
| 
 | ||||
| 	DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
| 	delete m_audioNetSink; | ||||
| 
 | ||||
| 	m_deviceAPI->removeChannelAPI(this); | ||||
|  | ||||
| @ -72,8 +72,8 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) : | ||||
|     m_magsqPeak = 0.0f; | ||||
|     m_magsqCount = 0; | ||||
| 
 | ||||
| 	DSPEngine::instance()->addAudioSink(&m_audioFifo1); | ||||
|     DSPEngine::instance()->addAudioSink(&m_audioFifo2); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo1); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo2); | ||||
| 
 | ||||
| //    m_udpBufferAudio = new UDPSink<AudioSample>(this, m_udpBlockSize, m_settings.m_udpPort);
 | ||||
| //    m_audioFifo1.setUDPSink(m_udpBufferAudio);
 | ||||
| @ -96,8 +96,8 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) : | ||||
| DSDDemod::~DSDDemod() | ||||
| { | ||||
|     delete[] m_sampleBuffer; | ||||
| 	DSPEngine::instance()->removeAudioSink(&m_audioFifo1); | ||||
|     DSPEngine::instance()->removeAudioSink(&m_audioFifo2); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo1); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo2); | ||||
| //    delete m_udpBufferAudio;
 | ||||
|     delete m_audioNetSink; | ||||
| 
 | ||||
|  | ||||
| @ -80,7 +80,7 @@ NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) : | ||||
| 	m_ctcssDetector.setCoefficients(3000, 6000.0); // 0.5s / 2 Hz resolution
 | ||||
| 	m_afSquelch.setCoefficients(24, 600, 48000.0, 200, 0); // 0.5ms test period, 300ms average span, 48kS/s SR, 100ms attack, no decay
 | ||||
| 
 | ||||
| 	DSPEngine::instance()->addAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo); | ||||
| 	m_audioNetSink = new AudioNetSink(0); // parent thread allocated dynamically
 | ||||
| 	m_audioNetSink->setDestination(m_settings.m_udpAddress, m_settings.m_udpPort); | ||||
| 
 | ||||
| @ -95,7 +95,7 @@ NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) : | ||||
| 
 | ||||
| NFMDemod::~NFMDemod() | ||||
| { | ||||
| 	DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
| 	delete m_audioNetSink; | ||||
| 	m_deviceAPI->removeChannelAPI(this); | ||||
|     m_deviceAPI->removeThreadedSink(m_threadedChannelizer); | ||||
|  | ||||
| @ -85,7 +85,7 @@ SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) : | ||||
| 	SSBFilter = new fftfilt(m_LowCutoff / m_audioSampleRate, m_Bandwidth / m_audioSampleRate, ssbFftLen); | ||||
| 	DSBFilter = new fftfilt((2.0f * m_Bandwidth) / m_audioSampleRate, 2 * ssbFftLen); | ||||
| 
 | ||||
| 	DSPEngine::instance()->addAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo); | ||||
|     m_audioNetSink = new AudioNetSink(0); // parent thread allocated dynamically
 | ||||
|     m_audioNetSink->setDestination(m_settings.m_udpAddress, m_settings.m_udpPort); | ||||
| 
 | ||||
| @ -102,7 +102,7 @@ SSBDemod::~SSBDemod() | ||||
| { | ||||
| 	if (SSBFilter) delete SSBFilter; | ||||
| 	if (DSBFilter) delete DSBFilter; | ||||
| 	DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
|     delete m_audioNetSink; | ||||
| 
 | ||||
| 	m_deviceAPI->removeChannelAPI(this); | ||||
|  | ||||
| @ -59,7 +59,7 @@ WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) : | ||||
| 	m_audioBuffer.resize(16384); | ||||
| 	m_audioBufferFill = 0; | ||||
| 
 | ||||
| 	DSPEngine::instance()->addAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo); | ||||
|     m_audioNetSink = new AudioNetSink(0); // parent thread allocated dynamically
 | ||||
|     m_audioNetSink->setDestination(m_settings.m_udpAddress, m_settings.m_udpPort); | ||||
| 
 | ||||
| @ -79,7 +79,7 @@ WFMDemod::~WFMDemod() | ||||
| 		delete m_rfFilter; | ||||
| 	} | ||||
| 
 | ||||
| 	DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
|     delete m_audioNetSink; | ||||
| 
 | ||||
| 	m_deviceAPI->removeChannelAPI(this); | ||||
|  | ||||
| @ -118,7 +118,7 @@ UDPSrc::~UDPSrc() | ||||
|     delete m_udpBufferMono16; | ||||
| 	delete[] m_udpAudioBuf; | ||||
| 	if (UDPFilter) delete UDPFilter; | ||||
| 	if (m_settings.m_audioActive) DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
| 	m_deviceAPI->removeChannelAPI(this); | ||||
|     m_deviceAPI->removeThreadedSink(m_threadedChannelizer); | ||||
|     delete m_threadedChannelizer; | ||||
| @ -543,11 +543,11 @@ void UDPSrc::applySettings(const UDPSrcSettings& settings, bool force) | ||||
|         if (settings.m_audioActive) | ||||
|         { | ||||
|             m_audioBufferFill = 0; | ||||
|             DSPEngine::instance()->addAudioSink(&m_audioFifo); | ||||
|             DSPEngine::instance()->getAudioDeviceManager()->addAudioSink(&m_audioFifo); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             DSPEngine::instance()->removeAudioSink(&m_audioFifo); | ||||
|             DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -66,7 +66,7 @@ AMMod::AMMod(DeviceSinkAPI *deviceAPI) : | ||||
| 	m_magsq = 0.0; | ||||
| 
 | ||||
| 	m_toneNco.setFreq(1000.0, m_settings.m_audioSampleRate); | ||||
| 	DSPEngine::instance()->addAudioSource(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSource(&m_audioFifo); | ||||
| 
 | ||||
| 	// CW keyer
 | ||||
| 	m_cwKeyer.setSampleRate(m_settings.m_audioSampleRate); | ||||
| @ -88,7 +88,7 @@ AMMod::~AMMod() | ||||
|     m_deviceAPI->removeThreadedSource(m_threadedChannelizer); | ||||
|     delete m_threadedChannelizer; | ||||
|     delete m_channelizer; | ||||
|     DSPEngine::instance()->removeAudioSource(&m_audioFifo); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo); | ||||
| } | ||||
| 
 | ||||
| void AMMod::pull(Sample& sample) | ||||
|  | ||||
| @ -73,7 +73,7 @@ NFMMod::NFMMod(DeviceSinkAPI *deviceAPI) : | ||||
| 
 | ||||
| 	m_toneNco.setFreq(1000.0, m_settings.m_audioSampleRate); | ||||
| 	m_ctcssNco.setFreq(88.5, m_settings.m_audioSampleRate); | ||||
| 	DSPEngine::instance()->addAudioSource(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSource(&m_audioFifo); | ||||
| 
 | ||||
|     // CW keyer
 | ||||
|     m_cwKeyer.setSampleRate(m_settings.m_audioSampleRate); | ||||
| @ -91,7 +91,7 @@ NFMMod::NFMMod(DeviceSinkAPI *deviceAPI) : | ||||
| 
 | ||||
| NFMMod::~NFMMod() | ||||
| { | ||||
|     DSPEngine::instance()->removeAudioSource(&m_audioFifo); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo); | ||||
|     m_deviceAPI->removeChannelAPI(this); | ||||
|     m_deviceAPI->removeThreadedSource(m_threadedChannelizer); | ||||
|     delete m_threadedChannelizer; | ||||
|  | ||||
| @ -88,7 +88,7 @@ SSBMod::SSBMod(DeviceSinkAPI *deviceAPI) : | ||||
| 	m_magsq = 0.0; | ||||
| 
 | ||||
| 	m_toneNco.setFreq(1000.0, m_settings.m_audioSampleRate); | ||||
| 	DSPEngine::instance()->addAudioSource(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSource(&m_audioFifo); | ||||
| 
 | ||||
| 	// CW keyer
 | ||||
| 	m_cwKeyer.setSampleRate(m_settings.m_audioSampleRate); | ||||
| @ -126,7 +126,7 @@ SSBMod::~SSBMod() | ||||
|         delete m_DSBFilterBuffer; | ||||
|     } | ||||
| 
 | ||||
|     DSPEngine::instance()->removeAudioSource(&m_audioFifo); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo); | ||||
| 
 | ||||
|     m_deviceAPI->removeChannelAPI(this); | ||||
|     m_deviceAPI->removeThreadedSource(m_threadedChannelizer); | ||||
|  | ||||
| @ -75,7 +75,7 @@ WFMMod::WFMMod(DeviceSinkAPI *deviceAPI) : | ||||
| 
 | ||||
| 	m_toneNco.setFreq(1000.0, m_settings.m_audioSampleRate); | ||||
| 	m_toneNcoRF.setFreq(1000.0, m_outputSampleRate); | ||||
| 	DSPEngine::instance()->addAudioSource(&m_audioFifo); | ||||
| 	DSPEngine::instance()->getAudioDeviceManager()->addAudioSource(&m_audioFifo); | ||||
| 
 | ||||
|     // CW keyer
 | ||||
|     m_cwKeyer.setSampleRate(m_outputSampleRate); | ||||
| @ -96,7 +96,7 @@ WFMMod::~WFMMod() | ||||
| { | ||||
|     delete m_rfFilter; | ||||
|     delete[] m_rfFilterBuffer; | ||||
|     DSPEngine::instance()->removeAudioSource(&m_audioFifo); | ||||
|     DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo); | ||||
|     m_deviceAPI->removeChannelAPI(this); | ||||
|     m_deviceAPI->removeThreadedSource(m_threadedChannelizer); | ||||
|     delete m_threadedChannelizer; | ||||
|  | ||||
| @ -91,52 +91,6 @@ void DSPEngine::removeLastDeviceSinkEngine() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::startAudioOutput() | ||||
| { | ||||
|     m_audioOutput.start(m_audioOutputDeviceIndex, m_audioOutputSampleRate); | ||||
|     m_audioOutputSampleRate = m_audioOutput.getRate(); // update with actual rate
 | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::stopAudioOutput() | ||||
| { | ||||
|     m_audioOutput.stop(); | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::startAudioInput() | ||||
| { | ||||
|     m_audioInput.start(m_audioInputDeviceIndex, m_audioInputSampleRate); | ||||
|     m_audioInputSampleRate = m_audioInput.getRate(); // update with actual rate
 | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::stopAudioInput() | ||||
| { | ||||
|     m_audioInput.stop(); | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::addAudioSink(AudioFifo* audioFifo) | ||||
| { | ||||
| 	qDebug("DSPEngine::addAudioSink"); | ||||
| 	m_audioOutput.addFifo(audioFifo); | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::removeAudioSink(AudioFifo* audioFifo) | ||||
| { | ||||
| 	qDebug("DSPEngine::removeAudioSink"); | ||||
| 	m_audioOutput.removeFifo(audioFifo); | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::addAudioSource(AudioFifo* audioFifo) | ||||
| { | ||||
|     qDebug("DSPEngine::addAudioSource"); | ||||
|     m_audioInput.addFifo(audioFifo); | ||||
| } | ||||
| 
 | ||||
| void DSPEngine::removeAudioSource(AudioFifo* audioFifo) | ||||
| { | ||||
|     qDebug("DSPEngine::removeAudioSource"); | ||||
|     m_audioInput.removeFifo(audioFifo); | ||||
| } | ||||
| 
 | ||||
| DSPDeviceSourceEngine *DSPEngine::getDeviceSourceEngineByUID(uint uid) | ||||
| { | ||||
|     std::vector<DSPDeviceSourceEngine*>::iterator it = m_deviceSourceEngines.begin(); | ||||
|  | ||||
| @ -50,14 +50,11 @@ public: | ||||
| 	void removeLastDeviceSinkEngine(); | ||||
| 
 | ||||
| 	AudioDeviceManager *getAudioDeviceManager() { return &m_audioDeviceManager; } | ||||
| 	void startAudioOutput(); | ||||
| 	void stopAudioOutput(); | ||||
|     void setAudioOutputDeviceIndex(int index) { m_audioOutputDeviceIndex = index; } | ||||
| 	void startAudioOutput() { m_audioDeviceManager.startAudioOutput(); } | ||||
| 	void stopAudioOutput() { m_audioDeviceManager.stopAudioOutput(); } | ||||
| 
 | ||||
|     void startAudioInput(); | ||||
|     void stopAudioInput(); | ||||
|     void setAudioInputVolume(float volume) { m_audioInput.setVolume(volume); } | ||||
|     void setAudioInputDeviceIndex(int index) { m_audioInputDeviceIndex = index; } | ||||
|     void startAudioInput() { m_audioDeviceManager.startAudioInput(); } | ||||
|     void stopAudioInput() {m_audioDeviceManager.stopAudioInput(); } | ||||
| 
 | ||||
|     DSPDeviceSourceEngine *getDeviceSourceEngineByIndex(uint deviceIndex) { return m_deviceSourceEngines[deviceIndex]; } | ||||
|     DSPDeviceSourceEngine *getDeviceSourceEngineByUID(uint uid); | ||||
| @ -65,12 +62,6 @@ public: | ||||
|     DSPDeviceSinkEngine *getDeviceSinkEngineByIndex(uint deviceIndex) { return m_deviceSinkEngines[deviceIndex]; } | ||||
|     DSPDeviceSinkEngine *getDeviceSinkEngineByUID(uint uid); | ||||
| 
 | ||||
|     void addAudioSink(AudioFifo* audioFifo); //!< Add the audio sink
 | ||||
| 	void removeAudioSink(AudioFifo* audioFifo); //!< Remove the audio sink
 | ||||
| 
 | ||||
| 	void addAudioSource(AudioFifo* audioFifo); //!< Add an audio source
 | ||||
|     void removeAudioSource(AudioFifo* audioFifo); //!< Remove an audio source
 | ||||
| 
 | ||||
| 	// Serial DV methods:
 | ||||
| 
 | ||||
| 	bool hasDVSerialSupport(); | ||||
|  | ||||
| @ -1,13 +1,13 @@ | ||||
| #include <gui/audiodialog.h> | ||||
| #include "audiodialog.h" | ||||
| 
 | ||||
| #include <audio/audiodevicemanager.h> | ||||
| #include <QTreeWidgetItem> | ||||
| #include "ui_audiodialog.h" | ||||
| 
 | ||||
| AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent) : | ||||
| AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceManager, QWidget* parent) : | ||||
| 	QDialog(parent), | ||||
| 	ui(new Ui::AudioDialog), | ||||
| 	m_audioDeviceInfo(audioDeviceInfo) | ||||
| 	m_audioDeviceManager(audioDeviceManager) | ||||
| { | ||||
| 	ui->setupUi(this); | ||||
| 	QTreeWidgetItem* treeItem; | ||||
| @ -18,7 +18,7 @@ AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent) : | ||||
| 	treeItem = new QTreeWidgetItem(ui->audioOutTree); | ||||
| 	treeItem->setText(0, tr("Default (use first suitable device)")); | ||||
| 
 | ||||
| 	const QList<QAudioDeviceInfo>& outputDevices = m_audioDeviceInfo->getOutputDevices(); | ||||
| 	const QList<QAudioDeviceInfo>& outputDevices = m_audioDeviceManager->getOutputDevices(); | ||||
| 	i = 0; | ||||
| 
 | ||||
|     for(QList<QAudioDeviceInfo>::const_iterator it = outputDevices.begin(); it != outputDevices.end(); ++it) | ||||
| @ -26,7 +26,7 @@ AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent) : | ||||
|         treeItem = new QTreeWidgetItem(ui->audioOutTree); | ||||
|         treeItem->setText(0, qPrintable(it->deviceName())); | ||||
| 
 | ||||
|         if (i == m_audioDeviceInfo->getOutputDeviceIndex()) | ||||
|         if (i == m_audioDeviceManager->getOutputDeviceIndex()) | ||||
|         { | ||||
|             ui->audioOutTree->setCurrentItem(treeItem); | ||||
|         } | ||||
| @ -39,7 +39,7 @@ AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent) : | ||||
|     treeItem = new QTreeWidgetItem(ui->audioInTree); | ||||
|     treeItem->setText(0, tr("Default (use first suitable device)")); | ||||
| 
 | ||||
|     const QList<QAudioDeviceInfo>& inputDevices = m_audioDeviceInfo->getInputDevices(); | ||||
|     const QList<QAudioDeviceInfo>& inputDevices = m_audioDeviceManager->getInputDevices(); | ||||
|     i = 0; | ||||
| 
 | ||||
|     for(QList<QAudioDeviceInfo>::const_iterator it = inputDevices.begin(); it != inputDevices.end(); ++it) | ||||
| @ -47,7 +47,7 @@ AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent) : | ||||
|         treeItem = new QTreeWidgetItem(ui->audioInTree); | ||||
|         treeItem->setText(0, qPrintable(it->deviceName())); | ||||
| 
 | ||||
|         if (i == m_audioDeviceInfo->getInputDeviceIndex()) | ||||
|         if (i == m_audioDeviceManager->getInputDeviceIndex()) | ||||
|         { | ||||
|             ui->audioInTree->setCurrentItem(treeItem); | ||||
|         } | ||||
| @ -65,7 +65,7 @@ AudioDialog::AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent) : | ||||
| 
 | ||||
| 	ui->tabWidget->setCurrentIndex(0); | ||||
| 
 | ||||
|     m_inputVolume = m_audioDeviceInfo->m_inputVolume; | ||||
|     m_inputVolume = m_audioDeviceManager->m_inputVolume; | ||||
| 	ui->inputVolume->setValue((int) (m_inputVolume * 100.0f)); | ||||
| 	ui->inputVolumeText->setText(QString("%1").arg(m_inputVolume, 0, 'f', 2)); | ||||
| } | ||||
| @ -80,9 +80,9 @@ void AudioDialog::accept() | ||||
|     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; | ||||
|     m_audioDeviceManager->m_inputDeviceIndex = inIndex - 1; | ||||
|     m_audioDeviceManager->m_outputDeviceIndex = outIndex - 1; | ||||
|     m_audioDeviceManager->m_inputVolume = m_inputVolume; | ||||
| 
 | ||||
| 	QDialog::accept(); | ||||
| } | ||||
|  | ||||
| @ -15,13 +15,13 @@ class SDRGUI_API AudioDialog : public QDialog { | ||||
| 	Q_OBJECT | ||||
| 
 | ||||
| public: | ||||
| 	explicit AudioDialog(AudioDeviceManager* audioDeviceInfo, QWidget* parent = NULL); | ||||
| 	explicit AudioDialog(AudioDeviceManager* audioDeviceManager, QWidget* parent = 0); | ||||
| 	~AudioDialog(); | ||||
| 
 | ||||
| private: | ||||
| 	Ui::AudioDialog* ui; | ||||
| 
 | ||||
| 	AudioDeviceManager* m_audioDeviceInfo; | ||||
| 	AudioDeviceManager* m_audioDeviceManager; | ||||
| 	float m_inputVolume; | ||||
| 
 | ||||
| private slots: | ||||
|  | ||||
| @ -1416,9 +1416,6 @@ void MainWindow::on_action_Audio_triggered() | ||||
| { | ||||
| 	AudioDialog audioDialog(m_dspEngine->getAudioDeviceManager(), this); | ||||
| 	audioDialog.exec(); | ||||
| 	m_dspEngine->setAudioInputVolume(m_dspEngine->getAudioDeviceManager()->getInputVolume()); | ||||
| 	m_dspEngine->setAudioInputDeviceIndex(m_dspEngine->getAudioDeviceManager()->getInputDeviceIndex()); | ||||
| 	m_dspEngine->setAudioOutputDeviceIndex(m_dspEngine->getAudioDeviceManager()->getOutputDeviceIndex()); | ||||
| } | ||||
| 
 | ||||
| void MainWindow::on_action_Logging_triggered() | ||||
|  | ||||
| @ -280,10 +280,6 @@ int WebAPIAdapterGUI::instanceAudioPatch( | ||||
|     m_mainWindow.m_dspEngine->getAudioDeviceManager()->setInputDeviceIndex(inputIndex); | ||||
|     m_mainWindow.m_dspEngine->getAudioDeviceManager()->setOutputDeviceIndex(outputIndex); | ||||
| 
 | ||||
|     m_mainWindow.m_dspEngine->setAudioInputVolume(inputVolume); | ||||
|     m_mainWindow.m_dspEngine->setAudioInputDeviceIndex(inputIndex); | ||||
|     m_mainWindow.m_dspEngine->setAudioOutputDeviceIndex(outputIndex); | ||||
| 
 | ||||
|     response.setInputVolume(m_mainWindow.m_dspEngine->getAudioDeviceManager()->getInputVolume()); | ||||
|     response.setInputIndex(m_mainWindow.m_dspEngine->getAudioDeviceManager()->getInputDeviceIndex()); | ||||
|     response.setOutputIndex(m_mainWindow.m_dspEngine->getAudioDeviceManager()->getOutputDeviceIndex()); | ||||
|  | ||||
| @ -281,10 +281,6 @@ int WebAPIAdapterSrv::instanceAudioPatch( | ||||
|     m_mainCore.m_dspEngine->getAudioDeviceManager()->setInputDeviceIndex(inputIndex); | ||||
|     m_mainCore.m_dspEngine->getAudioDeviceManager()->setOutputDeviceIndex(outputIndex); | ||||
| 
 | ||||
|     m_mainCore.m_dspEngine->setAudioInputVolume(inputVolume); | ||||
|     m_mainCore.m_dspEngine->setAudioInputDeviceIndex(inputIndex); | ||||
|     m_mainCore.m_dspEngine->setAudioOutputDeviceIndex(outputIndex); | ||||
| 
 | ||||
|     response.setInputVolume(m_mainCore.m_dspEngine->getAudioDeviceManager()->getInputVolume()); | ||||
|     response.setInputIndex(m_mainCore.m_dspEngine->getAudioDeviceManager()->getInputDeviceIndex()); | ||||
|     response.setOutputIndex(m_mainCore.m_dspEngine->getAudioDeviceManager()->getOutputDeviceIndex()); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user