#include <SpectrumLayer.h>

Inheritance diagram for SpectrumLayer:
Inheritance graph
Collaboration diagram for SpectrumLayer:
Collaboration graph

Public Types

enum  EnergyScale { LinearScale, MeterScale, dBScale, AbsoluteScale }
 
enum  SamplingMode { NearestSample, SampleMean, SamplePeak }
 
enum  PlotStyle { PlotLines, PlotSteps, PlotBlocks, PlotFilledBlocks }
 
enum  BinScale { LinearBins, LogBins, InvertedLogBins }
 
enum  VerticalPosition { PositionTop, PositionMiddle, PositionBottom }
 
enum  SnapType { SnapLeft, SnapRight, SnapNeighbouring }
 
enum  ColourSignificance {
  ColourAbsent, ColourIrrelevant, ColourDistinguishes, ColourAndBackgroundSignificant,
  ColourHasMeaningfulValue
}
 

Public Slots

void sliceableModelReplaced (ModelId, ModelId)
 
void showLayer (LayerGeometryProvider *, bool show)
 Change the visibility status (dormancy) of the layer in the given view. More...
 

Signals

void modelChanged (ModelId)
 
void modelCompletionChanged (ModelId)
 
void modelAlignmentCompletionChanged (ModelId)
 
void modelChangedWithin (ModelId, sv_frame_t startFrame, sv_frame_t endFrame)
 
void modelReplaced ()
 
void layerParametersChanged ()
 
void layerParameterRangesChanged ()
 
void layerMeasurementRectsChanged ()
 
void layerNameChanged ()
 
void verticalZoomChanged ()
 

Public Member Functions

 SpectrumLayer ()
 
 ~SpectrumLayer ()
 
void setModel (ModelId model)
 
virtual ModelId getModel () const override
 Return the ID of the model represented in this layer. More...
 
virtual bool getCrosshairExtents (LayerGeometryProvider *, QPainter &, QPoint cursorPos, std::vector< QRect > &extents) const override
 
virtual void paintCrosshairs (LayerGeometryProvider *, QPainter &, QPoint) const override
 
virtual int getHorizontalScaleHeight (LayerGeometryProvider *, QPainter &) const override
 
virtual void paintHorizontalScale (LayerGeometryProvider *, QPainter &, int xorigin) const
 
virtual QString getFeatureDescription (LayerGeometryProvider *v, QPoint &) const override
 
virtual void paint (LayerGeometryProvider *v, QPainter &paint, QRect rect) const override
 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 VerticalPosition getPreferredFrameCountPosition () const override
 
virtual PropertyList getProperties () const override
 
virtual QString getPropertyLabel (const PropertyName &) const override
 
virtual QString getPropertyIconName (const PropertyName &) const override
 
virtual PropertyType getPropertyType (const PropertyName &) const override
 
virtual QString getPropertyGroupName (const PropertyName &) const override
 
virtual int getPropertyRangeAndValue (const PropertyName &, int *min, int *max, int *deflt) const override
 
virtual QString getPropertyValueLabel (const PropertyName &, int value) const override
 
virtual RangeMapper * getNewPropertyRangeMapper (const PropertyName &) const override
 
virtual void setProperty (const PropertyName &, int value) override
 
virtual void setProperties (const QXmlAttributes &) override
 Set the particular properties of a layer (those specific to the subclass) from a set of XML attributes. More...
 
virtual bool setDisplayExtents (double min, double max) override
 Set the displayed minimum and maximum values for the y axis to the given range, if supported. More...
 
virtual bool getXScaleValue (const LayerGeometryProvider *v, int x, double &value, QString &unit) const override
 Return the value and unit at the given x coordinate in the given view. More...
 
virtual bool getYScaleValue (const LayerGeometryProvider *, int y, double &value, QString &unit) const override
 Return the value and unit at the given y coordinate in the given view. More...
 
virtual bool getYScaleDifference (const LayerGeometryProvider *, int y0, int y1, double &diff, QString &unit) const override
 Return the difference between the values at the given y coordinates in the given view, and the unit of the difference. More...
 
virtual bool isLayerScrollable (const LayerGeometryProvider *) const override
 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...
 
void setChannel (int)
 
int getChannel () const
 
void setWindowSize (int)
 
int getWindowSize () const
 
void setWindowHopLevel (int level)
 
int getWindowHopLevel () const
 
void setOversampling (int oversampling)
 
int getOversampling () const
 
int getFFTSize () const
 
void setWindowType (WindowType type)
 
WindowType getWindowType () const
 
void setShowPeaks (bool)
 
bool getShowPeaks () const
 
bool needsTextLabelHeight () const override
 True if this layer will need to place text labels when it is painted. More...
 
virtual void toXml (QTextStream &stream, QString indent="", QString extraAttributes="") const override
 
virtual double getFrequencyForX (const LayerGeometryProvider *, double x) const override
 
virtual double getXForFrequency (const LayerGeometryProvider *, double freq) const override
 
void setSliceableModel (ModelId model)
 
int getVerticalScaleWidth (LayerGeometryProvider *v, bool, QPainter &) const override
 
void paintVerticalScale (LayerGeometryProvider *v, bool, QPainter &paint, QRect rect) const override
 
ColourSignificance getLayerColourSignificance () const override
 Implements Layer::getLayerColourSignificance() More...
 
bool hasLightBackground () const override
 Return true if the layer currently has a dark colour on a light background, false if it has a light colour on a dark background. More...
 
bool getValueExtents (double &min, double &max, bool &logarithmic, QString &unit) const override
 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...
 
bool getDisplayExtents (double &min, double &max) const override
 Return the minimum and maximum values within the visible area for the y axis of this layer. More...
 
int getVerticalZoomSteps (int &defaultStep) const override
 Get the number of vertical zoom steps available for this layer. More...
 
int getCurrentVerticalZoomStep () const override
 Get the current vertical zoom step. More...
 
void setVerticalZoomStep (int) override
 Set the vertical zoom step. More...
 
RangeMapper * getNewVerticalZoomRangeMapper () const override
 Create and return a range mapper for vertical zoom step values. More...
 
virtual bool hasTimeXAxis () const override
 Return true if the X axis on the layer is time proportional to audio frames, false otherwise. More...
 
virtual void zoomToRegion (const LayerGeometryProvider *, QRect) override
 Update the X and Y axis scales, where appropriate, to focus on the given rectangular region. More...
 
bool usesSolidColour () const
 
void setFillColourMap (int)
 
int getFillColourMap () const
 
void setEnergyScale (EnergyScale)
 
EnergyScale getEnergyScale () const
 
void setSamplingMode (SamplingMode)
 
SamplingMode getSamplingMode () const
 
void setPlotStyle (PlotStyle style)
 
PlotStyle getPlotStyle () const
 
void setBinScale (BinScale scale)
 
BinScale getBinScale () const
 
void setThreshold (float)
 
float getThreshold () const
 
void setGain (float gain)
 
float getGain () const
 
void setNormalize (bool n)
 
bool getNormalize () const
 
virtual void setBaseColour (int)
 Set the colour used to draw primary items in the layer. More...
 
virtual int getBaseColour () const
 Retrieve the current primary drawing colour, as a ColourDatabase index value. More...
 
QPixmap getLayerPresentationPixmap (QSize size) const override
 
virtual void setDefaultColourFor (LayerGeometryProvider *v)
 
ModelId getSourceModel () const
 Return the ID of the source model for the model represented in this layer. More...
 
virtual ModelId getExportModel (LayerGeometryProvider *) const
 Return the ID of a model representing the contents of this layer in a form suitable for export to a tabular file format such as CSV. More...
 
virtual const ZoomConstraint * getZoomConstraint () const
 Return a zoom constraint object defining the supported zoom levels for this layer. More...
 
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 void setSynchronousPainting (bool)
 Enable or disable synchronous painting. More...
 
virtual VerticalPosition getPreferredTimeRulerPosition () const
 
QString getPropertyContainerIconName () const override
 
QString getPropertyContainerName () const override
 
virtual void setPresentationName (QString name)
 
virtual bool isPresentationNameSet () const
 
virtual QString getLayerPresentationName () const
 
virtual void paintMeasurementRects (LayerGeometryProvider *, QPainter &, bool showFocus, QPoint focusPoint) const
 
virtual bool nearestMeasurementRectChanged (LayerGeometryProvider *, QPoint prev, QPoint now) const
 
virtual QString getLabelPreceding (sv_frame_t) const
 
virtual bool snapToFeatureFrame (LayerGeometryProvider *, sv_frame_t &, int &resolution, SnapType, int) const
 Adjust the given frame to snap to the nearest feature, if possible. More...
 
virtual bool snapToSimilarFeature (LayerGeometryProvider *, sv_frame_t &, 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 (LayerGeometryProvider *, QMouseEvent *)
 
virtual void drawDrag (LayerGeometryProvider *, QMouseEvent *)
 
virtual void drawEnd (LayerGeometryProvider *, QMouseEvent *)
 
virtual void eraseStart (LayerGeometryProvider *, QMouseEvent *)
 
virtual void eraseDrag (LayerGeometryProvider *, QMouseEvent *)
 
virtual void eraseEnd (LayerGeometryProvider *, QMouseEvent *)
 
virtual void editStart (LayerGeometryProvider *, QMouseEvent *)
 
virtual void editDrag (LayerGeometryProvider *, QMouseEvent *)
 
virtual void editEnd (LayerGeometryProvider *, QMouseEvent *)
 
virtual void splitStart (LayerGeometryProvider *, QMouseEvent *)
 
virtual void splitEnd (LayerGeometryProvider *, QMouseEvent *)
 
virtual void addNote (LayerGeometryProvider *, QMouseEvent *)
 
virtual void measureStart (LayerGeometryProvider *, QMouseEvent *)
 
virtual void measureDrag (LayerGeometryProvider *, QMouseEvent *)
 
virtual void measureEnd (LayerGeometryProvider *, QMouseEvent *)
 
virtual void measureDoubleClick (LayerGeometryProvider *, QMouseEvent *)
 
virtual bool haveCurrentMeasureRect () const
 
virtual void deleteCurrentMeasureRect ()
 
virtual bool editOpen (LayerGeometryProvider *, QMouseEvent *)
 Open an editor on the item under the mouse (e.g. More...
 
virtual void moveSelection (Selection, sv_frame_t)
 
virtual void resizeSelection (Selection, Selection)
 
virtual void deleteSelection (Selection)
 
virtual void copy (LayerGeometryProvider *, Selection, Clipboard &)
 
virtual bool paste (LayerGeometryProvider *, const Clipboard &, sv_frame_t, bool)
 Paste from the given clipboard onto the layer at the given frame offset. More...
 
virtual bool isLayerOpaque () const
 This should return true if the layer completely obscures any underlying layers. More...
 
virtual bool isLayerEditable () const
 This should return true if the layer can be edited by the user. More...
 
virtual int getCompletion (LayerGeometryProvider *) 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 (LayerGeometryProvider *) const
 Return an error string if any errors have occurred while loading or processing data for the given view. 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 void setLayerDormant (const LayerGeometryProvider *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 isLayerDormant (const LayerGeometryProvider *v) const
 Return whether the layer is dormant (i.e. More...
 
std::shared_ptr< PlayParameters > getPlayParameters () override
 Return the play parameters for this layer, if any. More...
 
virtual bool adoptExtents (double, double, QString)
 Consider using the given value extents and units for this layer. More...
 
virtual bool canExistWithoutModel () const
 Return true if this layer type can function without a model being set. More...
 

Protected Types

enum  BinAlignment { BinsCentredOnScalePoints, BinsSpanScalePoints }
 
typedef std::vector< float > BiasCurve
 
typedef std::map< int, int > ColourRefCount
 
typedef std::set< MeasureRectMeasureRectSet
 

Protected Slots

void preferenceChanged (PropertyContainer::PropertyName name)
 

Protected Member Functions

void setupFFT ()
 
virtual double getBinForFrequency (double freq) const
 
virtual double getFrequencyForBin (double bin) const
 
virtual double getXForBin (const LayerGeometryProvider *, double bin) const override
 Convert a (possibly non-integral) bin into x-coord. May be overridden. More...
 
virtual double getBinForX (const LayerGeometryProvider *, double x) const override
 Convert an x-coord into (possibly non-integral) bin. May be overridden. More...
 
virtual void getBiasCurve (BiasCurve &) const override
 
int getWindowIncrement () const
 
double getXForScalePoint (const LayerGeometryProvider *, double p, double pmin, double pmax) const
 Convert a point such as a bin number into x-coord, given max & min. More...
 
double getScalePointForX (const LayerGeometryProvider *, double x, double pmin, double pmax) const
 Convert an x-coord into a point such as a bin number, given max & min. More...
 
virtual double getYForValue (const LayerGeometryProvider *v, double value, double &norm) const
 
virtual double getValueForY (const LayerGeometryProvider *v, double y) const
 
virtual QString getFeatureDescriptionAux (LayerGeometryProvider *v, QPoint &, bool includeBinDescription, int &minbin, int &maxbin, int &range) const
 
virtual float getThresholdDb () const
 
int getDefaultColourHint (bool dark, bool &impose) override
 
virtual QColor getBaseQColor () const
 
virtual QColor getBackgroundQColor (LayerGeometryProvider *v) const
 
virtual QColor getForegroundQColor (LayerGeometryProvider *v) const
 
std::vector< QColor > getPartialShades (LayerGeometryProvider *v) const
 
virtual void flagBaseColourChanged ()
 
void connectSignals (ModelId)
 
virtual sv_frame_t alignToReference (LayerGeometryProvider *v, sv_frame_t frame) const
 
virtual sv_frame_t alignFromReference (LayerGeometryProvider *v, sv_frame_t frame) const
 
bool clipboardHasDifferentAlignment (LayerGeometryProvider *v, const Clipboard &clip) const
 
void addMeasureRectToSet (const MeasureRect &r)
 
void deleteMeasureRectFromSet (const MeasureRect &r)
 
void updateMeasurePixrects (LayerGeometryProvider *v) const
 
virtual void updateMeasureRectYCoords (LayerGeometryProvider *v, const MeasureRect &r) const
 
virtual void setMeasureRectYCoord (LayerGeometryProvider *v, MeasureRect &r, bool start, int y) const
 
virtual void setMeasureRectFromPixrect (LayerGeometryProvider *v, MeasureRect &r, QRect pixrect) const
 
MeasureRectSet::const_iterator findFocusedMeasureRect (QPoint) const
 
void paintMeasurementRect (LayerGeometryProvider *v, QPainter &paint, const MeasureRect &r, bool focus) const
 
bool valueExtentsMatchMine (LayerGeometryProvider *v) const
 

Protected Attributes

ModelId m_originModel
 
int m_channel
 
bool m_channelSet
 
int m_windowSize
 
WindowType m_windowType
 
int m_windowHopLevel
 
int m_oversampling
 
bool m_showPeaks
 
bool m_newFFTNeeded
 
double m_freqOfMinBin
 
QMutex m_fftMutex
 
BiasCurve m_biasCurve
 
ModelId m_sliceableModel
 
BinAlignment m_binAlignment
 
int m_colourMap
 
bool m_colourInverted
 
EnergyScale m_energyScale
 
SamplingMode m_samplingMode
 
PlotStyle m_plotStyle
 
BinScale m_binScale
 
bool m_normalize
 
float m_threshold
 
float m_initialThreshold
 
float m_gain
 
int m_minbin
 
int m_maxbin
 
std::vector< int > m_scalePoints
 
int m_scalePaintHeight
 
std::map< int, int > m_xorigins
 
std::map< int, int > m_yorigins
 
std::map< int, int > m_heights
 
sv_frame_t m_currentf0
 
sv_frame_t m_currentf1
 
std::vector< float > m_values
 
int m_colour
 
bool m_colourExplicitlySet
 
bool m_defaultColourSet
 
MeasureRectSet m_measureRects
 
MeasureRect m_draggingRect
 
bool m_haveDraggingRect
 
bool m_haveCurrentMeasureRect
 
QPoint m_currentMeasureRectPoint
 
QString m_presentationName
 

Static Protected Attributes

static ColourRefCount m_colourRefCount
 

Detailed Description

Definition at line 31 of file SpectrumLayer.h.

Member Typedef Documentation

typedef std::vector<float> SliceLayer::BiasCurve
protectedinherited

Definition at line 150 of file SliceLayer.h.

typedef std::map<int, int> SingleColourLayer::ColourRefCount
protectedinherited

Definition at line 89 of file SingleColourLayer.h.

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

Definition at line 692 of file Layer.h.

Member Enumeration Documentation

enum SliceLayer::EnergyScale
inherited
Enumerator
LinearScale 
MeterScale 
dBScale 
AbsoluteScale 

Definition at line 82 of file SliceLayer.h.

enum SliceLayer::SamplingMode
inherited
Enumerator
NearestSample 
SampleMean 
SamplePeak 

Definition at line 84 of file SliceLayer.h.

enum SliceLayer::PlotStyle
inherited
Enumerator
PlotLines 
PlotSteps 
PlotBlocks 
PlotFilledBlocks 

Definition at line 86 of file SliceLayer.h.

enum SliceLayer::BinScale
inherited
Enumerator
LinearBins 
LogBins 
InvertedLogBins 

Definition at line 88 of file SliceLayer.h.

enum SliceLayer::BinAlignment
protectedinherited
Enumerator
BinsCentredOnScalePoints 
BinsSpanScalePoints 

Definition at line 168 of file SliceLayer.h.

enum Layer::VerticalPosition
inherited
Enumerator
PositionTop 
PositionMiddle 
PositionBottom 

Definition at line 140 of file Layer.h.

enum Layer::SnapType
inherited
Enumerator
SnapLeft 
SnapRight 
SnapNeighbouring 

Definition at line 195 of file Layer.h.

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

Definition at line 348 of file Layer.h.

Constructor & Destructor Documentation

SpectrumLayer::~SpectrumLayer ( )

Definition at line 56 of file SpectrumLayer.cpp.

References SliceLayer::m_sliceableModel.

Member Function Documentation

void SpectrumLayer::setModel ( ModelId  model)

Definition at line 62 of file SpectrumLayer.cpp.

References Layer::layerParametersChanged(), m_newFFTNeeded, and m_originModel.

virtual ModelId SpectrumLayer::getModel ( ) const
inlineoverridevirtual

Return the ID of the model represented in this layer.

Reimplemented from SliceLayer.

Definition at line 41 of file SpectrumLayer.h.

References getCrosshairExtents(), getFeatureDescription(), getHorizontalScaleHeight(), m_originModel, paint(), paintCrosshairs(), and paintHorizontalScale().

bool SpectrumLayer::getCrosshairExtents ( LayerGeometryProvider v,
QPainter &  paint,
QPoint  cursorPos,
std::vector< QRect > &  extents 
) const
overridevirtual
int SpectrumLayer::getHorizontalScaleHeight ( LayerGeometryProvider v,
QPainter &  paint 
) const
overridevirtual

Reimplemented from Layer.

Definition at line 877 of file SpectrumLayer.cpp.

References HorizontalFrequencyScale::getHeight().

Referenced by getModel(), paint(), paintCrosshairs(), and paintHorizontalScale().

QString SpectrumLayer::getFeatureDescription ( LayerGeometryProvider v,
QPoint &  p 
) const
overridevirtual
void SpectrumLayer::paint ( LayerGeometryProvider ,
QPainter &  ,
QRect   
) const
overridevirtual

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 LayerGeometryProvider (an interface implemented by 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).

!! and dark background?

Reimplemented from SliceLayer.

Definition at line 732 of file SpectrumLayer.cpp.

References ColourMapper::BlackOnWhite, PaintAssistant::drawVisibleText(), getBiasCurve(), LayerGeometryProvider::getCentreFrame(), getFFTSize(), getHorizontalScaleHeight(), LayerGeometryProvider::getPaintHeight(), SliceLayer::getVerticalScaleWidth(), getXForFrequency(), LayerGeometryProvider::getXForViewX(), SliceLayer::getYForValue(), SliceLayer::hasLightBackground(), SliceLayer::m_colourInverted, SliceLayer::m_gain, m_newFFTNeeded, m_originModel, m_showPeaks, SliceLayer::m_sliceableModel, ColourMapper::map(), PaintAssistant::OutlinedText, SliceLayer::paint(), paintHorizontalScale(), ViewManager::scalePixelSize(), setupFFT(), LayerGeometryProvider::shouldIlluminateLocalFeatures(), and ColourMapper::WhiteOnBlack.

Referenced by getModel().

Layer::PropertyList SpectrumLayer::getProperties ( ) const
overridevirtual

Definition at line 132 of file SpectrumLayer.cpp.

References SliceLayer::getProperties().

Referenced by getPreferredFrameCountPosition().

QString SpectrumLayer::getPropertyLabel ( const PropertyName &  name) const
overridevirtual

Definition at line 143 of file SpectrumLayer.cpp.

References SliceLayer::getPropertyLabel().

Referenced by getPreferredFrameCountPosition().

QString SpectrumLayer::getPropertyIconName ( const PropertyName &  name) const
overridevirtual

Definition at line 153 of file SpectrumLayer.cpp.

References SliceLayer::getPropertyIconName().

Referenced by getPreferredFrameCountPosition().

Layer::PropertyType SpectrumLayer::getPropertyType ( const PropertyName &  name) const
overridevirtual

Definition at line 160 of file SpectrumLayer.cpp.

References SliceLayer::getPropertyType().

Referenced by getPreferredFrameCountPosition().

QString SpectrumLayer::getPropertyGroupName ( const PropertyName &  name) const
overridevirtual

Definition at line 170 of file SpectrumLayer.cpp.

References SliceLayer::getPropertyGroupName().

Referenced by getPreferredFrameCountPosition().

int SpectrumLayer::getPropertyRangeAndValue ( const PropertyName &  name,
int *  min,
int *  max,
int *  deflt 
) const
overridevirtual
QString SpectrumLayer::getPropertyValueLabel ( const PropertyName &  name,
int  value 
) const
overridevirtual

Definition at line 231 of file SpectrumLayer.cpp.

References SliceLayer::getPropertyValueLabel().

Referenced by getPreferredFrameCountPosition().

RangeMapper * SpectrumLayer::getNewPropertyRangeMapper ( const PropertyName &  name) const
overridevirtual
void SpectrumLayer::setProperty ( const PropertyName &  name,
int  value 
)
overridevirtual
void SpectrumLayer::setProperties ( const QXmlAttributes &  )
overridevirtual

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.

Reimplemented from SliceLayer.

Definition at line 960 of file SpectrumLayer.cpp.

References setOversampling(), SliceLayer::setProperties(), setShowPeaks(), setWindowHopLevel(), and setWindowSize().

Referenced by getPreferredFrameCountPosition().

bool SpectrumLayer::setDisplayExtents ( double  ,
double   
)
overridevirtual

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 SliceLayer.

Definition at line 378 of file SpectrumLayer.cpp.

References getFrequencyForBin(), m_freqOfMinBin, SliceLayer::m_minbin, and SliceLayer::setDisplayExtents().

Referenced by getPreferredFrameCountPosition().

bool SpectrumLayer::getXScaleValue ( const LayerGeometryProvider v,
int  x,
double &  value,
QString &  unit 
) const
overridevirtual

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 from Layer.

Definition at line 456 of file SpectrumLayer.cpp.

References getFrequencyForX().

Referenced by getPreferredFrameCountPosition().

bool SpectrumLayer::getYScaleValue ( const LayerGeometryProvider ,
int  ,
double &  ,
QString &   
) const
overridevirtual

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

Reimplemented from Layer.

Definition at line 465 of file SpectrumLayer.cpp.

References SliceLayer::dBScale, SliceLayer::getValueForY(), SliceLayer::m_energyScale, SliceLayer::m_threshold, and SliceLayer::MeterScale.

Referenced by getPreferredFrameCountPosition().

bool SpectrumLayer::getYScaleDifference ( const LayerGeometryProvider v,
int  y0,
int  y1,
double &  diff,
QString &  unit 
) const
overridevirtual

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 from Layer.

Definition at line 491 of file SpectrumLayer.cpp.

References Layer::getYScaleDifference().

Referenced by getPreferredFrameCountPosition().

virtual bool SpectrumLayer::isLayerScrollable ( const LayerGeometryProvider ) const
inlineoverridevirtual

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 SliceLayer.

Definition at line 82 of file SpectrumLayer.h.

References setChannel().

void SpectrumLayer::setChannel ( int  channel)

Definition at line 78 of file SpectrumLayer.cpp.

References Layer::layerParametersChanged(), m_channel, m_channelSet, and m_newFFTNeeded.

Referenced by isLayerScrollable().

int SpectrumLayer::getChannel ( ) const
inline

Definition at line 85 of file SpectrumLayer.h.

References m_channel, and setWindowSize().

int SpectrumLayer::getWindowSize ( ) const
inline

Definition at line 88 of file SpectrumLayer.h.

References m_windowSize, and setWindowHopLevel().

Referenced by getFFTSize().

void SpectrumLayer::setWindowHopLevel ( int  level)
int SpectrumLayer::getWindowHopLevel ( ) const
inline

Definition at line 91 of file SpectrumLayer.h.

References getOversampling(), m_windowHopLevel, and setOversampling().

void SpectrumLayer::setOversampling ( int  oversampling)
int SpectrumLayer::getOversampling ( ) const

Definition at line 352 of file SpectrumLayer.cpp.

References m_oversampling.

Referenced by getFFTSize(), and getWindowHopLevel().

int SpectrumLayer::getFFTSize ( ) const
inline
void SpectrumLayer::setWindowType ( WindowType  type)
WindowType SpectrumLayer::getWindowType ( ) const
inline

Definition at line 99 of file SpectrumLayer.h.

References m_windowType, and setShowPeaks().

void SpectrumLayer::setShowPeaks ( bool  show)

Definition at line 358 of file SpectrumLayer.cpp.

References Layer::layerParametersChanged(), and m_showPeaks.

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

bool SpectrumLayer::getShowPeaks ( ) const
inline

Definition at line 102 of file SpectrumLayer.h.

References m_showPeaks.

bool SpectrumLayer::needsTextLabelHeight ( ) const
inlineoverridevirtual

True if this layer will need to place text labels when it is painted.

The view will take into account how many layers are requesting this, and will provide a distinct y-coord to each layer on request via View::getTextLabelHeight().

Reimplemented from Layer.

Definition at line 104 of file SpectrumLayer.h.

References getFrequencyForX(), getXForFrequency(), preferenceChanged(), and toXml().

void SpectrumLayer::toXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const
overridevirtual
double SpectrumLayer::getFrequencyForX ( const LayerGeometryProvider v,
double  x 
) const
overridevirtual
double SpectrumLayer::getXForFrequency ( const LayerGeometryProvider v,
double  freq 
) const
overridevirtual
void SpectrumLayer::preferenceChanged ( PropertyContainer::PropertyName  name)
protectedslot

Definition at line 366 of file SpectrumLayer.cpp.

References setWindowType().

Referenced by needsTextLabelHeight(), and SpectrumLayer().

double SpectrumLayer::getBinForFrequency ( double  freq) const
protectedvirtual

Definition at line 388 of file SpectrumLayer.cpp.

References getFFTSize(), and SliceLayer::m_sliceableModel.

Referenced by getBinForX(), setOversampling(), and setWindowSize().

double SpectrumLayer::getFrequencyForBin ( double  bin) const
protectedvirtual
double SpectrumLayer::getXForBin ( const LayerGeometryProvider v,
double  bin 
) const
overrideprotectedvirtual

Convert a (possibly non-integral) bin into x-coord. May be overridden.

Reimplemented from SliceLayer.

Definition at line 432 of file SpectrumLayer.cpp.

References getFrequencyForBin(), getXForFrequency(), and SliceLayer::m_sliceableModel.

Referenced by paintHorizontalScale().

double SpectrumLayer::getBinForX ( const LayerGeometryProvider v,
double  x 
) const
overrideprotectedvirtual

Convert an x-coord into (possibly non-integral) bin. May be overridden.

Reimplemented from SliceLayer.

Definition at line 398 of file SpectrumLayer.cpp.

References getBinForFrequency(), getFrequencyForX(), and SliceLayer::m_sliceableModel.

void SpectrumLayer::getBiasCurve ( BiasCurve curve) const
overrideprotectedvirtual

Reimplemented from SliceLayer.

Definition at line 938 of file SpectrumLayer.cpp.

References m_biasCurve.

Referenced by paint().

int SpectrumLayer::getWindowIncrement ( ) const
inlineprotected

Definition at line 147 of file SpectrumLayer.h.

References m_windowSize.

Referenced by setupFFT().

int SliceLayer::getVerticalScaleWidth ( LayerGeometryProvider v,
bool  ,
QPainter &  paint 
) const
overridevirtualinherited
bool SliceLayer::hasLightBackground ( ) const
overridevirtualinherited

Return true if the layer currently has a dark colour on a light background, false if it has a light colour on a dark background.

Reimplemented from SingleColourLayer.

Definition at line 729 of file SliceLayer.cpp.

References SingleColourLayer::hasLightBackground(), ColourMapper::hasLightBackground(), SliceLayer::m_colourInverted, SliceLayer::m_colourMap, and SliceLayer::usesSolidColour().

Referenced by SliceLayer::getLayerColourSignificance(), and paint().

bool SliceLayer::getValueExtents ( double &  min,
double &  max,
bool &  logarithmic,
QString &  unit 
) const
overridevirtualinherited

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 (see getDisplayExtents).

Implements Layer.

Definition at line 1161 of file SliceLayer.cpp.

References SliceLayer::m_binScale, and SliceLayer::m_sliceableModel.

Referenced by SliceLayer::getLayerColourSignificance().

bool SliceLayer::getDisplayExtents ( double &  ,
double &   
) const
overridevirtualinherited

Return the minimum and maximum values within the visible area for the y axis of this layer.

Return false if the layer has no display extents of its own. This could be because the layer is "auto-aligning" against another layer with the same units elsewhere in the view, or because the layer has no concept of a vertical scale at all.

Reimplemented from Layer.

Definition at line 1178 of file SliceLayer.cpp.

References SliceLayer::m_maxbin, SliceLayer::m_minbin, and SliceLayer::m_sliceableModel.

Referenced by SliceLayer::getCurrentVerticalZoomStep(), and SliceLayer::getLayerColourSignificance().

int SliceLayer::getVerticalZoomSteps ( int &  ) const
overridevirtualinherited

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 1229 of file SliceLayer.cpp.

References SliceLayer::m_sliceableModel.

Referenced by SliceLayer::getLayerColourSignificance().

int SliceLayer::getCurrentVerticalZoomStep ( ) const
overridevirtualinherited

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 1241 of file SliceLayer.cpp.

References SliceLayer::getDisplayExtents(), and SliceLayer::m_sliceableModel.

Referenced by SliceLayer::getLayerColourSignificance().

void SliceLayer::setVerticalZoomStep ( int  )
overridevirtualinherited

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 1253 of file SliceLayer.cpp.

References SliceLayer::m_maxbin, SliceLayer::m_minbin, SliceLayer::m_sliceableModel, and SliceLayer::setDisplayExtents().

Referenced by SliceLayer::getLayerColourSignificance().

RangeMapper * SliceLayer::getNewVerticalZoomRangeMapper ( ) const
overridevirtualinherited

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 1270 of file SliceLayer.cpp.

References SliceLayer::m_sliceableModel.

Referenced by SliceLayer::getLayerColourSignificance().

virtual bool SliceLayer::hasTimeXAxis ( ) const
inlineoverridevirtualinherited

Return true if the X axis on the layer is time proportional to audio frames, false otherwise.

Almost all layer types return true here: the exceptions are spectrum and slice layers.

Reimplemented from Layer.

Definition at line 76 of file SliceLayer.h.

References SliceLayer::zoomToRegion().

void SliceLayer::zoomToRegion ( const LayerGeometryProvider ,
QRect   
)
overridevirtualinherited

Update the X and Y axis scales, where appropriate, to focus on the given rectangular region.

This should only be overridden by layers whose hasTimeXAxis() returns false - the pane handles zooming appropriately in every "normal" case.

Reimplemented from Layer.

Definition at line 1281 of file SliceLayer.cpp.

References SliceLayer::getBinForX(), and SliceLayer::setDisplayExtents().

Referenced by SliceLayer::hasTimeXAxis().

void SliceLayer::setFillColourMap ( int  map)
inherited
int SliceLayer::getFillColourMap ( ) const
inlineinherited

Definition at line 93 of file SliceLayer.h.

References SliceLayer::m_colourMap, and SliceLayer::setEnergyScale().

void SliceLayer::setEnergyScale ( EnergyScale  scale)
inherited
EnergyScale SliceLayer::getEnergyScale ( ) const
inlineinherited

Definition at line 96 of file SliceLayer.h.

References SliceLayer::m_energyScale, and SliceLayer::setSamplingMode().

void SliceLayer::setSamplingMode ( SamplingMode  mode)
inherited
SamplingMode SliceLayer::getSamplingMode ( ) const
inlineinherited

Definition at line 99 of file SliceLayer.h.

References SliceLayer::m_samplingMode, and SliceLayer::setPlotStyle().

PlotStyle SliceLayer::getPlotStyle ( ) const
inlineinherited

Definition at line 102 of file SliceLayer.h.

References SliceLayer::m_plotStyle, and SliceLayer::setBinScale().

void SliceLayer::setBinScale ( BinScale  scale)
inherited
BinScale SliceLayer::getBinScale ( ) const
inlineinherited

Definition at line 105 of file SliceLayer.h.

References SliceLayer::m_binScale, and SliceLayer::setThreshold().

void SliceLayer::setThreshold ( float  thresh)
inherited
void SliceLayer::setGain ( float  gain)
inherited
float SliceLayer::getGain ( ) const
inherited
void SliceLayer::setNormalize ( bool  n)
inherited
bool SliceLayer::getNormalize ( ) const
inherited
void SliceLayer::sliceableModelReplaced ( ModelId  orig,
ModelId  replacement 
)
slotinherited
double SliceLayer::getXForScalePoint ( const LayerGeometryProvider v,
double  p,
double  pmin,
double  pmax 
) const
protectedinherited

Convert a point such as a bin number into x-coord, given max & min.

For use by getXForBin etc

Definition at line 196 of file SliceLayer.cpp.

References LayerGeometryProvider::getId(), LayerGeometryProvider::getPaintWidth(), SliceLayer::InvertedLogBins, SliceLayer::LinearBins, SliceLayer::m_binScale, and SliceLayer::m_xorigins.

Referenced by SliceLayer::getThreshold(), SliceLayer::getXForBin(), and getXForFrequency().

double SliceLayer::getScalePointForX ( const LayerGeometryProvider v,
double  x,
double  pmin,
double  pmax 
) const
protectedinherited

Convert an x-coord into a point such as a bin number, given max & min.

For use by getBinForX etc

Definition at line 271 of file SliceLayer.cpp.

References LayerGeometryProvider::getId(), LayerGeometryProvider::getPaintWidth(), SliceLayer::InvertedLogBins, SliceLayer::LinearBins, SliceLayer::m_binScale, and SliceLayer::m_xorigins.

Referenced by SliceLayer::getBinForX(), getFrequencyForX(), and SliceLayer::getThreshold().

QString SliceLayer::getFeatureDescriptionAux ( LayerGeometryProvider v,
QPoint &  p,
bool  includeBinDescription,
int &  minbin,
int &  maxbin,
int &  range 
) const
protectedvirtualinherited
float SliceLayer::getThresholdDb ( ) const
protectedvirtualinherited
int SliceLayer::getDefaultColourHint ( bool  dark,
bool &  impose 
)
overrideprotectedvirtualinherited

Reimplemented from SingleColourLayer.

Definition at line 1064 of file SliceLayer.cpp.

References ColourDatabase::getColourIndex(), and ColourDatabase::getInstance().

Referenced by SliceLayer::getBiasCurve().

void SingleColourLayer::setBaseColour ( int  colour)
virtualinherited
int SingleColourLayer::getBaseColour ( ) const
virtualinherited

Retrieve the current primary drawing colour, as a ColourDatabase index value.

Definition at line 235 of file SingleColourLayer.cpp.

References SingleColourLayer::m_colour.

QPixmap SingleColourLayer::getLayerPresentationPixmap ( QSize  size) const
overridevirtualinherited
QColor SingleColourLayer::getBackgroundQColor ( LayerGeometryProvider v) const
protectedvirtualinherited
QColor SingleColourLayer::getForegroundQColor ( LayerGeometryProvider v) const
protectedvirtualinherited
std::vector< QColor > SingleColourLayer::getPartialShades ( LayerGeometryProvider v) const
protectedinherited
virtual void SingleColourLayer::flagBaseColourChanged ( )
inlineprotectedvirtualinherited

Reimplemented in WaveformLayer.

Definition at line 85 of file SingleColourLayer.h.

Referenced by SingleColourLayer::setBaseColour(), and SingleColourLayer::setProperties().

ModelId Layer::getSourceModel ( ) const
inherited

Return the ID of the source model for the model represented in this layer.

If the model has no other source, or there is no model here, return None.

Definition at line 68 of file Layer.cpp.

References Layer::getModel().

Referenced by View::paintEvent().

virtual ModelId Layer::getExportModel ( LayerGeometryProvider ) const
inlinevirtualinherited

Return the ID of a model representing the contents of this layer in a form suitable for export to a tabular file format such as CSV.

In most cases this will be the same as returned by getModel(). The exceptions are those layers such as SpectrogramLayer, that are "only" alternative views of time-domain sample data. For such layers, getModel() will return the backing time-domain data, for example as a ReadOnlyWaveFileModel; but getExportModel() will return a model, possibly "local to" the layer, which adapts this into the form shown in the layer for a given view so that the export matches the layer's visible contents.

Because this is supposed to match the contents of the view rather than the backing model, it's necessary to pass in a view (or LayerGeometryProvider) so that the layer can retrieve its vertical extents for export.

Reimplemented in SpectrogramLayer, and Colour3DPlotLayer.

Definition at line 95 of file Layer.h.

References Layer::getModel().

virtual const ZoomConstraint* Layer::getZoomConstraint ( ) const
inlinevirtualinherited

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 in SpectrogramLayer, Colour3DPlotLayer, and WaveformLayer.

Definition at line 104 of file Layer.h.

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 114 of file Layer.h.

References Layer::paint().

virtual void Layer::setSynchronousPainting ( bool  )
inlinevirtualinherited

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 in SpectrogramLayer, and Colour3DPlotLayer.

Definition at line 138 of file Layer.h.

virtual VerticalPosition Layer::getPreferredTimeRulerPosition ( ) const
inlinevirtualinherited

Definition at line 143 of file Layer.h.

References Layer::PositionMiddle.

QString Layer::getPropertyContainerIconName ( ) const
overrideinherited
QString Layer::getPropertyContainerName ( ) const
inlineoverrideinherited
void Layer::setPresentationName ( QString  name)
virtualinherited

Definition at line 87 of file Layer.cpp.

References Layer::m_presentationName.

Referenced by Layer::getPropertyContainerName().

bool Layer::isPresentationNameSet ( ) const
virtualinherited

Definition at line 93 of file Layer.cpp.

References Layer::m_presentationName.

Referenced by Layer::getPropertyContainerName().

void Layer::paintMeasurementRects ( LayerGeometryProvider v,
QPainter &  paint,
bool  showFocus,
QPoint  focusPoint 
) const
virtualinherited
bool Layer::nearestMeasurementRectChanged ( LayerGeometryProvider v,
QPoint  prev,
QPoint  now 
) const
virtualinherited
virtual QString Layer::getLabelPreceding ( sv_frame_t  ) const
inlinevirtualinherited

Reimplemented in RegionLayer, TimeValueLayer, BoxLayer, and TimeInstantLayer.

Definition at line 191 of file Layer.h.

virtual bool Layer::snapToFeatureFrame ( LayerGeometryProvider ,
sv_frame_t &  ,
int &  resolution,
SnapType  ,
int   
) const
inlinevirtualinherited

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 SnapNeighbouring, adjust the frame to that of the nearest feature in either direction 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.

If ycoord is non-negative, it contains the y coordinate at which the interaction that prompts this snap is taking place (e.g. of the mouse press used for a selection action). Layers that have objects at multiple different heights may choose to use this information. If the current action has no particular y coordinate associated with it, ycoord will be passed as -1.

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 SpectrogramLayer, Colour3DPlotLayer, NoteLayer, RegionLayer, TimeValueLayer, BoxLayer, FlexiNoteLayer, ImageLayer, TimeRulerLayer, TimeInstantLayer, and TextLayer.

Definition at line 226 of file Layer.h.

Referenced by Pane::dragExtendSelection(), Pane::mousePressEvent(), TextLayer::snapToFeatureFrame(), TimeInstantLayer::snapToFeatureFrame(), ImageLayer::snapToFeatureFrame(), FlexiNoteLayer::snapToFeatureFrame(), BoxLayer::snapToFeatureFrame(), TimeValueLayer::snapToFeatureFrame(), RegionLayer::snapToFeatureFrame(), NoteLayer::snapToFeatureFrame(), and Colour3DPlotLayer::snapToFeatureFrame().

virtual bool Layer::snapToSimilarFeature ( LayerGeometryProvider ,
sv_frame_t &  ,
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 251 of file Layer.h.

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

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

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

Definition at line 264 of file Layer.h.

Referenced by Pane::mousePressEvent().

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

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

Definition at line 265 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

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

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

Definition at line 266 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

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

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

Definition at line 268 of file Layer.h.

Referenced by Pane::mousePressEvent().

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

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

Definition at line 269 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

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

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

Definition at line 270 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

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

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

Definition at line 272 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

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

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

Definition at line 273 of file Layer.h.

Referenced by Pane::mouseMoveEvent().

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

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

Definition at line 274 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

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

Reimplemented in FlexiNoteLayer.

Definition at line 276 of file Layer.h.

Referenced by Pane::mousePressEvent().

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

Reimplemented in FlexiNoteLayer.

Definition at line 277 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

virtual void Layer::addNote ( LayerGeometryProvider ,
QMouseEvent *   
)
inlinevirtualinherited
void Layer::measureEnd ( LayerGeometryProvider v,
QMouseEvent *  e 
)
virtualinherited
void Layer::measureDoubleClick ( LayerGeometryProvider ,
QMouseEvent *   
)
virtualinherited

Reimplemented in SpectrogramLayer.

Definition at line 444 of file Layer.cpp.

Referenced by Layer::addNote(), and Pane::mouseDoubleClickEvent().

virtual bool Layer::haveCurrentMeasureRect ( ) const
inlinevirtualinherited

Definition at line 289 of file Layer.h.

References Layer::deleteCurrentMeasureRect(), and Layer::m_haveCurrentMeasureRect.

virtual bool Layer::editOpen ( LayerGeometryProvider ,
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 NoteLayer, FlexiNoteLayer, RegionLayer, TimeValueLayer, ImageLayer, BoxLayer, TextLayer, and TimeInstantLayer.

Definition at line 299 of file Layer.h.

Referenced by Pane::mouseDoubleClickEvent().

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

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

Definition at line 301 of file Layer.h.

Referenced by Pane::editSelectionEnd().

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

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

Definition at line 302 of file Layer.h.

Referenced by Pane::editSelectionEnd().

virtual void Layer::deleteSelection ( Selection  )
inlinevirtualinherited

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

Definition at line 303 of file Layer.h.

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

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

Definition at line 305 of file Layer.h.

virtual bool Layer::paste ( LayerGeometryProvider ,
const Clipboard &  ,
sv_frame_t  ,
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 NoteLayer, FlexiNoteLayer, RegionLayer, TimeValueLayer, BoxLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 314 of file Layer.h.

virtual bool Layer::isLayerOpaque ( ) const
inlinevirtualinherited

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 in SpectrogramLayer.

Definition at line 346 of file Layer.h.

Referenced by Pane::drawVerticalScale().

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, BoxLayer, TimeInstantLayer, ImageLayer, and TextLayer.

Definition at line 382 of file Layer.h.

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

virtual int Layer::getCompletion ( LayerGeometryProvider ) const
inlinevirtualinherited

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 in SpectrogramLayer, WaveformLayer, TimeValueLayer, FlexiNoteLayer, RegionLayer, NoteLayer, BoxLayer, TimeInstantLayer, ImageLayer, Colour3DPlotLayer, and TextLayer.

Definition at line 391 of file Layer.h.

virtual QString Layer::getError ( LayerGeometryProvider ) const
inlinevirtualinherited

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 in SpectrogramLayer.

Definition at line 398 of file Layer.h.

References Layer::addMeasurementRect(), Layer::getPlayParameters(), Layer::isLayerDormant(), Layer::setLayerDormant(), Layer::setObjectName(), Layer::setProperties(), Layer::toBriefXml(), and Layer::toXml().

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

Definition at line 122 of file Layer.cpp.

References Layer::layerNameChanged().

Referenced by LayerFactory::createLayer(), and Layer::getError().

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 691 of file Layer.cpp.

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

Referenced by Layer::getError().

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 333 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.

Referenced by Layer::getError().

void Layer::setLayerDormant ( const LayerGeometryProvider v,
bool  dormant 
)
virtualinherited

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 in SpectrogramLayer, ImageLayer, and Colour3DPlotLayer.

Definition at line 136 of file Layer.cpp.

References Layer::m_dormancy, and Layer::m_dormancyMutex.

Referenced by Layer::getError(), Colour3DPlotLayer::setLayerDormant(), SpectrogramLayer::setLayerDormant(), and Layer::showLayer().

std::shared_ptr< PlayParameters > Layer::getPlayParameters ( )
overrideinherited

Return the play parameters for this layer, if any.

The return value is a shared_ptr that can be passed to (e.g.) PlayParameterRepository::EditCommand to change the parameters.

Definition at line 129 of file Layer.cpp.

References Layer::getModel().

Referenced by LayerTreeModel::data(), Layer::getError(), LayerTreeModel::LayerTreeModel(), LayerTreeModel::playParametersAudibilityChanged(), and LayerTreeModel::setData().

virtual bool Layer::adoptExtents ( double  ,
double  ,
QString   
)
inlinevirtualinherited

Consider using the given value extents and units for this layer.

This may be called on a new layer when added, to prepare it for editing, and the extents are those of the layer underneath it. May not be appropriate for most layer types.

Reimplemented in BoxLayer.

Definition at line 532 of file Layer.h.

References Layer::getXScaleValue().

virtual bool Layer::canExistWithoutModel ( ) const
inlinevirtualinherited
void Layer::showLayer ( LayerGeometryProvider view,
bool  show 
)
slotinherited

Change the visibility status (dormancy) of the layer in the given view.

Definition at line 153 of file Layer.cpp.

References Layer::layerParametersChanged(), and Layer::setLayerDormant().

Referenced by Layer::canExistWithoutModel(), ShowLayerCommand::execute(), LayerTreeModel::setData(), and ShowLayerCommand::unexecute().

void Layer::modelCompletionChanged ( ModelId  )
signalinherited
void Layer::modelAlignmentCompletionChanged ( ModelId  )
signalinherited
void Layer::modelChangedWithin ( ModelId  ,
sv_frame_t  startFrame,
sv_frame_t  endFrame 
)
signalinherited
void Layer::layerParametersChanged ( )
signalinherited

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

void Layer::layerParameterRangesChanged ( )
signalinherited
void Layer::layerMeasurementRectsChanged ( )
signalinherited
void Layer::layerNameChanged ( )
signalinherited
bool Layer::clipboardHasDifferentAlignment ( LayerGeometryProvider v,
const Clipboard &  clip 
) const
protectedinherited
void Layer::addMeasureRectToSet ( const MeasureRect r)
inlineprotectedinherited

Definition at line 682 of file Layer.h.

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

Referenced by Layer::addMeasurementRect().

void Layer::deleteMeasureRectFromSet ( const MeasureRect r)
inlineprotectedinherited

Definition at line 687 of file Layer.h.

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

void Layer::updateMeasureRectYCoords ( LayerGeometryProvider v,
const MeasureRect r 
) const
protectedvirtualinherited
void Layer::setMeasureRectYCoord ( LayerGeometryProvider v,
MeasureRect r,
bool  start,
int  y 
) const
protectedvirtualinherited
Layer::MeasureRectSet::const_iterator Layer::findFocusedMeasureRect ( QPoint  focusPoint) const
protectedinherited
bool Layer::valueExtentsMatchMine ( LayerGeometryProvider v) const
protectedinherited

Member Data Documentation

ModelId SpectrumLayer::m_originModel
protected

Definition at line 118 of file SpectrumLayer.h.

Referenced by getModel(), paint(), setModel(), and setupFFT().

int SpectrumLayer::m_channel
protected

Definition at line 119 of file SpectrumLayer.h.

Referenced by getChannel(), setChannel(), and setupFFT().

bool SpectrumLayer::m_channelSet
protected

Definition at line 120 of file SpectrumLayer.h.

Referenced by setChannel().

int SpectrumLayer::m_windowSize
protected
WindowType SpectrumLayer::m_windowType
protected

Definition at line 122 of file SpectrumLayer.h.

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

int SpectrumLayer::m_windowHopLevel
protected
int SpectrumLayer::m_oversampling
protected

Definition at line 124 of file SpectrumLayer.h.

Referenced by getOversampling(), getPropertyRangeAndValue(), setOversampling(), and toXml().

bool SpectrumLayer::m_showPeaks
protected

Definition at line 125 of file SpectrumLayer.h.

Referenced by getPropertyRangeAndValue(), getShowPeaks(), paint(), setShowPeaks(), and toXml().

bool SpectrumLayer::m_newFFTNeeded
mutableprotected
double SpectrumLayer::m_freqOfMinBin
protected

Definition at line 128 of file SpectrumLayer.h.

Referenced by setDisplayExtents(), setOversampling(), setupFFT(), and setWindowSize().

QMutex SpectrumLayer::m_fftMutex
mutableprotected

Definition at line 132 of file SpectrumLayer.h.

BiasCurve SpectrumLayer::m_biasCurve
protected

Definition at line 145 of file SpectrumLayer.h.

Referenced by getBiasCurve(), and setupFFT().

BinAlignment SliceLayer::m_binAlignment
protectedinherited
bool SliceLayer::m_colourInverted
protectedinherited
bool SliceLayer::m_normalize
protectedinherited
float SliceLayer::m_initialThreshold
protectedinherited

Definition at line 183 of file SliceLayer.h.

Referenced by SliceLayer::getPropertyRangeAndValue().

std::vector<int> SliceLayer::m_scalePoints
mutableprotectedinherited

Definition at line 187 of file SliceLayer.h.

Referenced by SliceLayer::paint(), and SliceLayer::paintVerticalScale().

int SliceLayer::m_scalePaintHeight
mutableprotectedinherited

Definition at line 188 of file SliceLayer.h.

Referenced by SliceLayer::paint(), and SliceLayer::paintVerticalScale().

std::map<int, int> SliceLayer::m_xorigins
mutableprotectedinherited
std::map<int, int> SliceLayer::m_yorigins
mutableprotectedinherited
std::map<int, int> SliceLayer::m_heights
mutableprotectedinherited
sv_frame_t SliceLayer::m_currentf0
mutableprotectedinherited

Definition at line 192 of file SliceLayer.h.

Referenced by SliceLayer::getFeatureDescriptionAux(), and SliceLayer::paint().

sv_frame_t SliceLayer::m_currentf1
mutableprotectedinherited

Definition at line 193 of file SliceLayer.h.

Referenced by SliceLayer::getFeatureDescriptionAux(), and SliceLayer::paint().

std::vector<float> SliceLayer::m_values
mutableprotectedinherited
SingleColourLayer::ColourRefCount SingleColourLayer::m_colourRefCount
staticprotectedinherited
bool SingleColourLayer::m_colourExplicitlySet
protectedinherited
bool SingleColourLayer::m_defaultColourSet
protectedinherited

Definition at line 94 of file SingleColourLayer.h.

Referenced by SingleColourLayer::setDefaultColourFor().

MeasureRect Layer::m_draggingRect
protectedinherited
bool Layer::m_haveDraggingRect
protectedinherited
bool Layer::m_haveCurrentMeasureRect
mutableprotectedinherited
QPoint Layer::m_currentMeasureRectPoint
mutableprotectedinherited

Definition at line 697 of file Layer.h.

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

QString Layer::m_presentationName
protectedinherited

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