svcore  1.9
DenseThreeDimensionalModel Class Reference

#include <DenseThreeDimensionalModel.h>

Inheritance diagram for DenseThreeDimensionalModel:
Collaboration diagram for DenseThreeDimensionalModel:

List of all members.

Public Types

typedef QVector< float > Column
enum  { SortRole = Qt::UserRole }
enum  SortType { SortNumeric, SortAlphabetical }

Public Slots

void aboutToDelete ()
void sourceModelAboutToBeDeleted ()

Signals

void modelChanged ()
 Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly)
void modelChangedWithin (int startFrame, int endFrame)
 Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly)
void completionChanged ()
 Emitted when some internal processing has advanced a stage, but the model has not changed externally.
void ready ()
 Emitted when internal processing is complete (i.e.
void alignmentCompletionChanged ()
 Emitted when the completion percentage changes for the calculation of this model's alignment model.
void aboutToBeDeleted ()
 Emitted when something notifies this model (through calling aboutToDelete() that it is about to delete it.

Public Member Functions

virtual int getResolution () const =0
 Return the number of sample frames covered by each column of bins.
virtual int getWidth () const =0
 Return the number of columns of bins in the model.
virtual int getHeight () const =0
 Return the number of bins in each column.
virtual float getMinimumLevel () const =0
 Return the minimum permissible value in each bin.
virtual float getMaximumLevel () const =0
 Return the maximum permissible value in each bin.
virtual bool isColumnAvailable (int column) const =0
 Return true if there are data available for the given column.
virtual Column getColumn (int column) const =0
 Get data from the given column of bin values.
virtual float getValueAt (int column, int n) const =0
 Get the single data point from the n'th bin of the given column.
virtual QString getBinName (int n) const =0
 Get the name of a given bin (i.e.
virtual bool hasBinValues () const
 Return true if the bins have values as well as names.
virtual float getBinValue (int n) const
 Return the value of bin n, if any.
virtual QString getBinValueUnit () const
 Obtain the name of the unit of the values returned from getBinValue(), if any.
virtual bool shouldUseLogValueScale () const =0
 Estimate whether a logarithmic scale might be appropriate for the value scale.
bool isLocalPeak (int x, int y)
 Utility function to query whether a given bin is greater than its (vertical) neighbours.
bool isOverThreshold (int x, int y, float threshold)
 Utility function to query whether a given bin is greater than a certain threshold.
QString getTypeName () const
 Return the type of the model.
virtual int getCompletion () const =0
virtual int getRowCount () const
virtual int getColumnCount () const
virtual QString getHeading (int column) const
virtual QVariant getData (int row, int column, int) const
virtual bool isColumnTimeValue (int col) const
virtual SortType getSortType (int) const
virtual long getFrameForRow (int row) const
virtual int getRowForFrame (long frame) const
virtual bool isOK () const =0
 Return true if the model was constructed successfully.
virtual int getStartFrame () const =0
 Return the first audio frame spanned by the model.
virtual int getEndFrame () const =0
 Return the last audio frame spanned by the model.
virtual int getSampleRate () const =0
 Return the frame rate in frames per second.
virtual int getNativeRate () const
 Return the frame rate of the underlying material, if the model itself has already been resampled.
virtual QString getTitle () const
 Return the "work title" of the model, if known.
virtual QString getMaker () const
 Return the "artist" or "maker" of the model, if known.
virtual QString getLocation () const
 Return the location of the data in this model (e.g.
virtual Modelclone () const =0
 Return a copy of this model.
virtual void abandon ()
 Mark the model as abandoning.
virtual bool isAbandoning () const
 Query whether the model has been marked as abandoning.
virtual bool isReady (int *completion=0) const
 Return true if the model has finished loading or calculating all its data, for a model that is capable of calculating in a background thread.
virtual const ZoomConstraintgetZoomConstraint () const
 If this model imposes a zoom constraint, i.e.
virtual ModelgetSourceModel () const
 If this model was derived from another, return the model it was derived from.
virtual void setSourceModel (Model *model)
 Set the source model for this model.
virtual void setAlignment (AlignmentModel *alignment)
 Specify an aligment between this model's timeline and that of a reference model.
virtual const AlignmentModelgetAlignment () const
 Retrieve the alignment model for this model.
virtual const ModelgetAlignmentReference () const
 Return the reference model for the current alignment timeline, if any.
virtual int alignToReference (int frame) const
 Return the frame number of the reference model that corresponds to the given frame number in this model.
virtual int alignFromReference (int referenceFrame) const
 Return the frame number in this model that corresponds to the given frame number of the reference model.
virtual int getAlignmentCompletion () const
 Return the completion percentage for the alignment model: 100 if there is no alignment model or it has been entirely calculated, or less than 100 if it is still being calculated.
void setRDFTypeURI (QString uri)
 Set the event, feature, or signal type URI for the features contained in this model, according to the Audio Features RDF ontology.
QString getRDFTypeURI () const
 Retrieve the event, feature, or signal type URI for the features contained in this model, if previously set with setRDFTypeURI.
virtual void toXml (QTextStream &stream, QString indent="", QString extraAttributes="") const
 Stream this exportable object out to XML on a text stream.
virtual QString toDelimitedDataString (QString delimiter) const
virtual QString toDelimitedDataStringSubset (QString, int, int) const
virtual QString toXmlString (QString indent="", QString extraAttributes="") const
 Convert this exportable object to XML in a string.
virtual bool canPlay () const
virtual QString getDefaultPlayClipId () const
virtual bool getDefaultPlayAudible () const
virtual bool isEditable () const
virtual CommandgetSetDataCommand (int, int, const QVariant &, int)
virtual CommandgetInsertRowCommand (int)
virtual CommandgetRemoveRowCommand (int)

Static Public Member Functions

static QString encodeEntities (QString)
static QString encodeColour (int r, int g, int b)
static int getObjectExportId (const void *)

Static Public Attributes

static const int COMPLETION_UNKNOWN = -1

Protected Member Functions

 DenseThreeDimensionalModel ()

Protected Attributes

Modelm_sourceModel
AlignmentModelm_alignment
QString m_typeUri
bool m_abandoning
bool m_aboutToDelete

Detailed Description

Definition at line 27 of file DenseThreeDimensionalModel.h.


Member Typedef Documentation

typedef QVector<float> DenseThreeDimensionalModel::Column

Definition at line 67 of file DenseThreeDimensionalModel.h.


Member Enumeration Documentation

anonymous enum [inherited]
Enumerator:
SortRole 

Definition at line 44 of file TabularModel.h.

enum TabularModel::SortType [inherited]
Enumerator:
SortNumeric 
SortAlphabetical 

Definition at line 45 of file TabularModel.h.


Constructor & Destructor Documentation


Member Function Documentation

virtual int DenseThreeDimensionalModel::getResolution ( ) const [pure virtual]

Return the number of sample frames covered by each column of bins.

Implemented in FFTModel, EditableDenseThreeDimensionalModel, and Dense3DModelPeakCache.

Referenced by getData(), and Dense3DModelPeakCache::getResolution().

virtual int DenseThreeDimensionalModel::getWidth ( ) const [pure virtual]

Return the number of columns of bins in the model.

Implemented in FFTModel, EditableDenseThreeDimensionalModel, and Dense3DModelPeakCache.

Referenced by getRowCount(), and Dense3DModelPeakCache::getWidth().

virtual float DenseThreeDimensionalModel::getMinimumLevel ( ) const [pure virtual]

Return the minimum permissible value in each bin.

Implemented in FFTModel, EditableDenseThreeDimensionalModel, and Dense3DModelPeakCache.

Referenced by Dense3DModelPeakCache::getMinimumLevel().

virtual float DenseThreeDimensionalModel::getMaximumLevel ( ) const [pure virtual]

Return the maximum permissible value in each bin.

Implemented in FFTModel, EditableDenseThreeDimensionalModel, and Dense3DModelPeakCache.

Referenced by Dense3DModelPeakCache::getMaximumLevel().

virtual bool DenseThreeDimensionalModel::isColumnAvailable ( int  column) const [pure virtual]

Return true if there are data available for the given column.

This should return true only if getColumn(column) would not have to do any substantial work to calculate its return values. If this function returns false, it may still be possible to retrieve the column, but its values may have to be calculated.

Implemented in EditableDenseThreeDimensionalModel, FFTModel, and Dense3DModelPeakCache.

Referenced by Dense3DModelPeakCache::isColumnAvailable().

virtual Column DenseThreeDimensionalModel::getColumn ( int  column) const [pure virtual]

Get data from the given column of bin values.

Implemented in FFTModel, EditableDenseThreeDimensionalModel, and Dense3DModelPeakCache.

Referenced by Dense3DModelPeakCache::fillColumn().

virtual float DenseThreeDimensionalModel::getValueAt ( int  column,
int  n 
) const [pure virtual]

Get the single data point from the n'th bin of the given column.

Implemented in EditableDenseThreeDimensionalModel, FFTModel, and Dense3DModelPeakCache.

Referenced by getData(), isLocalPeak(), and isOverThreshold().

virtual QString DenseThreeDimensionalModel::getBinName ( int  n) const [pure virtual]

Get the name of a given bin (i.e.

a label to associate with that bin across all columns).

Implemented in FFTModel, EditableDenseThreeDimensionalModel, and Dense3DModelPeakCache.

Referenced by Dense3DModelPeakCache::getBinName(), and getHeading().

virtual bool DenseThreeDimensionalModel::hasBinValues ( ) const [inline, virtual]

Return true if the bins have values as well as names.

If this returns true, getBinValue() may be used to retrieve the values.

Reimplemented in EditableDenseThreeDimensionalModel.

Definition at line 89 of file DenseThreeDimensionalModel.h.

virtual float DenseThreeDimensionalModel::getBinValue ( int  n) const [inline, virtual]

Return the value of bin n, if any.

This is a "vertical scale" value which does not vary from one column to the next. This is only meaningful if hasBinValues() returns true.

Reimplemented in EditableDenseThreeDimensionalModel.

Definition at line 96 of file DenseThreeDimensionalModel.h.

virtual QString DenseThreeDimensionalModel::getBinValueUnit ( ) const [inline, virtual]

Obtain the name of the unit of the values returned from getBinValue(), if any.

Reimplemented in EditableDenseThreeDimensionalModel.

Definition at line 102 of file DenseThreeDimensionalModel.h.

virtual bool DenseThreeDimensionalModel::shouldUseLogValueScale ( ) const [pure virtual]

Estimate whether a logarithmic scale might be appropriate for the value scale.

Implemented in EditableDenseThreeDimensionalModel, FFTModel, and Dense3DModelPeakCache.

Referenced by Dense3DModelPeakCache::shouldUseLogValueScale().

bool DenseThreeDimensionalModel::isLocalPeak ( int  x,
int  y 
) [inline]

Utility function to query whether a given bin is greater than its (vertical) neighbours.

Definition at line 114 of file DenseThreeDimensionalModel.h.

References getHeight(), and getValueAt().

bool DenseThreeDimensionalModel::isOverThreshold ( int  x,
int  y,
float  threshold 
) [inline]

Utility function to query whether a given bin is greater than a certain threshold.

Definition at line 125 of file DenseThreeDimensionalModel.h.

References getValueAt().

QString DenseThreeDimensionalModel::getTypeName ( ) const [inline, virtual]

Return the type of the model.

For display purposes only.

Implements Model.

Reimplemented in EditableDenseThreeDimensionalModel, FFTModel, and Dense3DModelPeakCache.

Definition at line 129 of file DenseThreeDimensionalModel.h.

virtual int DenseThreeDimensionalModel::getRowCount ( ) const [inline, virtual]

Implements TabularModel.

Definition at line 140 of file DenseThreeDimensionalModel.h.

References getWidth().

virtual int DenseThreeDimensionalModel::getColumnCount ( ) const [inline, virtual]

Implements TabularModel.

Definition at line 141 of file DenseThreeDimensionalModel.h.

References getHeight().

virtual QString DenseThreeDimensionalModel::getHeading ( int  column) const [inline, virtual]

Implements TabularModel.

Definition at line 143 of file DenseThreeDimensionalModel.h.

References getBinName().

virtual QVariant DenseThreeDimensionalModel::getData ( int  row,
int  column,
int   
) const [inline, virtual]
virtual bool DenseThreeDimensionalModel::isColumnTimeValue ( int  col) const [inline, virtual]

Implements TabularModel.

Definition at line 167 of file DenseThreeDimensionalModel.h.

virtual SortType DenseThreeDimensionalModel::getSortType ( int  ) const [inline, virtual]

Implements TabularModel.

Definition at line 170 of file DenseThreeDimensionalModel.h.

References TabularModel::SortNumeric.

virtual long DenseThreeDimensionalModel::getFrameForRow ( int  row) const [inline, virtual]

Implements TabularModel.

Definition at line 174 of file DenseThreeDimensionalModel.h.

References Model::getSampleRate().

virtual int DenseThreeDimensionalModel::getRowForFrame ( long  frame) const [inline, virtual]

Implements TabularModel.

Definition at line 177 of file DenseThreeDimensionalModel.h.

References Model::getSampleRate().

virtual int Model::getNativeRate ( ) const [inline, virtual, inherited]

Return the frame rate of the underlying material, if the model itself has already been resampled.

Reimplemented in WaveFileModel.

Definition at line 69 of file Model.h.

References Model::getSampleRate().

QString Model::getTitle ( ) const [virtual, inherited]

Return the "work title" of the model, if known.

Reimplemented in WaveFileModel.

Definition at line 153 of file Model.cpp.

References Model::getTitle(), and Model::m_sourceModel.

Referenced by Model::getTitle().

QString Model::getMaker ( ) const [virtual, inherited]

Return the "artist" or "maker" of the model, if known.

Reimplemented in WaveFileModel.

Definition at line 160 of file Model.cpp.

References Model::getMaker(), and Model::m_sourceModel.

Referenced by Model::getMaker().

QString Model::getLocation ( ) const [virtual, inherited]

Return the location of the data in this model (e.g.

source URL). This should not normally be returned for editable models that have been edited.

Reimplemented in WaveFileModel.

Definition at line 167 of file Model.cpp.

References Model::getLocation(), and Model::m_sourceModel.

Referenced by Model::getLocation().

virtual Model* Model::clone ( ) const [pure virtual, inherited]

Return a copy of this model.

If the model is not editable, this may be effectively a shallow copy. If the model is editable, however, this operation must properly copy all of the model's editable data.

In general this operation is not useful for non-editable dense models such as waveforms, because there may be no efficient copy operation implemented -- for such models it is better not to copy at all.

Caller owns the returned value.

Implemented in FFTModel, EditableDenseThreeDimensionalModel, AggregateWaveModel, SparseModel< PointType >, WaveFileModel, WritableWaveFileModel, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, Dense3DModelPeakCache, and AlignmentModel.

Referenced by AlignmentModel::clone().

virtual void Model::abandon ( ) [inline, virtual, inherited]

Mark the model as abandoning.

This means that the application no longer needs it, so it can stop doing any background calculations it may be involved in. Note that as far as the model API is concerned, this does nothing more than tell the model to return true from isAbandoning(). The actual response to this will depend on the model's context -- it's possible nothing at all will change.

Definition at line 118 of file Model.h.

References Model::m_abandoning.

virtual bool Model::isAbandoning ( ) const [inline, virtual, inherited]

Query whether the model has been marked as abandoning.

Definition at line 125 of file Model.h.

References Model::m_abandoning.

Referenced by FeatureExtractionModelTransformer::setCompletion().

virtual bool Model::isReady ( int *  completion = 0) const [inline, virtual, inherited]

Return true if the model has finished loading or calculating all its data, for a model that is capable of calculating in a background thread.

The default implementation is appropriate for a thread that does not background any work but carries out all its calculation from the constructor or accessors.

If "completion" is non-NULL, this function should return through it an estimated percentage value showing how far through the background operation it thinks it is (for progress reporting). If it has no way to calculate progress, it may return the special value COMPLETION_UNKNOWN.

Reimplemented in SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, AlignmentModel, AggregateWaveModel, WaveFileModel, and WritableWaveFileModel.

Definition at line 142 of file Model.h.

References Model::isOK().

Referenced by FFTDataServer::fillColumn(), RealTimeEffectModelTransformer::run(), FeatureExtractionModelTransformer::run(), and FFTDataServer::FillThread::run().

virtual const ZoomConstraint* Model::getZoomConstraint ( ) const [inline, virtual, inherited]

If this model imposes a zoom constraint, i.e.

some limit to the set of resolutions at which its data can meaningfully be displayed, then return it.

Reimplemented in AggregateWaveModel, WritableWaveFileModel, AlignmentModel, and WaveFileModel.

Definition at line 154 of file Model.h.

virtual Model* Model::getSourceModel ( ) const [inline, virtual, inherited]

If this model was derived from another, return the model it was derived from.

The assumption is that the source model's alignment will also apply to this model, unless some other property (such as a specific alignment model set on this model) indicates otherwise.

Definition at line 165 of file Model.h.

References Model::m_sourceModel.

void Model::setAlignment ( AlignmentModel alignment) [virtual, inherited]

Specify an aligment between this model's timeline and that of a reference model.

The alignment model records both the reference and the alignment. This model takes ownership of the alignment model.

Definition at line 82 of file Model.cpp.

References Model::aboutToDelete(), Model::alignmentCompletionChanged(), Model::completionChanged(), and Model::m_alignment.

const AlignmentModel * Model::getAlignment ( ) const [virtual, inherited]

Retrieve the alignment model for this model.

This is not a generally useful function, as the alignment you really want may be performed by the source model instead. You should normally use getAlignmentReference, alignToReference and alignFromReference instead of this. The main intended application for this function is in streaming out alignments to the session file.

Definition at line 94 of file Model.cpp.

References Model::m_alignment.

const Model * Model::getAlignmentReference ( ) const [virtual, inherited]

Return the reference model for the current alignment timeline, if any.

Definition at line 100 of file Model.cpp.

References Model::getAlignmentReference(), AlignmentModel::getReferenceModel(), Model::m_alignment, and Model::m_sourceModel.

Referenced by Model::getAlignmentReference().

int Model::alignToReference ( int  frame) const [virtual, inherited]

Return the frame number of the reference model that corresponds to the given frame number in this model.

Definition at line 110 of file Model.cpp.

References Model::alignToReference(), Model::getEndFrame(), AlignmentModel::getReferenceModel(), Model::m_alignment, Model::m_sourceModel, and AlignmentModel::toReference().

Referenced by Model::alignToReference().

int Model::alignFromReference ( int  referenceFrame) const [virtual, inherited]

Return the frame number in this model that corresponds to the given frame number of the reference model.

Definition at line 125 of file Model.cpp.

References Model::alignFromReference(), AlignmentModel::fromReference(), Model::getEndFrame(), Model::m_alignment, and Model::m_sourceModel.

Referenced by Model::alignFromReference().

int Model::getAlignmentCompletion ( ) const [virtual, inherited]

Return the completion percentage for the alignment model: 100 if there is no alignment model or it has been entirely calculated, or less than 100 if it is still being calculated.

Definition at line 139 of file Model.cpp.

References Model::getAlignmentCompletion(), AlignmentModel::isReady(), Model::m_alignment, and Model::m_sourceModel.

Referenced by Model::getAlignmentCompletion().

void Model::setRDFTypeURI ( QString  uri) [inline, inherited]

Set the event, feature, or signal type URI for the features contained in this model, according to the Audio Features RDF ontology.

Definition at line 223 of file Model.h.

References Model::m_typeUri.

Referenced by FeatureExtractionModelTransformer::createOutputModels(), FeatureExtractionModelTransformer::getAdditionalModel(), RDFImporterImpl::getDataModelsDense(), and RDFImporterImpl::getDataModelsSparse().

QString Model::getRDFTypeURI ( ) const [inline, inherited]

Retrieve the event, feature, or signal type URI for the features contained in this model, if previously set with setRDFTypeURI.

Definition at line 230 of file Model.h.

References Model::m_typeUri.

Referenced by FeatureExtractionModelTransformer::getAdditionalModel().

void Model::sourceModelAboutToBeDeleted ( ) [slot, inherited]

Reimplemented in FFTModel, and Dense3DModelPeakCache.

Definition at line 76 of file Model.cpp.

References Model::m_sourceModel.

Referenced by Model::setSourceModel().

void Model::modelChangedWithin ( int  startFrame,
int  endFrame 
) [signal, inherited]

Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly)

Reimplemented in AggregateWaveModel, and AlignmentModel.

Referenced by WaveFileModel::cacheFilled(), WaveFileModel::fillTimerTimedOut(), EditableDenseThreeDimensionalModel::setColumn(), EditableDenseThreeDimensionalModel::setCompletion(), and WritableWaveFileModel::WritableWaveFileModel().

void Model::completionChanged ( ) [signal, inherited]

Emitted when some internal processing has advanced a stage, but the model has not changed externally.

Views should respond by updating any progress meters or other monitoring, but not refreshing the actual view.

Reimplemented in AggregateWaveModel, and AlignmentModel.

Referenced by Model::setAlignment(), and EditableDenseThreeDimensionalModel::setCompletion().

void Model::ready ( ) [signal, inherited]

Emitted when internal processing is complete (i.e.

when isReady() would return true, with completion at 100).

Referenced by WaveFileModel::cacheFilled(), WaveFileModel::isReady(), AggregateWaveModel::isReady(), and SparseModel< RegionRec >::isReady().

void Model::alignmentCompletionChanged ( ) [signal, inherited]

Emitted when the completion percentage changes for the calculation of this model's alignment model.

Referenced by Model::setAlignment(), and Model::setSourceModel().

void Model::aboutToBeDeleted ( ) [signal, inherited]

Emitted when something notifies this model (through calling aboutToDelete() that it is about to delete it.

Note that this depends on an external agent such as a Document object or owning model telling the model that it is about to delete it; there is nothing in the model to guarantee that this signal will be emitted before the actual deletion.

Referenced by Model::aboutToDelete(), Dense3DModelPeakCache::Dense3DModelPeakCache(), and Model::setSourceModel().

QString XmlExportable::toXmlString ( QString  indent = "",
QString  extraAttributes = "" 
) const [virtual, inherited]

Convert this exportable object to XML in a string.

The default implementation calls toXml and returns the result as a string. Do not override this unless you really know what you're doing.

Definition at line 25 of file XmlExportable.cpp.

References XmlExportable::toXml().

Referenced by ModelTransformerFactory::getConfigurationForTransform(), and RDFTransformFactoryImpl::getTransforms().

QString XmlExportable::encodeColour ( int  r,
int  g,
int  b 
) [static, inherited]

Definition at line 54 of file XmlExportable.cpp.

int XmlExportable::getObjectExportId ( const void *  object) [static, inherited]
virtual bool Playable::canPlay ( ) const [inline, virtual, inherited]
virtual QString Playable::getDefaultPlayClipId ( ) const [inline, virtual, inherited]
virtual bool Playable::getDefaultPlayAudible ( ) const [inline, virtual, inherited]

Reimplemented in SparseTimeValueModel.

Definition at line 28 of file Playable.h.

Referenced by PlayParameterRepository::addPlayable().

virtual bool TabularModel::isEditable ( ) const [inline, virtual, inherited]

Definition at line 54 of file TabularModel.h.


Member Data Documentation

const int Model::COMPLETION_UNKNOWN = -1 [static, inherited]

Definition at line 147 of file Model.h.

QString Model::m_typeUri [protected, inherited]

Definition at line 303 of file Model.h.

Referenced by Model::getRDFTypeURI(), and Model::setRDFTypeURI().

bool Model::m_abandoning [protected, inherited]

Definition at line 304 of file Model.h.

Referenced by Model::abandon(), and Model::isAbandoning().

bool Model::m_aboutToDelete [protected, inherited]

Definition at line 305 of file Model.h.

Referenced by Model::aboutToDelete(), and Model::~Model().


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