From 715b8129f3afd1f45cc44be82d2daaaba3ed909a Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sun, 20 Sep 2015 13:14:51 +0200 Subject: [PATCH] Make sample rate settable from the commandline --- main.cpp | 35 +++++++++++++++++++++++++++++++---- mainwindow.cpp | 6 ++++++ mainwindow.h | 1 + 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/main.cpp b/main.cpp index 07e061e..a9d3447 100644 --- a/main.cpp +++ b/main.cpp @@ -1,4 +1,5 @@ #include +#include #include "mainwindow.h" @@ -7,9 +8,35 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setApplicationName("inspectrum"); MainWindow mainWin; - mainWin.show(); - if (argc > 1) { - mainWin.openFile(QString::fromLatin1(argv[1])); + + QCommandLineParser parser; + parser.setApplicationDescription("spectrum viewer"); + parser.addHelpOption(); + parser.addPositionalArgument("file", QCoreApplication::translate("main", "File to view.")); + + // Add options + QCommandLineOption rateOption(QStringList() << "r" << "rate", + QCoreApplication::translate("main", "Set sample rate."), + QCoreApplication::translate("main", "Hz")); + parser.addOption(rateOption); + + // Process the actual command line + parser.process(a); + + if (parser.isSet(rateOption)){ + bool ok; + int rate = parser.value(rateOption).toInt(&ok); + if(!ok){ + fputs("ERROR: could not parse rate\n", stderr); + return 1; + } + mainWin.changeSampleRate(rate); } + + const QStringList args = parser.positionalArguments(); + if (args.size()>=1) + mainWin.openFile(args.at(0)); + + mainWin.show(); return a.exec(); -} \ No newline at end of file +} diff --git a/mainwindow.cpp b/mainwindow.cpp index 24e2bff..16fe924 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -48,6 +48,12 @@ void MainWindow::setSampleRate(QString rate) spectrogram.setSampleRate(rate.toInt()); } +void MainWindow::changeSampleRate(int rate) +{ + spectrogram.setSampleRate(rate); + dock->sampleRate->setText(QString::number(rate)); +} + void MainWindow::setFFTSize(int size) { off_t sample = getCenterSample(); diff --git a/mainwindow.h b/mainwindow.h index 51662fd..96eb89c 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -12,6 +12,7 @@ class MainWindow : public QMainWindow public: MainWindow(); void openFile(QString fileName); + void changeSampleRate(int rate); public slots: void setSampleRate(QString rate);