Commit b582c712 authored by Stefan Westerfeld's avatar Stefan Westerfeld

Add conversion utils: byte vector <-> hex string

Signed-off-by: Stefan Westerfeld's avatarStefan Westerfeld <stefan@space.twc.de>
parent 7e8980f5
......@@ -55,3 +55,37 @@ bit_vec_to_str (const vector<int>& bit_vec)
return bit_str;
}
vector<unsigned char>
hex_str_to_vec (const string& str)
{
vector<unsigned char> result;
if ((str.size() % 2) != 0) // even length
return vector<unsigned char>();
for (size_t i = 0; i < str.size() / 2; i++)
{
unsigned char h = from_hex_nibble (str[i * 2]);
unsigned char l = from_hex_nibble (str[i * 2 + 1]);
if (h >= 16 || l >= 16)
return vector<unsigned char>();
result.push_back ((h << 4) + l);
}
return result;
}
string
vec_to_hex_str (const vector<unsigned char>& vec)
{
string s;
for (auto byte : vec)
{
char buffer[256];
sprintf (buffer, "%02x", byte);
s += buffer;
}
return s;
}
......@@ -7,4 +7,7 @@
std::vector<int> bit_str_to_vec (const std::string& bits);
std::string bit_vec_to_str (const std::vector<int>& bit_vec);
std::vector<unsigned char> hex_str_to_vec (const std::string& str);
std::string vec_to_hex_str (const std::vector<unsigned char>& vec);
#endif /* AUDIOWMARK_UTILS_HH */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment