Files
inspectrum/src/samplesource.h
Daniel Estévez 11171c8e62 Display annotation comments as tooltips
When the mouse is moved over a SigMF annotation rectangle on the
waterfall, a tooltip showing the annotation comment is displayed
(if the annotation has a comment field).

This feature can be enabled/disabled with a checkbox, in the same
way as annotations. If annotations are disabled, the annotation comments
checkbox is grayed out and the tooltips are not shown.

Signed-off-by: Daniel Estévez <daniel@destevez.net>
2022-11-06 09:44:04 +01:00

63 lines
1.8 KiB
C++

/*
* Copyright (C) 2015, Mike Walters <mike@flomp.net>
*
* This file is part of inspectrum.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <complex>
#include <memory>
#include "abstractsamplesource.h"
#include "util.h"
#include <QString>
#include <QObject>
class Annotation
{
public:
range_t<size_t> sampleRange;
range_t<double> frequencyRange;
QString label;
QString comment;
Annotation(range_t<size_t> sampleRange, range_t<double>frequencyRange, QString label,
QString comment)
: sampleRange(sampleRange), frequencyRange(frequencyRange), label(label),
comment(comment) {}
};
template<typename T>
class SampleSource : public AbstractSampleSource
{
protected:
double frequency;
public:
virtual ~SampleSource() {};
virtual std::unique_ptr<T[]> getSamples(size_t start, size_t length) = 0;
virtual void invalidateEvent() { };
virtual size_t count() = 0;
virtual double rate() = 0;
virtual float relativeBandwidth() = 0;
std::vector<Annotation> annotationList;
std::type_index sampleType() override;
virtual bool realSignal() { return false; };
double getFrequency();
};