#include <ReadOnlyWaveFileModel.h>

Inheritance diagram for ReadOnlyWaveFileModel:
Inheritance graph
Collaboration diagram for ReadOnlyWaveFileModel:
Collaboration graph

Classes

class  RangeCacheFillThread
 

Public Types

typedef std::vector< RangeRangeBlock
 
typedef Id ModelId
 
typedef TypedId< ModelId
 
enum  { NO_ID = -1 }
 
typedef int ExportId
 

Signals

void modelChanged (ModelId myId)
 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 (ModelId myId, sv_frame_t startFrame, sv_frame_t 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 (ModelId myId)
 Emitted when some internal processing has advanced a stage, but the model has not changed externally. More...
 
void ready (ModelId myId)
 Emitted when internal processing is complete (i.e. More...
 
void alignmentCompletionChanged (ModelId myId)
 Emitted when the completion percentage changes for the calculation of this model's alignment model. More...
 

Public Member Functions

 ReadOnlyWaveFileModel (FileSource source, sv_samplerate_t targetRate=0)
 Construct a WaveFileModel from a source path and optional resampling target rate. More...
 
 ReadOnlyWaveFileModel (FileSource source, AudioFileReader *reader)
 Construct a WaveFileModel from a source path using an existing AudioFileReader. More...
 
 ~ReadOnlyWaveFileModel ()
 
bool isOK () const override
 Return true if the model was constructed successfully. More...
 
bool isReady (int *) const override
 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...
 
int getCompletion () const override
 Return an estimated percentage value showing how far through any background operation used to calculate or load the model data the model thinks it is. More...
 
const ZoomConstraintgetZoomConstraint () const override
 If this model imposes a zoom constraint, i.e. More...
 
sv_frame_t getFrameCount () const override
 
int getChannelCount () const override
 Return the number of distinct channels for this model. More...
 
sv_samplerate_t getSampleRate () const override
 Return the frame rate in frames per second. More...
 
sv_samplerate_t getNativeRate () const override
 Return the frame rate of the underlying material, if the model itself has already been resampled. More...
 
QString getTitle () const override
 Return the "work title" of the model, if known. More...
 
QString getMaker () const override
 Return the "artist" or "maker" of the model, if known. More...
 
QString getLocation () const override
 Return the location of the data in this model (e.g. More...
 
QString getLocalFilename () const
 
float getValueMinimum () const override
 Return the minimum possible value found in this model type. More...
 
float getValueMaximum () const override
 Return the minimum possible value found in this model type. More...
 
sv_frame_t getStartFrame () const override
 Return the first audio frame spanned by the model. More...
 
sv_frame_t getTrueEndFrame () const override
 Return the audio frame at the end of the model. More...
 
void setStartFrame (sv_frame_t startFrame) override
 
floatvec_t getData (int channel, sv_frame_t start, sv_frame_t count) const override
 Get the specified set of samples from the given channel of the model in single-precision floating-point format. More...
 
std::vector< floatvec_tgetMultiChannelData (int fromchannel, int tochannel, sv_frame_t start, sv_frame_t count) const override
 Get the specified set of samples from given contiguous range of channels of the model in single-precision floating-point format. More...
 
int getSummaryBlockSize (int desired) const override
 
void getSummaries (int channel, sv_frame_t start, sv_frame_t count, RangeBlock &ranges, int &blockSize) const override
 Return ranges from the given start frame, corresponding to the given number of underlying sample frames, summarised at the given block size. More...
 
Range getSummary (int channel, sv_frame_t start, sv_frame_t count) const override
 Return the range from the given start frame, corresponding to the given number of underlying sample frames, summarised at a block size equal to the distance between start and end frames. More...
 
QString getTypeName () const override
 Return the type of the model. More...
 
void toXml (QTextStream &out, QString indent="", QString extraAttributes="") const override
 Stream this exportable object out to XML on a text stream. More...
 
bool canPlay () const override
 
QString getDefaultPlayClipId () const override
 
QVector< QString > getStringExportHeaders (DataExportOptions options) const override
 Return a label for each column that would be written by toStringExportRows. More...
 
QVector< QVector< QString > > toStringExportRows (DataExportOptions options, sv_frame_t startFrame, sv_frame_t duration) const override
 Emit events starting within the given range as string rows ready for conversion to an e.g. More...
 
sv_frame_t getEndFrame () const
 Return the audio frame at the end of the model, i.e. More...
 
void extendEndFrame (sv_frame_t to)
 Extend the end of the model. More...
 
virtual bool isSparse () const
 Return true if this is a sparse model. More...
 
virtual ModelId getSourceModel () const
 If this model was derived from another, return the id of the model it was derived from. More...
 
virtual void setSourceModel (ModelId model)
 Set the source model for this model. More...
 
virtual void setAlignment (ModelId alignmentModel)
 Specify an alignment between this model's timeline and that of a reference model. More...
 
virtual const ModelId getAlignment () const
 Retrieve the alignment model for this model. More...
 
virtual const ModelId getAlignmentReference () const
 Return the reference model for the current alignment timeline, if any. More...
 
virtual sv_frame_t alignToReference (sv_frame_t frame) const
 Return the frame number of the reference model that corresponds to the given frame number in this model. More...
 
virtual sv_frame_t alignFromReference (sv_frame_t 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...
 
ExportId getExportId () const
 Return the numerical export identifier for this object. More...
 
virtual QString toXmlString (QString indent="", QString extraAttributes="") const
 Convert this exportable object to XML in a string. More...
 
virtual bool getDefaultPlayAudible () const
 

Static Public Member Functions

static QString encodeEntities (QString)
 
static QString encodeColour (int r, int g, int b)
 

Protected Slots

void fillTimerTimedOut ()
 
void cacheFilled ()
 

Protected Member Functions

void initialize ()
 
void fillCache ()
 
Id getId () const
 Return an id for this object. More...
 
int getUntypedId () const
 Return an id for this object. More...
 

Protected Attributes

FileSource m_source
 
QString m_path
 
AudioFileReaderm_reader
 
bool m_myReader
 
sv_frame_t m_startFrame
 
RangeBlock m_cache [2]
 
QMutex m_mutex
 
RangeCacheFillThreadm_fillThread
 
QTimer * m_updateTimer
 
sv_frame_t m_lastFillExtent
 
int m_prevCompletion
 
std::atomic< bool > m_exiting
 
floatvec_t m_directRead
 
sv_frame_t m_lastDirectReadStart
 
sv_frame_t m_lastDirectReadCount
 
QMutex m_directReadMutex
 
ModelId m_sourceModel
 
ModelId m_alignmentModel
 
QString m_typeUri
 
std::atomic< sv_frame_tm_extendTo
 

Static Protected Attributes

static PowerOfSqrtTwoZoomConstraint m_zoomConstraint
 

Detailed Description

Definition at line 36 of file ReadOnlyWaveFileModel.h.

Member Typedef Documentation

typedef std::vector<Range> RangeSummarisableTimeValueModel::RangeBlock
inherited

Definition at line 76 of file RangeSummarisableTimeValueModel.h.

typedef Id Model::ModelId
inherited

Definition at line 59 of file Model.h.

typedef TypedId<Model > WithTypedId< Model >::Id
inherited

Definition at line 180 of file ById.h.

typedef int XmlExportable::ExportId
inherited

Definition at line 33 of file XmlExportable.h.

Member Enumeration Documentation

anonymous enum
inherited
Enumerator
NO_ID 

Definition at line 28 of file XmlExportable.h.

Constructor & Destructor Documentation

ReadOnlyWaveFileModel::ReadOnlyWaveFileModel ( FileSource  source,
AudioFileReader reader 
)

Construct a WaveFileModel from a source path using an existing AudioFileReader.

The model does not take ownership of the AudioFileReader, which remains managed by the caller and must outlive the model.

Definition at line 96 of file ReadOnlyWaveFileModel.cpp.

References PlayParameterRepository::addPlayable(), fillCache(), WithTypedId< Model >::getId(), PlayParameterRepository::getInstance(), AudioFileReader::getTitle(), m_path, m_reader, and SVDEBUG.

Member Function Documentation

bool ReadOnlyWaveFileModel::isOK ( ) const
overridevirtual

Return true if the model was constructed successfully.

Classes that refer to the model should always test this before use.

Implements Model.

Definition at line 140 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::isOK(), and m_reader.

Referenced by getSummaries(), getSummary(), WritableWaveFileModel::init(), WritableWaveFileModel::isOK(), isReady(), and ReadOnlyWaveFileModel().

bool ReadOnlyWaveFileModel::isReady ( int *  cp) const
overridevirtual

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.

If "completion" is non-NULL, return through it an estimated percentage value showing how far through the background operation it thinks it is (for progress reporting). This should be identical to the value returned by getCompletion().

A model that carries out all its calculation from the constructor or accessor functions would typically return true (and completion == 100) as long as isOK() is true. Other models may make the return value here depend on the internal completion status.

See also getCompletion().

Reimplemented from Model.

Definition at line 146 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getDecodeCompletion(), Model::getEndFrame(), getStartFrame(), isOK(), AudioFileReader::isUpdating(), m_fillThread, m_lastFillExtent, m_prevCompletion, m_reader, Model::ready(), and SVCERR.

Referenced by getCompletion().

int ReadOnlyWaveFileModel::getCompletion ( ) const
inlineoverridevirtual

Return an estimated percentage value showing how far through any background operation used to calculate or load the model data the model thinks it is.

Must return 100 when the model is complete.

A model that carries out all its calculation from the constructor or accessor functions might return 0 if isOK() is false and 100 if isOK() is true. Other models may make the return value here depend on the internal completion status.

See also isReady().

Implements Model.

Definition at line 59 of file ReadOnlyWaveFileModel.h.

References isReady().

const ZoomConstraint* ReadOnlyWaveFileModel::getZoomConstraint ( ) const
inlineoverridevirtual

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

Definition at line 65 of file ReadOnlyWaveFileModel.h.

References getChannelCount(), getFrameCount(), getLocalFilename(), getLocation(), getMaker(), getNativeRate(), getSampleRate(), getTitle(), and m_zoomConstraint.

sv_frame_t ReadOnlyWaveFileModel::getFrameCount ( ) const
overridevirtual
int ReadOnlyWaveFileModel::getChannelCount ( ) const
overridevirtual
sv_samplerate_t ReadOnlyWaveFileModel::getSampleRate ( ) const
overridevirtual

Return the frame rate in frames per second.

Implements WaveFileModel.

Definition at line 198 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getSampleRate(), and m_reader.

Referenced by getNativeRate(), and getZoomConstraint().

sv_samplerate_t ReadOnlyWaveFileModel::getNativeRate ( ) const
overridevirtual

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

Implements WaveFileModel.

Definition at line 205 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getNativeRate(), getSampleRate(), and m_reader.

Referenced by getZoomConstraint().

QString ReadOnlyWaveFileModel::getTitle ( ) const
overridevirtual

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

Implements WaveFileModel.

Definition at line 214 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getTitle(), and m_reader.

Referenced by WritableWaveFileModel::getTitle(), and getZoomConstraint().

QString ReadOnlyWaveFileModel::getMaker ( ) const
overridevirtual

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

Implements WaveFileModel.

Definition at line 223 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getMaker(), and m_reader.

Referenced by WritableWaveFileModel::getMaker(), and getZoomConstraint().

QString ReadOnlyWaveFileModel::getLocation ( ) const
overridevirtual

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.

Implements WaveFileModel.

Definition at line 230 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getLocation(), and m_reader.

Referenced by WritableWaveFileModel::getLocation(), and getZoomConstraint().

QString ReadOnlyWaveFileModel::getLocalFilename ( ) const

Definition at line 237 of file ReadOnlyWaveFileModel.cpp.

References AudioFileReader::getLocalFilename(), m_reader, and SVCERR.

Referenced by getZoomConstraint().

float ReadOnlyWaveFileModel::getValueMinimum ( ) const
inlineoverridevirtual

Return the minimum possible value found in this model type.

(That is, the minimum that would be valid, not the minimum actually found in a particular model).

Implements DenseTimeValueModel.

Definition at line 78 of file ReadOnlyWaveFileModel.h.

float ReadOnlyWaveFileModel::getValueMaximum ( ) const
inlineoverridevirtual

Return the minimum possible value found in this model type.

(That is, the minimum that would be valid, not the minimum actually found in a particular model).

Implements DenseTimeValueModel.

Definition at line 79 of file ReadOnlyWaveFileModel.h.

sv_frame_t ReadOnlyWaveFileModel::getStartFrame ( ) const
inlineoverridevirtual

Return the first audio frame spanned by the model.

Implements WaveFileModel.

Definition at line 81 of file ReadOnlyWaveFileModel.h.

References m_startFrame.

Referenced by isReady().

sv_frame_t ReadOnlyWaveFileModel::getTrueEndFrame ( ) const
inlineoverridevirtual

Return the audio frame at the end of the model.

This is identical to getEndFrame(), except that it ignores any extended duration set with extendEndFrame().

Implements WaveFileModel.

Definition at line 82 of file ReadOnlyWaveFileModel.h.

References getFrameCount(), and m_startFrame.

void ReadOnlyWaveFileModel::setStartFrame ( sv_frame_t  startFrame)
inlineoverridevirtual
floatvec_t ReadOnlyWaveFileModel::getData ( int  channel,
sv_frame_t  start,
sv_frame_t  count 
) const
overridevirtual

Get the specified set of samples from the given channel of the model in single-precision floating-point format.

Returned vector may have fewer samples than requested, if the end of file was reached.

If the channel is given as -1, mix all available channels and return the result.

Implements DenseTimeValueModel.

Definition at line 249 of file ReadOnlyWaveFileModel.cpp.

References getChannelCount(), AudioFileReader::getInterleavedFrames(), AudioFileReader::isOK(), m_reader, m_startFrame, and SVCERR.

Referenced by WritableWaveFileModel::getData(), and setStartFrame().

vector< floatvec_t > ReadOnlyWaveFileModel::getMultiChannelData ( int  fromchannel,
int  tochannel,
sv_frame_t  start,
sv_frame_t  count 
) const
overridevirtual

Get the specified set of samples from given contiguous range of channels of the model in single-precision floating-point format.

Returned vector may have fewer samples than requested, if the end of file was reached.

Implements DenseTimeValueModel.

Definition at line 313 of file ReadOnlyWaveFileModel.cpp.

References getChannelCount(), AudioFileReader::getInterleavedFrames(), AudioFileReader::isOK(), m_reader, m_startFrame, and SVCERR.

Referenced by WritableWaveFileModel::getMultiChannelData(), and setStartFrame().

int ReadOnlyWaveFileModel::getSummaryBlockSize ( int  desired) const
overridevirtual
void ReadOnlyWaveFileModel::getSummaries ( int  channel,
sv_frame_t  start,
sv_frame_t  count,
RangeBlock ranges,
int &  blockSize 
) const
overridevirtual

Return ranges from the given start frame, corresponding to the given number of underlying sample frames, summarised at the given block size.

duration / blockSize ranges should ideally be returned.

If the given block size is not supported by this model (according to its zoom constraint), also modify the blockSize parameter so as to return the block size that was actually obtained.

Implements RangeSummarisableTimeValueModel.

Definition at line 394 of file ReadOnlyWaveFileModel.cpp.

References RangeSummarisableTimeValueModel::Range::absmean(), getChannelCount(), getFrameCount(), AudioFileReader::getInterleavedFrames(), PowerOfSqrtTwoZoomConstraint::getMinCachePower(), PowerOfSqrtTwoZoomConstraint::getNearestBlockSize(), in_range_for(), isOK(), m_cache, m_directRead, m_directReadMutex, m_lastDirectReadCount, m_lastDirectReadStart, m_mutex, m_reader, m_startFrame, m_zoomConstraint, RangeSummarisableTimeValueModel::Range::max(), RangeSummarisableTimeValueModel::Range::min(), and ZoomConstraint::RoundDown.

Referenced by WritableWaveFileModel::getSummaries(), getSummary(), and setStartFrame().

ReadOnlyWaveFileModel::Range ReadOnlyWaveFileModel::getSummary ( int  channel,
sv_frame_t  start,
sv_frame_t  count 
) const
overridevirtual

Return the range from the given start frame, corresponding to the given number of underlying sample frames, summarised at a block size equal to the distance between start and end frames.

Implements RangeSummarisableTimeValueModel.

Definition at line 525 of file ReadOnlyWaveFileModel.cpp.

References RangeSummarisableTimeValueModel::Range::absmean(), getSummaries(), isOK(), m_startFrame, RangeSummarisableTimeValueModel::Range::max(), RangeSummarisableTimeValueModel::Range::min(), RangeSummarisableTimeValueModel::Range::setAbsmean(), RangeSummarisableTimeValueModel::Range::setMax(), and RangeSummarisableTimeValueModel::Range::setMin().

Referenced by WritableWaveFileModel::getSummary(), and setStartFrame().

QString ReadOnlyWaveFileModel::getTypeName ( ) const
inlineoverridevirtual

Return the type of the model.

For display purposes only.

Reimplemented from RangeSummarisableTimeValueModel.

Definition at line 98 of file ReadOnlyWaveFileModel.h.

References cacheFilled(), fillTimerTimedOut(), initialize(), and toXml().

void ReadOnlyWaveFileModel::toXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const
overridevirtual

Stream this exportable object out to XML on a text stream.

Reimplemented from Model.

Definition at line 789 of file ReadOnlyWaveFileModel.cpp.

References XmlExportable::encodeEntities(), m_path, and Model::toXml().

Referenced by getTypeName().

void ReadOnlyWaveFileModel::cacheFilled ( )
protectedslot
void ReadOnlyWaveFileModel::initialize ( )
protected

Referenced by getTypeName().

void ReadOnlyWaveFileModel::fillCache ( )
protected
bool DenseTimeValueModel::canPlay ( ) const
inlineoverridevirtualinherited

Reimplemented from Playable.

Definition at line 82 of file DenseTimeValueModel.h.

QString DenseTimeValueModel::getDefaultPlayClipId ( ) const
inlineoverridevirtualinherited
QVector< QString > DenseTimeValueModel::getStringExportHeaders ( DataExportOptions  options) const
overridevirtualinherited

Return a label for each column that would be written by toStringExportRows.

Implements Model.

Definition at line 23 of file DenseTimeValueModel.cpp.

Referenced by DenseTimeValueModel::getDefaultPlayClipId().

QVector< QVector< QString > > DenseTimeValueModel::toStringExportRows ( DataExportOptions  options,
sv_frame_t  startFrame,
sv_frame_t  duration 
) const
overridevirtualinherited

Emit events starting within the given range as string rows ready for conversion to an e.g.

comma-separated data format.

Implements Model.

Definition at line 34 of file DenseTimeValueModel.cpp.

References in_range_for().

Referenced by DenseTimeValueModel::getDefaultPlayClipId().

sv_frame_t Model::getEndFrame ( ) const
inlineinherited

Return the audio frame at the end of the model, i.e.

the final frame contained within the model plus 1 (rounded up to the model's "resolution" granularity, if more than 1). The end frame minus the start frame should yield the total duration in frames (as a multiple of the resolution) spanned by the model. This is broadly consistent with the definition of the end frame of a Selection object.

If the end has been extended by extendEndFrame() beyond the true end frame, return the extended end instead. This is usually the behaviour you want.

Definition at line 87 of file Model.h.

References Model::getTrueEndFrame(), and Model::m_extendTo.

Referenced by Model::alignFromReference(), cacheFilled(), WaveformOversampler::getFixedRatioData(), SparseOneDimensionalModel::getNotes(), NoteModel::getNotes(), isReady(), Model::toXml(), CSVFileWriter::write(), CSVStreamWriter::writeInChunks(), and WavFileWriter::writeModel().

void Model::extendEndFrame ( sv_frame_t  to)
inlineinherited

Extend the end of the model.

If this is set to something beyond the true end of the data within the model, then getEndFrame() will return this value instead of the true end. (This is used by the Tony application.)

Definition at line 109 of file Model.h.

References Model::getSampleRate(), and Model::m_extendTo.

virtual bool Model::isSparse ( ) const
inlinevirtualinherited

Return true if this is a sparse model.

Reimplemented in NoteModel, SparseTimeValueModel, BoxModel, RegionModel, SparseOneDimensionalModel, ImageModel, and TextModel.

Definition at line 149 of file Model.h.

Referenced by CSVFileWriter::writeSelection().

virtual ModelId Model::getSourceModel ( ) const
inlinevirtualinherited

If this model was derived from another, return the id of 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 207 of file Model.h.

References Model::alignFromReference(), Model::alignToReference(), Model::getAlignment(), Model::getAlignmentCompletion(), Model::getAlignmentReference(), Model::m_sourceModel, Model::setAlignment(), and Model::setSourceModel().

void Model::setSourceModel ( ModelId  model)
virtualinherited

Set the source model for this model.

Definition at line 31 of file Model.cpp.

References Model::alignmentCompletionChanged(), TypedById< Item, Id >::get(), Model::m_mutex, and Model::m_sourceModel.

Referenced by RDFImporterImpl::getDataModelsSparse(), and Model::getSourceModel().

void Model::setAlignment ( ModelId  alignmentModel)
virtualinherited

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

The alignment model, of type AlignmentModel, records both the reference and the alignment.

Definition at line 45 of file Model.cpp.

References Model::alignmentModelCompletionChanged(), Model::completionChanged(), TypedById< Item, Id >::get(), Model::m_alignmentModel, Model::m_mutex, and SVDEBUG.

Referenced by Model::getSourceModel().

const ModelId Model::getAlignment ( ) const
virtualinherited

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 72 of file Model.cpp.

References Model::m_alignmentModel, and Model::m_mutex.

Referenced by Model::getSourceModel().

const ModelId Model::getAlignmentReference ( ) const
virtualinherited

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

Definition at line 79 of file Model.cpp.

References Model::m_alignmentModel, and Model::m_mutex.

Referenced by Model::getSourceModel().

sv_frame_t Model::alignToReference ( sv_frame_t  frame) const
virtualinherited

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

Definition at line 88 of file Model.cpp.

References TypedById< Item, Id >::get(), Model::m_alignmentModel, Model::m_mutex, and Model::m_sourceModel.

Referenced by Model::getSourceModel().

sv_frame_t Model::alignFromReference ( sv_frame_t  referenceFrame) const
virtualinherited

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

Definition at line 116 of file Model.cpp.

References TypedById< Item, Id >::get(), Model::getEndFrame(), Model::m_alignmentModel, Model::m_mutex, and Model::m_sourceModel.

Referenced by Model::getSourceModel().

int Model::getAlignmentCompletion ( ) const
virtualinherited

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 141 of file Model.cpp.

References TypedById< Item, Id >::get(), Model::m_alignmentModel, Model::m_mutex, Model::m_sourceModel, and SVCERR.

Referenced by Model::getSourceModel().

void Model::setRDFTypeURI ( QString  uri)
inlineinherited

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 264 of file Model.h.

References Model::m_typeUri.

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

QString Model::getRDFTypeURI ( ) const
inlineinherited

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

Definition at line 271 of file Model.h.

References Model::alignmentCompletionChanged(), Model::alignmentModelCompletionChanged(), Model::completionChanged(), Model::getStringExportHeaders(), Model::m_typeUri, Model::modelChanged(), Model::modelChangedWithin(), Model::ready(), Model::toStringExportRows(), and Model::toXml().

void Model::completionChanged ( ModelId  myId)
signalinherited
void Model::ready ( ModelId  myId)
signalinherited

Emitted when internal processing is complete (i.e.

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

Referenced by cacheFilled(), Model::getRDFTypeURI(), AggregateWaveModel::isReady(), and isReady().

void Model::alignmentCompletionChanged ( ModelId  myId)
signalinherited

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

(The ModelId provided is that of this model, not the alignment model.)

Referenced by Model::alignmentModelCompletionChanged(), Model::getRDFTypeURI(), and Model::setSourceModel().

Id WithTypedId< Model >::getId ( ) const
inlineprotectedinherited

Return an id for this object.

The id is a unique value for this object among all objects that implement WithId within this single run of the application.

Definition at line 193 of file ById.h.

References TypedId< T >::untyped.

Referenced by BoxModel::add(), RegionModel::add(), SparseTimeValueModel::add(), NoteModel::add(), Model::alignmentModelCompletionChanged(), cacheFilled(), AggregateWaveModel::componentModelChanged(), WritableWaveFileModel::componentModelChanged(), AggregateWaveModel::componentModelChangedWithin(), WritableWaveFileModel::componentModelChangedWithin(), AggregateWaveModel::componentModelCompletionChanged(), fillTimerTimedOut(), ImageModel::getInsertRowCommand(), TextModel::getInsertRowCommand(), SparseOneDimensionalModel::getInsertRowCommand(), RegionModel::getInsertRowCommand(), BoxModel::getInsertRowCommand(), SparseTimeValueModel::getInsertRowCommand(), NoteModel::getInsertRowCommand(), ImageModel::getRemoveRowCommand(), TextModel::getRemoveRowCommand(), SparseOneDimensionalModel::getRemoveRowCommand(), RegionModel::getRemoveRowCommand(), BoxModel::getRemoveRowCommand(), SparseTimeValueModel::getRemoveRowCommand(), NoteModel::getRemoveRowCommand(), ImageModel::getSetDataCommand(), TextModel::getSetDataCommand(), SparseOneDimensionalModel::getSetDataCommand(), RegionModel::getSetDataCommand(), BoxModel::getSetDataCommand(), SparseTimeValueModel::getSetDataCommand(), NoteModel::getSetDataCommand(), WritableWaveFileModel::init(), NoteModel::NoteModel(), AlignmentModel::pathSourceCompletionChanged(), ReadOnlyWaveFileModel(), ImageModel::remove(), TextModel::remove(), SparseOneDimensionalModel::remove(), BoxModel::remove(), RegionModel::remove(), SparseTimeValueModel::remove(), NoteModel::remove(), EditableDenseThreeDimensionalModel::setBinName(), BasicCompressedDenseThreeDimensionalModel::setBinName(), EditableDenseThreeDimensionalModel::setBinNames(), BasicCompressedDenseThreeDimensionalModel::setBinNames(), EditableDenseThreeDimensionalModel::setColumn(), BasicCompressedDenseThreeDimensionalModel::setColumn(), EditableDenseThreeDimensionalModel::setCompletion(), BasicCompressedDenseThreeDimensionalModel::setCompletion(), AlignmentModel::setCompletion(), TextModel::setCompletion(), ImageModel::setCompletion(), SparseOneDimensionalModel::setCompletion(), BoxModel::setCompletion(), RegionModel::setCompletion(), SparseTimeValueModel::setCompletion(), NoteModel::setCompletion(), SparseOneDimensionalModel::SparseOneDimensionalModel(), SparseTimeValueModel::SparseTimeValueModel(), WritableWaveFileModel::writeComplete(), Model::~Model(), NoteModel::~NoteModel(), ~ReadOnlyWaveFileModel(), SparseOneDimensionalModel::~SparseOneDimensionalModel(), SparseTimeValueModel::~SparseTimeValueModel(), and WritableWaveFileModel::~WritableWaveFileModel().

int WithId::getUntypedId ( ) const
inlineprotectedinherited

Return an id for this object.

The id is a unique number for this object among all objects that implement WithId within this single run of the application.

Definition at line 168 of file ById.h.

int XmlExportable::getExportId ( ) const
inherited

Return the numerical export identifier for this object.

It's allocated the first time this is called, so objects on which this is never called do not get allocated one.

Definition at line 71 of file XmlExportable.cpp.

References XmlExportable::m_exportId, and mutex.

Referenced by EditableDenseThreeDimensionalModel::toXml(), BasicCompressedDenseThreeDimensionalModel::toXml(), EventSeries::toXml(), ImageModel::toXml(), TextModel::toXml(), Model::toXml(), SparseOneDimensionalModel::toXml(), RegionModel::toXml(), BoxModel::toXml(), SparseTimeValueModel::toXml(), NoteModel::toXml(), and XmlExportable::~XmlExportable().

QString XmlExportable::toXmlString ( QString  indent = "",
QString  extraAttributes = "" 
) const
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(), RDFTransformFactoryImpl::getTransforms(), and XmlExportable::~XmlExportable().

QString XmlExportable::encodeColour ( int  r,
int  g,
int  b 
)
staticinherited

Definition at line 54 of file XmlExportable.cpp.

Referenced by XmlExportable::~XmlExportable().

virtual bool Playable::getDefaultPlayAudible ( ) const
inlinevirtualinherited

Reimplemented in SparseTimeValueModel.

Definition at line 28 of file Playable.h.

Referenced by PlayParameterRepository::addPlayable().

Member Data Documentation

FileSource ReadOnlyWaveFileModel::m_source
protected

Definition at line 129 of file ReadOnlyWaveFileModel.h.

Referenced by ReadOnlyWaveFileModel().

QString ReadOnlyWaveFileModel::m_path
protected

Definition at line 130 of file ReadOnlyWaveFileModel.h.

Referenced by ReadOnlyWaveFileModel(), and toXml().

bool ReadOnlyWaveFileModel::m_myReader
protected

Definition at line 132 of file ReadOnlyWaveFileModel.h.

Referenced by ~ReadOnlyWaveFileModel().

sv_frame_t ReadOnlyWaveFileModel::m_startFrame
protected
RangeBlock ReadOnlyWaveFileModel::m_cache[2]
protected

Definition at line 136 of file ReadOnlyWaveFileModel.h.

Referenced by getSummaries(), and ~ReadOnlyWaveFileModel().

QMutex ReadOnlyWaveFileModel::m_mutex
mutableprotected

Definition at line 137 of file ReadOnlyWaveFileModel.h.

Referenced by cacheFilled(), fillCache(), and getSummaries().

RangeCacheFillThread* ReadOnlyWaveFileModel::m_fillThread
protected
QTimer* ReadOnlyWaveFileModel::m_updateTimer
protected

Definition at line 139 of file ReadOnlyWaveFileModel.h.

Referenced by cacheFilled(), and fillCache().

sv_frame_t ReadOnlyWaveFileModel::m_lastFillExtent
protected

Definition at line 140 of file ReadOnlyWaveFileModel.h.

Referenced by cacheFilled(), fillTimerTimedOut(), and isReady().

int ReadOnlyWaveFileModel::m_prevCompletion
mutableprotected

Definition at line 141 of file ReadOnlyWaveFileModel.h.

Referenced by isReady().

std::atomic<bool> ReadOnlyWaveFileModel::m_exiting
protected

Definition at line 142 of file ReadOnlyWaveFileModel.h.

Referenced by ~ReadOnlyWaveFileModel().

PowerOfSqrtTwoZoomConstraint ReadOnlyWaveFileModel::m_zoomConstraint
staticprotected

Definition at line 143 of file ReadOnlyWaveFileModel.h.

Referenced by getSummaries(), getSummaryBlockSize(), and getZoomConstraint().

floatvec_t ReadOnlyWaveFileModel::m_directRead
mutableprotected

Definition at line 145 of file ReadOnlyWaveFileModel.h.

Referenced by getSummaries().

sv_frame_t ReadOnlyWaveFileModel::m_lastDirectReadStart
mutableprotected

Definition at line 146 of file ReadOnlyWaveFileModel.h.

Referenced by getSummaries().

sv_frame_t ReadOnlyWaveFileModel::m_lastDirectReadCount
mutableprotected

Definition at line 147 of file ReadOnlyWaveFileModel.h.

Referenced by getSummaries().

QMutex ReadOnlyWaveFileModel::m_directReadMutex
mutableprotected

Definition at line 148 of file ReadOnlyWaveFileModel.h.

Referenced by getSummaries().

QString Model::m_typeUri
protectedinherited

Definition at line 340 of file Model.h.

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

std::atomic<sv_frame_t> Model::m_extendTo
protectedinherited

Definition at line 341 of file Model.h.

Referenced by Model::extendEndFrame(), and Model::getEndFrame().


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