summaryrefslogtreecommitdiffstats
path: root/sdrbase/gui
diff options
context:
space:
mode:
authorChristian Daniel <cd@maintech.de>2014-08-15 11:37:26 +0200
committerChristian Daniel <cd@maintech.de>2014-08-16 22:32:45 +0200
commit5864e48bd8d559223bed4a9eabbc4f894dc128ef (patch)
treee2a6d36abad80e0bcccbd79c48b34b4b4ecf80bc /sdrbase/gui
parent78201046667987b25ade0b4023805a93353133fe (diff)
major rewrite
Diffstat (limited to 'sdrbase/gui')
-rw-r--r--sdrbase/gui/glspectrumgui.cpp2
-rw-r--r--sdrbase/gui/glspectrumgui.ui16
-rw-r--r--sdrbase/gui/preferencesdialog.cpp77
-rw-r--r--sdrbase/gui/preferencesdialog.ui110
-rw-r--r--sdrbase/gui/scopewindow.cpp8
5 files changed, 149 insertions, 64 deletions
diff --git a/sdrbase/gui/glspectrumgui.cpp b/sdrbase/gui/glspectrumgui.cpp
index 1fbaaf2..6231e8d 100644
--- a/sdrbase/gui/glspectrumgui.cpp
+++ b/sdrbase/gui/glspectrumgui.cpp
@@ -112,7 +112,7 @@ bool GLSpectrumGUI::deserialize(const QByteArray& data)
void GLSpectrumGUI::applySettings()
{
ui->fftWindow->setCurrentIndex(m_fftWindow);
- for(int i = 0; i < 6; i++) {
+ for(int i = 0; i < 7; i++) {
if(m_fftSize == (1 << (i + 7))) {
ui->fftSize->setCurrentIndex(i);
break;
diff --git a/sdrbase/gui/glspectrumgui.ui b/sdrbase/gui/glspectrumgui.ui
index 2a9babe..a738255 100644
--- a/sdrbase/gui/glspectrumgui.ui
+++ b/sdrbase/gui/glspectrumgui.ui
@@ -14,7 +14,16 @@
<string>Oscilloscope</string>
</property>
<layout class="QGridLayout" name="gridLayout" columnstretch="1,1,1,1">
- <property name="margin">
+ <property name="leftMargin">
+ <number>2</number>
+ </property>
+ <property name="topMargin">
+ <number>2</number>
+ </property>
+ <property name="rightMargin">
+ <number>2</number>
+ </property>
+ <property name="bottomMargin">
<number>2</number>
</property>
<property name="spacing">
@@ -162,6 +171,11 @@
<string>4096</string>
</property>
</item>
+ <item>
+ <property name="text">
+ <string>8192</string>
+ </property>
+ </item>
</widget>
</item>
<item row="1" column="2">
diff --git a/sdrbase/gui/preferencesdialog.cpp b/sdrbase/gui/preferencesdialog.cpp
index 077ef45..5394150 100644
--- a/sdrbase/gui/preferencesdialog.cpp
+++ b/sdrbase/gui/preferencesdialog.cpp
@@ -1,47 +1,61 @@
#include <QTreeWidgetItem>
+#include <QAudioDeviceInfo>
#include "gui/preferencesdialog.h"
#include "ui_preferencesdialog.h"
-#include "audio/audiodeviceinfo.h"
+#include "settings/preferences.h"
-PreferencesDialog::PreferencesDialog(AudioDeviceInfo* audioDeviceInfo, QWidget* parent) :
+PreferencesDialog::PreferencesDialog(Preferences* preferences, QWidget* parent) :
QDialog(parent),
ui(new Ui::PreferencesDialog),
- m_audioDeviceInfo(audioDeviceInfo)
+ m_preferences(preferences)
{
ui->setupUi(this);
- const AudioDeviceInfo::Devices& devices = audioDeviceInfo->getDevices();
-
- QTreeWidgetItem* api;
QStringList sl;
- sl.append(tr("Default (use first suitable device)"));
- api = new QTreeWidgetItem(ui->audioTree, sl, ATDefault);
- api->setFirstColumnSpanned(true);
- for(AudioDeviceInfo::Devices::const_iterator it = devices.begin(); it != devices.end(); ++it) {
- int apiIndex;
- sl.clear();
+ bool found;
- for(apiIndex = 0; apiIndex < ui->audioTree->topLevelItemCount(); ++apiIndex) {
- if(ui->audioTree->topLevelItem(apiIndex)->text(0) == it->api)
- break;
- }
- if(apiIndex >= ui->audioTree->topLevelItemCount()) {
- sl.append(it->api);
- api = new QTreeWidgetItem(ui->audioTree, sl, ATInterface);
- api->setExpanded(true);
- api->setFirstColumnSpanned(true);
- sl.clear();
- } else {
- api = ui->audioTree->topLevelItem(apiIndex);
- }
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
- sl.append(it->name);
- new QTreeWidgetItem(api, sl, ATDevice);
+ sl.clear();
+ sl.append(tr("Default output device (use first suitable)"));
+ QTreeWidgetItem* dev = new QTreeWidgetItem(ui->audioTree, sl);
+ dev->setFirstColumnSpanned(true);
+ dev->setData(0, Qt::UserRole, "");
+ for(QList<QAudioDeviceInfo>::ConstIterator it = devices.begin(); it != devices.end(); ++it) {
+ sl.clear();
+ sl.append(it->deviceName());
+ QTreeWidgetItem* dev = new QTreeWidgetItem(ui->audioTree, sl);
+ dev->setFirstColumnSpanned(true);
+ dev->setData(0, Qt::UserRole, it->deviceName());
}
- if(ui->audioTree->currentItem() == NULL)
+ found = false;
+ for(int i = 0; i < ui->audioTree->topLevelItemCount(); ++i) {
+ if(ui->audioTree->topLevelItem(i)->data(0, Qt::UserRole).toString() == m_preferences->getAudioOutput()) {
+ ui->audioTree->setCurrentItem(ui->audioTree->topLevelItem(i));
+ found = true;
+ break;
+ }
+ }
+ if(!found)
ui->audioTree->setCurrentItem(ui->audioTree->topLevelItem(0));
- ui->tabWidget->setCurrentIndex(0);
+ ui->audioRate->addItem(tr("48000 Hz"), 48000);
+ ui->audioRate->addItem(tr("44100 Hz"), 44100);
+ ui->audioRate->addItem(tr("24000 Hz"), 24000);
+ ui->audioRate->addItem(tr("22050 Hz"), 22050);
+ found = false;
+ for(int i = 0; i < ui->audioRate->count(); ++i) {
+ if(ui->audioRate->itemData(i).toInt() == m_preferences->getAudioOutputRate()) {
+ ui->audioRate->setCurrentIndex(i);
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ ui->audioRate->setCurrentIndex(1);
+
+ ui->stackedWidget->setCurrentIndex(0);
+ ui->configTree->setCurrentItem(ui->configTree->topLevelItem(0));
}
PreferencesDialog::~PreferencesDialog()
@@ -51,5 +65,10 @@ PreferencesDialog::~PreferencesDialog()
void PreferencesDialog::accept()
{
+ if(ui->audioTree->currentItem() != NULL)
+ m_preferences->setAudioOutput(ui->audioTree->currentItem()->data(0, Qt::UserRole).toString());
+ else m_preferences->setAudioOutput(QString());
+ m_preferences->setAudioOutputRate(ui->audioRate->itemData(ui->audioRate->currentIndex()).toInt());
+
QDialog::accept();
}
diff --git a/sdrbase/gui/preferencesdialog.ui b/sdrbase/gui/preferencesdialog.ui
index 0545931..f98a149 100644
--- a/sdrbase/gui/preferencesdialog.ui
+++ b/sdrbase/gui/preferencesdialog.ui
@@ -6,42 +6,55 @@
<rect>
<x>0</x>
<y>0</y>
- <width>400</width>
- <height>300</height>
+ <width>454</width>
+ <height>435</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QTabWidget" name="tabWidget">
- <property name="currentIndex">
- <number>0</number>
+ <layout class="QGridLayout" name="gridLayout" columnstretch="1,3">
+ <item row="0" column="0">
+ <widget class="QTreeWidget" name="configTree">
+ <property name="rootIsDecorated">
+ <bool>false</bool>
</property>
- <widget class="QWidget" name="tab">
- <attribute name="title">
- <string>Receiver Hardware</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QTreeWidget" name="treeWidget">
- <column>
- <property name="text">
- <string notr="true">1</string>
- </property>
- </column>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="tab_2">
- <attribute name="title">
+ <attribute name="headerVisible">
+ <bool>false</bool>
+ </attribute>
+ <column>
+ <property name="text">
+ <string notr="true">Section</string>
+ </property>
+ </column>
+ <item>
+ <property name="text">
<string>Audio Output</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_3">
+ </property>
+ <property name="flags">
+ <set>ItemIsSelectable|ItemIsEnabled</set>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <widget class="QWidget" name="page">
+ <layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTreeWidget" name="audioTree">
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
<column>
<property name="text">
<string notr="true">Device</string>
@@ -49,11 +62,49 @@
</column>
</widget>
</item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Sample rate</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="audioRate">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QComboBox::AdjustToContents</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
+ <widget class="QWidget" name="page_2"/>
</widget>
</item>
- <item>
+ <item row="1" column="0" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -67,9 +118,6 @@
</widget>
<tabstops>
<tabstop>buttonBox</tabstop>
- <tabstop>tabWidget</tabstop>
- <tabstop>treeWidget</tabstop>
- <tabstop>audioTree</tabstop>
</tabstops>
<resources/>
<connections>
diff --git a/sdrbase/gui/scopewindow.cpp b/sdrbase/gui/scopewindow.cpp
index 2f6200f..486242a 100644
--- a/sdrbase/gui/scopewindow.cpp
+++ b/sdrbase/gui/scopewindow.cpp
@@ -19,14 +19,13 @@
#include "ui_scopewindow.h"
#include "util/simpleserializer.h"
-ScopeWindow::ScopeWindow(DSPEngine* dspEngine, QWidget* parent) :
+ScopeWindow::ScopeWindow(QWidget* parent) :
QWidget(parent),
ui(new Ui::ScopeWindow),
m_sampleRate(0),
m_timeBase(1)
{
ui->setupUi(this);
- ui->scope->setDSPEngine(dspEngine);
}
ScopeWindow::~ScopeWindow()
@@ -34,6 +33,11 @@ ScopeWindow::~ScopeWindow()
delete ui;
}
+void ScopeWindow::setDSPEngine(DSPEngine* dspEngine)
+{
+ ui->scope->setDSPEngine(dspEngine);
+}
+
void ScopeWindow::setSampleRate(int sampleRate)
{
m_sampleRate = sampleRate;