jedparser: include previous Note. Usefull to determine area

This commit is contained in:
Gwenhael Goavec-Merou 2019-11-20 20:41:59 +01:00
parent 7fb114f172
commit d93bc79329
2 changed files with 8 additions and 1 deletions

View File

@ -175,6 +175,8 @@ void JedParser::parseLField(vector<string> content)
int JedParser::parse() int JedParser::parse()
{ {
string previousNote;
if (!_fd.is_open()) { if (!_fd.is_open()) {
_fd.open(_filename); _fd.open(_filename);
if (!_fd.is_open()) { if (!_fd.is_open()) {
@ -207,6 +209,7 @@ int JedParser::parse()
switch (lines[0][0]) { switch (lines[0][0]) {
case 'N': // note case 'N': // note
previousNote = lines[0].substr(5);
break; break;
case 'Q': case 'Q':
int count; int count;
@ -242,6 +245,7 @@ int JedParser::parse()
break; break;
case 'L': // fuse offset case 'L': // fuse offset
parseLField(lines); parseLField(lines);
_data_list[_data_list.size()-1].associatedPrevNote = previousNote;
break; break;
default: default:
printf("inconnu\n"); printf("inconnu\n");
@ -251,7 +255,8 @@ int JedParser::parse()
int size = 0; int size = 0;
for (size_t i = 0; i < _data_list.size(); i++) { for (size_t i = 0; i < _data_list.size(); i++) {
printf("area[%ld] %d %d\n", i, _data_list[i].offset, _data_list[i].len); printf("area[%ld] %d %d ", i, _data_list[i].offset, _data_list[i].len);
printf("%s\n", _data_list[i].associatedPrevNote.c_str());
size += _data_list[i].len; size += _data_list[i].len;
} }

View File

@ -32,6 +32,7 @@ class JedParser: public ConfigBitstreamParser {
int offset; int offset;
std::vector<std::string> data; std::vector<std::string> data;
int len; int len;
std::string associatedPrevNote;
}; };
public: public:
@ -44,6 +45,7 @@ class JedParser: public ConfigBitstreamParser {
std::vector<std::string> data_for_section(int id) { std::vector<std::string> data_for_section(int id) {
return _data_list[id].data; return _data_list[id].data;
} }
std::string noteForSection(int id) {return _data_list[id].associatedPrevNote;}
uint32_t feabits() {return _feabits;} uint32_t feabits() {return _feabits;}
uint64_t featuresRow() {return _featuresRow;} uint64_t featuresRow() {return _featuresRow;}