diff options
author | Christian Daniel <cd@maintech.de> | 2014-08-15 11:37:26 +0200 |
---|---|---|
committer | Christian Daniel <cd@maintech.de> | 2014-08-16 22:32:45 +0200 |
commit | 5864e48bd8d559223bed4a9eabbc4f894dc128ef (patch) | |
tree | e2a6d36abad80e0bcccbd79c48b34b4b4ecf80bc /sdrbase/gui | |
parent | 78201046667987b25ade0b4023805a93353133fe (diff) |
major rewrite
Diffstat (limited to 'sdrbase/gui')
-rw-r--r-- | sdrbase/gui/glspectrumgui.cpp | 2 | ||||
-rw-r--r-- | sdrbase/gui/glspectrumgui.ui | 16 | ||||
-rw-r--r-- | sdrbase/gui/preferencesdialog.cpp | 77 | ||||
-rw-r--r-- | sdrbase/gui/preferencesdialog.ui | 110 | ||||
-rw-r--r-- | sdrbase/gui/scopewindow.cpp | 8 |
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; |