# HG changeset patch # User Chris Cannam # Date 1412151624 -3600 # Node ID a51781b11dd46899a8f03061475838916ab78d78 # Parent e8e6c4e7437bf7d1a9a5bf937b53d20de99fdf89 Scary warning if transform RDF fails to use XSD duration format diff -r e8e6c4e7437b -r a51781b11dd4 rdf/RDFTransformFactory.cpp --- 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; }