From 3bfb996b50ea6b725193dc732ffab4c432a3ad93 Mon Sep 17 00:00:00 2001 From: Jacob Gilbert Date: Mon, 28 Mar 2022 10:36:20 -0600 Subject: [PATCH 1/9] adding the ability to color annotations this is done through the `presentation` sigmf extensions simple, annotation by annotation color setting mechanism Signed-off-by: Jacob Gilbert --- src/inputsource.cpp | 15 +++++++++++++-- src/mainwindow.cpp | 1 + src/plotview.cpp | 10 ++++++++++ src/plotview.h | 1 + src/samplesource.h | 6 ++++-- src/spectrogramcontrols.cpp | 6 ++++-- src/spectrogramcontrols.h | 1 + src/spectrogramplot.cpp | 10 ++++++++++ src/spectrogramplot.h | 2 ++ 9 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/inputsource.cpp b/src/inputsource.cpp index ebbf749..f188232 100644 --- a/src/inputsource.cpp +++ b/src/inputsource.cpp @@ -38,6 +38,7 @@ #include #include #include +#include class ComplexF32SampleAdapter : public SampleAdapter { @@ -339,10 +340,20 @@ void InputSource::readMetaData(const QString &filename) auto frequencyRange = range_t{freq_lower_edge, freq_upper_edge}; auto label = sigmf_annotation["core:label"].toString(); - + auto comment = sigmf_annotation["core:comment"].toString(); - annotationList.emplace_back(sampleRange, frequencyRange, label, comment); + auto sigmf_color = sigmf_annotation["presentation:color"].toString(); + // SigMF uses the format "#RRGGBBAA" for alpha-channel colors, QT uses "#AARRGGBB" + if ((sigmf_color.at(0) == '#') && (sigmf_color.length()) == 9) { + sigmf_color = "#" + sigmf_color.mid(7,2) + sigmf_color.mid(1,6); + } + auto boxColor = QString::fromStdString("white"); + if (QColor::isValidColor(sigmf_color)) { + boxColor = sigmf_color; + } + + annotationList.emplace_back(sampleRange, frequencyRange, label, comment, boxColor); } } } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index dc62d76..5e37bcb 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -53,6 +53,7 @@ MainWindow::MainWindow() connect(dock->annosCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnotations); connect(dock->annosCheckBox, &QCheckBox::stateChanged, dock, &SpectrogramControls::enableAnnotations); connect(dock->commentsCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnotationCommentsTooltips); + connect(dock->annoColorCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnoColors); connect(dock->cursorSymbolsSpinBox, static_cast(&QSpinBox::valueChanged), plots, &PlotView::setCursorSegments); // Connect dock outputs diff --git a/src/plotview.cpp b/src/plotview.cpp index d1c6bea..411c096 100644 --- a/src/plotview.cpp +++ b/src/plotview.cpp @@ -53,6 +53,8 @@ PlotView::PlotView(InputSource *input) : cursors(this), viewRange({0, 0}) enableAnnotations(true); enableAnnotationCommentsTooltips(true); + enableAnnoColors(true); + addPlot(spectrogramPlot); mainSampleSource->subscribe(this); @@ -654,6 +656,14 @@ void PlotView::enableAnnotationCommentsTooltips(bool enabled) viewport()->update(); } +void PlotView::enableAnnoColors(bool enabled) +{ + if (spectrogramPlot != nullptr) + spectrogramPlot->enableAnnoColors(enabled); + + viewport()->update(); +} + int PlotView::sampleToColumn(size_t sample) { return sample / samplesPerColumn(); diff --git a/src/plotview.h b/src/plotview.h index 326d547..1a18cd3 100644 --- a/src/plotview.h +++ b/src/plotview.h @@ -48,6 +48,7 @@ public slots: void enableScales(bool enabled); void enableAnnotations(bool enabled); void enableAnnotationCommentsTooltips(bool enabled); + void enableAnnoColors(bool enabled); void invalidateEvent() override; void repaint(); void setCursorSegments(int segments); diff --git a/src/samplesource.h b/src/samplesource.h index 3f0b299..58789f6 100644 --- a/src/samplesource.h +++ b/src/samplesource.h @@ -26,6 +26,7 @@ #include "util.h" #include #include +#include class Annotation { @@ -34,11 +35,12 @@ class Annotation range_t frequencyRange; QString label; QString comment; + QColor boxColor; Annotation(range_t sampleRange, range_tfrequencyRange, QString label, - QString comment) + QString comment, QColor boxColor) : sampleRange(sampleRange), frequencyRange(frequencyRange), label(label), - comment(comment) {} + comment(comment), boxColor(boxColor) {} }; template diff --git a/src/spectrogramcontrols.cpp b/src/spectrogramcontrols.cpp index 0e0f9aa..d5bd42c 100644 --- a/src/spectrogramcontrols.cpp +++ b/src/spectrogramcontrols.cpp @@ -100,7 +100,9 @@ SpectrogramControls::SpectrogramControls(const QString & title, QWidget * parent annosCheckBox = new QCheckBox(widget); layout->addRow(new QLabel(tr("Display Annotations:")), annosCheckBox); commentsCheckBox = new QCheckBox(widget); - layout->addRow(new QLabel(tr("Display annotation comments tooltips:")), commentsCheckBox); + layout->addRow(new QLabel(tr("Annotation comments:")), commentsCheckBox); + annoColorCheckBox = new QCheckBox(widget); + layout->addRow(new QLabel(tr("Annotation Colors:")), annoColorCheckBox); widget->setLayout(layout); setWidget(widget); @@ -136,7 +138,7 @@ void SpectrogramControls::setDefaults() cursorSymbolsSpinBox->setValue(1); annosCheckBox->setCheckState(Qt::Checked); - commentsCheckBox->setCheckState(Qt::Checked); + annoColorCheckBox->setCheckState(Qt::Checked); // Try to set the sample rate from the last-used value QSettings settings; diff --git a/src/spectrogramcontrols.h b/src/spectrogramcontrols.h index 69e7d60..71da242 100644 --- a/src/spectrogramcontrols.h +++ b/src/spectrogramcontrols.h @@ -76,4 +76,5 @@ private slots: QCheckBox *scalesCheckBox; QCheckBox *annosCheckBox; QCheckBox *commentsCheckBox; + QCheckBox *annoColorCheckBox; }; diff --git a/src/spectrogramplot.cpp b/src/spectrogramplot.cpp index 3ab57ec..a458fa2 100644 --- a/src/spectrogramplot.cpp +++ b/src/spectrogramplot.cpp @@ -40,6 +40,7 @@ SpectrogramPlot::SpectrogramPlot(std::shared_ptrsubscriberCount() > 0); diff --git a/src/spectrogramplot.h b/src/spectrogramplot.h index 2e52cb4..d28b27a 100644 --- a/src/spectrogramplot.h +++ b/src/spectrogramplot.h @@ -53,6 +53,7 @@ class SpectrogramPlot : public Plot void enableScales(bool enabled); void enableAnnotations(bool enabled); bool isAnnotationsEnabled(); + void enableAnnoColors(bool enabled); QString *mouseAnnotationComment(const QMouseEvent *event); public slots: @@ -81,6 +82,7 @@ public slots: double sampleRate; bool frequencyScaleEnabled; bool sigmfAnnotationsEnabled; + bool sigmfAnnotationColors; Tuner tuner; std::shared_ptr tunerTransform; From f01cd655a1a630fbae0cdaaad73834187edef629 Mon Sep 17 00:00:00 2001 From: Jacob Gilbert Date: Tue, 29 Mar 2022 09:18:04 -0600 Subject: [PATCH 2/9] adding explicit control for SigMF Labels --- src/mainwindow.cpp | 1 + src/plotview.cpp | 12 ++++++++++-- src/plotview.h | 1 + src/spectrogramcontrols.cpp | 3 +++ src/spectrogramcontrols.h | 1 + src/spectrogramplot.cpp | 13 ++++++++++--- src/spectrogramplot.h | 2 ++ 7 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5e37bcb..da6bfe6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -52,6 +52,7 @@ MainWindow::MainWindow() connect(dock->scalesCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableScales); connect(dock->annosCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnotations); connect(dock->annosCheckBox, &QCheckBox::stateChanged, dock, &SpectrogramControls::enableAnnotations); + connect(dock->annoLabelCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnoLabels); connect(dock->commentsCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnotationCommentsTooltips); connect(dock->annoColorCheckBox, &QCheckBox::stateChanged, plots, &PlotView::enableAnnoColors); connect(dock->cursorSymbolsSpinBox, static_cast(&QSpinBox::valueChanged), plots, &PlotView::setCursorSegments); diff --git a/src/plotview.cpp b/src/plotview.cpp index 411c096..a7af079 100644 --- a/src/plotview.cpp +++ b/src/plotview.cpp @@ -51,9 +51,9 @@ PlotView::PlotView(InputSource *input) : cursors(this), viewRange({0, 0}) enableScales(true); enableAnnotations(true); - enableAnnotationCommentsTooltips(true); - + enableAnnoLabels(true); enableAnnoColors(true); + enableAnnotationCommentsTooltips(true); addPlot(spectrogramPlot); @@ -649,6 +649,14 @@ void PlotView::enableAnnotations(bool enabled) viewport()->update(); } +void PlotView::enableAnnoLabels(bool enabled) +{ + if (spectrogramPlot != nullptr) + spectrogramPlot->enableAnnoLabels(enabled); + + viewport()->update(); +} + void PlotView::enableAnnotationCommentsTooltips(bool enabled) { annotationCommentsEnabled = enabled; diff --git a/src/plotview.h b/src/plotview.h index 1a18cd3..b93f222 100644 --- a/src/plotview.h +++ b/src/plotview.h @@ -47,6 +47,7 @@ public slots: void enableCursors(bool enabled); void enableScales(bool enabled); void enableAnnotations(bool enabled); + void enableAnnoLabels(bool enabled); void enableAnnotationCommentsTooltips(bool enabled); void enableAnnoColors(bool enabled); void invalidateEvent() override; diff --git a/src/spectrogramcontrols.cpp b/src/spectrogramcontrols.cpp index d5bd42c..beef069 100644 --- a/src/spectrogramcontrols.cpp +++ b/src/spectrogramcontrols.cpp @@ -99,6 +99,8 @@ SpectrogramControls::SpectrogramControls(const QString & title, QWidget * parent annosCheckBox = new QCheckBox(widget); layout->addRow(new QLabel(tr("Display Annotations:")), annosCheckBox); + annoLabelCheckBox = new QCheckBox(widget); + layout->addRow(new QLabel(tr("Annotation Labels:")), annoLabelCheckBox); commentsCheckBox = new QCheckBox(widget); layout->addRow(new QLabel(tr("Annotation comments:")), commentsCheckBox); annoColorCheckBox = new QCheckBox(widget); @@ -138,6 +140,7 @@ void SpectrogramControls::setDefaults() cursorSymbolsSpinBox->setValue(1); annosCheckBox->setCheckState(Qt::Checked); + annoLabelCheckBox->setCheckState(Qt::Checked); annoColorCheckBox->setCheckState(Qt::Checked); // Try to set the sample rate from the last-used value diff --git a/src/spectrogramcontrols.h b/src/spectrogramcontrols.h index 71da242..e0c69ca 100644 --- a/src/spectrogramcontrols.h +++ b/src/spectrogramcontrols.h @@ -75,6 +75,7 @@ private slots: QLabel *symbolPeriodLabel; QCheckBox *scalesCheckBox; QCheckBox *annosCheckBox; + QCheckBox *annoLabelCheckBox; QCheckBox *commentsCheckBox; QCheckBox *annoColorCheckBox; }; diff --git a/src/spectrogramplot.cpp b/src/spectrogramplot.cpp index a458fa2..dc6510e 100644 --- a/src/spectrogramplot.cpp +++ b/src/spectrogramplot.cpp @@ -40,6 +40,7 @@ SpectrogramPlot::SpectrogramPlot(std::shared_ptr Date: Mon, 28 Mar 2022 11:38:21 -0600 Subject: [PATCH 3/9] enable 65k point fft --- src/spectrogramcontrols.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spectrogramcontrols.cpp b/src/spectrogramcontrols.cpp index beef069..0d4d0af 100644 --- a/src/spectrogramcontrols.cpp +++ b/src/spectrogramcontrols.cpp @@ -46,7 +46,7 @@ SpectrogramControls::SpectrogramControls(const QString & title, QWidget * parent layout->addRow(new QLabel(tr("Spectrogram"))); fftSizeSlider = new QSlider(Qt::Horizontal, widget); - fftSizeSlider->setRange(4, 13); + fftSizeSlider->setRange(4, 16); fftSizeSlider->setPageStep(1); layout->addRow(new QLabel(tr("FFT size:")), fftSizeSlider); From 818a41e37e564ad262ff2b324c54b6a253482d1f Mon Sep 17 00:00:00 2001 From: Jacob Gilbert Date: Tue, 29 Jun 2021 07:45:43 -0600 Subject: [PATCH 4/9] add support to read files that end in '.sigmf-' Signed-off-by: Jacob Gilbert --- src/inputsource.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/inputsource.cpp b/src/inputsource.cpp index f188232..b001618 100644 --- a/src/inputsource.cpp +++ b/src/inputsource.cpp @@ -408,13 +408,8 @@ void InputSource::openFile(const char *filename) annotationList.clear(); QString metaFilename; - if (suffix == "sigmf-meta") { + if (suffix == "sigmf-meta" || suffix == "sigmf-data" || suffix == "sigmf-") { dataFilename = fileInfo.path() + "/" + fileInfo.completeBaseName() + ".sigmf-data"; - metaFilename = filename; - readMetaData(metaFilename); - } - else if (suffix == "sigmf-data") { - dataFilename = filename; metaFilename = fileInfo.path() + "/" + fileInfo.completeBaseName() + ".sigmf-meta"; readMetaData(metaFilename); } From 6ab8e26393b7f1fe619c24a104d78dd6b885d007 Mon Sep 17 00:00:00 2001 From: Jacob Gilbert Date: Sat, 24 Jul 2021 06:04:06 -0600 Subject: [PATCH 5/9] when increasing the FFT size, the plot should maintain the current center frequency Signed-off-by: Jacob Gilbert --- src/plotview.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/plotview.cpp b/src/plotview.cpp index a7af079..00f9971 100644 --- a/src/plotview.cpp +++ b/src/plotview.cpp @@ -427,6 +427,7 @@ void PlotView::setCursorSegments(int segments) selectedSamples.maximum = selectedSamples.minimum + (segments * sampPerSeg + 0.5f); cursors.setSegments(segments); + updateView(); emitTimeSelection(); } @@ -434,6 +435,9 @@ void PlotView::setCursorSegments(int segments) void PlotView::setFFTAndZoom(int size, int zoom) { auto oldSamplesPerColumn = samplesPerColumn(); + float oldPlotCenter = (verticalScrollBar()->value() + viewport()->height() / 2.0) / plotsHeight(); + if (verticalScrollBar()->maximum() == 0) + oldPlotCenter = 0.5; // Set new FFT size fftSize = size; @@ -450,6 +454,10 @@ void PlotView::setFFTAndZoom(int size, int zoom) horizontalScrollBar()->setPageStep(100); updateView(true, samplesPerColumn() < oldSamplesPerColumn); + + // maintain the relative position of the vertical scroll bar + if (verticalScrollBar()->maximum()) + verticalScrollBar()->setValue((int )(oldPlotCenter * plotsHeight() - viewport()->height() / 2.0 + 0.5f)); } void PlotView::setPowerMin(int power) @@ -606,6 +614,7 @@ void PlotView::updateView(bool reCenter, bool expanding) } horizontalScrollBar()->setMaximum(std::max(0, sampleToColumn(mainSampleSource->count()) - width())); verticalScrollBar()->setMaximum(std::max(0, plotsHeight() - viewport()->height())); + if (expanding) { updateViewRange(reCenter); } From 97d47553ae4a11d8b87f507eaeab7b497fef6302 Mon Sep 17 00:00:00 2001 From: Jacob Gilbert Date: Fri, 16 Jul 2021 21:50:24 -0600 Subject: [PATCH 6/9] adding fft skip / zoom out Signed-off-by: Jacob Gilbert --- src/plotview.cpp | 11 +++++++---- src/plotview.h | 1 + src/spectrogramcontrols.cpp | 10 ++++++++-- src/spectrogramplot.cpp | 16 +++++++++++----- src/spectrogramplot.h | 7 ++++++- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/plotview.cpp b/src/plotview.cpp index 00f9971..d05b33c 100644 --- a/src/plotview.cpp +++ b/src/plotview.cpp @@ -445,9 +445,12 @@ void PlotView::setFFTAndZoom(int size, int zoom) spectrogramPlot->setFFTSize(size); // Set new zoom level - zoomLevel = zoom; - if (spectrogramPlot != nullptr) - spectrogramPlot->setZoomLevel(zoom); + zoomLevel = std::max(1,zoom); + nfftSkip = std::max(1,-1*zoom); + if (spectrogramPlot != nullptr) { + spectrogramPlot->setZoomLevel(zoomLevel); + spectrogramPlot->setSkip(nfftSkip); + } // Update horizontal (time) scrollbar horizontalScrollBar()->setSingleStep(10); @@ -578,7 +581,7 @@ void PlotView::resizeEvent(QResizeEvent * event) size_t PlotView::samplesPerColumn() { - return fftSize / zoomLevel; + return fftSize * nfftSkip / zoomLevel; } void PlotView::scrollContentsBy(int dx, int dy) diff --git a/src/plotview.h b/src/plotview.h index b93f222..c80ff1c 100644 --- a/src/plotview.h +++ b/src/plotview.h @@ -79,6 +79,7 @@ public slots: int fftSize = 1024; int zoomLevel = 1; + int nfftSkip = 1; int powerMin; int powerMax; bool cursorsEnabled; diff --git a/src/spectrogramcontrols.cpp b/src/spectrogramcontrols.cpp index 0d4d0af..b2fa380 100644 --- a/src/spectrogramcontrols.cpp +++ b/src/spectrogramcontrols.cpp @@ -52,7 +52,7 @@ SpectrogramControls::SpectrogramControls(const QString & title, QWidget * parent layout->addRow(new QLabel(tr("FFT size:")), fftSizeSlider); zoomLevelSlider = new QSlider(Qt::Horizontal, widget); - zoomLevelSlider->setRange(0, 10); + zoomLevelSlider->setRange(-6, 10); zoomLevelSlider->setPageStep(1); layout->addRow(new QLabel(tr("Zoom:")), zoomLevelSlider); @@ -156,7 +156,13 @@ void SpectrogramControls::setDefaults() void SpectrogramControls::fftOrZoomChanged(void) { int fftSize = pow(2, fftSizeSlider->value()); - int zoomLevel = std::min(fftSize, (int)pow(2, zoomLevelSlider->value())); + int zoomLevel = zoomLevelSlider->value(); + if (zoomLevel >= 0) + // zooming in by power-of-two steps + zoomLevel = std::min(fftSize, (int)pow(2, zoomLevel)); + else + // zooming out (skipping FFTs) by power-of-two steps + zoomLevel = -1*std::min(fftSize, (int)pow(2, -1*zoomLevel)); emit fftOrZoomChanged(fftSize, zoomLevel); } diff --git a/src/spectrogramplot.cpp b/src/spectrogramplot.cpp index dc6510e..9a2dd4f 100644 --- a/src/spectrogramplot.cpp +++ b/src/spectrogramplot.cpp @@ -35,6 +35,7 @@ SpectrogramPlot::SpectrogramPlot(std::shared_ptr s QPixmap* SpectrogramPlot::getPixmapTile(size_t tile) { - QPixmap *obj = pixmapCache.object(TileCacheKey(fftSize, zoomLevel, tile)); + QPixmap *obj = pixmapCache.object(TileCacheKey(fftSize, zoomLevel, nfftSkip, tile)); if (obj != 0) return obj; @@ -268,13 +269,13 @@ QPixmap* SpectrogramPlot::getPixmapTile(size_t tile) } } obj->convertFromImage(image); - pixmapCache.insert(TileCacheKey(fftSize, zoomLevel, tile), obj); + pixmapCache.insert(TileCacheKey(fftSize, zoomLevel, nfftSkip, tile), obj); return obj; } float* SpectrogramPlot::getFFTTile(size_t tile) { - std::array* obj = fftCache.object(TileCacheKey(fftSize, zoomLevel, tile)); + std::array* obj = fftCache.object(TileCacheKey(fftSize, zoomLevel, nfftSkip, tile)); if (obj != nullptr) return obj->data(); @@ -286,7 +287,7 @@ float* SpectrogramPlot::getFFTTile(size_t tile) sample += getStride(); ptr += fftSize; } - fftCache.insert(TileCacheKey(fftSize, zoomLevel, tile), destStorage); + fftCache.insert(TileCacheKey(fftSize, zoomLevel, nfftSkip, tile), destStorage); return destStorage->data(); } @@ -323,7 +324,7 @@ void SpectrogramPlot::getLine(float *dest, size_t sample) int SpectrogramPlot::getStride() { - return fftSize / zoomLevel; + return fftSize * nfftSkip / zoomLevel; } float SpectrogramPlot::getTunerPhaseInc() @@ -404,6 +405,11 @@ void SpectrogramPlot::setZoomLevel(int zoom) zoomLevel = zoom; } +void SpectrogramPlot::setSkip(int skip) +{ + nfftSkip = skip; +} + void SpectrogramPlot::setSampleRate(double rate) { sampleRate = rate; diff --git a/src/spectrogramplot.h b/src/spectrogramplot.h index c8c4354..cf9d1b0 100644 --- a/src/spectrogramplot.h +++ b/src/spectrogramplot.h @@ -62,6 +62,7 @@ public slots: void setPowerMax(int power); void setPowerMin(int power); void setZoomLevel(int zoom); + void setSkip(int skip); void tunerMoved(); private: @@ -78,6 +79,7 @@ public slots: int fftSize; int zoomLevel; + int nfftSkip; float powerMax; float powerMin; double sampleRate; @@ -104,20 +106,23 @@ class TileCacheKey { public: - TileCacheKey(int fftSize, int zoomLevel, size_t sample) { + TileCacheKey(int fftSize, int zoomLevel, int nfftSkip, size_t sample) { this->fftSize = fftSize; this->zoomLevel = zoomLevel; + this->nfftSkip = nfftSkip; this->sample = sample; } bool operator==(const TileCacheKey &k2) const { return (this->fftSize == k2.fftSize) && (this->zoomLevel == k2.zoomLevel) && + (this->nfftSkip == k2.nfftSkip) && (this->sample == k2.sample); } int fftSize; int zoomLevel; + int nfftSkip; size_t sample; }; From 1da385014a3a790334b01cbfee1907f6d6c6993c Mon Sep 17 00:00:00 2001 From: Jacob Gilbert Date: Mon, 28 Mar 2022 11:37:59 -0600 Subject: [PATCH 7/9] fallback to core:description for anno label Signed-off-by: Jacob Gilbert --- src/inputsource.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/inputsource.cpp b/src/inputsource.cpp index b001618..4d61aa1 100644 --- a/src/inputsource.cpp +++ b/src/inputsource.cpp @@ -340,6 +340,9 @@ void InputSource::readMetaData(const QString &filename) auto frequencyRange = range_t{freq_lower_edge, freq_upper_edge}; auto label = sigmf_annotation["core:label"].toString(); + if (label.isEmpty()) { + label = sigmf_annotation["core:description"].toString(); + } auto comment = sigmf_annotation["core:comment"].toString(); From 4b9780691a5e55a8ce47c0409b35986b56262764 Mon Sep 17 00:00:00 2001 From: Liam Beguin Date: Thu, 24 Aug 2023 13:45:37 -0400 Subject: [PATCH 8/9] sigmf: add support for cf64_le core:datatype Signed-off-by: Liam Beguin --- src/inputsource.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/inputsource.cpp b/src/inputsource.cpp index 4d61aa1..f325255 100644 --- a/src/inputsource.cpp +++ b/src/inputsource.cpp @@ -265,7 +265,9 @@ void InputSource::readMetaData(const QString &filename) auto datatype = global["core:datatype"].toString(); - if (datatype.compare("cf32_le") == 0) { + if (datatype.compare("cf64_le") == 0) { + sampleAdapter = std::make_unique(); + } else if (datatype.compare("cf32_le") == 0) { sampleAdapter = std::make_unique(); } else if (datatype.compare("ci32_le") == 0) { sampleAdapter = std::make_unique(); From a3247220ab9e5d2bd3ef0a3dce776e45f9c366e9 Mon Sep 17 00:00:00 2001 From: Liam Beguin Date: Thu, 24 Aug 2023 13:49:41 -0400 Subject: [PATCH 9/9] inputsource: drop whitespaces Signed-off-by: Liam Beguin --- src/inputsource.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/inputsource.cpp b/src/inputsource.cpp index f325255..e0f0882 100644 --- a/src/inputsource.cpp +++ b/src/inputsource.cpp @@ -345,7 +345,7 @@ void InputSource::readMetaData(const QString &filename) if (label.isEmpty()) { label = sigmf_annotation["core:description"].toString(); } - + auto comment = sigmf_annotation["core:comment"].toString(); auto sigmf_color = sigmf_annotation["presentation:color"].toString();