[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