[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [artikulate] src: Select input device.
From: Andreas Cord-Landwehr <cordlandwehr () kde ! org>
Date: 2013-05-25 11:52:24
Message-ID: 20130525115224.CF6A1A60AB () git ! kde ! org
[Download RAW message or body]
Git commit ee646eb7b9864413c141a7a8a0da7de94a48e4e0 by Andreas Cord-Landwehr.
Committed on 25/05/2013 at 13:51.
Pushed by cordlandwehr into branch 'master'.
Select input device.
M +25 -8 src/core/capturedevicecontroller.cpp
M +5 -1 src/ui/sounddevicedialogpage.cpp
http://commits.kde.org/artikulate/ee646eb7b9864413c141a7a8a0da7de94a48e4e0
diff --git a/src/core/capturedevicecontroller.cpp b/src/core/capturedevicecontroller.cpp
index 7342496..3a67ded 100644
--- a/src/core/capturedevicecontroller.cpp
+++ b/src/core/capturedevicecontroller.cpp
@@ -19,6 +19,7 @@
*/
#include "capturedevicecontroller.h"
+#include <settings.h>
#include <QMediaRecorder>
#include <QAudioInput>
@@ -61,11 +62,26 @@ public:
m_captureSource = new QAudioCaptureSource(m_parent);
m_audioInput = new QMediaRecorder(m_captureSource, m_parent);
- kDebug() << "CREATED AUDIO-SOURCE";
- kDebug() << "available : " << m_captureSource->isAvailable();
- kDebug() << "inputs : " << m_captureSource->audioInputs();
- kDebug() << "active input : " << m_captureSource->activeAudioInput();
- kDebug() << "available codecs : " << m_audioInput->supportedAudioCodecs();
+ if (!m_captureSource->isAvailable()) {
+ kError() << "Audio capture source not available.";
+ }
+
+ // check and set input device
+ if (Settings::audioInputDevice().isEmpty()) {
+ kDebug() << "Audio device not set, using default value.";
+ Settings::setAudioInputDevice(m_captureSource->activeAudioInput());
+ }
+ if (m_captureSource->audioInputs().contains(Settings::audioInputDevice())) {
+ m_captureSource->setAudioInput(Settings::audioInputDevice());
+ } else {
+ kError() << "Could not set audio input device, device " << Settings::audioInputDevice()
+ << "is unknown. Using default device.";
+ }
+
+ // check code
+ if (!m_audioInput->supportedAudioCodecs().contains("audio/vorbis")) {
+ kError() << "Audio codec vorbis/ogg is not available, cannot record sound files.";
+ }
m_initialized = true;
}
@@ -127,9 +143,10 @@ void CaptureDeviceController::stopCapture()
void CaptureDeviceController::setDevice(const QString &deviceIdentifier)
{
- kDebug() << "Current input" << d->m_captureSource->activeAudioInput();
- kDebug() << "------> input" << deviceIdentifier;
-
+ if (!d->m_captureSource->audioInputs().contains(deviceIdentifier)) {
+ kError() << "Audio input devicde " << deviceIdentifier << " is unknown, aborting.";
+ return;
+ }
d->m_captureSource->setAudioInput(deviceIdentifier);
}
diff --git a/src/ui/sounddevicedialogpage.cpp b/src/ui/sounddevicedialogpage.cpp
index cde6a2e..413eeff 100644
--- a/src/ui/sounddevicedialogpage.cpp
+++ b/src/ui/sounddevicedialogpage.cpp
@@ -73,12 +73,16 @@ SoundDeviceDialogPage::SoundDeviceDialogPage()
SoundDeviceDialogPage::~SoundDeviceDialogPage()
{
+ CaptureDeviceController::self().stopCapture();
+ CaptureDeviceController::self().setDevice(Settings::audioInputDevice());
+
delete ui;
}
void SoundDeviceDialogPage::loadSettings()
{
-// ui->kcfg_AudioInputDevice(Settings::audioInputDevice()); //TODO
+ ui->kcfg_AudioInputDevice->setCurrentIndex(
+ ui->kcfg_AudioInputDevice->findText(Settings::audioInputDevice()));
ui->kcfg_AudioInputVolume->setValue(Settings::audioInputVolume());
ui->kcfg_AudioOutputVolume->setValue(Settings::audioOutputVolume());
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic