12 stream(fopen(filename,
"wb"))
19 stream(fopen(filename.c_str(),
"wb"))
35 fwrite(ptr, size, nmemb,
stream);
37 assert(fwrite(ptr, size, nmemb,
stream) == nmemb);
42 void LcfWriter::Write<uint8_t>(uint8_t val) {
47 void LcfWriter::Write<int16_t>(int16_t val) {
53 void LcfWriter::Write<uint32_t>(uint32_t val) {
59 uint32_t value = (uint32_t) val;
60 for (
int i = 28; i >= 0; i -= 7)
61 if (value >= (1U << i) || i == 0)
62 Write<uint8_t>((uint8_t)(((value >> i) & 0x7F) | (i > 0 ? 0x80 : 0)));
66 void LcfWriter::Write<int>(
int val) {
71 void LcfWriter::Write<bool>(
bool val) {
72 uint8_t x = val ? 1 : 0;
77 void LcfWriter::Write<double>(
double val) {
83 void LcfWriter::Write<bool>(
const std::vector<bool>& buffer) {
84 std::vector<bool>::const_iterator it;
85 for (it = buffer.begin(); it != buffer.end(); it++) {
86 uint8_t val = *it ? 1 : 0;
92 void LcfWriter::Write<uint8_t>(
const std::vector<uint8_t>& buffer) {
93 Write(&buffer.front(), 1, buffer.size());
97 void LcfWriter::Write<int16_t>(
const std::vector<int16_t>& buffer) {
98 std::vector<int16_t>::const_iterator it;
99 for (it = buffer.begin(); it != buffer.end(); it++)
104 void LcfWriter::Write<uint32_t>(
const std::vector<uint32_t>& buffer) {
105 std::vector<uint32_t>::const_iterator it;
106 for (it = buffer.begin(); it != buffer.end(); it++)
111 std::string str =
Decode(_str);
113 Write(&*str.begin(), 1, str.size());
125 #ifdef WORDS_BIGENDIAN
135 ((ui<<8) & 0x00FF0000) |
136 ((ui>>8) & 0x0000FF00) |
142 uint32_t *p =
reinterpret_cast<uint32_t *
>(&d);
std::string Decode(const std::string &str_to_encode)
std::string Recode(const std::string &str_to_encode, const std::string &source_encoding)
void Write(const void *ptr, size_t size, size_t nmemb)
LcfWriter(const char *filename, std::string encoding="")
static void SwapByteOrder(int16_t &us)