Mercurial > hg > svgui
comparison layer/LayerFactory.cpp @ 1518:2e94c268f7a0 time-frequency-boxes
Rename TimeFrequencyBoxLayer to just BoxLayer, supporting vertical scales other than Hz
author | Chris Cannam |
---|---|
date | Wed, 25 Sep 2019 09:45:42 +0100 |
parents | e4629d449688 |
children | 1acd7be4df9a |
comparison
equal
deleted
inserted
replaced
1517:c5d2de8f7647 | 1518:2e94c268f7a0 |
---|---|
21 #include "TimeInstantLayer.h" | 21 #include "TimeInstantLayer.h" |
22 #include "TimeValueLayer.h" | 22 #include "TimeValueLayer.h" |
23 #include "NoteLayer.h" | 23 #include "NoteLayer.h" |
24 #include "FlexiNoteLayer.h" | 24 #include "FlexiNoteLayer.h" |
25 #include "RegionLayer.h" | 25 #include "RegionLayer.h" |
26 #include "TimeFrequencyBoxLayer.h" | 26 #include "BoxLayer.h" |
27 #include "TextLayer.h" | 27 #include "TextLayer.h" |
28 #include "ImageLayer.h" | 28 #include "ImageLayer.h" |
29 #include "Colour3DPlotLayer.h" | 29 #include "Colour3DPlotLayer.h" |
30 #include "SpectrumLayer.h" | 30 #include "SpectrumLayer.h" |
31 #include "SliceLayer.h" | 31 #include "SliceLayer.h" |
37 #include "data/model/DenseTimeValueModel.h" | 37 #include "data/model/DenseTimeValueModel.h" |
38 #include "data/model/SparseOneDimensionalModel.h" | 38 #include "data/model/SparseOneDimensionalModel.h" |
39 #include "data/model/SparseTimeValueModel.h" | 39 #include "data/model/SparseTimeValueModel.h" |
40 #include "data/model/NoteModel.h" | 40 #include "data/model/NoteModel.h" |
41 #include "data/model/RegionModel.h" | 41 #include "data/model/RegionModel.h" |
42 #include "data/model/TimeFrequencyBoxModel.h" | 42 #include "data/model/BoxModel.h" |
43 #include "data/model/TextModel.h" | 43 #include "data/model/TextModel.h" |
44 #include "data/model/ImageModel.h" | 44 #include "data/model/ImageModel.h" |
45 #include "data/model/DenseThreeDimensionalModel.h" | 45 #include "data/model/DenseThreeDimensionalModel.h" |
46 #include "data/model/WaveFileModel.h" | 46 #include "data/model/WaveFileModel.h" |
47 #include "data/model/WritableWaveFileModel.h" | 47 #include "data/model/WritableWaveFileModel.h" |
76 case TimeInstants: return Layer::tr("Time Instants"); | 76 case TimeInstants: return Layer::tr("Time Instants"); |
77 case TimeValues: return Layer::tr("Time Values"); | 77 case TimeValues: return Layer::tr("Time Values"); |
78 case Notes: return Layer::tr("Notes"); | 78 case Notes: return Layer::tr("Notes"); |
79 case FlexiNotes: return Layer::tr("Flexible Notes"); | 79 case FlexiNotes: return Layer::tr("Flexible Notes"); |
80 case Regions: return Layer::tr("Regions"); | 80 case Regions: return Layer::tr("Regions"); |
81 case TimeFrequencyBox: return Layer::tr("Time-Frequency Box"); | 81 case Boxes: return Layer::tr("Boxes"); |
82 case Text: return Layer::tr("Text"); | 82 case Text: return Layer::tr("Text"); |
83 case Image: return Layer::tr("Images"); | 83 case Image: return Layer::tr("Images"); |
84 case Colour3DPlot: return Layer::tr("Colour 3D Plot"); | 84 case Colour3DPlot: return Layer::tr("Colour 3D Plot"); |
85 case Spectrum: return Layer::tr("Spectrum"); | 85 case Spectrum: return Layer::tr("Spectrum"); |
86 case Slice: return Layer::tr("Time Slice"); | 86 case Slice: return Layer::tr("Time Slice"); |
174 | 174 |
175 if (ModelById::getAs<RegionModel>(modelId)) { | 175 if (ModelById::getAs<RegionModel>(modelId)) { |
176 types.insert(Regions); | 176 types.insert(Regions); |
177 } | 177 } |
178 | 178 |
179 if (ModelById::getAs<TimeFrequencyBoxModel>(modelId)) { | 179 if (ModelById::getAs<BoxModel>(modelId)) { |
180 types.insert(TimeFrequencyBox); | 180 types.insert(Boxes); |
181 } | 181 } |
182 | 182 |
183 if (ModelById::getAs<TextModel>(modelId)) { | 183 if (ModelById::getAs<TextModel>(modelId)) { |
184 types.insert(Text); | 184 types.insert(Text); |
185 } | 185 } |
208 // to show in a menu -- it should not contain FlexiNotes; the | 208 // to show in a menu -- it should not contain FlexiNotes; the |
209 // layer isn't meaningfully editable in SV | 209 // layer isn't meaningfully editable in SV |
210 // types.insert(FlexiNotes); | 210 // types.insert(FlexiNotes); |
211 types.insert(Notes); | 211 types.insert(Notes); |
212 types.insert(Regions); | 212 types.insert(Regions); |
213 types.insert(TimeFrequencyBox); | 213 types.insert(Boxes); |
214 types.insert(Text); | 214 types.insert(Text); |
215 types.insert(Image); | 215 types.insert(Image); |
216 //!!! and in principle Colour3DPlot -- now that's a challenge | 216 //!!! and in principle Colour3DPlot -- now that's a challenge |
217 return types; | 217 return types; |
218 } | 218 } |
226 if (dynamic_cast<const TimeInstantLayer *>(layer)) return TimeInstants; | 226 if (dynamic_cast<const TimeInstantLayer *>(layer)) return TimeInstants; |
227 if (dynamic_cast<const TimeValueLayer *>(layer)) return TimeValues; | 227 if (dynamic_cast<const TimeValueLayer *>(layer)) return TimeValues; |
228 if (dynamic_cast<const FlexiNoteLayer *>(layer)) return FlexiNotes; | 228 if (dynamic_cast<const FlexiNoteLayer *>(layer)) return FlexiNotes; |
229 if (dynamic_cast<const NoteLayer *>(layer)) return Notes; | 229 if (dynamic_cast<const NoteLayer *>(layer)) return Notes; |
230 if (dynamic_cast<const RegionLayer *>(layer)) return Regions; | 230 if (dynamic_cast<const RegionLayer *>(layer)) return Regions; |
231 if (dynamic_cast<const TimeFrequencyBoxLayer *>(layer)) return TimeFrequencyBox; | 231 if (dynamic_cast<const BoxLayer *>(layer)) return Boxes; |
232 if (dynamic_cast<const TextLayer *>(layer)) return Text; | 232 if (dynamic_cast<const TextLayer *>(layer)) return Text; |
233 if (dynamic_cast<const ImageLayer *>(layer)) return Image; | 233 if (dynamic_cast<const ImageLayer *>(layer)) return Image; |
234 if (dynamic_cast<const Colour3DPlotLayer *>(layer)) return Colour3DPlot; | 234 if (dynamic_cast<const Colour3DPlotLayer *>(layer)) return Colour3DPlot; |
235 if (dynamic_cast<const SpectrumLayer *>(layer)) return Spectrum; | 235 if (dynamic_cast<const SpectrumLayer *>(layer)) return Spectrum; |
236 if (dynamic_cast<const SliceLayer *>(layer)) return Slice; | 236 if (dynamic_cast<const SliceLayer *>(layer)) return Slice; |
247 case TimeInstants: return "instants"; | 247 case TimeInstants: return "instants"; |
248 case TimeValues: return "values"; | 248 case TimeValues: return "values"; |
249 case Notes: return "notes"; | 249 case Notes: return "notes"; |
250 case FlexiNotes: return "flexinotes"; | 250 case FlexiNotes: return "flexinotes"; |
251 case Regions: return "regions"; | 251 case Regions: return "regions"; |
252 case TimeFrequencyBox: return "timefreq"; | 252 case Boxes: return "boxes"; |
253 case Text: return "text"; | 253 case Text: return "text"; |
254 case Image: return "image"; | 254 case Image: return "image"; |
255 case Colour3DPlot: return "colour3d"; | 255 case Colour3DPlot: return "colour3d"; |
256 case Spectrum: return "spectrum"; | 256 case Spectrum: return "spectrum"; |
257 case Slice: return "spectrum"; | 257 case Slice: return "spectrum"; |
274 case TimeInstants: return "timeinstants"; | 274 case TimeInstants: return "timeinstants"; |
275 case TimeValues: return "timevalues"; | 275 case TimeValues: return "timevalues"; |
276 case Notes: return "notes"; | 276 case Notes: return "notes"; |
277 case FlexiNotes: return "flexinotes"; | 277 case FlexiNotes: return "flexinotes"; |
278 case Regions: return "regions"; | 278 case Regions: return "regions"; |
279 case TimeFrequencyBox: return "timefrequencybox"; | 279 case Boxes: return "boxes"; |
280 case Text: return "text"; | 280 case Text: return "text"; |
281 case Image: return "image"; | 281 case Image: return "image"; |
282 case Colour3DPlot: return "colour3dplot"; | 282 case Colour3DPlot: return "colour3dplot"; |
283 case Spectrum: return "spectrum"; | 283 case Spectrum: return "spectrum"; |
284 case Slice: return "slice"; | 284 case Slice: return "slice"; |
300 if (name == "timeinstants") return TimeInstants; | 300 if (name == "timeinstants") return TimeInstants; |
301 if (name == "timevalues") return TimeValues; | 301 if (name == "timevalues") return TimeValues; |
302 if (name == "notes") return Notes; | 302 if (name == "notes") return Notes; |
303 if (name == "flexinotes") return FlexiNotes; | 303 if (name == "flexinotes") return FlexiNotes; |
304 if (name == "regions") return Regions; | 304 if (name == "regions") return Regions; |
305 if (name == "timefrequencybox") return TimeFrequencyBox; | 305 if (name == "boxes" || name == "timefrequencybox") return Boxes; |
306 if (name == "text") return Text; | 306 if (name == "text") return Text; |
307 if (name == "image") return Image; | 307 if (name == "image") return Image; |
308 if (name == "colour3dplot") return Colour3DPlot; | 308 if (name == "colour3dplot") return Colour3DPlot; |
309 if (name == "spectrum") return Spectrum; | 309 if (name == "spectrum") return Spectrum; |
310 if (name == "slice") return Slice; | 310 if (name == "slice") return Slice; |
339 return; | 339 return; |
340 | 340 |
341 if (trySetModel<RegionLayer, RegionModel>(layer, model)) | 341 if (trySetModel<RegionLayer, RegionModel>(layer, model)) |
342 return; | 342 return; |
343 | 343 |
344 if (trySetModel<TimeFrequencyBoxLayer, TimeFrequencyBoxModel>(layer, model)) | 344 if (trySetModel<BoxLayer, BoxModel>(layer, model)) |
345 return; | 345 return; |
346 | 346 |
347 if (trySetModel<TextLayer, TextModel>(layer, model)) | 347 if (trySetModel<TextLayer, TextModel>(layer, model)) |
348 return; | 348 return; |
349 | 349 |
373 return std::make_shared<NoteModel>(rate, 1, true); | 373 return std::make_shared<NoteModel>(rate, 1, true); |
374 } else if (layerType == Notes) { | 374 } else if (layerType == Notes) { |
375 return std::make_shared<NoteModel>(rate, 1, true); | 375 return std::make_shared<NoteModel>(rate, 1, true); |
376 } else if (layerType == Regions) { | 376 } else if (layerType == Regions) { |
377 return std::make_shared<RegionModel>(rate, 1, true); | 377 return std::make_shared<RegionModel>(rate, 1, true); |
378 } else if (layerType == TimeFrequencyBox) { | 378 } else if (layerType == Boxes) { |
379 return std::make_shared<TimeFrequencyBoxModel>(rate, 1, true); | 379 return std::make_shared<BoxModel>(rate, 1, true); |
380 } else if (layerType == Text) { | 380 } else if (layerType == Text) { |
381 return std::make_shared<TextModel>(rate, 1, true); | 381 return std::make_shared<TextModel>(rate, 1, true); |
382 } else if (layerType == Image) { | 382 } else if (layerType == Image) { |
383 return std::make_shared<ImageModel>(rate, 1, true); | 383 return std::make_shared<ImageModel>(rate, 1, true); |
384 } else { | 384 } else { |
452 | 452 |
453 case Regions: | 453 case Regions: |
454 layer = new RegionLayer; | 454 layer = new RegionLayer; |
455 break; | 455 break; |
456 | 456 |
457 case TimeFrequencyBox: | 457 case Boxes: |
458 layer = new TimeFrequencyBoxLayer; | 458 layer = new BoxLayer; |
459 break; | 459 break; |
460 | 460 |
461 case Text: | 461 case Text: |
462 layer = new TextLayer; | 462 layer = new TextLayer; |
463 break; | 463 break; |