svgui  1.9
SpectrogramLayer Class Reference

SpectrogramLayer represents waveform data (obtained from a DenseTimeValueModel) in spectrogram form. More...

#include <SpectrogramLayer.h>

Inheritance diagram for SpectrogramLayer:
Collaboration diagram for SpectrogramLayer:

Classes

struct  ImageCache
 ImageCache covers the area of the view, at view resolution. More...
 
struct  LayerRange
 
class  MagnitudeRange
 
class  Palette
 

Public Types

enum  Configuration { FullRangeDb, MelodicRange, MelodicPeaks }
 
enum  ColourScale {
  LinearColourScale, MeterColourScale, dBSquaredColourScale, dBColourScale,
  PhaseColourScale
}
 
enum  FrequencyScale { LinearFrequencyScale, LogFrequencyScale }
 
enum  BinDisplay { AllBins, PeakBins, PeakFrequencies }
 
enum  VerticalPosition { PositionTop, PositionMiddle, PositionBottom }
 
enum  SnapType { SnapLeft, SnapRight, SnapNearest, SnapNeighbouring }
 
enum  ColourSignificance {
  ColourAbsent, ColourIrrelevant, ColourDistinguishes, ColourAndBackgroundSignificant,
  ColourHasMeaningfulValue
}
 

Public Slots

void showLayer (View *, bool show)
 

Signals

void sliceableModelReplaced (const Model *modelToBeReplaced, const Model *replacement)
 
void modelChanged ()
 
void modelCompletionChanged ()
 
void modelAlignmentCompletionChanged ()
 
void modelChangedWithin (int startFrame, int endFrame)
 
void modelReplaced ()
 
void layerParametersChanged ()
 
void layerParameterRangesChanged ()
 
void layerMeasurementRectsChanged ()
 
void layerNameChanged ()
 
void verticalZoomChanged ()
 

Public Member Functions

 SpectrogramLayer (Configuration=FullRangeDb)
 
 ~SpectrogramLayer ()
 
virtual const ZoomConstraint * getZoomConstraint () const
 Return a zoom constraint object defining the supported zoom levels for this layer. More...
 
virtual const Model * getModel () const
 
virtual void paint (View *v, QPainter &paint, QRect rect) const
 Paint the given rectangle of this layer onto the given view using the given painter, superimposing it on top of any existing material in that view. More...
 
virtual void setSynchronousPainting (bool synchronous)
 Enable or disable synchronous painting. More...
 
virtual int getVerticalScaleWidth (View *v, bool detailed, QPainter &) const
 
virtual void paintVerticalScale (View *v, bool detailed, QPainter &paint, QRect rect) const
 
virtual bool getCrosshairExtents (View *, QPainter &, QPoint cursorPos, std::vector< QRect > &extents) const
 
virtual void paintCrosshairs (View *, QPainter &, QPoint) const
 
virtual QString getFeatureDescription (View *v, QPoint &) const
 
virtual bool snapToFeatureFrame (View *v, int &frame, int &resolution, SnapType snap) const
 Adjust the given frame to snap to the nearest feature, if possible. More...
 
virtual void measureDoubleClick (View *, QMouseEvent *)
 
virtual bool hasLightBackground () const
 
void setModel (const DenseTimeValueModel *model)
 
virtual PropertyList getProperties () const
 
virtual QString getPropertyLabel (const PropertyName &) const
 
virtual QString getPropertyIconName (const PropertyName &) const
 
virtual PropertyType getPropertyType (const PropertyName &) const
 
virtual QString getPropertyGroupName (const PropertyName &) const
 
virtual int getPropertyRangeAndValue (const PropertyName &, int *min, int *max, int *deflt) const
 
virtual QString getPropertyValueLabel (const PropertyName &, int value) const
 
virtual RangeMapper * getNewPropertyRangeMapper (const PropertyName &) const
 
virtual void setProperty (const PropertyName &, int value)
 
void setChannel (int)
 Specify the channel to use from the source model. More...
 
int getChannel () const
 
void setWindowSize (int)
 
int getWindowSize () const
 
void setWindowHopLevel (int level)
 
int getWindowHopLevel () const
 
void setWindowType (WindowType type)
 
WindowType getWindowType () const
 
void setZeroPadLevel (int level)
 
int getZeroPadLevel () const
 
void setGain (float gain)
 Set the gain multiplier for sample values in this view. More...
 
float getGain () const
 
void setThreshold (float threshold)
 Set the threshold for sample values to qualify for being shown in the FFT, in voltage units. More...
 
float getThreshold () const
 
void setMinFrequency (int)
 
int getMinFrequency () const
 
void setMaxFrequency (int)
 
int getMaxFrequency () const
 
void setColourScale (ColourScale)
 Specify the scale for sample levels. More...
 
ColourScale getColourScale () const
 
void setFrequencyScale (FrequencyScale)
 Specify the scale for the y axis. More...
 
FrequencyScale getFrequencyScale () const
 
void setBinDisplay (BinDisplay)
 Specify the processing of frequency bins for the y axis. More...
 
BinDisplay getBinDisplay () const
 
void setNormalizeColumns (bool n)
 Normalize each column to its maximum value, independent of its neighbours. More...
 
bool getNormalizeColumns () const
 
void setNormalizeVisibleArea (bool n)
 Normalize each value against the maximum in the visible region. More...
 
bool getNormalizeVisibleArea () const
 
void setNormalizeHybrid (bool n)
 Normalize each column to its maximum value, and then scale by the log of the (absolute) maximum value. More...
 
bool getNormalizeHybrid () const
 
void setColourMap (int map)
 
int getColourMap () const
 
void setColourRotation (int)
 Specify the colourmap rotation for the colour scale. More...
 
int getColourRotation () const
 
virtual VerticalPosition getPreferredFrameCountPosition () const
 
virtual bool isLayerOpaque () const
 This should return true if the layer completely obscures any underlying layers. More...
 
virtual ColourSignificance getLayerColourSignificance () const
 This should return the degree of meaning associated with colour in this layer. More...
 
float getYForFrequency (const View *v, float frequency) const
 
float getFrequencyForY (const View *v, int y) const
 
virtual int getCompletion (View *v) const
 Return the proportion of background work complete in drawing this view, as a percentage – in most cases this will be the value returned by pointer from a call to the underlying model's isReady(int *) call. More...
 
virtual QString getError (View *v) const
 Return an error string if any errors have occurred while loading or processing data for the given view. More...
 
virtual bool getValueExtents (float &min, float &max, bool &logarithmic, QString &unit) const
 Return the minimum and maximum values for the y axis of the model in this layer, as well as whether the layer is configured to use a logarithmic y axis display. More...
 
virtual bool getDisplayExtents (float &min, float &max) const
 Return the minimum and maximum values within the displayed range for the y axis, if only a subset of the whole range of the model (returned by getValueExtents) is being displayed. More...
 
virtual bool setDisplayExtents (float min, float max)
 Set the displayed minimum and maximum values for the y axis to the given range, if supported. More...
 
virtual bool getYScaleValue (const View *, int, float &, QString &) const
 Return the value and unit at the given y coordinate in the given view. More...
 
virtual void toXml (QTextStream &stream, QString indent="", QString extraAttributes="") const
 Convert the layer's data (though not those of the model it refers to) into XML for file output. More...
 
void setProperties (const QXmlAttributes &attributes)
 Set the particular properties of a layer (those specific to the subclass) from a set of XML attributes. More...
 
virtual void setLayerDormant (const View *v, bool dormant)
 Indicate that a layer is not currently visible in the given view and is not expected to become visible in the near future (for example because the user has explicitly removed or hidden it). More...
 
virtual bool isLayerScrollable (const View *) const
 This should return true if the layer can safely be scrolled automatically by a given view (simply copying the existing data and then refreshing the exposed area) without altering its meaning. More...
 
virtual int getVerticalZoomSteps (int &defaultStep) const
 Get the number of vertical zoom steps available for this layer. More...
 
virtual int getCurrentVerticalZoomStep () const
 Get the current vertical zoom step. More...
 
virtual void setVerticalZoomStep (int)
 Set the vertical zoom step. More...
 
virtual RangeMapper * getNewVerticalZoomRangeMapper () const
 Create and return a range mapper for vertical zoom step values. More...
 
virtual const Model * getSliceableModel () const
 
Model * getModel ()
 
virtual bool supportsOtherZoomLevels () const
 Return true if this layer can handle zoom levels other than those supported by its zoom constraint (presumably less efficiently or accurately than the officially supported zoom levels). More...
 
virtual VerticalPosition getPreferredTimeRulerPosition () const
 
virtual QString getPropertyContainerIconName () const
 
virtual QString getPropertyContainerName () const
 
virtual void setPresentationName (QString name)
 
virtual QString getLayerPresentationName () const
 
virtual QPixmap getLayerPresentationPixmap (QSize) const
 
virtual void paintMeasurementRects (View *, QPainter &, bool showFocus, QPoint focusPoint) const
 
virtual bool nearestMeasurementRectChanged (View *, QPoint prev, QPoint now) const
 
virtual QString getLabelPreceding (int) const
 
virtual bool snapToSimilarFeature (View *, int &, int &resolution, SnapType) const
 Adjust the given frame to snap to the next feature that has "effectively" the same value as the feature prior to the given frame, if possible. More...
 
virtual void drawStart (View *, QMouseEvent *)
 
virtual void drawDrag (View *, QMouseEvent *)
 
virtual void drawEnd (View *, QMouseEvent *)
 
virtual void eraseStart (View *, QMouseEvent *)
 
virtual void eraseDrag (View *, QMouseEvent *)
 
virtual void eraseEnd (View *, QMouseEvent *)
 
virtual void editStart (View *, QMouseEvent *)
 
virtual void editDrag (View *, QMouseEvent *)
 
virtual void editEnd (View *, QMouseEvent *)
 
virtual void splitStart (View *, QMouseEvent *)
 
virtual void splitEnd (View *, QMouseEvent *)
 
virtual void addNote (View *, QMouseEvent *)
 
virtual void measureStart (View *, QMouseEvent *)
 
virtual void measureDrag (View *, QMouseEvent *)
 
virtual void measureEnd (View *, QMouseEvent *)
 
virtual bool haveCurrentMeasureRect () const
 
virtual void deleteCurrentMeasureRect ()
 
virtual bool editOpen (View *, QMouseEvent *)
 Open an editor on the item under the mouse (e.g. More...
 
virtual void moveSelection (Selection, int)
 
virtual void resizeSelection (Selection, Selection)
 
virtual void deleteSelection (Selection)
 
virtual void copy (View *, Selection, Clipboard &)
 
virtual bool paste (View *, const Clipboard &, int, bool)
 Paste from the given clipboard onto the layer at the given frame offset. More...
 
virtual bool isLayerEditable () const
 This should return true if the layer can be edited by the user. More...
 
virtual void setObjectName (const QString &name)
 
virtual void toBriefXml (QTextStream &stream, QString indent="", QString extraAttributes="") const
 Produce XML containing the layer's ID and type. More...
 
virtual void addMeasurementRect (const QXmlAttributes &)
 Add a measurement rectangle from the given XML attributes (presumably taken from a measurement element). More...
 
virtual bool isLayerDormant (const View *v) const
 Return whether the layer is dormant (i.e. More...
 
virtual PlayParameters * getPlayParameters ()
 
virtual bool needsTextLabelHeight () const
 
virtual bool hasTimeXAxis () const
 
virtual bool getXScaleValue (const View *v, int x, float &value, QString &unit) const
 Return the value and unit at the given x coordinate in the given view. More...
 
virtual bool getYScaleDifference (const View *v, int y0, int y1, float &diff, QString &unit) const
 Return the difference between the values at the given y coordinates in the given view, and the unit of the difference. More...
 

Protected Types

enum  { NO_VALUE = 0 }
 
typedef std::map< const View *, ImageCacheViewImageCache
 
typedef std::pair< FFTModel *, int > FFTFillPair
 
typedef std::map< const View *, FFTFillPairViewFFTMap
 
typedef std::map< const View *, Dense3DModelPeakCache * > PeakCacheMap
 
typedef std::map< const View *, MagnitudeRangeViewMagMap
 
typedef std::set< MeasureRectMeasureRectSet
 

Protected Slots

void cacheInvalid ()
 
void cacheInvalid (int startFrame, int endFrame)
 
void preferenceChanged (PropertyContainer::PropertyName name)
 
void fillTimerTimedOut ()
 

Protected Member Functions

void invalidateImageCaches ()
 
void invalidateImageCaches (int startFrame, int endFrame)
 
void initialisePalette ()
 
void rotatePalette (int distance)
 
unsigned char getDisplayValue (View *v, float input) const
 
int getColourScaleWidth (QPainter &) const
 
void illuminateLocalFeatures (View *v, QPainter &painter) const
 
float getEffectiveMinFrequency () const
 
float getEffectiveMaxFrequency () const
 
bool getXBinRange (View *v, int x, float &windowMin, float &windowMax) const
 
bool getYBinRange (View *v, int y, float &freqBinMin, float &freqBinMax) const
 
bool getSmoothedYBinRange (View *v, int y, float &freqBinMin, float &freqBinMax) const
 
bool getYBinSourceRange (View *v, int y, float &freqMin, float &freqMax) const
 
bool getAdjustedYBinSourceRange (View *v, int x, int y, float &freqMin, float &freqMax, float &adjFreqMin, float &adjFreqMax) const
 
bool getXBinSourceRange (View *v, int x, RealTime &timeMin, RealTime &timeMax) const
 
bool getXYBinSourceRange (View *v, int x, int y, float &min, float &max, float &phaseMin, float &phaseMax) const
 
int getWindowIncrement () const
 
int getZeroPadLevel (const View *v) const
 
int getFFTSize (const View *v) const
 
FFTModel * getFFTModel (const View *v) const
 
Dense3DModelPeakCache * getPeakCache (const View *v) const
 
void invalidateFFTModels ()
 
void invalidateMagnitudes ()
 
bool updateViewMagnitudes (View *v) const
 
bool paintDrawBuffer (View *v, int w, int h, int *binforx, float *binfory, bool usePeaksCache, MagnitudeRange &overallMag, bool &overallMagChanged) const
 
bool paintDrawBufferPeakFrequencies (View *v, int w, int h, int *binforx, int minbin, int maxbin, float displayMinFreq, float displayMaxFreq, bool logarithmic, MagnitudeRange &overallMag, bool &overallMagChanged) const
 
virtual void updateMeasureRectYCoords (View *v, const MeasureRect &r) const
 
virtual void setMeasureRectYCoord (View *v, MeasureRect &r, bool start, int y) const
 
void connectSignals (const Model *)
 
virtual int alignToReference (View *v, int frame) const
 
virtual int alignFromReference (View *v, int frame) const
 
bool clipboardHasDifferentAlignment (View *v, const Clipboard &clip) const
 
void addMeasureRectToSet (const MeasureRect &r)
 
void deleteMeasureRectFromSet (const MeasureRect &r)
 
void updateMeasurePixrects (View *v) const
 
virtual void setMeasureRectFromPixrect (View *v, MeasureRect &r, QRect pixrect) const
 
MeasureRectSet::const_iterator findFocusedMeasureRect (QPoint) const
 
void paintMeasurementRect (View *v, QPainter &paint, const MeasureRect &r, bool focus) const
 

Protected Attributes

const DenseTimeValueModel * m_model
 
int m_channel
 
int m_windowSize
 
WindowType m_windowType
 
int m_windowHopLevel
 
int m_zeroPadLevel
 
int m_fftSize
 
float m_gain
 
float m_initialGain
 
float m_threshold
 
float m_initialThreshold
 
int m_colourRotation
 
int m_initialRotation
 
int m_minFrequency
 
int m_maxFrequency
 
int m_initialMaxFrequency
 
ColourScale m_colourScale
 
int m_colourMap
 
QColor m_crosshairColour
 
FrequencyScale m_frequencyScale
 
BinDisplay m_binDisplay
 
bool m_normalizeColumns
 
bool m_normalizeVisibleArea
 
bool m_normalizeHybrid
 
int m_lastEmittedZoomStep
 
bool m_synchronous
 
bool m_haveDetailedScale
 
int m_lastPaintBlockWidth
 
RealTime m_lastPaintTime
 
Palette m_palette
 
ViewImageCache m_imageCaches
 
QImage m_drawBuffer
 When painting, we draw directly onto the draw buffer and then copy this to the part of the image cache that needed refreshing before copying the image cache onto the window. More...
 
QTimer * m_updateTimer
 
int m_candidateFillStartFrame
 
bool m_exiting
 
ViewFFTMap m_fftModels
 
PeakCacheMap m_peakCaches
 
Model * m_sliceableModel
 
ViewMagMap m_viewMags
 
std::vector< MagnitudeRangem_columnMags
 
MeasureRectSet m_measureRects
 
MeasureRect m_draggingRect
 
bool m_haveDraggingRect
 
bool m_haveCurrentMeasureRect
 
QPoint m_currentMeasureRectPoint
 
QString m_presentationName
 

Detailed Description

SpectrogramLayer represents waveform data (obtained from a DenseTimeValueModel) in spectrogram form.

Definition at line 47 of file SpectrogramLayer.h.

Member Typedef Documentation

◆ ViewImageCache

typedef std::map<const View *, ImageCache> SpectrogramLayer::ViewImageCache
protected

Definition at line 316 of file SpectrogramLayer.h.

◆ FFTFillPair

typedef std::pair<FFTModel *, int> SpectrogramLayer::FFTFillPair
protected

Definition at line 383 of file SpectrogramLayer.h.

◆ ViewFFTMap

typedef std::map<const View *, FFTFillPair> SpectrogramLayer::ViewFFTMap
protected

Definition at line 384 of file SpectrogramLayer.h.

◆ PeakCacheMap

typedef std::map<const View *, Dense3DModelPeakCache *> SpectrogramLayer::PeakCacheMap
protected

Definition at line 385 of file SpectrogramLayer.h.

◆ ViewMagMap

typedef std::map<const View *, MagnitudeRange> SpectrogramLayer::ViewMagMap
protected

Definition at line 438 of file SpectrogramLayer.h.

◆ MeasureRectSet

typedef std::set<MeasureRect> Layer::MeasureRectSet
protectedinherited

Definition at line 598 of file Layer.h.

Member Enumeration Documentation

◆ Configuration

Enumerator
FullRangeDb 
MelodicRange 
MelodicPeaks 

Definition at line 53 of file SpectrogramLayer.h.

◆ ColourScale

Enumerator
LinearColourScale 
MeterColourScale 
dBSquaredColourScale 
dBColourScale 
PhaseColourScale 

Definition at line 136 of file SpectrogramLayer.h.

◆ FrequencyScale

Enumerator
LinearFrequencyScale 
LogFrequencyScale 

Definition at line 151 of file SpectrogramLayer.h.

◆ BinDisplay

Enumerator
AllBins 
PeakBins 
PeakFrequencies 

Definition at line 162 of file SpectrogramLayer.h.

◆ anonymous enum

anonymous enum
protected
Enumerator
NO_VALUE 

Definition at line 285 of file SpectrogramLayer.h.

◆ VerticalPosition

enum Layer::VerticalPosition
inherited
Enumerator
PositionTop 
PositionMiddle 
PositionBottom 

Definition at line 106 of file Layer.h.

◆ SnapType

enum Layer::SnapType
inherited
Enumerator
SnapLeft 
SnapRight 
SnapNearest 
SnapNeighbouring 

Definition at line 157 of file Layer.h.

◆ ColourSignificance

enum Layer::ColourSignificance
inherited
Enumerator
ColourAbsent 
ColourIrrelevant 
ColourDistinguishes 
ColourAndBackgroundSignificant 
ColourHasMeaningfulValue 

Definition at line 304 of file Layer.h.

Constructor & Destructor Documentation

◆ SpectrogramLayer()

◆ ~SpectrogramLayer()

SpectrogramLayer::~SpectrogramLayer ( )

Definition at line 121 of file SpectrogramLayer.cpp.

References invalidateFFTModels(), and m_updateTimer.

Member Function Documentation

◆ getZoomConstraint()

virtual const ZoomConstraint* SpectrogramLayer::getZoomConstraint ( ) const
inlinevirtual

Return a zoom constraint object defining the supported zoom levels for this layer.

If this returns zero, the layer will support any integer zoom level.

Reimplemented from Layer.

Definition at line 58 of file SpectrogramLayer.h.

◆ getModel() [1/2]

virtual const Model* SpectrogramLayer::getModel ( ) const
inlinevirtual

Implements Layer.

Definition at line 59 of file SpectrogramLayer.h.

References m_model.

◆ paint()

void SpectrogramLayer::paint ( View ,
QPainter &  ,
QRect   
) const
virtual

Paint the given rectangle of this layer onto the given view using the given painter, superimposing it on top of any existing material in that view.

The view is provided here because it is possible for one layer to exist in more than one view, so the dimensions of the view may vary from one paint call to another (without any view having been resized).

!! no inter use cache-fill thread

!!

!! this really needs to be coordinated with the selection !! of m_drawBuffer boundaries in the bufferBinResolution !! case below

!!

!! if (fftSuspended) fft->resume();

Implements Layer.

Definition at line 1770 of file SpectrogramLayer.cpp.

References Layer::copy(), SpectrogramLayer::Palette::getColour(), getEffectiveMaxFrequency(), getEffectiveMinFrequency(), getFFTSize(), View::getFrameForX(), getSmoothedYBinRange(), View::getStartFrame(), getWindowIncrement(), getXBinRange(), View::getXForFrame(), getZeroPadLevel(), View::getZoomLevel(), illuminateLocalFeatures(), SpectrogramLayer::ImageCache::image, Layer::isLayerDormant(), LogFrequencyScale, m_binDisplay, m_candidateFillStartFrame, m_colourScale, m_drawBuffer, m_fftSize, m_frequencyScale, m_imageCaches, m_lastPaintBlockWidth, m_lastPaintTime, m_maxFrequency, m_minFrequency, m_model, m_normalizeVisibleArea, m_palette, m_synchronous, m_updateTimer, m_viewMags, paintDrawBuffer(), paintDrawBufferPeakFrequencies(), PeakFrequencies, PhaseColourScale, SpectrogramLayer::ImageCache::startFrame, updateViewMagnitudes(), SpectrogramLayer::ImageCache::validArea, and SpectrogramLayer::ImageCache::zoomLevel.

Referenced by getColourScaleWidth(), getCrosshairExtents(), getVerticalScaleWidth(), illuminateLocalFeatures(), paintCrosshairs(), and paintVerticalScale().

◆ setSynchronousPainting()

void SpectrogramLayer::setSynchronousPainting ( bool  )
virtual

Enable or disable synchronous painting.

If synchronous painting is enabled, a call to paint() must complete painting the entire rectangle before it returns. If synchronous painting is disabled (which should be the default), the paint() call may defer painting some regions if data is not yet available, by calling back on its view to schedule another update. Synchronous painting is necessary when rendering to an image. Simple layer types will always paint synchronously, and so may ignore this.

Reimplemented from Layer.

Definition at line 1764 of file SpectrogramLayer.cpp.

References m_synchronous.

◆ getVerticalScaleWidth()

int SpectrogramLayer::getVerticalScaleWidth ( View v,
bool  detailed,
QPainter &  paint 
) const
virtual

◆ paintVerticalScale()

◆ getCrosshairExtents()

bool SpectrogramLayer::getCrosshairExtents ( View v,
QPainter &  paint,
QPoint  cursorPos,
std::vector< QRect > &  extents 
) const
virtual

Reimplemented from Layer.

Definition at line 3009 of file SpectrogramLayer.cpp.

References getVerticalScaleWidth(), m_haveDetailedScale, and paint().

◆ paintCrosshairs()

void SpectrogramLayer::paintCrosshairs ( View v,
QPainter &  paint,
QPoint  cursorPos 
) const
virtual

◆ getFeatureDescription()

QString SpectrogramLayer::getFeatureDescription ( View v,
QPoint &  pos 
) const
virtual

◆ snapToFeatureFrame()

bool SpectrogramLayer::snapToFeatureFrame ( View ,
int &  ,
int &  resolution,
SnapType   
) const
virtual

Adjust the given frame to snap to the nearest feature, if possible.

If snap is SnapLeft or SnapRight, adjust the frame to match that of the nearest feature in the given direction regardless of how far away it is. If snap is SnapNearest, adjust the frame to that of the nearest feature in either direction. If snap is SnapNeighbouring, adjust the frame to that of the nearest feature if it is close, and leave it alone (returning false) otherwise. SnapNeighbouring should always choose the same feature that would be used in an editing operation through calls to editStart etc.

Return true if a suitable feature was found and frame adjusted accordingly. Return false if no suitable feature was available (and leave frame unmodified). If returning true, also return the resolution of the model in this layer in sample frames.

Reimplemented from Layer.

Definition at line 2967 of file SpectrogramLayer.cpp.

References getWindowIncrement(), Layer::SnapLeft, Layer::SnapNearest, Layer::SnapNeighbouring, and Layer::SnapRight.

◆ measureDoubleClick()

void SpectrogramLayer::measureDoubleClick ( View v,
QMouseEvent *  e 
)
virtual

◆ hasLightBackground()

bool SpectrogramLayer::hasLightBackground ( ) const
virtual

Reimplemented from Layer.

Definition at line 1131 of file SpectrogramLayer.cpp.

References ColourMapper::hasLightBackground(), and m_colourMap.

◆ setModel()

void SpectrogramLayer::setModel ( const DenseTimeValueModel *  model)

◆ getProperties()

Layer::PropertyList SpectrogramLayer::getProperties ( ) const
virtual

Definition at line 151 of file SpectrogramLayer.cpp.

◆ getPropertyLabel()

QString SpectrogramLayer::getPropertyLabel ( const PropertyName &  name) const
virtual

Definition at line 172 of file SpectrogramLayer.cpp.

◆ getPropertyIconName()

QString SpectrogramLayer::getPropertyIconName ( const PropertyName &  name) const
virtual

Definition at line 192 of file SpectrogramLayer.cpp.

◆ getPropertyType()

Layer::PropertyType SpectrogramLayer::getPropertyType ( const PropertyName &  name) const
virtual

Definition at line 200 of file SpectrogramLayer.cpp.

◆ getPropertyGroupName()

QString SpectrogramLayer::getPropertyGroupName ( const PropertyName &  name) const
virtual

Definition at line 212 of file SpectrogramLayer.cpp.

◆ getPropertyRangeAndValue()

◆ getPropertyValueLabel()

QString SpectrogramLayer::getPropertyValueLabel ( const PropertyName &  name,
int  value 
) const
virtual

Definition at line 386 of file SpectrogramLayer.cpp.

References ColourMapper::getColourMapName().

◆ getNewPropertyRangeMapper()

RangeMapper * SpectrogramLayer::getNewPropertyRangeMapper ( const PropertyName &  name) const
virtual

Definition at line 469 of file SpectrogramLayer.cpp.

◆ setProperty()

◆ setChannel()

void SpectrogramLayer::setChannel ( int  ch)

Specify the channel to use from the source model.

A value of -1 means to mix all available channels. The default is channel 0.

Definition at line 666 of file SpectrogramLayer.cpp.

References invalidateFFTModels(), invalidateImageCaches(), Layer::layerParametersChanged(), and m_channel.

Referenced by setProperties().

◆ getChannel()

int SpectrogramLayer::getChannel ( ) const

Definition at line 678 of file SpectrogramLayer.cpp.

References m_channel.

◆ setWindowSize()

void SpectrogramLayer::setWindowSize ( int  ws)

◆ getWindowSize()

int SpectrogramLayer::getWindowSize ( ) const

Definition at line 699 of file SpectrogramLayer.cpp.

References m_windowSize.

◆ setWindowHopLevel()

void SpectrogramLayer::setWindowHopLevel ( int  level)

◆ getWindowHopLevel()

int SpectrogramLayer::getWindowHopLevel ( ) const

Definition at line 721 of file SpectrogramLayer.cpp.

References m_windowHopLevel.

◆ setWindowType()

void SpectrogramLayer::setWindowType ( WindowType  type)

◆ getWindowType()

WindowType SpectrogramLayer::getWindowType ( ) const

Definition at line 762 of file SpectrogramLayer.cpp.

References m_windowType.

Referenced by preferenceChanged().

◆ setZeroPadLevel()

void SpectrogramLayer::setZeroPadLevel ( int  level)

◆ getZeroPadLevel() [1/2]

int SpectrogramLayer::getZeroPadLevel ( ) const

Definition at line 742 of file SpectrogramLayer.cpp.

References m_zeroPadLevel.

Referenced by getFFTSize(), getXYBinSourceRange(), and paint().

◆ setGain()

void SpectrogramLayer::setGain ( float  gain)

Set the gain multiplier for sample values in this view.

The default is 1.0.

Definition at line 768 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::layerParametersChanged(), and m_gain.

Referenced by setProperties(), and setProperty().

◆ getGain()

float SpectrogramLayer::getGain ( ) const

Definition at line 783 of file SpectrogramLayer.cpp.

References m_gain.

◆ setThreshold()

void SpectrogramLayer::setThreshold ( float  threshold)

Set the threshold for sample values to qualify for being shown in the FFT, in voltage units.

The default is 0.0.

Definition at line 789 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::layerParametersChanged(), and m_threshold.

Referenced by setProperties(), and setProperty().

◆ getThreshold()

float SpectrogramLayer::getThreshold ( ) const

Definition at line 801 of file SpectrogramLayer.cpp.

References m_threshold.

◆ setMinFrequency()

void SpectrogramLayer::setMinFrequency ( int  mf)

◆ getMinFrequency()

int SpectrogramLayer::getMinFrequency ( ) const

Definition at line 822 of file SpectrogramLayer.cpp.

References m_minFrequency.

◆ setMaxFrequency()

void SpectrogramLayer::setMaxFrequency ( int  mf)

◆ getMaxFrequency()

int SpectrogramLayer::getMaxFrequency ( ) const

Definition at line 843 of file SpectrogramLayer.cpp.

References m_maxFrequency.

◆ setColourScale()

void SpectrogramLayer::setColourScale ( ColourScale  colourScale)

Specify the scale for sample levels.

See WaveformLayer for details of meter and dB scaling. The default is dBColourScale.

Definition at line 866 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::layerParametersChanged(), and m_colourScale.

Referenced by setProperties(), setProperty(), and SpectrogramLayer().

◆ getColourScale()

SpectrogramLayer::ColourScale SpectrogramLayer::getColourScale ( ) const

Definition at line 878 of file SpectrogramLayer.cpp.

References m_colourScale.

◆ setFrequencyScale()

void SpectrogramLayer::setFrequencyScale ( FrequencyScale  frequencyScale)

Specify the scale for the y axis.

Definition at line 903 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::layerParametersChanged(), and m_frequencyScale.

Referenced by setProperties(), setProperty(), and SpectrogramLayer().

◆ getFrequencyScale()

SpectrogramLayer::FrequencyScale SpectrogramLayer::getFrequencyScale ( ) const

Definition at line 914 of file SpectrogramLayer.cpp.

References m_frequencyScale.

◆ setBinDisplay()

void SpectrogramLayer::setBinDisplay ( BinDisplay  binDisplay)

Specify the processing of frequency bins for the y axis.

Definition at line 920 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::layerParametersChanged(), and m_binDisplay.

Referenced by setProperties(), setProperty(), and SpectrogramLayer().

◆ getBinDisplay()

SpectrogramLayer::BinDisplay SpectrogramLayer::getBinDisplay ( ) const

Definition at line 931 of file SpectrogramLayer.cpp.

References m_binDisplay.

◆ setNormalizeColumns()

void SpectrogramLayer::setNormalizeColumns ( bool  n)

Normalize each column to its maximum value, independent of its neighbours.

Definition at line 937 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), invalidateMagnitudes(), Layer::layerParametersChanged(), and m_normalizeColumns.

Referenced by setProperties(), setProperty(), and SpectrogramLayer().

◆ getNormalizeColumns()

bool SpectrogramLayer::getNormalizeColumns ( ) const

Definition at line 949 of file SpectrogramLayer.cpp.

References m_normalizeColumns.

◆ setNormalizeVisibleArea()

void SpectrogramLayer::setNormalizeVisibleArea ( bool  n)

Normalize each value against the maximum in the visible region.

Definition at line 973 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), invalidateMagnitudes(), Layer::layerParametersChanged(), and m_normalizeVisibleArea.

Referenced by setProperties(), and setProperty().

◆ getNormalizeVisibleArea()

bool SpectrogramLayer::getNormalizeVisibleArea ( ) const

Definition at line 988 of file SpectrogramLayer.cpp.

References m_normalizeVisibleArea.

◆ setNormalizeHybrid()

void SpectrogramLayer::setNormalizeHybrid ( bool  n)

Normalize each column to its maximum value, and then scale by the log of the (absolute) maximum value.

Definition at line 955 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), invalidateMagnitudes(), Layer::layerParametersChanged(), and m_normalizeHybrid.

Referenced by setProperties().

◆ getNormalizeHybrid()

bool SpectrogramLayer::getNormalizeHybrid ( ) const

Definition at line 967 of file SpectrogramLayer.cpp.

References m_normalizeHybrid.

◆ setColourMap()

void SpectrogramLayer::setColourMap ( int  map)

◆ getColourMap()

int SpectrogramLayer::getColourMap ( ) const

Definition at line 897 of file SpectrogramLayer.cpp.

References m_colourMap.

◆ setColourRotation()

void SpectrogramLayer::setColourRotation ( int  r)

Specify the colourmap rotation for the colour scale.

Definition at line 849 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::layerParametersChanged(), m_colourRotation, and rotatePalette().

Referenced by setProperties(), and setProperty().

◆ getColourRotation()

int SpectrogramLayer::getColourRotation ( ) const

◆ getPreferredFrameCountPosition()

virtual VerticalPosition SpectrogramLayer::getPreferredFrameCountPosition ( ) const
inlinevirtual

Reimplemented from Layer.

Definition at line 203 of file SpectrogramLayer.h.

References Layer::PositionTop.

◆ isLayerOpaque()

virtual bool SpectrogramLayer::isLayerOpaque ( ) const
inlinevirtual

This should return true if the layer completely obscures any underlying layers.

It's used to determine whether the view can safely draw any selection rectangles under the layer instead of over it, in the case where the layer is not scrollable and therefore needs to be redrawn each time (so that the selection rectangle can be cached).

Reimplemented from Layer.

Definition at line 207 of file SpectrogramLayer.h.

◆ getLayerColourSignificance()

virtual ColourSignificance SpectrogramLayer::getLayerColourSignificance ( ) const
inlinevirtual

This should return the degree of meaning associated with colour in this layer.

If ColourAbsent, the layer does not use colour. If ColourIrrelevant, the layer is coloured and the colour may be set by the user, but it doesn't really matter what the colour is (for example, in a time ruler layer). If ColourDistinguishes, then the colour is used to distinguish this layer from other similar layers (e.g. for data layers). If ColourAndBackgroundSignificant, then the layer should be given greater weight than ColourDistinguishes layers when choosing a background colour (e.g. for waveforms). If ColourHasMeaningfulValue, colours are actually meaningful – the view will then show selections using unfilled rectangles instead of translucent filled rectangles, so as not to disturb the colours underneath.

Implements Layer.

Definition at line 209 of file SpectrogramLayer.h.

References Layer::ColourHasMeaningfulValue.

◆ getYForFrequency()

float SpectrogramLayer::getYForFrequency ( const View v,
float  frequency 
) const

◆ getFrequencyForY()

float SpectrogramLayer::getFrequencyForY ( const View v,
int  y 
) const

◆ getCompletion()

int SpectrogramLayer::getCompletion ( View ) const
virtual

Return the proportion of background work complete in drawing this view, as a percentage – in most cases this will be the value returned by pointer from a call to the underlying model's isReady(int *) call.

The view may choose to show a progress meter if it finds that this returns < 100 at any given moment.

Reimplemented from Layer.

Definition at line 2881 of file SpectrogramLayer.cpp.

References m_fftModels, and m_updateTimer.

◆ getError()

QString SpectrogramLayer::getError ( View ) const
virtual

Return an error string if any errors have occurred while loading or processing data for the given view.

Return the empty string if no error has occurred.

Reimplemented from Layer.

Definition at line 2894 of file SpectrogramLayer.cpp.

References m_fftModels.

◆ getValueExtents()

bool SpectrogramLayer::getValueExtents ( float &  min,
float &  max,
bool &  logarithmic,
QString &  unit 
) const
virtual

Return the minimum and maximum values for the y axis of the model in this layer, as well as whether the layer is configured to use a logarithmic y axis display.

Also return the unit for these values if known.

This function returns the "normal" extents for the layer, not necessarily the extents actually in use in the display.

Implements Layer.

Definition at line 2901 of file SpectrogramLayer.cpp.

References LogFrequencyScale, m_fftSize, m_frequencyScale, and m_model.

◆ getDisplayExtents()

bool SpectrogramLayer::getDisplayExtents ( float &  ,
float &   
) const
virtual

Return the minimum and maximum values within the displayed range for the y axis, if only a subset of the whole range of the model (returned by getValueExtents) is being displayed.

Return false if the layer is not imposing a particular display extent (using the normal layer extents or deferring to whatever is in use for the same units elsewhere in the view).

Reimplemented from Layer.

Definition at line 2916 of file SpectrogramLayer.cpp.

References getEffectiveMaxFrequency(), and getEffectiveMinFrequency().

Referenced by getCurrentVerticalZoomStep().

◆ setDisplayExtents()

bool SpectrogramLayer::setDisplayExtents ( float  ,
float   
)
virtual

Set the displayed minimum and maximum values for the y axis to the given range, if supported.

Return false if not supported on this layer (and set nothing). In most cases, layers that return false for getDisplayExtents should also return false for this function.

Reimplemented from Layer.

Definition at line 2926 of file SpectrogramLayer.cpp.

References getCurrentVerticalZoomStep(), invalidateImageCaches(), invalidateMagnitudes(), Layer::layerParametersChanged(), m_lastEmittedZoomStep, m_maxFrequency, m_minFrequency, m_model, and Layer::verticalZoomChanged().

◆ getYScaleValue()

bool SpectrogramLayer::getYScaleValue ( const View ,
int  ,
float &  ,
QString &   
) const
virtual

Return the value and unit at the given y coordinate in the given view.

Reimplemented from Layer.

Definition at line 2958 of file SpectrogramLayer.cpp.

References getFrequencyForY().

◆ toXml()

void SpectrogramLayer::toXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const
virtual

Convert the layer's data (though not those of the model it refers to) into XML for file output.

This class implements the basic name/type/model-id output; subclasses will typically call this superclass implementation with extra attributes describing their particular properties.

Reimplemented from Layer.

Definition at line 3627 of file SpectrogramLayer.cpp.

References m_binDisplay, m_channel, m_colourMap, m_colourRotation, m_colourScale, m_frequencyScale, m_gain, m_maxFrequency, m_minFrequency, m_normalizeColumns, m_normalizeHybrid, m_normalizeVisibleArea, m_threshold, m_windowHopLevel, m_windowSize, and Layer::toXml().

◆ setProperties()

void SpectrogramLayer::setProperties ( const QXmlAttributes &  )
virtual

Set the particular properties of a layer (those specific to the subclass) from a set of XML attributes.

This is the effective inverse of the toXml method.

Implements Layer.

Definition at line 3669 of file SpectrogramLayer.cpp.

References setBinDisplay(), setChannel(), setColourMap(), setColourRotation(), setColourScale(), setFrequencyScale(), setGain(), setMaxFrequency(), setMinFrequency(), setNormalizeColumns(), setNormalizeHybrid(), setNormalizeVisibleArea(), setThreshold(), setWindowHopLevel(), and setWindowSize().

◆ setLayerDormant()

void SpectrogramLayer::setLayerDormant ( const View v,
bool  dormant 
)
virtual

Indicate that a layer is not currently visible in the given view and is not expected to become visible in the near future (for example because the user has explicitly removed or hidden it).

The layer may respond by (for example) freeing any cache memory it is using, until next time its paint method is called, when it should set itself un-dormant again.

A layer class that overrides this function must also call this class's implementation.

Reimplemented from Layer.

Definition at line 994 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), Layer::isLayerDormant(), m_fftModels, m_imageCaches, m_peakCaches, m_sliceableModel, Layer::setLayerDormant(), and SliceableLayer::sliceableModelReplaced().

◆ isLayerScrollable()

virtual bool SpectrogramLayer::isLayerScrollable ( const View ) const
inlinevirtual

This should return true if the layer can safely be scrolled automatically by a given view (simply copying the existing data and then refreshing the exposed area) without altering its meaning.

For the view widget as a whole this is usually not possible because of invariant (non-scrolling) material displayed over the top, but the widget may be able to optimise scrolling better if it is known that individual views can be scrolled safely in this way.

Reimplemented from Layer.

Definition at line 235 of file SpectrogramLayer.h.

◆ getVerticalZoomSteps()

int SpectrogramLayer::getVerticalZoomSteps ( int &  ) const
virtual

Get the number of vertical zoom steps available for this layer.

If vertical zooming is not available, return 0. The meaning of "zooming" is entirely up to the layer – changing the zoom level may cause the layer to reset its display extents or change another property such as display gain. However, layers are advised for consistency to treat smaller zoom steps as "more distant" or "zoomed out" and larger ones as "closer" or "zoomed in".

Layers that provide this facility should also emit the verticalZoomChanged signal if their vertical zoom changes due to factors other than setVerticalZoomStep being called.

Reimplemented from Layer.

Definition at line 3488 of file SpectrogramLayer.cpp.

References SpectrogramRangeMapper::getPositionForValue(), m_fftSize, m_initialMaxFrequency, and m_model.

◆ getCurrentVerticalZoomStep()

int SpectrogramLayer::getCurrentVerticalZoomStep ( ) const
virtual

Get the current vertical zoom step.

A layer may support finer control over ranges etc than is available through the integer zoom step mechanism; if this one does, it should just return the nearest of the available zoom steps to the current settings.

Reimplemented from Layer.

Definition at line 3511 of file SpectrogramLayer.cpp.

References getDisplayExtents(), SpectrogramRangeMapper::getPositionForValue(), m_fftSize, and m_model.

Referenced by setDisplayExtents(), and setProperty().

◆ setVerticalZoomStep()

void SpectrogramLayer::setVerticalZoomStep ( int  )
virtual

Set the vertical zoom step.

The meaning of "zooming" is entirely up to the layer – changing the zoom level may cause the layer to reset its display extents or change another property such as display gain.

Reimplemented from Layer.

Definition at line 3525 of file SpectrogramLayer.cpp.

References SpectrogramRangeMapper::getValueForPosition(), LogFrequencyScale, m_fftSize, m_frequencyScale, m_maxFrequency, m_minFrequency, m_model, setMaxFrequency(), and setMinFrequency().

◆ getNewVerticalZoomRangeMapper()

RangeMapper * SpectrogramLayer::getNewVerticalZoomRangeMapper ( ) const
virtual

Create and return a range mapper for vertical zoom step values.

See the RangeMapper documentation for more details. The returned value is allocated on the heap and will be deleted by the caller.

Reimplemented from Layer.

Definition at line 3593 of file SpectrogramLayer.cpp.

References m_fftSize, and m_model.

◆ getSliceableModel()

const Model * SpectrogramLayer::getSliceableModel ( ) const
virtual

Implements SliceableLayer.

Definition at line 1681 of file SpectrogramLayer.cpp.

References m_fftModels, and m_sliceableModel.

◆ cacheInvalid [1/2]

void SpectrogramLayer::cacheInvalid ( )
protectedslot

Definition at line 1041 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), and invalidateMagnitudes().

Referenced by setModel().

◆ cacheInvalid [2/2]

void SpectrogramLayer::cacheInvalid ( int  startFrame,
int  endFrame 
)
protectedslot

Definition at line 1052 of file SpectrogramLayer.cpp.

References invalidateImageCaches(), and invalidateMagnitudes().

◆ preferenceChanged

void SpectrogramLayer::preferenceChanged ( PropertyContainer::PropertyName  name)
protectedslot

◆ fillTimerTimedOut

void SpectrogramLayer::fillTimerTimedOut ( )
protectedslot

◆ invalidateImageCaches() [1/2]

◆ invalidateImageCaches() [2/2]

void SpectrogramLayer::invalidateImageCaches ( int  startFrame,
int  endFrame 
)
protected

!! when are views removed from the map? on setLayerDormant?

Definition at line 575 of file SpectrogramLayer.cpp.

References View::getEndFrame(), View::getStartFrame(), View::getXForFrame(), and m_imageCaches.

◆ initialisePalette()

◆ rotatePalette()

void SpectrogramLayer::rotatePalette ( int  distance)
protected

◆ getDisplayValue()

unsigned char SpectrogramLayer::getDisplayValue ( View v,
float  input 
) const
protected

◆ getColourScaleWidth()

int SpectrogramLayer::getColourScaleWidth ( QPainter &  paint) const
protected

Definition at line 3238 of file SpectrogramLayer.cpp.

References paint().

Referenced by getVerticalScaleWidth(), and paintVerticalScale().

◆ illuminateLocalFeatures()

void SpectrogramLayer::illuminateLocalFeatures ( View v,
QPainter &  painter 
) const
protected

◆ getEffectiveMinFrequency()

float SpectrogramLayer::getEffectiveMinFrequency ( ) const
protected

◆ getEffectiveMaxFrequency()

float SpectrogramLayer::getEffectiveMaxFrequency ( ) const
protected

◆ getXBinRange()

bool SpectrogramLayer::getXBinRange ( View v,
int  x,
float &  windowMin,
float &  windowMax 
) const
protected

◆ getYBinRange()

bool SpectrogramLayer::getYBinRange ( View v,
int  y,
float &  freqBinMin,
float &  freqBinMax 
) const
protected

◆ getSmoothedYBinRange()

bool SpectrogramLayer::getSmoothedYBinRange ( View v,
int  y,
float &  freqBinMin,
float &  freqBinMax 
) const
protected

◆ getYBinSourceRange()

bool SpectrogramLayer::getYBinSourceRange ( View v,
int  y,
float &  freqMin,
float &  freqMax 
) const
protected

Definition at line 1392 of file SpectrogramLayer.cpp.

References getYBinRange(), m_fftSize, and m_model.

Referenced by getFeatureDescription(), and illuminateLocalFeatures().

◆ getAdjustedYBinSourceRange()

bool SpectrogramLayer::getAdjustedYBinSourceRange ( View v,
int  x,
int  y,
float &  freqMin,
float &  freqMax,
float &  adjFreqMin,
float &  adjFreqMax 
) const
protected

◆ getXBinSourceRange()

bool SpectrogramLayer::getXBinSourceRange ( View v,
int  x,
RealTime &  timeMin,
RealTime &  timeMax 
) const
protected

Definition at line 1373 of file SpectrogramLayer.cpp.

References getWindowIncrement(), getXBinRange(), m_model, and m_windowSize.

Referenced by getFeatureDescription().

◆ getXYBinSourceRange()

bool SpectrogramLayer::getXYBinSourceRange ( View v,
int  x,
int  y,
float &  min,
float &  max,
float &  phaseMin,
float &  phaseMax 
) const
protected

◆ getWindowIncrement()

int SpectrogramLayer::getWindowIncrement ( ) const
inlineprotected

◆ getZeroPadLevel() [2/2]

int SpectrogramLayer::getZeroPadLevel ( const View v) const
protected

◆ getFFTSize()

int SpectrogramLayer::getFFTSize ( const View v) const
protected

Definition at line 1590 of file SpectrogramLayer.cpp.

References getZeroPadLevel(), and m_fftSize.

Referenced by getFFTModel(), getSmoothedYBinRange(), and paint().

◆ getFFTModel()

◆ getPeakCache()

Dense3DModelPeakCache * SpectrogramLayer::getPeakCache ( const View v) const
protected

Definition at line 1670 of file SpectrogramLayer.cpp.

References getFFTModel(), and m_peakCaches.

Referenced by paintDrawBuffer().

◆ invalidateFFTModels()

void SpectrogramLayer::invalidateFFTModels ( )
protected

◆ invalidateMagnitudes()

void SpectrogramLayer::invalidateMagnitudes ( )
protected

◆ updateViewMagnitudes()

bool SpectrogramLayer::updateViewMagnitudes ( View v) const
protected

◆ paintDrawBuffer()

bool SpectrogramLayer::paintDrawBuffer ( View v,
int  w,
int  h,
int *  binforx,
float *  binfory,
bool  usePeaksCache,
MagnitudeRange overallMag,
bool &  overallMagChanged 
) const
protected

◆ paintDrawBufferPeakFrequencies()

bool SpectrogramLayer::paintDrawBufferPeakFrequencies ( View v,
int  w,
int  h,
int *  binforx,
int  minbin,
int  maxbin,
float  displayMinFreq,
float  displayMaxFreq,
bool  logarithmic,
MagnitudeRange overallMag,
bool &  overallMagChanged 
) const
protected

◆ updateMeasureRectYCoords()

void SpectrogramLayer::updateMeasureRectYCoords ( View v,
const MeasureRect r 
) const
protectedvirtual

◆ setMeasureRectYCoord()

void SpectrogramLayer::setMeasureRectYCoord ( View v,
MeasureRect r,
bool  start,
int  y 
) const
protectedvirtual

Reimplemented from Layer.

Definition at line 3614 of file SpectrogramLayer.cpp.

References Layer::MeasureRect::endY, getFrequencyForY(), and Layer::MeasureRect::startY.

◆ sliceableModelReplaced

void SliceableLayer::sliceableModelReplaced ( const Model *  modelToBeReplaced,
const Model *  replacement 
)
signalinherited

◆ getModel() [2/2]

Model* Layer::getModel ( )
inlineinherited

Definition at line 62 of file Layer.h.

References Layer::getModel().

◆ supportsOtherZoomLevels()

virtual bool Layer::supportsOtherZoomLevels ( ) const
inlinevirtualinherited

Return true if this layer can handle zoom levels other than those supported by its zoom constraint (presumably less efficiently or accurately than the officially supported zoom levels).

If true, the layer will unenthusistically accept any integer zoom level from 1 to the maximum returned by its zoom constraint.

Definition at line 81 of file Layer.h.

◆ getPreferredTimeRulerPosition()

virtual VerticalPosition Layer::getPreferredTimeRulerPosition ( ) const
inlinevirtualinherited

Definition at line 109 of file Layer.h.

References Layer::PositionMiddle.

◆ getPropertyContainerIconName()

QString Layer::getPropertyContainerIconName ( ) const
virtualinherited

Definition at line 65 of file Layer.cpp.

References LayerFactory::getInstance(), and LayerFactory::getLayerIconName().

Referenced by LayerTreeModel::data().

◆ getPropertyContainerName()

virtual QString Layer::getPropertyContainerName ( ) const
inlinevirtualinherited

Definition at line 121 of file Layer.h.

References Layer::m_presentationName.

◆ setPresentationName()

void Layer::setPresentationName ( QString  name)
virtualinherited

Definition at line 72 of file Layer.cpp.

References Layer::m_presentationName.

◆ getLayerPresentationName()

QString Layer::getLayerPresentationName ( ) const
virtualinherited

◆ getLayerPresentationPixmap()

virtual QPixmap Layer::getLayerPresentationPixmap ( QSize  ) const
inlinevirtualinherited

Reimplemented in SingleColourLayer.

Definition at line 129 of file Layer.h.

◆ paintMeasurementRects()

void Layer::paintMeasurementRects ( View v,
QPainter &  paint,
bool  showFocus,
QPoint  focusPoint 
) const
virtualinherited

◆ nearestMeasurementRectChanged()

bool Layer::nearestMeasurementRectChanged ( View v,
QPoint  prev,
QPoint  now 
) const
virtualinherited

Definition at line 460 of file Layer.cpp.

References Layer::findFocusedMeasureRect(), and Layer::updateMeasurePixrects().

Referenced by Pane::mouseMoveEvent().

◆ getLabelPreceding()

virtual QString Layer::getLabelPreceding ( int  ) const
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, and TimeInstantLayer.

Definition at line 153 of file Layer.h.

◆ snapToSimilarFeature()

virtual bool Layer::snapToSimilarFeature ( View ,
int &  ,
int &  resolution,
SnapType   
) const
inlinevirtualinherited

Adjust the given frame to snap to the next feature that has "effectively" the same value as the feature prior to the given frame, if possible.

The snap type must be SnapLeft (snap to the time of the next feature prior to the one preceding the given frame that has a similar value to it) or SnapRight (snap to the time of the next feature following the given frame that has a similar value to the feature preceding it). Other values are not permitted.

Return true if a suitable feature was found and frame adjusted accordingly. Return false if no suitable feature was available (and leave frame unmodified). If returning true, also return the resolution of the model in this layer in sample frames.

Reimplemented in RegionLayer, and TimeValueLayer.

Definition at line 207 of file Layer.h.

Referenced by TimeValueLayer::snapToSimilarFeature(), and RegionLayer::snapToSimilarFeature().

◆ drawStart()

virtual void Layer::drawStart ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, ImageLayer, NoteLayer, TimeInstantLayer, and TextLayer.

Definition at line 220 of file Layer.h.

Referenced by Pane::mousePressEvent().

◆ drawDrag()

virtual void Layer::drawDrag ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, ImageLayer, NoteLayer, TimeInstantLayer, and TextLayer.

Definition at line 221 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

◆ drawEnd()

virtual void Layer::drawEnd ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, ImageLayer, NoteLayer, TimeInstantLayer, and TextLayer.

Definition at line 222 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

◆ eraseStart()

virtual void Layer::eraseStart ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, NoteLayer, TimeInstantLayer, and TextLayer.

Definition at line 224 of file Layer.h.

Referenced by Pane::mousePressEvent().

◆ eraseDrag()

virtual void Layer::eraseDrag ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, NoteLayer, TimeInstantLayer, and TextLayer.

Definition at line 225 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

◆ eraseEnd()

virtual void Layer::eraseEnd ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, NoteLayer, TimeInstantLayer, and TextLayer.

Definition at line 226 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

◆ editStart()

virtual void Layer::editStart ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, NoteLayer, ImageLayer, TimeInstantLayer, and TextLayer.

Definition at line 228 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

◆ editDrag()

virtual void Layer::editDrag ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, NoteLayer, ImageLayer, TimeInstantLayer, and TextLayer.

Definition at line 229 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

◆ editEnd()

virtual void Layer::editEnd ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, FlexiNoteLayer, NoteLayer, ImageLayer, TimeInstantLayer, and TextLayer.

Definition at line 230 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

◆ splitStart()

virtual void Layer::splitStart ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in FlexiNoteLayer.

Definition at line 232 of file Layer.h.

Referenced by Pane::mousePressEvent().

◆ splitEnd()

virtual void Layer::splitEnd ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in FlexiNoteLayer.

Definition at line 233 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

◆ addNote()

virtual void Layer::addNote ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Reimplemented in FlexiNoteLayer.

Definition at line 234 of file Layer.h.

Referenced by Pane::mouseDoubleClickEvent().

◆ measureStart()

void Layer::measureStart ( View v,
QMouseEvent *  e 
)
virtualinherited

◆ measureDrag()

void Layer::measureDrag ( View v,
QMouseEvent *  e 
)
virtualinherited

◆ measureEnd()

void Layer::measureEnd ( View v,
QMouseEvent *  e 
)
virtualinherited

◆ haveCurrentMeasureRect()

virtual bool Layer::haveCurrentMeasureRect ( ) const
inlinevirtualinherited

Definition at line 245 of file Layer.h.

References Layer::m_haveCurrentMeasureRect.

◆ deleteCurrentMeasureRect()

◆ editOpen()

virtual bool Layer::editOpen ( View ,
QMouseEvent *   
)
inlinevirtualinherited

Open an editor on the item under the mouse (e.g.

on double-click). If there is no item or editing is not supported, return false.

Reimplemented in FlexiNoteLayer, RegionLayer, TimeValueLayer, ImageLayer, TextLayer, NoteLayer, and TimeInstantLayer.

Definition at line 255 of file Layer.h.

Referenced by Pane::mouseDoubleClickEvent().

◆ moveSelection()

virtual void Layer::moveSelection ( Selection  ,
int   
)
inlinevirtualinherited

Reimplemented in FlexiNoteLayer, RegionLayer, TimeValueLayer, NoteLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 257 of file Layer.h.

Referenced by Pane::editSelectionEnd().

◆ resizeSelection()

virtual void Layer::resizeSelection ( Selection  ,
Selection   
)
inlinevirtualinherited

Reimplemented in FlexiNoteLayer, RegionLayer, TimeValueLayer, NoteLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 258 of file Layer.h.

Referenced by Pane::editSelectionEnd().

◆ deleteSelection()

virtual void Layer::deleteSelection ( Selection  )
inlinevirtualinherited

Reimplemented in FlexiNoteLayer, RegionLayer, TimeValueLayer, NoteLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 259 of file Layer.h.

◆ copy()

virtual void Layer::copy ( View ,
Selection  ,
Clipboard &   
)
inlinevirtualinherited

Reimplemented in FlexiNoteLayer, RegionLayer, TimeValueLayer, NoteLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 261 of file Layer.h.

Referenced by paint(), and Colour3DPlotLayer::paintDense().

◆ paste()

virtual bool Layer::paste ( View ,
const Clipboard &  ,
int  ,
bool   
)
inlinevirtualinherited

Paste from the given clipboard onto the layer at the given frame offset.

If interactive is true, the layer may ask the user about paste options through a dialog if desired, and may return false if the user cancelled the paste operation. This function should return true if a paste actually occurred.

Reimplemented in FlexiNoteLayer, RegionLayer, TimeValueLayer, NoteLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 270 of file Layer.h.

◆ isLayerEditable()

virtual bool Layer::isLayerEditable ( ) const
inlinevirtualinherited

This should return true if the layer can be edited by the user.

If this is the case, the appropriate edit tools may be made available by the application and the layer's drawStart/Drag/End and editStart/Drag/End methods should be implemented.

Reimplemented in TimeValueLayer, FlexiNoteLayer, RegionLayer, NoteLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 338 of file Layer.h.

Referenced by Pane::mouseDoubleClickEvent(), Pane::mouseMoveEvent(), Pane::mousePressEvent(), Pane::mouseReleaseEvent(), Pane::shouldIlluminateLocalSelection(), and Pane::updateContextHelp().

◆ setObjectName()

void Layer::setObjectName ( const QString &  name)
virtualinherited

Definition at line 100 of file Layer.cpp.

References Layer::layerNameChanged().

Referenced by LayerFactory::createLayer().

◆ toBriefXml()

void Layer::toBriefXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const
virtualinherited

Produce XML containing the layer's ID and type.

This is used to refer to the layer in the display section of the SV session file, for a layer that has already been described in the data section.

Definition at line 626 of file Layer.cpp.

References LayerFactory::getInstance(), Layer::getModel(), and Layer::m_presentationName.

◆ addMeasurementRect()

void Layer::addMeasurementRect ( const QXmlAttributes &  attributes)
virtualinherited

Add a measurement rectangle from the given XML attributes (presumably taken from a measurement element).

Does not use a command.

Definition at line 317 of file Layer.cpp.

References Layer::addMeasureRectToSet(), Layer::MeasureRect::endFrame, Layer::MeasureRect::endY, Layer::MeasureRect::haveFrames, Layer::MeasureRect::pixrect, Layer::MeasureRect::startFrame, and Layer::MeasureRect::startY.

◆ isLayerDormant()

bool Layer::isLayerDormant ( const View v) const
virtualinherited

◆ getPlayParameters()

PlayParameters * Layer::getPlayParameters ( )
virtualinherited

◆ needsTextLabelHeight()

virtual bool Layer::needsTextLabelHeight ( ) const
inlinevirtualinherited

Reimplemented in TimeValueLayer, and TimeInstantLayer.

Definition at line 413 of file Layer.h.

◆ hasTimeXAxis()

virtual bool Layer::hasTimeXAxis ( ) const
inlinevirtualinherited

Reimplemented in SliceLayer.

Definition at line 415 of file Layer.h.

Referenced by Layer::getXScaleValue(), Pane::mouseMoveEvent(), and Layer::setMeasureRectFromPixrect().

◆ getXScaleValue()

bool Layer::getXScaleValue ( const View v,
int  x,
float &  value,
QString &  unit 
) const
virtualinherited

Return the value and unit at the given x coordinate in the given view.

This is for descriptive purposes using the measurement tool. The default implementation works correctly if the layer hasTimeXAxis().

Reimplemented in SpectrumLayer.

Definition at line 142 of file Layer.cpp.

References View::getFrameForX(), Layer::getModel(), and Layer::hasTimeXAxis().

Referenced by View::drawMeasurementRect().

◆ getYScaleDifference()

bool Layer::getYScaleDifference ( const View v,
int  y0,
int  y1,
float &  diff,
QString &  unit 
) const
virtualinherited

Return the difference between the values at the given y coordinates in the given view, and the unit of the difference.

The default implementation just calls getYScaleValue twice and returns the difference, with the same unit.

Reimplemented in WaveformLayer, and SpectrumLayer.

Definition at line 155 of file Layer.cpp.

References Layer::getYScaleValue().

Referenced by View::drawMeasurementRect(), and SpectrumLayer::getYScaleDifference().

◆ showLayer

void Layer::showLayer ( View view,
bool  show 
)
slotinherited

◆ modelChanged

◆ modelCompletionChanged

void Layer::modelCompletionChanged ( )
signalinherited

Referenced by Layer::connectSignals().

◆ modelAlignmentCompletionChanged

void Layer::modelAlignmentCompletionChanged ( )
signalinherited

Referenced by Layer::connectSignals().

◆ modelChangedWithin

void Layer::modelChangedWithin ( int  startFrame,
int  endFrame 
)
signalinherited

◆ modelReplaced

◆ layerParametersChanged

void Layer::layerParametersChanged ( )
signalinherited

Referenced by preferenceChanged(), WaveformLayer::setAggressiveCacheing(), WaveformLayer::setAutoNormalize(), SingleColourLayer::setBaseColour(), setBinDisplay(), SliceLayer::setBinScale(), Colour3DPlotLayer::setBinScale(), SpectrumLayer::setChannel(), setChannel(), WaveformLayer::setChannel(), WaveformLayer::setChannelMode(), Colour3DPlotLayer::setColourMap(), setColourMap(), setColourRotation(), Colour3DPlotLayer::setColourScale(), setColourScale(), NoteLayer::setDisplayExtents(), FlexiNoteLayer::setDisplayExtents(), TimeValueLayer::setDisplayExtents(), Colour3DPlotLayer::setDisplayExtents(), setDisplayExtents(), TimeValueLayer::setDrawSegmentDivisions(), SliceLayer::setEnergyScale(), SliceLayer::setFillColourMap(), TimeValueLayer::setFillColourMap(), RegionLayer::setFillColourMap(), setFrequencyScale(), WaveformLayer::setGain(), SliceLayer::setGain(), Colour3DPlotLayer::setGain(), setGain(), Colour3DPlotLayer::setInvertVertical(), setMaxFrequency(), WaveformLayer::setMiddleLineHeight(), setMinFrequency(), SpectrumLayer::setModel(), WaveformLayer::setModel(), SliceLayer::setNormalize(), Colour3DPlotLayer::setNormalizeColumns(), setNormalizeColumns(), Colour3DPlotLayer::setNormalizeHybrid(), setNormalizeHybrid(), Colour3DPlotLayer::setNormalizeVisibleArea(), setNormalizeVisibleArea(), Colour3DPlotLayer::setOpaque(), TimeInstantLayer::setPlotStyle(), SliceLayer::setPlotStyle(), TimeValueLayer::setPlotStyle(), RegionLayer::setPlotStyle(), SliceLayer::setSamplingMode(), WaveformLayer::setScale(), TimeValueLayer::setShowDerivative(), WaveformLayer::setShowMeans(), SpectrumLayer::setShowPeaks(), Colour3DPlotLayer::setSmooth(), SliceLayer::setThreshold(), setThreshold(), WaveformLayer::setUseGreyscale(), NoteLayer::setVerticalScale(), RegionLayer::setVerticalScale(), TimeValueLayer::setVerticalScale(), FlexiNoteLayer::setVerticalScale(), Colour3DPlotLayer::setVerticalZoomStep(), SpectrumLayer::setWindowHopLevel(), setWindowHopLevel(), SpectrumLayer::setWindowSize(), setWindowSize(), SpectrumLayer::setWindowType(), setWindowType(), setZeroPadLevel(), and Layer::showLayer().

◆ layerParameterRangesChanged

void Layer::layerParameterRangesChanged ( )
signalinherited

◆ layerMeasurementRectsChanged

void Layer::layerMeasurementRectsChanged ( )
signalinherited

◆ layerNameChanged

void Layer::layerNameChanged ( )
signalinherited

Referenced by Layer::setObjectName().

◆ verticalZoomChanged

void Layer::verticalZoomChanged ( )
signalinherited

◆ connectSignals()

◆ alignToReference()

int Layer::alignToReference ( View v,
int  frame 
) const
protectedvirtualinherited

◆ alignFromReference()

int Layer::alignFromReference ( View v,
int  frame 
) const
protectedvirtualinherited

◆ clipboardHasDifferentAlignment()

bool Layer::clipboardHasDifferentAlignment ( View v,
const Clipboard &  clip 
) const
protectedinherited

◆ addMeasureRectToSet()

void Layer::addMeasureRectToSet ( const MeasureRect r)
inlineprotectedinherited

Definition at line 588 of file Layer.h.

References Layer::layerMeasurementRectsChanged(), and Layer::m_measureRects.

Referenced by Layer::addMeasurementRect().

◆ deleteMeasureRectFromSet()

void Layer::deleteMeasureRectFromSet ( const MeasureRect r)
inlineprotectedinherited

Definition at line 593 of file Layer.h.

References Layer::layerMeasurementRectsChanged(), and Layer::m_measureRects.

◆ updateMeasurePixrects()

void Layer::updateMeasurePixrects ( View v) const
protectedinherited

◆ setMeasureRectFromPixrect()

void Layer::setMeasureRectFromPixrect ( View v,
MeasureRect r,
QRect  pixrect 
) const
protectedvirtualinherited

◆ findFocusedMeasureRect()

Layer::MeasureRectSet::const_iterator Layer::findFocusedMeasureRect ( QPoint  focusPoint) const
protectedinherited

◆ paintMeasurementRect()

void Layer::paintMeasurementRect ( View v,
QPainter &  paint,
const MeasureRect r,
bool  focus 
) const
protectedinherited

Member Data Documentation

◆ m_model

◆ m_channel

int SpectrogramLayer::m_channel
protected

Definition at line 255 of file SpectrogramLayer.h.

Referenced by getChannel(), getFFTModel(), setChannel(), and toXml().

◆ m_windowSize

◆ m_windowType

WindowType SpectrogramLayer::m_windowType
protected

Definition at line 257 of file SpectrogramLayer.h.

Referenced by getFFTModel(), getWindowType(), and setWindowType().

◆ m_windowHopLevel

int SpectrogramLayer::m_windowHopLevel
protected

◆ m_zeroPadLevel

int SpectrogramLayer::m_zeroPadLevel
protected

◆ m_fftSize

◆ m_gain

float SpectrogramLayer::m_gain
protected

◆ m_initialGain

float SpectrogramLayer::m_initialGain
protected

Definition at line 262 of file SpectrogramLayer.h.

Referenced by getPropertyRangeAndValue().

◆ m_threshold

float SpectrogramLayer::m_threshold
protected

◆ m_initialThreshold

float SpectrogramLayer::m_initialThreshold
protected

Definition at line 264 of file SpectrogramLayer.h.

Referenced by getPropertyRangeAndValue().

◆ m_colourRotation

int SpectrogramLayer::m_colourRotation
protected

◆ m_initialRotation

int SpectrogramLayer::m_initialRotation
protected

Definition at line 266 of file SpectrogramLayer.h.

Referenced by getPropertyRangeAndValue().

◆ m_minFrequency

◆ m_maxFrequency

◆ m_initialMaxFrequency

int SpectrogramLayer::m_initialMaxFrequency
protected

Definition at line 269 of file SpectrogramLayer.h.

Referenced by getVerticalZoomSteps(), and SpectrogramLayer().

◆ m_colourScale

◆ m_colourMap

int SpectrogramLayer::m_colourMap
protected

◆ m_crosshairColour

QColor SpectrogramLayer::m_crosshairColour
protected

Definition at line 272 of file SpectrogramLayer.h.

Referenced by initialisePalette(), and paintCrosshairs().

◆ m_frequencyScale

◆ m_binDisplay

◆ m_normalizeColumns

bool SpectrogramLayer::m_normalizeColumns
protected

◆ m_normalizeVisibleArea

bool SpectrogramLayer::m_normalizeVisibleArea
protected

◆ m_normalizeHybrid

bool SpectrogramLayer::m_normalizeHybrid
protected

◆ m_lastEmittedZoomStep

int SpectrogramLayer::m_lastEmittedZoomStep
protected

Definition at line 278 of file SpectrogramLayer.h.

Referenced by setDisplayExtents(), and setProperty().

◆ m_synchronous

bool SpectrogramLayer::m_synchronous
protected

◆ m_haveDetailedScale

bool SpectrogramLayer::m_haveDetailedScale
mutableprotected

Definition at line 281 of file SpectrogramLayer.h.

Referenced by getCrosshairExtents(), paintCrosshairs(), and paintVerticalScale().

◆ m_lastPaintBlockWidth

int SpectrogramLayer::m_lastPaintBlockWidth
mutableprotected

Definition at line 282 of file SpectrogramLayer.h.

Referenced by paint().

◆ m_lastPaintTime

RealTime SpectrogramLayer::m_lastPaintTime
mutableprotected

Definition at line 283 of file SpectrogramLayer.h.

Referenced by paint().

◆ m_palette

Palette SpectrogramLayer::m_palette
protected

Definition at line 302 of file SpectrogramLayer.h.

Referenced by initialisePalette(), paint(), paintVerticalScale(), and rotatePalette().

◆ m_imageCaches

ViewImageCache SpectrogramLayer::m_imageCaches
mutableprotected

◆ m_drawBuffer

QImage SpectrogramLayer::m_drawBuffer
mutableprotected

When painting, we draw directly onto the draw buffer and then copy this to the part of the image cache that needed refreshing before copying the image cache onto the window.

(Remind me why we don't draw directly onto the cache?)

Definition at line 327 of file SpectrogramLayer.h.

Referenced by initialisePalette(), paint(), paintDrawBuffer(), paintDrawBufferPeakFrequencies(), and rotatePalette().

◆ m_updateTimer

QTimer* SpectrogramLayer::m_updateTimer
mutableprotected

◆ m_candidateFillStartFrame

int SpectrogramLayer::m_candidateFillStartFrame
mutableprotected

Definition at line 331 of file SpectrogramLayer.h.

Referenced by getFFTModel(), and paint().

◆ m_exiting

bool SpectrogramLayer::m_exiting
protected

Definition at line 332 of file SpectrogramLayer.h.

◆ m_fftModels

ViewFFTMap SpectrogramLayer::m_fftModels
mutableprotected

◆ m_peakCaches

PeakCacheMap SpectrogramLayer::m_peakCaches
mutableprotected

◆ m_sliceableModel

Model* SpectrogramLayer::m_sliceableModel
mutableprotected

◆ m_viewMags

ViewMagMap SpectrogramLayer::m_viewMags
mutableprotected

◆ m_columnMags

std::vector<MagnitudeRange> SpectrogramLayer::m_columnMags
mutableprotected

◆ m_measureRects

◆ m_draggingRect

MeasureRect Layer::m_draggingRect
protectedinherited

◆ m_haveDraggingRect

bool Layer::m_haveDraggingRect
protectedinherited

◆ m_haveCurrentMeasureRect

bool Layer::m_haveCurrentMeasureRect
mutableprotectedinherited

◆ m_currentMeasureRectPoint

QPoint Layer::m_currentMeasureRectPoint
mutableprotectedinherited

Definition at line 603 of file Layer.h.

Referenced by Layer::deleteCurrentMeasureRect(), and Layer::paintMeasurementRects().

◆ m_presentationName

QString Layer::m_presentationName
protectedinherited

The documentation for this class was generated from the following files: