From a4c0ceffca58ddc5a1a2988ca0bec3299a0487a1 Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Sat, 17 Nov 2007 17:22:23 +0000 Subject: [PATCH] Remember wizard settings for OSS/ALSA. git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@853 05730e5d-ab1b-0410-a4ac-84af385074fa --- src/mumble/ALSAAudio.cpp | 32 ++++++++++++++++++++++++-------- src/mumble/OSS.cpp | 30 ++++++++++++++++++++++-------- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/mumble/ALSAAudio.cpp b/src/mumble/ALSAAudio.cpp index a1d6b27be..ef4fa9e63 100644 --- a/src/mumble/ALSAAudio.cpp +++ b/src/mumble/ALSAAudio.cpp @@ -77,11 +77,19 @@ AudioInput *ALSAAudioInputRegistrar::create() { const QList ALSAAudioInputRegistrar::getDeviceChoices() { QList qlReturn; - QHash::const_iterator i; + QStringList qlInputDevs = cards.qhInput.keys(); + qSort(qlInputDevs); + + if (qlInputDevs.contains(g.s.qsALSAInput)) { + qlInputDevs.removeAll(g.s.qsALSAInput); + qlInputDevs.prepend(g.s.qsALSAInput); + } + + foreach(const QString &dev, qlInputDevs) { + QString t=QString::fromLatin1("[%1] %2").arg(dev).arg(cards.qhInput[dev]); + qlReturn << audioDevice(t, dev); + } - for (i=cards.qhInput.constBegin();i!=cards.qhInput.constEnd();++i) { - qlReturn << audioDevice(i.value(), i.key()); - } return qlReturn; } @@ -100,11 +108,19 @@ AudioOutput *ALSAAudioOutputRegistrar::create() { const QList ALSAAudioOutputRegistrar::getDeviceChoices() { QList qlReturn; - QHash::const_iterator i; + QStringList qlOutputDevs = cards.qhOutput.keys(); + qSort(qlOutputDevs); + + if (qlOutputDevs.contains(g.s.qsALSAOutput)) { + qlOutputDevs.removeAll(g.s.qsALSAOutput); + qlOutputDevs.prepend(g.s.qsALSAOutput); + } + + foreach(const QString &dev, qlOutputDevs) { + QString t=QString::fromLatin1("[%1] %2").arg(dev).arg(cards.qhInput[dev]); + qlReturn << audioDevice(t, dev); + } - for (i=cards.qhOutput.constBegin();i!=cards.qhOutput.constEnd();++i) { - qlReturn << audioDevice(i.value(), i.key()); - } return qlReturn; } diff --git a/src/mumble/OSS.cpp b/src/mumble/OSS.cpp index 8ccfa3101..da056158c 100644 --- a/src/mumble/OSS.cpp +++ b/src/mumble/OSS.cpp @@ -82,11 +82,18 @@ AudioInput *OSSInputRegistrar::create() { const QList OSSInputRegistrar::getDeviceChoices() { QList qlReturn; - QHash::const_iterator i; - - for (i=cards.qhInput.constBegin();i!=cards.qhInput.constEnd();++i) { - qlReturn << audioDevice(i.value(), i.key()); + QStringList qlInputDevs = cards.qhInput.keys(); + qSort(qlInputDevs); + + if (qlInputDevs.contains(g.s.qsOSSInput)) { + qlInputDevs.removeAll(g.s.qsOSSInput); + qlInputDevs.prepend(g.s.qsOSSInput); } + + foreach(const QString &dev, qlInputDevs) { + qlReturn << audioDevice(cards.qhInput.value(dev), dev); + } + return qlReturn; } @@ -104,11 +111,18 @@ AudioOutput *OSSOutputRegistrar::create() { const QList OSSOutputRegistrar::getDeviceChoices() { QList qlReturn; - QHash::const_iterator i; - - for (i=cards.qhOutput.constBegin();i!=cards.qhOutput.constEnd();++i) { - qlReturn << audioDevice(i.value(), i.key()); + QStringList qlOutputDevs = cards.qhOutput.keys(); + qSort(qlOutputDevs); + + if (qlOutputDevs.contains(g.s.qsOSSOutput)) { + qlOutputDevs.removeAll(g.s.qsOSSOutput); + qlOutputDevs.prepend(g.s.qsOSSOutput); } + + foreach(const QString &dev, qlOutputDevs) { + qlReturn << audioDevice(cards.qhOutput.value(dev), dev); + } + return qlReturn; }