diff --git a/lib/tdm_ripper.cpp b/lib/tdm_ripper.cpp index d4da6fd..b0915c5 100644 --- a/lib/tdm_ripper.cpp +++ b/lib/tdm_ripper.cpp @@ -1,9 +1,11 @@ #include "tdm_ripper.hpp" -tdm_ripper::tdm_ripper(std::string tdmfile, std::string tdxfile): - tdmfile_(tdmfile), tdxfile_(tdxfile), num_channels_(0), num_groups_(0), - channel_id_(0), inc_id_(0), units_(0), channel_name_(0), group_id_(0), group_name_(0), +tdm_ripper::tdm_ripper(std::string tdmfile, std::string tdxfile, bool neglect_empty_groups): + tdmfile_(tdmfile), tdxfile_(tdxfile), + neglect_empty_groups_(neglect_empty_groups), num_empty_groups_(0), + num_channels_(0), num_groups_(0), channel_id_(0), inc_id_(0), units_(0), + channel_name_(0), group_id_(0), group_name_(0), num_channels_group_(0), channels_group_(0), channel_ext_(0), minmax_(0), byteoffset_(0), length_(0), type_(0), external_id_(0) { @@ -97,11 +99,15 @@ void tdm_ripper::parse_structure() { if ( std::string(anode.name()).compare("tdm_channelgroup") == 0 ) { - num_groups_++; - group_id_.push_back(anode.attribute("id").value()); - group_name_.push_back(anode.child_value("name")); int numchann = count_occ_string(anode.child_value("channels"),"id"); - num_channels_group_.push_back(numchann); + if ( numchann > 0 || !neglect_empty_groups_ ) + { + num_groups_++; + group_id_.push_back(anode.attribute("id").value()); + group_name_.push_back(anode.child_value("name")); + num_channels_group_.push_back(numchann); + } + if ( numchann == 0 ) num_empty_groups_++; } } @@ -201,18 +207,15 @@ void tdm_ripper::parse_structure() // std::string keyinit("usi23258"); // std::cout<<"xml test "< channel_id_, inc_id_, units_, channel_name_; @@ -56,7 +60,7 @@ class tdm_ripper public: - tdm_ripper(std::string tdmfile, std::string tdxfile = ""); + tdm_ripper(std::string tdmfile, std::string tdxfile = "", bool neglect_empty_groups = true); void parse_structure(); diff --git a/main.cpp b/main.cpp index 615eb1c..e8aa1ba 100644 --- a/main.cpp +++ b/main.cpp @@ -43,8 +43,8 @@ int main(int argc, char* argv[]) // for ( auto el: channA ) std::cout<