mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-29 15:48:52 -04:00
New audio devices dialog and handling: use selected audio devices
This commit is contained in:
parent
49fba5b103
commit
58b90c7914
@ -27,7 +27,9 @@ DSPEngine::DSPEngine() :
|
|||||||
m_deviceSourceEnginesUIDSequence(0),
|
m_deviceSourceEnginesUIDSequence(0),
|
||||||
m_deviceSinkEnginesUIDSequence(0),
|
m_deviceSinkEnginesUIDSequence(0),
|
||||||
m_audioOutputSampleRate(48000), // Use default output device at 48 kHz
|
m_audioOutputSampleRate(48000), // Use default output device at 48 kHz
|
||||||
m_audioInputSampleRate(48000) // Use default input device at 48 kHz
|
m_audioInputSampleRate(48000), // Use default input device at 48 kHz
|
||||||
|
m_audioInputDeviceIndex(-1), // default device
|
||||||
|
m_audioOutputDeviceIndex(-1) // default device
|
||||||
{
|
{
|
||||||
m_dvSerialSupport = false;
|
m_dvSerialSupport = false;
|
||||||
}
|
}
|
||||||
@ -90,7 +92,7 @@ void DSPEngine::removeLastDeviceSinkEngine()
|
|||||||
|
|
||||||
void DSPEngine::startAudioOutput()
|
void DSPEngine::startAudioOutput()
|
||||||
{
|
{
|
||||||
m_audioOutput.start(-1, m_audioOutputSampleRate);
|
m_audioOutput.start(m_audioOutputDeviceIndex, m_audioOutputSampleRate);
|
||||||
m_audioOutputSampleRate = m_audioOutput.getRate(); // update with actual rate
|
m_audioOutputSampleRate = m_audioOutput.getRate(); // update with actual rate
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +103,7 @@ void DSPEngine::stopAudioOutput()
|
|||||||
|
|
||||||
void DSPEngine::startAudioOutputImmediate()
|
void DSPEngine::startAudioOutputImmediate()
|
||||||
{
|
{
|
||||||
m_audioOutput.start(-1, m_audioOutputSampleRate);
|
m_audioOutput.start(m_audioOutputDeviceIndex, m_audioOutputSampleRate);
|
||||||
m_audioOutputSampleRate = m_audioOutput.getRate(); // update with actual rate
|
m_audioOutputSampleRate = m_audioOutput.getRate(); // update with actual rate
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,7 +114,7 @@ void DSPEngine::stopAudioOutputImmediate()
|
|||||||
|
|
||||||
void DSPEngine::startAudioInput()
|
void DSPEngine::startAudioInput()
|
||||||
{
|
{
|
||||||
m_audioInput.start(-1, m_audioInputSampleRate);
|
m_audioInput.start(m_audioInputDeviceIndex, m_audioInputSampleRate);
|
||||||
m_audioInputSampleRate = m_audioInput.getRate(); // update with actual rate
|
m_audioInputSampleRate = m_audioInput.getRate(); // update with actual rate
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +125,7 @@ void DSPEngine::stopAudioInput()
|
|||||||
|
|
||||||
void DSPEngine::startAudioInputImmediate()
|
void DSPEngine::startAudioInputImmediate()
|
||||||
{
|
{
|
||||||
m_audioInput.start(-1, m_audioInputSampleRate);
|
m_audioInput.start(m_audioInputDeviceIndex, m_audioInputSampleRate);
|
||||||
m_audioInputSampleRate = m_audioInput.getRate(); // update with actual rate
|
m_audioInputSampleRate = m_audioInput.getRate(); // update with actual rate
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,12 +50,14 @@ public:
|
|||||||
void stopAudioOutput();
|
void stopAudioOutput();
|
||||||
void startAudioOutputImmediate();
|
void startAudioOutputImmediate();
|
||||||
void stopAudioOutputImmediate();
|
void stopAudioOutputImmediate();
|
||||||
|
void setAudioOutputDeviceIndex(int index) { m_audioOutputDeviceIndex = index; }
|
||||||
|
|
||||||
void startAudioInput();
|
void startAudioInput();
|
||||||
void stopAudioInput();
|
void stopAudioInput();
|
||||||
void startAudioInputImmediate();
|
void startAudioInputImmediate();
|
||||||
void stopAudioInputImmediate();
|
void stopAudioInputImmediate();
|
||||||
void setAudioInputVolume(float volume) { m_audioInput.setVolume(volume); }
|
void setAudioInputVolume(float volume) { m_audioInput.setVolume(volume); }
|
||||||
|
void setAudioInputDeviceIndex(int index) { m_audioInputDeviceIndex = index; }
|
||||||
|
|
||||||
DSPDeviceSourceEngine *getDeviceSourceEngineByIndex(uint deviceIndex) { return m_deviceSourceEngines[deviceIndex]; }
|
DSPDeviceSourceEngine *getDeviceSourceEngineByIndex(uint deviceIndex) { return m_deviceSourceEngines[deviceIndex]; }
|
||||||
DSPDeviceSourceEngine *getDeviceSourceEngineByUID(uint uid);
|
DSPDeviceSourceEngine *getDeviceSourceEngineByUID(uint uid);
|
||||||
@ -105,6 +107,8 @@ private:
|
|||||||
AudioInput m_audioInput;
|
AudioInput m_audioInput;
|
||||||
uint m_audioOutputSampleRate;
|
uint m_audioOutputSampleRate;
|
||||||
uint m_audioInputSampleRate;
|
uint m_audioInputSampleRate;
|
||||||
|
int m_audioInputDeviceIndex;
|
||||||
|
int m_audioOutputDeviceIndex;
|
||||||
bool m_dvSerialSupport;
|
bool m_dvSerialSupport;
|
||||||
#ifdef DSD_USE_SERIALDV
|
#ifdef DSD_USE_SERIALDV
|
||||||
DVSerialEngine m_dvSerialEngine;
|
DVSerialEngine m_dvSerialEngine;
|
||||||
|
@ -740,6 +740,8 @@ void MainWindow::on_action_Audio_triggered()
|
|||||||
AudioDialog audioDialog(m_audioDeviceInfo, this);
|
AudioDialog audioDialog(m_audioDeviceInfo, this);
|
||||||
audioDialog.exec();
|
audioDialog.exec();
|
||||||
m_dspEngine->setAudioInputVolume(m_audioDeviceInfo->getInputVolume());
|
m_dspEngine->setAudioInputVolume(m_audioDeviceInfo->getInputVolume());
|
||||||
|
m_dspEngine->setAudioInputDeviceIndex(m_audioDeviceInfo->getInputDeviceIndex());
|
||||||
|
m_dspEngine->setAudioOutputDeviceIndex(m_audioDeviceInfo->getOutputDeviceIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_action_My_Position_triggered()
|
void MainWindow::on_action_My_Position_triggered()
|
||||||
|
Loading…
Reference in New Issue
Block a user