diff --git a/inputsource.cpp b/inputsource.cpp index d440cba..2843c49 100644 --- a/inputsource.cpp +++ b/inputsource.cpp @@ -29,6 +29,8 @@ #include #include +#include + class ComplexF32SampleAdapter : public SampleAdapter { public: size_t sampleSize() override { @@ -100,6 +102,21 @@ void InputSource::cleanup() void InputSource::openFile(const char *filename) { + QFileInfo fileInfo(filename); + const auto suffix = fileInfo.suffix(); + if( (suffix == "cfile") || (suffix == "cf32") ) { + sampleAdapter = std::unique_ptr(new ComplexF32SampleAdapter()); + } + else if( suffix == "cs8" ) { + sampleAdapter = std::unique_ptr(new ComplexS8SampleAdapter()); + } + else if( suffix == "cu8" ) { + sampleAdapter = std::unique_ptr(new ComplexU8SampleAdapter()); + } + else { + throw std::runtime_error("Invalid file extension"); + } + FILE *file = fopen(filename, "rb"); if (file == nullptr) throw std::runtime_error("Error opening file"); diff --git a/spectrogramcontrols.cpp b/spectrogramcontrols.cpp index f6c00fc..ca2c95c 100644 --- a/spectrogramcontrols.cpp +++ b/spectrogramcontrols.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015, Mike Walters + * Copyright (C) 2015, Jared Boone * * This file is part of inspectrum. * @@ -125,7 +126,7 @@ void SpectrogramControls::fftOrZoomChanged(int value) void SpectrogramControls::fileOpenButtonClicked() { QString fileName = QFileDialog::getOpenFileName( - this, tr("Open File"), "", tr("Sample file (*.cfile *.bin);;All files (*)") + this, tr("Open File"), "", tr("complex file (*.cfile *.cf32);;complex HackRF file (*.cs8);;complex RTL-SDR file (*.cu8);;All files (*)") ); if (!fileName.isEmpty()) emit openFile(fileName);