#include <AggregateWaveModel.h>
Inherits RangeSummarisableTimeValueModel.
Inheritance diagram for AggregateWaveModel:


Definition at line 24 of file AggregateWaveModel.h.
Public Types | |
| typedef std::vector< ModelChannelSpec > | ChannelSpecList |
| typedef std::vector< Range > | RangeBlock |
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 | modelChanged (size_t, size_t) |
| 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 | 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 | |
| AggregateWaveModel (ChannelSpecList channelSpecs) | |
| ~AggregateWaveModel () | |
| bool | isOK () const |
| Return true if the model was constructed successfully. | |
| bool | isReady (int *) 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. | |
| QString | getTypeName () const |
| Return the type of the model. | |
| size_t | getComponentCount () const |
| ModelChannelSpec | getComponent (size_t c) const |
| const ZoomConstraint * | getZoomConstraint () const |
| If this model imposes a zoom constraint, i.e. | |
| size_t | getFrameCount () const |
| size_t | getChannelCount () const |
| Return the number of distinct channels for this model. | |
| size_t | getSampleRate () const |
| Return the frame rate in frames per second. | |
| virtual Model * | clone () const |
| Return a copy of this model. | |
| float | getValueMinimum () const |
| Return the minimum possible value found in this model type. | |
| float | getValueMaximum () const |
| Return the minimum possible value found in this model type. | |
| virtual size_t | getStartFrame () const |
| Return the first audio frame spanned by the model. | |
| virtual size_t | getEndFrame () const |
| Return the last audio frame spanned by the model. | |
| virtual size_t | getData (int channel, size_t start, size_t count, float *buffer) const |
| Get the specified set of samples from the given channel of the model in single-precision floating-point format. | |
| virtual size_t | getData (int channel, size_t start, size_t count, double *buffer) const |
| Get the specified set of samples from the given channel of the model in double-precision floating-point format. | |
| virtual size_t | getData (size_t fromchannel, size_t tochannel, size_t start, size_t count, float **buffer) const |
| Get the specified set of samples from given contiguous range of channels of the model in single-precision floating-point format. | |
| virtual size_t | getSummaryBlockSize (size_t desired) const |
| virtual void | getSummaries (size_t channel, size_t start, size_t count, RangeBlock &ranges, size_t &blockSize) const |
| virtual Range | getSummary (size_t channel, size_t start, size_t count) const |
| 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. | |
| virtual void | toXml (QTextStream &out, QString indent="", QString extraAttributes="") const |
| Stream this exportable object out to XML on a text stream. | |
| virtual void | getSummaries (size_t channel, size_t start, size_t count, RangeBlock &ranges, size_t &blockSize) const=0 |
| Return ranges from the given start frame, corresponding to the given number of underlying sample frames, summarised at the given block size. | |
| virtual size_t | 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 Model * | getSourceModel () 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 Model * | getAlignmentReference () const |
| Return the reference model for the current alignment timeline, if any. | |
| virtual size_t | alignToReference (size_t frame) const |
| Return the frame number of the reference model that corresponds to the given frame number in this model. | |
| virtual size_t | alignFromReference (size_t 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. | |
| virtual QString | toDelimitedDataString (QString) const |
| virtual QString | toXmlString (QString indent="", QString extraAttributes="") const |
| Convert this exportable object to XML in a string. | |
Static Public Member Functions | |
| static QString | encodeEntities (QString) |
| static QString | encodeColour (QColor) |
| static int | getObjectExportId (const void *) |
Static Public Attributes | |
| static const int | COMPLETION_UNKNOWN |
Protected Slots | |
| void | componentModelChanged () |
| void | componentModelChanged (size_t, size_t) |
| void | componentModelCompletionChanged () |
Protected Attributes | |
| ChannelSpecList | m_components |
| Model * | m_sourceModel |
| AlignmentModel * | m_alignment |
| bool | m_aboutToDelete |
Static Protected Attributes | |
| static PowerOfSqrtTwoZoomConstraint | m_zoomConstraint |
Classes | |
| struct | ModelChannelSpec |
| typedef std::vector<ModelChannelSpec> AggregateWaveModel::ChannelSpecList |
Definition at line 37 of file AggregateWaveModel.h.
typedef std::vector<Range> RangeSummarisableTimeValueModel::RangeBlock [inherited] |
Definition at line 51 of file RangeSummarisableTimeValueModel.h.
| AggregateWaveModel::AggregateWaveModel | ( | ChannelSpecList | channelSpecs | ) |
| AggregateWaveModel::~AggregateWaveModel | ( | ) |
Definition at line 38 of file AggregateWaveModel.cpp.
| bool AggregateWaveModel::isOK | ( | ) | const [virtual] |
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 43 of file AggregateWaveModel.cpp.
References m_components.
| bool AggregateWaveModel::isReady | ( | int * | completion | ) | const [virtual] |
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 from Model.
Definition at line 53 of file AggregateWaveModel.cpp.
References m_components.
| QString AggregateWaveModel::getTypeName | ( | ) | const [inline, virtual] |
Return the type of the model.
For display purposes only.
Reimplemented from RangeSummarisableTimeValueModel.
Definition at line 45 of file AggregateWaveModel.h.
| size_t AggregateWaveModel::getComponentCount | ( | ) | const |
| AggregateWaveModel::ModelChannelSpec AggregateWaveModel::getComponent | ( | size_t | c | ) | const |
Definition at line 222 of file AggregateWaveModel.cpp.
References m_components.
Referenced by FFTModel::getServer().
| const ZoomConstraint* AggregateWaveModel::getZoomConstraint | ( | ) | const [inline, virtual] |
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 50 of file AggregateWaveModel.h.
References m_zoomConstraint.
| size_t AggregateWaveModel::getFrameCount | ( | ) | const |
Definition at line 69 of file AggregateWaveModel.cpp.
References m_components.
Referenced by getEndFrame().
| size_t AggregateWaveModel::getChannelCount | ( | ) | const [virtual] |
Return the number of distinct channels for this model.
Implements DenseTimeValueModel.
Definition at line 83 of file AggregateWaveModel.cpp.
References m_components.
Referenced by getData().
| size_t AggregateWaveModel::getSampleRate | ( | ) | const [virtual] |
Return the frame rate in frames per second.
Implements Model.
Definition at line 89 of file AggregateWaveModel.cpp.
References m_components.
| Model * AggregateWaveModel::clone | ( | ) | const [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.
Implements Model.
Definition at line 96 of file AggregateWaveModel.cpp.
References AggregateWaveModel(), and m_components.
| float AggregateWaveModel::getValueMinimum | ( | ) | const [inline, virtual] |
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 58 of file AggregateWaveModel.h.
| float AggregateWaveModel::getValueMaximum | ( | ) | const [inline, virtual] |
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 59 of file AggregateWaveModel.h.
| virtual size_t AggregateWaveModel::getStartFrame | ( | ) | const [inline, virtual] |
Return the first audio frame spanned by the model.
Implements Model.
Definition at line 61 of file AggregateWaveModel.h.
| virtual size_t AggregateWaveModel::getEndFrame | ( | ) | const [inline, virtual] |
Return the last audio frame spanned by the model.
Implements Model.
Definition at line 62 of file AggregateWaveModel.h.
References getFrameCount().
| size_t AggregateWaveModel::getData | ( | int | channel, | |
| size_t | start, | |||
| size_t | count, | |||
| float * | buffer | |||
| ) | const [virtual] |
Get the specified set of samples from the given channel of the model in single-precision floating-point format.
Return the number of samples actually retrieved. If the channel is given as -1, mix all available channels and return the result.
Implements DenseTimeValueModel.
Definition at line 102 of file AggregateWaveModel.cpp.
References getChannelCount(), and m_components.
Referenced by getData().
| size_t AggregateWaveModel::getData | ( | int | channel, | |
| size_t | start, | |||
| size_t | count, | |||
| double * | buffer | |||
| ) | const [virtual] |
Get the specified set of samples from the given channel of the model in double-precision floating-point format.
Return the number of samples actually retrieved. If the channel is given as -1, mix all available channels and return the result.
Implements DenseTimeValueModel.
Definition at line 141 of file AggregateWaveModel.cpp.
References getChannelCount(), and m_components.
| size_t AggregateWaveModel::getData | ( | size_t | fromchannel, | |
| size_t | tochannel, | |||
| size_t | start, | |||
| size_t | count, | |||
| float ** | buffer | |||
| ) | const [virtual] |
Get the specified set of samples from given contiguous range of channels of the model in single-precision floating-point format.
Return the number of sample frames actually retrieved.
Implements DenseTimeValueModel.
Definition at line 180 of file AggregateWaveModel.cpp.
References getData().
| size_t AggregateWaveModel::getSummaryBlockSize | ( | size_t | desired | ) | const [virtual] |
| void AggregateWaveModel::getSummaries | ( | size_t | channel, | |
| size_t | start, | |||
| size_t | count, | |||
| RangeBlock & | ranges, | |||
| size_t & | blockSize | |||
| ) | const [virtual] |
Definition at line 202 of file AggregateWaveModel.cpp.
| AggregateWaveModel::Range AggregateWaveModel::getSummary | ( | size_t | channel, | |
| size_t | start, | |||
| size_t | count | |||
| ) | const [virtual] |
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 209 of file AggregateWaveModel.cpp.
| void AggregateWaveModel::toXml | ( | QTextStream & | out, | |
| QString | indent = "", |
|||
| QString | extraAttributes = "" | |||
| ) | const [virtual] |
Stream this exportable object out to XML on a text stream.
Reimplemented from Model.
Definition at line 246 of file AggregateWaveModel.cpp.
| void AggregateWaveModel::modelChanged | ( | ) | [signal] |
Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly).
Reimplemented from Model.
Referenced by componentModelChanged().
| void AggregateWaveModel::modelChanged | ( | size_t | , | |
| size_t | ||||
| ) | [signal] |
Emitted when a model has been edited (or more data retrieved from cache, in the case of a cached model that generates slowly).
Reimplemented from Model.
| void AggregateWaveModel::completionChanged | ( | ) | [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.
Reimplemented from Model.
Referenced by componentModelCompletionChanged().
| void AggregateWaveModel::componentModelChanged | ( | ) | [protected, slot] |
| void AggregateWaveModel::componentModelChanged | ( | size_t | , | |
| size_t | ||||
| ) | [protected, slot] |
| void AggregateWaveModel::componentModelCompletionChanged | ( | ) | [protected, slot] |
| virtual void RangeSummarisableTimeValueModel::getSummaries | ( | size_t | channel, | |
| size_t | start, | |||
| size_t | count, | |||
| RangeBlock & | ranges, | |||
| size_t & | blockSize | |||
| ) | const [pure virtual, inherited] |
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.
Referenced by WaveformLayer::getFeatureDescription(), and WaveformLayer::paint().
| virtual size_t 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 67 of file Model.h.
References Model::getSampleRate().
Referenced by Pane::drawDurationAndRate().
| QString Model::getTitle | ( | ) | const [virtual, inherited] |
Return the "work title" of the model, if known.
Reimplemented in WaveFileModel.
Definition at line 150 of file Model.cpp.
References Model::getTitle(), and Model::m_sourceModel.
Referenced by Pane::drawWorkTitle(), and Model::getTitle().
| QString Model::getMaker | ( | ) | const [virtual, inherited] |
Return the "artist" or "maker" of the model, if known.
Reimplemented in WaveFileModel.
Definition at line 157 of file Model.cpp.
References Model::getMaker(), and Model::m_sourceModel.
Referenced by ModelDataModel::data(), Pane::drawWorkTitle(), and 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 164 of file Model.cpp.
References Model::getLocation(), and Model::m_sourceModel.
Referenced by ModelDataModel::data(), and Model::getLocation().
| 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 143 of file Model.h.
References Model::m_sourceModel.
Referenced by View::checkProgress(), and Pane::paintEvent().
| void Model::setSourceModel | ( | Model * | model | ) | [virtual, inherited] |
Set the source model for this model.
Definition at line 49 of file Model.cpp.
References Model::aboutToBeDeleted(), Model::alignmentCompletionChanged(), Model::m_sourceModel, and Model::sourceModelAboutToBeDeleted().
Referenced by Document::addDerivedModel(), FeatureExtractionModelTransformer::FeatureExtractionModelTransformer(), and FFTModel::FFTModel().
| 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 89 of file Model.cpp.
References Model::aboutToDelete(), Model::alignmentCompletionChanged(), Model::completionChanged(), and Model::m_alignment.
Referenced by Document::alignModel().
| const Model * Model::getAlignmentReference | ( | ) | const [virtual, inherited] |
Return the reference model for the current alignment timeline, if any.
Definition at line 101 of file Model.cpp.
References Model::getAlignmentReference(), AlignmentModel::getReferenceModel(), Model::m_alignment, and Model::m_sourceModel.
Referenced by Layer::alignFromReference(), Document::alignModel(), Layer::alignToReference(), Pane::drawAlignmentStatus(), View::getAligningModel(), and Model::getAlignmentReference().
| size_t Model::alignToReference | ( | size_t | 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 111 of file Model.cpp.
References Model::getEndFrame(), AlignmentModel::getReferenceModel(), Model::m_alignment, Model::m_sourceModel, and AlignmentModel::toReference().
Referenced by ViewManager::alignPlaybackFrameToReference(), View::alignToReference(), and Layer::alignToReference().
| size_t Model::alignFromReference | ( | size_t | 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 124 of file Model.cpp.
References AlignmentModel::fromReference(), Model::getEndFrame(), Model::m_alignment, and Model::m_sourceModel.
Referenced by View::alignFromReference(), Layer::alignFromReference(), ViewManager::alignReferenceToPlaybackFrame(), and View::getAlignedPlaybackFrame().
| 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 136 of file Model.cpp.
References AlignmentModel::isReady(), Model::m_alignment, and Model::m_sourceModel.
Referenced by View::checkProgress(), and Pane::drawAlignmentStatus().
| virtual QString Model::toDelimitedDataString | ( | QString | ) | const [inline, virtual, inherited] |
Reimplemented in EditableDenseThreeDimensionalModel, SparseModel< PointType >, SparseModel< Note >, SparseModel< TextPoint >, SparseModel< ImagePoint >, SparseModel< TimeValuePoint >, SparseModel< OneDimensionalPoint >, and SparseModel< AlignmentModel::PathPoint >.
Definition at line 189 of file Model.h.
Referenced by CSVFileWriter::write().
| void Model::aboutToDelete | ( | ) | [slot, inherited] |
Definition at line 67 of file Model.cpp.
References Model::aboutToBeDeleted(), and Model::m_aboutToDelete.
Referenced by Document::releaseModel(), Model::setAlignment(), Document::setMainModel(), SpectrumLayer::setModel(), SpectrumLayer::setupFFT(), Document::~Document(), Model::~Model(), and SpectrumLayer::~SpectrumLayer().
| void Model::sourceModelAboutToBeDeleted | ( | ) | [slot, inherited] |
Reimplemented in FFTModel.
Definition at line 83 of file Model.cpp.
References Model::m_sourceModel.
Referenced by Model::setSourceModel().
| 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(), 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 LayerFactory::setLayerDefaultProperties().
| QString XmlExportable::encodeEntities | ( | QString | ) | [static, inherited] |
Definition at line 41 of file XmlExportable.cpp.
Referenced by AudioGenerator::getDefaultPlayPluginConfiguration(), SVFileReader::readPlugin(), Layer::toBriefXml(), WaveFileModel::toXml(), Transform::toXml(), TextPoint::toXml(), PluginXml::toXml(), Model::toXml(), Layer::toXml(), ImagePoint::toXml(), and Document::writeBackwardCompatibleDerivation().
| QString XmlExportable::encodeColour | ( | QColor | ) | [static, inherited] |
| int XmlExportable::getObjectExportId | ( | const void * | ) | [static, inherited] |
Definition at line 71 of file XmlExportable.cpp.
Referenced by FFTDataServer::generateFileBasename(), View::getTextLabelHeight(), Layer::toBriefXml(), SparseModel< PointType >::toXml(), Model::toXml(), Layer::toXml(), EditableDenseThreeDimensionalModel::toXml(), Document::toXml(), and Document::writeBackwardCompatibleDerivation().
ChannelSpecList AggregateWaveModel::m_components [protected] |
Definition at line 97 of file AggregateWaveModel.h.
Referenced by clone(), getChannelCount(), getComponent(), getComponentCount(), getData(), getFrameCount(), getSampleRate(), isOK(), and isReady().
PowerOfSqrtTwoZoomConstraint AggregateWaveModel::m_zoomConstraint [static, protected] |
const int Model::COMPLETION_UNKNOWN [static, inherited] |
Model* Model::m_sourceModel [protected, inherited] |
Definition at line 239 of file Model.h.
Referenced by Model::alignFromReference(), Model::alignToReference(), Model::getAlignmentCompletion(), Model::getAlignmentReference(), Model::getLocation(), Model::getMaker(), Model::getSourceModel(), Model::getTitle(), Model::setSourceModel(), Model::sourceModelAboutToBeDeleted(), and FFTModel::sourceModelAboutToBeDeleted().
AlignmentModel* Model::m_alignment [protected, inherited] |
Definition at line 240 of file Model.h.
Referenced by Model::alignFromReference(), Model::alignToReference(), Model::getAlignmentCompletion(), Model::getAlignmentReference(), Model::setAlignment(), and Model::~Model().
bool Model::m_aboutToDelete [protected, inherited] |
1.5.1