From 8bdba7d92b44a0c6cb6745296adfda8d6168940e Mon Sep 17 00:00:00 2001 From: Lars Bisballe Jensen Date: Wed, 22 Oct 2014 15:38:31 +0200 Subject: Now resets data when needed --- src/drumkitparser.cc | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/drumkitparser.cc b/src/drumkitparser.cc index 36f76fc..1fabbb8 100644 --- a/src/drumkitparser.cc +++ b/src/drumkitparser.cc @@ -81,6 +81,27 @@ void DrumKitParser::startTag(std::string name, } } + if(in_metadata) { + if(name == "name") { + data = ""; + } + if(name == "description") { + data = ""; + } + if(name == "notes") { + data = ""; + } + if(name == "author") { + data = ""; + } + if(name == "email") { + data = ""; + } + if(name == "website") { + data = ""; + } + } + if(name == "metadata") { in_metadata = true; } @@ -96,6 +117,15 @@ void DrumKitParser::startTag(std::string name, in_channel = true; } + if(in_channel) { + if(name == "name") { + data = ""; + } + if(name == "microphone") { + data = ""; + } + } + if(name == "instruments") {} if(name == "instrument") { @@ -117,6 +147,13 @@ void DrumKitParser::startTag(std::string name, } if(in_instrument) { + if(name == "name") { + data = ""; + } + + if(name == "description") { + data = ""; + } if(name == "channelmap") { if(attr.find("in") == attr.end()) { DEBUG(kitparser, "Missing 'in' in channelmap tag.\n"); @@ -138,7 +175,6 @@ void DrumKitParser::endTag(std::string name) { if(in_metadata) { if(name == "name") { - //FIXME: data is never "", find a new way to check for empty data if(data != "") { kit._name = data; } else { -- cgit v1.2.3