Mercurial > hg > svapp
diff framework/SVFileReader.cpp @ 450:d9d132c0e240 alignment_view
Merge from default branch
author | Chris Cannam |
---|---|
date | Mon, 20 Apr 2015 09:21:32 +0100 |
parents | da520a68595a |
children | dc1a360f2b69 |
line wrap: on
line diff
--- a/framework/SVFileReader.cpp Fri Nov 28 10:33:25 2014 +0000 +++ b/framework/SVFileReader.cpp Mon Apr 20 09:21:32 2015 +0100 @@ -450,7 +450,7 @@ SVDEBUG << "SVFileReader::readModel: model name \"" << name << "\"" << endl; - READ_MANDATORY(int, sampleRate, toInt); + READ_MANDATORY(double, sampleRate, toDouble); QString type = attributes.value("type").trimmed(); bool isMainModel = (attributes.value("mainModel").trimmed() == "true"); @@ -478,7 +478,7 @@ file.waitForData(); - int rate = sampleRate; + sv_samplerate_t rate = sampleRate; if (Preferences::getInstance()->getFixedSampleRate() != 0) { rate = Preferences::getInstance()->getFixedSampleRate(); @@ -886,13 +886,18 @@ } 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; } } - layer->setProperties(attributes); + if (layer) layer->setProperties(attributes); } - if (!m_inData && m_currentPane) { + if (!m_inData && m_currentPane && layer) { QString visible = attributes.value("visible"); bool dormant = (visible == "false"); @@ -912,7 +917,7 @@ } m_currentLayer = layer; - m_inLayer = true; + m_inLayer = (layer != 0); return true; } @@ -999,7 +1004,7 @@ (m_currentDataset); if (stvm) { - cerr << "Current dataset is a sparse time-value model" << endl; +// cerr << "Current dataset is a sparse time-value model" << endl; float value = 0.0; value = attributes.value("value").trimmed().toFloat(&ok); QString label = attributes.value("label"); @@ -1010,7 +1015,7 @@ NoteModel *nm = dynamic_cast<NoteModel *>(m_currentDataset); if (nm) { - cerr << "Current dataset is a note model" << endl; +// cerr << "Current dataset is a note model" << endl; float value = 0.0; value = attributes.value("value").trimmed().toFloat(&ok); int duration = 0; @@ -1028,7 +1033,7 @@ FlexiNoteModel *fnm = dynamic_cast<FlexiNoteModel *>(m_currentDataset); if (fnm) { - cerr << "Current dataset is a flexinote model" << endl; +// cerr << "Current dataset is a flexinote model" << endl; float value = 0.0; value = attributes.value("value").trimmed().toFloat(&ok); int duration = 0; @@ -1046,7 +1051,7 @@ RegionModel *rm = dynamic_cast<RegionModel *>(m_currentDataset); if (rm) { - cerr << "Current dataset is a region model" << endl; +// cerr << "Current dataset is a region model" << endl; float value = 0.0; value = attributes.value("value").trimmed().toFloat(&ok); int duration = 0;