|
svcore
1.9
|
Model is the base class for all data models that represent any sort of data on a time scale based on an audio frame rate. More...
#include <Model.h>


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) More... | |
| 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) More... | |
| void | completionChanged () |
| Emitted when some internal processing has advanced a stage, but the model has not changed externally. More... | |
| void | ready () |
| Emitted when internal processing is complete (i.e. More... | |
| void | alignmentCompletionChanged () |
| Emitted when the completion percentage changes for the calculation of this model's alignment model. More... | |
| void | aboutToBeDeleted () |
| Emitted when something notifies this model (through calling aboutToDelete() that it is about to delete it. More... | |
Public Member Functions | |
| virtual | ~Model () |
| virtual bool | isOK () const =0 |
| Return true if the model was constructed successfully. More... | |
| virtual int | getStartFrame () const =0 |
| Return the first audio frame spanned by the model. More... | |
| virtual int | getEndFrame () const =0 |
| Return the last audio frame spanned by the model. More... | |
| virtual int | getSampleRate () const =0 |
| Return the frame rate in frames per second. More... | |
| virtual int | getNativeRate () const |
| Return the frame rate of the underlying material, if the model itself has already been resampled. More... | |
| virtual QString | getTitle () const |
| Return the "work title" of the model, if known. More... | |
| virtual QString | getMaker () const |
| Return the "artist" or "maker" of the model, if known. More... | |
| virtual QString | getLocation () const |
| Return the location of the data in this model (e.g. More... | |
| virtual QString | getTypeName () const =0 |
| Return the type of the model. More... | |
| virtual Model * | clone () const =0 |
| Return a copy of this model. More... | |
| virtual void | abandon () |
| Mark the model as abandoning. More... | |
| virtual bool | isAbandoning () const |
| Query whether the model has been marked as abandoning. More... | |
| 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. More... | |
| virtual const ZoomConstraint * | getZoomConstraint () const |
| If this model imposes a zoom constraint, i.e. More... | |
| virtual Model * | getSourceModel () const |
| If this model was derived from another, return the model it was derived from. More... | |
| virtual void | setSourceModel (Model *model) |
| Set the source model for this model. More... | |
| virtual void | setAlignment (AlignmentModel *alignment) |
| Specify an aligment between this model's timeline and that of a reference model. More... | |
| virtual const AlignmentModel * | getAlignment () const |
| Retrieve the alignment model for this model. More... | |
| virtual const Model * | getAlignmentReference () const |
| Return the reference model for the current alignment timeline, if any. More... | |
| virtual int | alignToReference (int frame) const |
| Return the frame number of the reference model that corresponds to the given frame number in this model. More... | |
| virtual int | alignFromReference (int referenceFrame) const |
| Return the frame number in this model that corresponds to the given frame number of the reference model. More... | |
| 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. More... | |
| 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. More... | |
| QString | getRDFTypeURI () const |
| Retrieve the event, feature, or signal type URI for the features contained in this model, if previously set with setRDFTypeURI. More... | |
| virtual void | toXml (QTextStream &stream, QString indent="", QString extraAttributes="") const |
| Stream this exportable object out to XML on a text stream. More... | |
| 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. More... | |
| virtual bool | canPlay () const |
| virtual QString | getDefaultPlayClipId () const |
| virtual bool | getDefaultPlayAudible () const |
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 | |
| Model () | |
| Model (const Model &) | |
| Model & | operator= (const Model &) |
Protected Attributes | |
| Model * | m_sourceModel |
| AlignmentModel * | m_alignment |
| QString | m_typeUri |
| bool | m_abandoning |
| bool | m_aboutToDelete |
Model is the base class for all data models that represent any sort of data on a time scale based on an audio frame rate.
|
virtual |
Definition at line 25 of file Model.cpp.
References aboutToDelete(), m_aboutToDelete, m_alignment, and SVDEBUG.
|
protected |
|
pure virtual |
Return true if the model was constructed successfully.
Classes that refer to the model should always test this before use.
Implemented in FFTModel, EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, AggregateWaveModel, WaveFileModel, WritableWaveFileModel, AlignmentModel, and Dense3DModelPeakCache.
Referenced by Dense3DModelPeakCache::isOK(), and isReady().
|
pure virtual |
Return the first audio frame spanned by the model.
Implemented in FFTModel, AggregateWaveModel, WaveFileModel, WritableWaveFileModel, EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, AlignmentModel, and Dense3DModelPeakCache.
Referenced by FFTDataServer::FFTDataServer(), AlignmentModel::getStartFrame(), Dense3DModelPeakCache::getStartFrame(), RealTimeEffectModelTransformer::run(), FeatureExtractionModelTransformer::run(), FFTDataServer::FillThread::run(), toDelimitedDataString(), toXml(), and WavFileWriter::writeModel().
|
pure virtual |
Return the last audio frame spanned by the model.
Implemented in FFTModel, AggregateWaveModel, WaveFileModel, WritableWaveFileModel, EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, Dense3DModelPeakCache, and AlignmentModel.
Referenced by alignFromReference(), alignToReference(), FFTDataServer::FFTDataServer(), AlignmentModel::getEndFrame(), Dense3DModelPeakCache::getEndFrame(), FFTDataServer::getFillExtent(), RealTimeEffectModelTransformer::run(), FeatureExtractionModelTransformer::run(), FFTDataServer::FillThread::run(), toDelimitedDataString(), toXml(), and WavFileWriter::writeModel().
|
pure virtual |
Return the frame rate in frames per second.
Implemented in FFTModel, AggregateWaveModel, EditableDenseThreeDimensionalModel, SparseModel< PointType >, WritableWaveFileModel, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, WaveFileModel, AlignmentModel, and Dense3DModelPeakCache.
Referenced by FeatureExtractionModelTransformer::addFeature(), AlignmentModel::constructPath(), FeatureExtractionModelTransformer::createOutputModels(), Dense3DModelPeakCache::Dense3DModelPeakCache(), FFTModel::estimateStableFrequency(), ModelTransformerFactory::getConfigurationForTransform(), DenseThreeDimensionalModel::getData(), DenseThreeDimensionalModel::getFrameForRow(), getNativeRate(), DenseThreeDimensionalModel::getRowForFrame(), Dense3DModelPeakCache::getSampleRate(), AlignmentModel::getSampleRate(), FFTModel::getSampleRate(), FeatureExtractionModelTransformer::initialise(), RealTimeEffectModelTransformer::RealTimeEffectModelTransformer(), RealTimeEffectModelTransformer::run(), FeatureExtractionModelTransformer::run(), toXml(), and RDFExporter::write().
|
inlinevirtual |
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 getSampleRate().
|
virtual |
Return the "work title" of the model, if known.
Reimplemented in WaveFileModel.
Definition at line 153 of file Model.cpp.
References getTitle(), and m_sourceModel.
Referenced by getTitle().
|
virtual |
Return the "artist" or "maker" of the model, if known.
Reimplemented in WaveFileModel.
Definition at line 160 of file Model.cpp.
References getMaker(), and m_sourceModel.
Referenced by getMaker().
|
virtual |
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 getLocation(), and m_sourceModel.
Referenced by getLocation().
|
pure virtual |
Return the type of the model.
For display purposes only.
Implemented in EditableDenseThreeDimensionalModel, FFTModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, FlexiNoteModel, DenseThreeDimensionalModel, NoteModel, RegionModel, SparseTimeValueModel, SparseOneDimensionalModel, TextModel, ImageModel, DenseTimeValueModel, RangeSummarisableTimeValueModel, Dense3DModelPeakCache, WaveFileModel, WritableWaveFileModel, SparseValueModel< PointType >, SparseValueModel< FlexiNote >, SparseValueModel< Note >, SparseValueModel< TimeValuePoint >, SparseValueModel< RegionRec >, AlignmentModel, and AggregateWaveModel.
|
pure virtual |
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().
|
inlinevirtual |
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 m_abandoning.
|
inlinevirtual |
Query whether the model has been marked as abandoning.
Definition at line 125 of file Model.h.
References m_abandoning.
Referenced by FeatureExtractionModelTransformer::setCompletion().
|
inlinevirtual |
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 isOK().
Referenced by FFTDataServer::fillColumn(), RealTimeEffectModelTransformer::run(), FeatureExtractionModelTransformer::run(), and FFTDataServer::FillThread::run().
|
inlinevirtual |
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.
|
inlinevirtual |
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 m_sourceModel.
|
virtual |
Set the source model for this model.
Definition at line 42 of file Model.cpp.
References aboutToBeDeleted(), alignmentCompletionChanged(), m_sourceModel, and sourceModelAboutToBeDeleted().
Referenced by FeatureExtractionModelTransformer::createOutputModels(), FFTModel::FFTModel(), and RDFImporterImpl::getDataModelsSparse().
|
virtual |
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 aboutToDelete(), alignmentCompletionChanged(), completionChanged(), and m_alignment.
|
virtual |
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 m_alignment.
|
virtual |
Return the reference model for the current alignment timeline, if any.
Definition at line 100 of file Model.cpp.
References getAlignmentReference(), AlignmentModel::getReferenceModel(), m_alignment, and m_sourceModel.
Referenced by getAlignmentReference().
|
virtual |
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 alignToReference(), getEndFrame(), AlignmentModel::getReferenceModel(), m_alignment, m_sourceModel, and AlignmentModel::toReference().
Referenced by alignToReference().
|
virtual |
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 alignFromReference(), AlignmentModel::fromReference(), getEndFrame(), m_alignment, and m_sourceModel.
Referenced by alignFromReference().
|
virtual |
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 getAlignmentCompletion(), AlignmentModel::isReady(), m_alignment, and m_sourceModel.
Referenced by getAlignmentCompletion().
|
inline |
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 m_typeUri.
Referenced by FeatureExtractionModelTransformer::createOutputModels(), FeatureExtractionModelTransformer::getAdditionalModel(), RDFImporterImpl::getDataModelsDense(), and RDFImporterImpl::getDataModelsSparse().
|
inline |
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 m_typeUri.
Referenced by FeatureExtractionModelTransformer::getAdditionalModel().
|
virtual |
Stream this exportable object out to XML on a text stream.
Implements XmlExportable.
Reimplemented in EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, FlexiNoteModel, NoteModel, RegionModel, SparseValueModel< PointType >, SparseValueModel< FlexiNote >, SparseValueModel< Note >, SparseValueModel< TimeValuePoint >, SparseValueModel< RegionRec >, ImageModel, TextModel, WaveFileModel, WritableWaveFileModel, AggregateWaveModel, PathModel, and AlignmentModel.
Definition at line 174 of file Model.cpp.
References XmlExportable::encodeEntities(), getEndFrame(), XmlExportable::getObjectExportId(), getSampleRate(), and getStartFrame().
Referenced by AlignmentModel::toXml(), WritableWaveFileModel::toXml(), WaveFileModel::toXml(), SparseModel< RegionRec >::toXml(), and EditableDenseThreeDimensionalModel::toXml().
|
inlinevirtual |
Reimplemented in EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, and SparseModel< RegionRec >.
Definition at line 236 of file Model.h.
References getEndFrame(), getStartFrame(), and toDelimitedDataStringSubset().
Referenced by CSVFileWriter::write().
|
inlinevirtual |
Reimplemented in EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< FlexiNote >, SparseModel< Note >, SparseModel< PathPoint >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, SparseModel< RegionRec >, and DenseTimeValueModel.
Definition at line 239 of file Model.h.
Referenced by toDelimitedDataString(), and CSVFileWriter::writeSelection().
|
slot |
Definition at line 60 of file Model.cpp.
References aboutToBeDeleted(), and m_aboutToDelete.
Referenced by AlignmentModel::pathChanged(), AlignmentModel::pathCompletionChanged(), setAlignment(), AlignmentModel::setPath(), AlignmentModel::~AlignmentModel(), and ~Model().
|
slot |
|
signal |
Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly)
Referenced by SparseValueModel< RegionRec >::addPoint(), WaveFileModel::cacheFilled(), SparseValueModel< RegionRec >::deletePoint(), Dense3DModelPeakCache::Dense3DModelPeakCache(), WaveFileModel::fillTimerTimedOut(), EditableDenseThreeDimensionalModel::setBinName(), EditableDenseThreeDimensionalModel::setBinNames(), EditableDenseThreeDimensionalModel::setColumn(), EditableDenseThreeDimensionalModel::setCompletion(), and WritableWaveFileModel::WritableWaveFileModel().
|
signal |
Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly)
Referenced by WaveFileModel::cacheFilled(), WaveFileModel::fillTimerTimedOut(), EditableDenseThreeDimensionalModel::setColumn(), EditableDenseThreeDimensionalModel::setCompletion(), and WritableWaveFileModel::WritableWaveFileModel().
|
signal |
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.
Referenced by setAlignment(), and EditableDenseThreeDimensionalModel::setCompletion().
|
signal |
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().
|
signal |
Emitted when the completion percentage changes for the calculation of this model's alignment model.
Referenced by setAlignment(), and setSourceModel().
|
signal |
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 aboutToDelete(), Dense3DModelPeakCache::Dense3DModelPeakCache(), and setSourceModel().
|
virtualinherited |
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().
|
staticinherited |
Definition at line 41 of file XmlExportable.cpp.
Referenced by TextMatcher::test(), PluginXml::toXml(), OneDimensionalPoint::toXml(), TimeValuePoint::toXml(), ImagePoint::toXml(), TextPoint::toXml(), RegionRec::toXml(), Note::toXml(), FlexiNote::toXml(), WritableWaveFileModel::toXml(), WaveFileModel::toXml(), SparseValueModel< RegionRec >::toXml(), Transform::toXml(), and toXml().
|
staticinherited |
Definition at line 54 of file XmlExportable.cpp.
|
staticinherited |
Definition at line 71 of file XmlExportable.cpp.
References mutex.
Referenced by FFTDataServer::generateFileBasename(), AlignmentModel::toXml(), EditableDenseThreeDimensionalModel::toXml(), and toXml().
|
inlinevirtualinherited |
Reimplemented in FlexiNoteModel, NoteModel, SparseTimeValueModel, SparseOneDimensionalModel, and DenseTimeValueModel.
Definition at line 26 of file Playable.h.
|
inlinevirtualinherited |
Reimplemented in FlexiNoteModel, NoteModel, SparseOneDimensionalModel, and DenseTimeValueModel.
Definition at line 27 of file Playable.h.
Referenced by PlayParameterRepository::addPlayable().
|
inlinevirtualinherited |
Reimplemented in SparseTimeValueModel.
Definition at line 28 of file Playable.h.
Referenced by PlayParameterRepository::addPlayable().
|
protected |
Definition at line 301 of file Model.h.
Referenced by alignFromReference(), alignToReference(), getAlignmentCompletion(), getAlignmentReference(), getLocation(), getMaker(), getSourceModel(), getTitle(), setSourceModel(), FFTModel::sourceModelAboutToBeDeleted(), and sourceModelAboutToBeDeleted().
|
protected |
Definition at line 302 of file Model.h.
Referenced by alignFromReference(), alignToReference(), getAlignment(), getAlignmentCompletion(), getAlignmentReference(), setAlignment(), and ~Model().
|
protected |
Definition at line 303 of file Model.h.
Referenced by getRDFTypeURI(), and setRDFTypeURI().
|
protected |
Definition at line 304 of file Model.h.
Referenced by abandon(), and isAbandoning().
|
protected |
Definition at line 305 of file Model.h.
Referenced by aboutToDelete(), and ~Model().