Mercurial > hg > easaier-soundaccess
diff layer/LayerFactory.cpp @ 18:d8e6709e9075
add
- EasaierSessionManager
- Easaier menus
- Interval model
author | lbajardsilogic |
---|---|
date | Mon, 14 May 2007 13:13:14 +0000 |
parents | fc9323a41f5a |
children |
line wrap: on
line diff
--- a/layer/LayerFactory.cpp Mon May 14 13:11:55 2007 +0000 +++ b/layer/LayerFactory.cpp Mon May 14 13:13:14 2007 +0000 @@ -26,6 +26,7 @@ #include "SpectrumLayer.h" #include "SliceLayer.h" #include "SliceableLayer.h" +#include "IntervalLayer.h" #include "data/model/RangeSummarisableTimeValueModel.h" #include "data/model/DenseTimeValueModel.h" @@ -36,6 +37,7 @@ #include "data/model/DenseThreeDimensionalModel.h" #include "data/model/WaveFileModel.h" #include "data/model/WritableWaveFileModel.h" +#include "data/model/IntervalModel.h" LayerFactory * LayerFactory::m_instance = new LayerFactory; @@ -75,6 +77,8 @@ // likewise return Layer::tr("Spectrogram"); + case Interval: return Layer::tr("Interval"); + default: break; } @@ -154,6 +158,10 @@ types.insert(Spectrum); } + if (dynamic_cast<IntervalModel *>(model)) { + types.insert(Interval); + } + // We don't count TimeRuler here as it doesn't actually display // the data, although it can be backed by any model @@ -168,6 +176,7 @@ types.insert(TimeValues); types.insert(Notes); types.insert(Text); + types.insert(Interval); //!!! and in principle Colour3DPlot -- now that's a challenge return types; } @@ -185,6 +194,7 @@ if (dynamic_cast<const Colour3DPlotLayer *>(layer)) return Colour3DPlot; if (dynamic_cast<const SpectrumLayer *>(layer)) return Spectrum; if (dynamic_cast<const SliceLayer *>(layer)) return Slice; + if (dynamic_cast<const IntervalLayer *>(layer)) return Interval; return UnknownLayer; } @@ -202,6 +212,7 @@ case Colour3DPlot: return "colour3d"; case Spectrum: return "spectrum"; case Slice: return "spectrum"; + case Interval: return "interval"; default: return "unknown"; } } @@ -220,6 +231,7 @@ case Colour3DPlot: return "colour3dplot"; case Spectrum: return "spectrum"; case Slice: return "slice"; + case Interval: return "interval"; default: return "unknown"; } } @@ -237,6 +249,7 @@ if (name == "colour3dplot") return Colour3DPlot; if (name == "spectrum") return Spectrum; if (name == "slice") return Slice; + if (name == "interval") return Interval; return UnknownLayer; } @@ -281,6 +294,9 @@ // if (trySetModel<SliceLayer, DenseThreeDimensionalModel>(layer, model)) // return; + + if (trySetModel<IntervalLayer, IntervalModel>(layer, model)) + return; } Model * @@ -294,6 +310,8 @@ return new NoteModel(baseModel->getSampleRate(), 1, true); } else if (layerType == Text) { return new TextModel(baseModel->getSampleRate(), 1, true); + } else if (layerType == Interval) { + return new IntervalModel(baseModel->getSampleRate(), 1, true); } else { return 0; } @@ -379,6 +397,10 @@ layer = new SpectrogramLayer(SpectrogramLayer::MelodicPeaks); break; + case Interval: + layer = new IntervalLayer; + break; + default: break; }