svgui  1.9
WaveformLayer Class Reference

#include <WaveformLayer.h>

Inheritance diagram for WaveformLayer:
Collaboration diagram for WaveformLayer:

Public Types

enum  ChannelMode { SeparateChannels, MixChannels, MergeChannels }
 
enum  Scale { LinearScale, MeterScale, dBScale }
 
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 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

 WaveformLayer ()
 
 ~WaveformLayer ()
 
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 QString getFeatureDescription (View *v, QPoint &) const
 
virtual ColourSignificance getLayerColourSignificance () const
 Implements Layer::getLayerColourSignificance() More...
 
virtual int getVerticalScaleWidth (View *v, bool detailed, QPainter &) const
 
virtual void paintVerticalScale (View *v, bool detailed, QPainter &paint, QRect rect) const
 
void setModel (const RangeSummarisableTimeValueModel *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 setGain (float gain)
 Set the gain multiplier for sample values in this view. More...
 
float getGain () const
 
void setAutoNormalize (bool)
 Toggle automatic normalization of the currently visible waveform. More...
 
bool getAutoNormalize () const
 
void setShowMeans (bool)
 Set whether to display mean values as a lighter-coloured area beneath the peaks. More...
 
bool getShowMeans () const
 
void setUseGreyscale (bool)
 Set whether to use shades of grey (or of the base colour) to provide additional perceived vertical resolution (i.e. More...
 
bool getUseGreyscale () const
 
void setChannelMode (ChannelMode)
 Specify whether multi-channel audio data should be displayed with a separate axis per channel (SeparateChannels), with a single synthetic axis showing channel 0 above the axis and channel 1 below (MergeChannels), or with a single axis showing the average of the channels (MixChannels). More...
 
ChannelMode getChannelMode () const
 
void setChannel (int)
 Specify the channel to use from the source model. More...
 
int getChannel () const
 
void setScale (Scale)
 Specify the vertical scale for sample levels. More...
 
Scale getScale () const
 
void setMiddleLineHeight (float height)
 Specify the height of the middle of the waveform track or tracks within the layer, from 0.0 to 1.0. More...
 
float getMiddleLineHeight () const
 
void setAggressiveCacheing (bool)
 Enable or disable aggressive pixmap cacheing. More...
 
bool getAggressiveCacheing () const
 
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 getCompletion (View *) 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 bool getValueExtents (float &min, float &max, bool &log, 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 getYScaleValue (const View *v, int y, float &value, QString &unit) const
 Return the value and unit at the given y 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...
 
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...
 
virtual 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 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 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...
 
virtual bool hasLightBackground () const
 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...
 
virtual QPixmap getLayerPresentationPixmap (QSize size) const
 
virtual void setDefaultColourFor (View *v)
 
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 void setSynchronousPainting (bool)
 Enable or disable synchronous painting. More...
 
virtual VerticalPosition getPreferredTimeRulerPosition () const
 
virtual VerticalPosition getPreferredFrameCountPosition () const
 
virtual QString getPropertyContainerIconName () const
 
virtual QString getPropertyContainerName () const
 
virtual void setPresentationName (QString name)
 
virtual QString getLayerPresentationName () const
 
virtual bool getCrosshairExtents (View *, QPainter &, QPoint, std::vector< QRect > &) const
 
virtual void paintCrosshairs (View *, QPainter &, QPoint) 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 snapToFeatureFrame (View *, int &, int &resolution, SnapType) const
 Adjust the given frame to snap to the nearest feature, if possible. More...
 
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 void measureDoubleClick (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 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 QString getError (View *) 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 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 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 getDisplayExtents (float &, float &) 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, float)
 Set the displayed minimum and maximum values for the y axis to the given range, if supported. More...
 
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 RangeMapper * getNewVerticalZoomRangeMapper () const
 Create and return a range mapper for vertical zoom step values. More...
 

Protected Types

typedef std::map< int, int > ColourRefCount
 
typedef std::set< MeasureRectMeasureRectSet
 

Protected Member Functions

int dBscale (float sample, int m) const
 
int getChannelArrangement (int &min, int &max, bool &merging, bool &mixing) const
 Return value is number of channels displayed. More...
 
int getYForValue (const View *v, float value, int channel) const
 
float getValueForY (const View *v, int y, int &channel) const
 
bool getSourceFramesForX (View *v, int x, int modelZoomLevel, int &f0, int &f1) const
 
float getNormalizeGain (View *v, int channel) const
 
virtual void flagBaseColourChanged ()
 
virtual QColor getBaseQColor () const
 
virtual QColor getBackgroundQColor (View *v) const
 
virtual QColor getForegroundQColor (View *v) const
 
std::vector< QColor > getPartialShades (View *v) const
 
virtual int getDefaultColourHint (bool, bool &)
 
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 updateMeasureRectYCoords (View *v, const MeasureRect &r) const
 
virtual void setMeasureRectYCoord (View *v, MeasureRect &r, bool start, int y) 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 RangeSummarisableTimeValueModel * m_model
 
float m_gain
 
bool m_autoNormalize
 
bool m_showMeans
 
bool m_greyscale
 
ChannelMode m_channelMode
 
int m_channel
 
Scale m_scale
 
float m_middleLineHeight
 
bool m_aggressive
 
std::vector< float > m_effectiveGains
 
QPixmap * m_cache
 
bool m_cacheValid
 
int m_cacheZoomLevel
 
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 29 of file WaveformLayer.h.

Member Typedef Documentation

◆ ColourRefCount

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

Definition at line 89 of file SingleColourLayer.h.

◆ MeasureRectSet

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

Definition at line 598 of file Layer.h.

Member Enumeration Documentation

◆ ChannelMode

Enumerator
SeparateChannels 
MixChannels 
MergeChannels 

Definition at line 103 of file WaveformLayer.h.

◆ Scale

Enumerator
LinearScale 
MeterScale 
dBScale 

Definition at line 130 of file WaveformLayer.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

◆ WaveformLayer()

WaveformLayer::WaveformLayer ( )

Definition at line 36 of file WaveformLayer.cpp.

◆ ~WaveformLayer()

WaveformLayer::~WaveformLayer ( )

Definition at line 55 of file WaveformLayer.cpp.

References m_cache.

Member Function Documentation

◆ getZoomConstraint()

virtual const ZoomConstraint* WaveformLayer::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 37 of file WaveformLayer.h.

References m_model.

◆ getModel() [1/2]

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

Implements Layer.

Definition at line 40 of file WaveformLayer.h.

References m_model.

◆ paint()

void WaveformLayer::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).

!! || range.min() * gain <= -1.0 || range.max() * gain >= 1.0

!! getContrastingColour

Implements Layer.

Definition at line 476 of file WaveformLayer.cpp.

References dBScale, dBscale(), SingleColourLayer::getBackgroundQColor(), SingleColourLayer::getBaseQColor(), getChannelArrangement(), SingleColourLayer::getForegroundQColor(), getNormalizeGain(), SingleColourLayer::getPartialShades(), getSourceFramesForX(), View::getViewManager(), getYForValue(), View::getZoomLevel(), View::hasLightBackground(), LinearScale, m_aggressive, m_autoNormalize, m_cache, m_cacheValid, m_cacheZoomLevel, m_channelMode, m_effectiveGains, m_gain, m_greyscale, m_middleLineHeight, m_model, m_scale, m_showMeans, MergeChannels, meterdbs, MeterScale, and ViewManager::shouldShowScaleGuides().

Referenced by getVerticalScaleWidth(), and paintVerticalScale().

◆ getFeatureDescription()

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

Reimplemented from Layer.

Definition at line 956 of file WaveformLayer.cpp.

References getChannelArrangement(), getSourceFramesForX(), View::getZoomLevel(), and m_model.

◆ getLayerColourSignificance()

virtual ColourSignificance WaveformLayer::getLayerColourSignificance ( ) const
inlinevirtual

Implements Layer::getLayerColourSignificance()

Reimplemented from SingleColourLayer.

Definition at line 45 of file WaveformLayer.h.

References Layer::ColourAndBackgroundSignificant.

◆ getVerticalScaleWidth()

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

Implements Layer.

Definition at line 1192 of file WaveformLayer.cpp.

References LinearScale, m_scale, and paint().

◆ paintVerticalScale()

void WaveformLayer::paintVerticalScale ( View v,
bool  detailed,
QPainter &  paint,
QRect  rect 
) const
virtual

◆ setModel()

void WaveformLayer::setModel ( const RangeSummarisableTimeValueModel *  model)

◆ getProperties()

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

Reimplemented from SingleColourLayer.

Definition at line 89 of file WaveformLayer.cpp.

References SingleColourLayer::getProperties(), m_channel, and m_model.

◆ getPropertyLabel()

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

Reimplemented from SingleColourLayer.

Definition at line 104 of file WaveformLayer.cpp.

References SingleColourLayer::getPropertyLabel().

◆ getPropertyIconName()

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

Definition at line 114 of file WaveformLayer.cpp.

◆ getPropertyType()

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

Reimplemented from SingleColourLayer.

Definition at line 121 of file WaveformLayer.cpp.

References SingleColourLayer::getPropertyType().

◆ getPropertyGroupName()

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

Reimplemented from SingleColourLayer.

Definition at line 131 of file WaveformLayer.cpp.

◆ getPropertyRangeAndValue()

int WaveformLayer::getPropertyRangeAndValue ( const PropertyName &  name,
int *  min,
int *  max,
int *  deflt 
) const
virtual

◆ getPropertyValueLabel()

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

Reimplemented from SingleColourLayer.

Definition at line 190 of file WaveformLayer.cpp.

References SingleColourLayer::getPropertyValueLabel().

◆ getNewPropertyRangeMapper()

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

Reimplemented from SingleColourLayer.

Definition at line 213 of file WaveformLayer.cpp.

◆ setProperty()

void WaveformLayer::setProperty ( const PropertyName &  name,
int  value 
)
virtual

◆ setGain()

void WaveformLayer::setGain ( float  gain)

Set the gain multiplier for sample values in this view.

The default is 1.0.

Definition at line 245 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, m_gain, and Layer::verticalZoomChanged().

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

◆ getGain()

float WaveformLayer::getGain ( ) const
inline

Definition at line 72 of file WaveformLayer.h.

References m_gain.

◆ setAutoNormalize()

void WaveformLayer::setAutoNormalize ( bool  autoNormalize)

Toggle automatic normalization of the currently visible waveform.

Definition at line 255 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_autoNormalize, and m_cacheValid.

Referenced by setProperties(), and setProperty().

◆ getAutoNormalize()

bool WaveformLayer::getAutoNormalize ( ) const
inline

Definition at line 78 of file WaveformLayer.h.

References m_autoNormalize.

◆ setShowMeans()

void WaveformLayer::setShowMeans ( bool  showMeans)

Set whether to display mean values as a lighter-coloured area beneath the peaks.

Rendering will be slightly faster without but arguably prettier with.

The default is to display means.

Definition at line 264 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, and m_showMeans.

Referenced by setProperties().

◆ getShowMeans()

bool WaveformLayer::getShowMeans ( ) const
inline

Definition at line 88 of file WaveformLayer.h.

References m_showMeans.

◆ setUseGreyscale()

void WaveformLayer::setUseGreyscale ( bool  useGreyscale)

Set whether to use shades of grey (or of the base colour) to provide additional perceived vertical resolution (i.e.

using half-filled pixels to represent levels that only just meet the pixel unit boundary). This provides a small improvement in waveform quality at a small cost in rendering speed.

The default is to use greyscale.

Definition at line 273 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, and m_greyscale.

Referenced by setProperties().

◆ getUseGreyscale()

bool WaveformLayer::getUseGreyscale ( ) const
inline

Definition at line 100 of file WaveformLayer.h.

References m_greyscale.

◆ setChannelMode()

void WaveformLayer::setChannelMode ( ChannelMode  channelMode)

Specify whether multi-channel audio data should be displayed with a separate axis per channel (SeparateChannels), with a single synthetic axis showing channel 0 above the axis and channel 1 below (MergeChannels), or with a single axis showing the average of the channels (MixChannels).

MergeChannels does not work for files with more than 2 channels.

The default is SeparateChannels.

Definition at line 282 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, and m_channelMode.

Referenced by setProperties(), and setProperty().

◆ getChannelMode()

ChannelMode WaveformLayer::getChannelMode ( ) const
inline

Definition at line 118 of file WaveformLayer.h.

References m_channelMode.

◆ setChannel()

void WaveformLayer::setChannel ( int  channel)

Specify the channel to use from the source model.

A value of -1 means to show all available channels (laid out to the channel mode). The default is -1.

Definition at line 291 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, and m_channel.

Referenced by setProperties().

◆ getChannel()

int WaveformLayer::getChannel ( ) const
inline

Definition at line 127 of file WaveformLayer.h.

References m_channel.

◆ setScale()

void WaveformLayer::setScale ( Scale  scale)

Specify the vertical scale for sample levels.

With LinearScale, the scale is directly proportional to the raw [-1, +1) floating-point audio sample values. With dBScale the vertical scale is proportional to dB level (truncated at -50dB). MeterScale provides a hybrid variable scale based on IEC meter scale, intended to provide a clear overview at relatively small heights.

Note that the effective gain (see setGain()) is applied before vertical scaling.

The default is LinearScale.

Definition at line 302 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, and m_scale.

Referenced by setProperties(), and setProperty().

◆ getScale()

Scale WaveformLayer::getScale ( ) const
inline

Definition at line 147 of file WaveformLayer.h.

References m_scale.

◆ setMiddleLineHeight()

void WaveformLayer::setMiddleLineHeight ( float  height)

Specify the height of the middle of the waveform track or tracks within the layer, from 0.0 to 1.0.

A value of 0.0 would indicate that the waveform occupies effectively no space at the very top of the layer; 1.0 would indicate that the waveform occupies no space at the very bottom; the default value of 0.5 indicates that it occupies the whole layer, centred at the middle.

Definition at line 311 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_cacheValid, and m_middleLineHeight.

Referenced by setProperties().

◆ getMiddleLineHeight()

float WaveformLayer::getMiddleLineHeight ( ) const
inline

Definition at line 160 of file WaveformLayer.h.

References m_middleLineHeight.

◆ setAggressiveCacheing()

void WaveformLayer::setAggressiveCacheing ( bool  aggressive)

Enable or disable aggressive pixmap cacheing.

If enabled, waveforms will be rendered to an off-screen pixmap and refreshed from there instead of being redrawn from the peak data each time. This may be faster if the data and zoom level do not change often, but it may be slower for frequently zoomed data and it will only work if the waveform is the "bottom" layer on the displayed widget, as each refresh will erase anything beneath the waveform.

This is intended specifically for a panner widget display in which the waveform never moves, zooms, or changes, but some graphic such as a panner outline is frequently redrawn over the waveform. This situation would necessitate a lot of waveform refresh if the default cacheing strategy was used.

The default is not to use aggressive cacheing.

Definition at line 320 of file WaveformLayer.cpp.

References Layer::layerParametersChanged(), m_aggressive, and m_cacheValid.

◆ getAggressiveCacheing()

bool WaveformLayer::getAggressiveCacheing ( ) const
inline

Definition at line 181 of file WaveformLayer.h.

References m_aggressive.

◆ isLayerScrollable()

bool WaveformLayer::isLayerScrollable ( const View ) const
virtual

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 402 of file WaveformLayer.cpp.

References m_autoNormalize.

◆ getCompletion()

int WaveformLayer::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 329 of file WaveformLayer.cpp.

References m_model.

◆ getValueExtents()

bool WaveformLayer::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 338 of file WaveformLayer.cpp.

References LinearScale, m_scale, and MeterScale.

◆ getYScaleValue()

bool WaveformLayer::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 1128 of file WaveformLayer.cpp.

References dBScale, getValueForY(), m_scale, and MeterScale.

◆ getYScaleDifference()

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

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 1154 of file WaveformLayer.cpp.

References dBScale, getValueForY(), m_scale, and MeterScale.

◆ toXml()

void WaveformLayer::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 SingleColourLayer.

Definition at line 1324 of file WaveformLayer.cpp.

References ColourDatabase::getInstance(), ColourDatabase::getStringValues(), m_aggressive, m_autoNormalize, m_channel, m_channelMode, SingleColourLayer::m_colour, m_gain, m_greyscale, m_middleLineHeight, m_scale, m_showMeans, and SingleColourLayer::toXml().

◆ setProperties()

void WaveformLayer::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.

Reimplemented from SingleColourLayer.

Definition at line 1356 of file WaveformLayer.cpp.

References setAutoNormalize(), setChannel(), setChannelMode(), setGain(), setMiddleLineHeight(), SingleColourLayer::setProperties(), setScale(), setShowMeans(), and setUseGreyscale().

◆ getVerticalZoomSteps()

int WaveformLayer::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 1396 of file WaveformLayer.cpp.

◆ getCurrentVerticalZoomStep()

int WaveformLayer::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 1403 of file WaveformLayer.cpp.

References m_gain.

◆ setVerticalZoomStep()

void WaveformLayer::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 1412 of file WaveformLayer.cpp.

References setGain().

◆ dBscale()

int WaveformLayer::dBscale ( float  sample,
int  m 
) const
protected

Definition at line 356 of file WaveformLayer.cpp.

Referenced by getYForValue(), and paint().

◆ getChannelArrangement()

int WaveformLayer::getChannelArrangement ( int &  min,
int &  max,
bool &  merging,
bool &  mixing 
) const
protected

Return value is number of channels displayed.

Definition at line 366 of file WaveformLayer.cpp.

References m_channel, m_channelMode, m_model, MergeChannels, and MixChannels.

Referenced by getFeatureDescription(), getNormalizeGain(), getValueForY(), getYForValue(), paint(), and paintVerticalScale().

◆ getYForValue()

int WaveformLayer::getYForValue ( const View v,
float  value,
int  channel 
) const
protected

◆ getValueForY()

float WaveformLayer::getValueForY ( const View v,
int  y,
int &  channel 
) const
protected

◆ getSourceFramesForX()

bool WaveformLayer::getSourceFramesForX ( View v,
int  x,
int  modelZoomLevel,
int &  f0,
int &  f1 
) const
protected

Definition at line 411 of file WaveformLayer.cpp.

References View::getFrameForX().

Referenced by getFeatureDescription(), and paint().

◆ getNormalizeGain()

float WaveformLayer::getNormalizeGain ( View v,
int  channel 
) const
protected

Definition at line 436 of file WaveformLayer.cpp.

References getChannelArrangement(), View::getEndFrame(), View::getStartFrame(), and m_model.

Referenced by paint().

◆ flagBaseColourChanged()

virtual void WaveformLayer::flagBaseColourChanged ( )
inlineprotectedvirtual

Reimplemented from SingleColourLayer.

Definition at line 223 of file WaveformLayer.h.

References m_cacheValid.

◆ setBaseColour()

void SingleColourLayer::setBaseColour ( int  colour)
virtualinherited

◆ getBaseColour()

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.

◆ hasLightBackground()

bool SingleColourLayer::hasLightBackground ( ) const
virtualinherited

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

Definition at line 53 of file SingleColourLayer.cpp.

References ColourDatabase::getInstance(), SingleColourLayer::m_colour, and ColourDatabase::useDarkBackground().

◆ getLayerPresentationPixmap()

QPixmap SingleColourLayer::getLayerPresentationPixmap ( QSize  size) const
virtualinherited

◆ setDefaultColourFor()

◆ getBaseQColor()

◆ getBackgroundQColor()

QColor SingleColourLayer::getBackgroundQColor ( View v) const
protectedvirtualinherited

Definition at line 247 of file SingleColourLayer.cpp.

References View::getBackground().

Referenced by SingleColourLayer::getPartialShades(), and paint().

◆ getForegroundQColor()

QColor SingleColourLayer::getForegroundQColor ( View v) const
protectedvirtualinherited

◆ getPartialShades()

std::vector< QColor > SingleColourLayer::getPartialShades ( View v) const
protectedinherited

◆ getDefaultColourHint()

virtual int SingleColourLayer::getDefaultColourHint ( bool  ,
bool &   
)
inlineprotectedvirtualinherited

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

◆ setSynchronousPainting()

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.

Definition at line 104 of file Layer.h.

◆ getPreferredTimeRulerPosition()

virtual VerticalPosition Layer::getPreferredTimeRulerPosition ( ) const
inlinevirtualinherited

Definition at line 109 of file Layer.h.

References Layer::PositionMiddle.

◆ getPreferredFrameCountPosition()

virtual VerticalPosition Layer::getPreferredFrameCountPosition ( ) const
inlinevirtualinherited

Reimplemented in SpectrogramLayer, and SpectrumLayer.

Definition at line 112 of file Layer.h.

References Layer::PositionBottom.

◆ 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

◆ getCrosshairExtents()

virtual bool Layer::getCrosshairExtents ( View ,
QPainter &  ,
QPoint  ,
std::vector< QRect > &   
) const
inlinevirtualinherited

Reimplemented in SpectrogramLayer, and SpectrumLayer.

Definition at line 137 of file Layer.h.

◆ paintCrosshairs()

virtual void Layer::paintCrosshairs ( View ,
QPainter &  ,
QPoint   
) const
inlinevirtualinherited

Reimplemented in SpectrogramLayer, and SpectrumLayer.

Definition at line 141 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.

◆ snapToFeatureFrame()

virtual bool Layer::snapToFeatureFrame ( View ,
int &  ,
int &  resolution,
SnapType   
) 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 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 in SpectrogramLayer, Colour3DPlotLayer, RegionLayer, FlexiNoteLayer, TimeValueLayer, ImageLayer, NoteLayer, TimeRulerLayer, TimeInstantLayer, and TextLayer.

Definition at line 183 of file Layer.h.

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

◆ 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

◆ measureDoubleClick()

void Layer::measureDoubleClick ( View ,
QMouseEvent *   
)
virtualinherited

Reimplemented in SpectrogramLayer.

Definition at line 408 of file Layer.cpp.

Referenced by Pane::mouseDoubleClickEvent().

◆ 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

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

◆ isLayerOpaque()

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

Referenced by View::getAligningModel().

◆ 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().

◆ getError()

virtual QString Layer::getError ( View ) 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 354 of file Layer.h.

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

◆ setLayerDormant()

void Layer::setLayerDormant ( const View 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 118 of file Layer.cpp.

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

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

◆ 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().

◆ getDisplayExtents()

virtual bool Layer::getDisplayExtents ( float &  ,
float &   
) const
inlinevirtualinherited

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 in SpectrogramLayer, Colour3DPlotLayer, TimeValueLayer, FlexiNoteLayer, RegionLayer, and NoteLayer.

Definition at line 437 of file Layer.h.

Referenced by Pane::drawVerticalScale(), and Pane::getTopLayerDisplayExtents().

◆ setDisplayExtents()

virtual bool Layer::setDisplayExtents ( float  ,
float   
)
inlinevirtualinherited

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

Definition at line 449 of file Layer.h.

Referenced by Pane::setTopLayerDisplayExtents(), FlexiNoteLayer::setVerticalRangeToNoteRange(), and Pane::zoomToRegion().

◆ 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().

◆ getNewVerticalZoomRangeMapper()

virtual RangeMapper* Layer::getNewVerticalZoomRangeMapper ( ) const
inlinevirtualinherited

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

Definition at line 519 of file Layer.h.

Referenced by Pane::propertyContainerSelected(), and Pane::updateHeadsUpDisplay().

◆ 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 SpectrogramLayer::preferenceChanged(), setAggressiveCacheing(), setAutoNormalize(), SingleColourLayer::setBaseColour(), SpectrogramLayer::setBinDisplay(), SliceLayer::setBinScale(), Colour3DPlotLayer::setBinScale(), SpectrumLayer::setChannel(), SpectrogramLayer::setChannel(), setChannel(), setChannelMode(), Colour3DPlotLayer::setColourMap(), SpectrogramLayer::setColourMap(), SpectrogramLayer::setColourRotation(), Colour3DPlotLayer::setColourScale(), SpectrogramLayer::setColourScale(), NoteLayer::setDisplayExtents(), FlexiNoteLayer::setDisplayExtents(), TimeValueLayer::setDisplayExtents(), Colour3DPlotLayer::setDisplayExtents(), SpectrogramLayer::setDisplayExtents(), TimeValueLayer::setDrawSegmentDivisions(), SliceLayer::setEnergyScale(), SliceLayer::setFillColourMap(), TimeValueLayer::setFillColourMap(), RegionLayer::setFillColourMap(), SpectrogramLayer::setFrequencyScale(), setGain(), SliceLayer::setGain(), Colour3DPlotLayer::setGain(), SpectrogramLayer::setGain(), Colour3DPlotLayer::setInvertVertical(), SpectrogramLayer::setMaxFrequency(), setMiddleLineHeight(), SpectrogramLayer::setMinFrequency(), SpectrumLayer::setModel(), setModel(), SliceLayer::setNormalize(), Colour3DPlotLayer::setNormalizeColumns(), SpectrogramLayer::setNormalizeColumns(), Colour3DPlotLayer::setNormalizeHybrid(), SpectrogramLayer::setNormalizeHybrid(), Colour3DPlotLayer::setNormalizeVisibleArea(), SpectrogramLayer::setNormalizeVisibleArea(), Colour3DPlotLayer::setOpaque(), TimeInstantLayer::setPlotStyle(), SliceLayer::setPlotStyle(), TimeValueLayer::setPlotStyle(), RegionLayer::setPlotStyle(), SliceLayer::setSamplingMode(), setScale(), TimeValueLayer::setShowDerivative(), setShowMeans(), SpectrumLayer::setShowPeaks(), Colour3DPlotLayer::setSmooth(), SliceLayer::setThreshold(), SpectrogramLayer::setThreshold(), setUseGreyscale(), NoteLayer::setVerticalScale(), RegionLayer::setVerticalScale(), TimeValueLayer::setVerticalScale(), FlexiNoteLayer::setVerticalScale(), Colour3DPlotLayer::setVerticalZoomStep(), SpectrumLayer::setWindowHopLevel(), SpectrogramLayer::setWindowHopLevel(), SpectrumLayer::setWindowSize(), SpectrogramLayer::setWindowSize(), SpectrumLayer::setWindowType(), SpectrogramLayer::setWindowType(), SpectrogramLayer::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

◆ updateMeasureRectYCoords()

void Layer::updateMeasureRectYCoords ( View v,
const MeasureRect r 
) const
protectedvirtualinherited

◆ setMeasureRectYCoord()

void Layer::setMeasureRectYCoord ( View v,
MeasureRect r,
bool  start,
int  y 
) const
protectedvirtualinherited

Reimplemented in SpectrogramLayer.

Definition at line 518 of file Layer.cpp.

References Layer::MeasureRect::endY, and Layer::MeasureRect::startY.

Referenced by Layer::setMeasureRectFromPixrect().

◆ setMeasureRectFromPixrect()

◆ 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

const RangeSummarisableTimeValueModel* WaveformLayer::m_model
protected

◆ m_gain

float WaveformLayer::m_gain
protected

◆ m_autoNormalize

bool WaveformLayer::m_autoNormalize
protected

◆ m_showMeans

bool WaveformLayer::m_showMeans
protected

Definition at line 227 of file WaveformLayer.h.

Referenced by getShowMeans(), paint(), setShowMeans(), and toXml().

◆ m_greyscale

bool WaveformLayer::m_greyscale
protected

Definition at line 228 of file WaveformLayer.h.

Referenced by getUseGreyscale(), paint(), setUseGreyscale(), and toXml().

◆ m_channelMode

ChannelMode WaveformLayer::m_channelMode
protected

◆ m_channel

int WaveformLayer::m_channel
protected

◆ m_scale

◆ m_middleLineHeight

float WaveformLayer::m_middleLineHeight
protected

Definition at line 232 of file WaveformLayer.h.

Referenced by getMiddleLineHeight(), paint(), setMiddleLineHeight(), and toXml().

◆ m_aggressive

bool WaveformLayer::m_aggressive
protected

Definition at line 233 of file WaveformLayer.h.

Referenced by getAggressiveCacheing(), paint(), setAggressiveCacheing(), and toXml().

◆ m_effectiveGains

std::vector<float> WaveformLayer::m_effectiveGains
mutableprotected

Definition at line 235 of file WaveformLayer.h.

Referenced by paint(), and paintVerticalScale().

◆ m_cache

QPixmap* WaveformLayer::m_cache
mutableprotected

Definition at line 237 of file WaveformLayer.h.

Referenced by paint(), and ~WaveformLayer().

◆ m_cacheValid

◆ m_cacheZoomLevel

int WaveformLayer::m_cacheZoomLevel
mutableprotected

Definition at line 239 of file WaveformLayer.h.

Referenced by paint().

◆ m_colourRefCount

SingleColourLayer::ColourRefCount SingleColourLayer::m_colourRefCount
staticprotectedinherited

◆ m_colour

◆ m_colourExplicitlySet

bool SingleColourLayer::m_colourExplicitlySet
protectedinherited

◆ m_defaultColourSet

bool SingleColourLayer::m_defaultColourSet
protectedinherited

Definition at line 94 of file SingleColourLayer.h.

Referenced by SingleColourLayer::setDefaultColourFor().

◆ 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: