anlogicBitParser: allows to reverse (or not) bytes

This commit is contained in:
Gwenhael Goavec-Merou 2020-08-24 08:53:30 +02:00
parent 31bc9cf988
commit bfd7e9b6ed
2 changed files with 11 additions and 4 deletions

View File

@ -31,8 +31,10 @@
using namespace std;
AnlogicBitParser::AnlogicBitParser(const string &filename, bool verbose):
ConfigBitstreamParser(filename, ConfigBitstreamParser::BIN_MODE, verbose)
AnlogicBitParser::AnlogicBitParser(const string &filename, bool reverseOrder,
bool verbose):
ConfigBitstreamParser(filename, ConfigBitstreamParser::BIN_MODE, verbose),
_reverseOrder(reverseOrder)
{}
AnlogicBitParser::~AnlogicBitParser()
@ -136,7 +138,10 @@ int AnlogicBitParser::parse()
_bit_data.clear();
for (auto it = blocks.begin(); it != blocks.end(); it++) {
for (size_t pos = 0; pos < it->size(); pos++) {
_bit_data += reverseByte(((*it)[pos]));
if (_reverseOrder == true)
_bit_data += reverseByte(((*it)[pos]));
else
_bit_data += ((*it)[pos]);
}
}
_bit_length = _bit_data.size() * 8;

View File

@ -30,13 +30,15 @@
*/
class AnlogicBitParser: public ConfigBitstreamParser {
public:
AnlogicBitParser(const std::string &filename, bool verbose = false);
AnlogicBitParser(const std::string &filename, bool reverseOrder,
bool verbose = false);
~AnlogicBitParser();
int parse() override;
void displayHeader();
private:
int parseHeader();
bool _reverseOrder;
};
#endif // SRC_ANLOGICBITPARSER_HPP_