diff framework/SVFileReader.cpp @ 482:01669adb0956 tony-2.0-integration

Merge through to branch for Tony 2.0
author Chris Cannam
date Thu, 20 Aug 2015 14:54:21 +0100
parents 6f475df6f833
children aecd5bdfc71f
line wrap: on
line diff
--- a/framework/SVFileReader.cpp	Mon Apr 13 13:52:05 2015 +0100
+++ b/framework/SVFileReader.cpp	Thu Aug 20 14:54:21 2015 +0100
@@ -26,7 +26,7 @@
 
 #include "data/fileio/FileFinder.h"
 
-#include "data/model/WaveFileModel.h"
+#include "data/model/ReadOnlyWaveFileModel.h"
 #include "data/model/EditableDenseThreeDimensionalModel.h"
 #include "data/model/SparseOneDimensionalModel.h"
 #include "data/model/SparseTimeValueModel.h"
@@ -489,7 +489,7 @@
                 if (mm) rate = mm->getSampleRate();
             }
 
-            model = new WaveFileModel(file, rate);
+            model = new ReadOnlyWaveFileModel(file, rate);
             if (!model->isOK()) {
                 delete model;
                 model = 0;
@@ -886,12 +886,14 @@
 	    } else {
 		cerr << "WARNING: SV-XML: Unknown model id " << modelId
 			  << " in layer definition" << endl;
-
-                // Don't add a layer with an unknown model id
-                m_document->deleteLayer(layer);
-                m_layers[id] = layer = 0;
-                return false;
-	    }
+                if (!layer->canExistWithoutModel()) {
+                    // Don't add a layer with an unknown model id
+                    // unless it explicitly supports this state
+                    m_document->deleteLayer(layer);
+                    m_layers[id] = layer = 0;
+                    return false;
+                }
+            }
 	}
 
         if (layer) layer->setProperties(attributes);