diff rdf/RDFTransformFactory.cpp @ 987:a51781b11dd4

Scary warning if transform RDF fails to use XSD duration format
author Chris Cannam
date Wed, 01 Oct 2014 09:20:24 +0100
parents 06579b8ffb7b
children 8c9c425b4958
line wrap: on
line diff
--- a/rdf/RDFTransformFactory.cpp	Mon Sep 29 13:27:13 2014 +0100
+++ b/rdf/RDFTransformFactory.cpp	Wed Oct 01 09:20:24 2014 +0100
@@ -241,11 +241,14 @@
             } else if (optional == "sample_rate") {
                 transform.setSampleRate(onode.value.toFloat());
             } else if (optional == "start") {
-                transform.setStartTime
-                    (RealTime::fromXsdDuration(onode.value.toStdString()));
+                RealTime start = RealTime::fromXsdDuration(onode.value.toStdString());
+                transform.setStartTime(start);
             } else if (optional == "duration") {
-                transform.setDuration
-                    (RealTime::fromXsdDuration(onode.value.toStdString()));
+                RealTime duration = RealTime::fromXsdDuration(onode.value.toStdString());
+                transform.setDuration(duration);
+                if (duration == RealTime::zeroTime) {
+                    cerr << "\nRDFTransformFactory: WARNING: Duration is specified as \"" << onode.value << "\" in RDF file,\n    but this evaluates to zero when parsed as an xsd:duration datatype.\n    The duration property will therefore be ignored.\n    To specify start time and duration use the xsd:duration format,\n    for example \"PT2.5S\"^^xsd:duration (for 2.5 seconds).\n\n";
+                }
             } else {
                 cerr << "RDFTransformFactory: ERROR: Inconsistent optionals lists (unexpected optional \"" << optional << "\"" << endl;
             }