Merge remote-tracking branch 'sec/commandline'

This commit is contained in:
Mike Walters
2015-09-20 15:49:18 +01:00
3 changed files with 38 additions and 4 deletions

View File

@@ -1,4 +1,5 @@
#include <QApplication>
#include <QCommandLineParser>
#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();
}
}

View File

@@ -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();

View File

@@ -12,6 +12,7 @@ class MainWindow : public QMainWindow
public:
MainWindow();
void openFile(QString fileName);
void changeSampleRate(int rate);
public slots:
void setSampleRate(QString rate);