mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Cleanup some code
This commit is contained in:
parent
a08b99f40f
commit
49e025b565
@ -933,22 +933,20 @@ parse_cued_text(std::string_view src, Marks &marks, std::wstring_view dest) {
|
|||||||
auto pos = src.find('\0');
|
auto pos = src.find('\0');
|
||||||
size_t limit = pos == std::string_view::npos ? src.size() : pos;
|
size_t limit = pos == std::string_view::npos ? src.size() : pos;
|
||||||
if (limit) {
|
if (limit) {
|
||||||
dest_pos += decode_into(
|
dest_pos += decode_into(src.substr(0, limit), dest.substr(dest_pos, dest.size() - dest_pos));
|
||||||
std::string_view(src.data(), limit),
|
src = src.substr(limit, src.size() - limit);
|
||||||
std::wstring_view(dest.data() + dest_pos, dest.size() - dest_pos));
|
|
||||||
src = std::string_view(src.data() + limit, src.size() - limit);
|
|
||||||
}
|
}
|
||||||
if (pos != std::string_view::npos) {
|
if (pos != std::string_view::npos) {
|
||||||
src = std::string_view(src.data() + 1, src.size() - 1);
|
src = src.substr(1, src.size() - 1);
|
||||||
if (src.size() >= 4) {
|
if (src.size() >= 4) {
|
||||||
uint32_t mark = *((uint32_t*)src.data());
|
uint32_t mark = *((uint32_t*)src.data());
|
||||||
marks.emplace_back(mark, (uint32_t)dest_pos);
|
marks.emplace_back(mark, (uint32_t)dest_pos);
|
||||||
src = std::string_view(src.data() + 4, src.size() - 4);
|
src = src.substr(4, src.size() - 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*((wchar_t*)dest.data() + dest_pos) = 0; // ensure NULL termination
|
*((wchar_t*)dest.data() + dest_pos) = 0; // ensure NULL termination
|
||||||
return std::wstring_view(dest.data(), dest_pos);
|
return dest.substr(0, dest_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -987,16 +985,16 @@ handle_speak(id_type cmd_id, std::vector<std::wstring_view> &parts) {
|
|||||||
text = parse_cued_text(src, marks, dest);
|
text = parse_cued_text(src, marks, dest);
|
||||||
} else {
|
} else {
|
||||||
size_t n = decode_into(src, dest);
|
size_t n = decode_into(src, dest);
|
||||||
*(buf.data() + n) = 0; // ensure null termination
|
buf[n] = 0; // ensure null termination
|
||||||
text = std::wstring_view(buf.data(), n);
|
text = std::wstring_view(buf.data(), n);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
address = join(parts);
|
address = join(parts);
|
||||||
if (address.size() == 0) throw std::string("Address missing");
|
if (address.size() == 0) throw std::string("Address missing");
|
||||||
buf.reserve(address.size() + 1);
|
buf.reserve(address.size() + 1);
|
||||||
text = std::wstring_view(buf.data(), address.size() + 1);
|
text = std::wstring_view(buf.data(), address.size());
|
||||||
memcpy(buf.data(), address.c_str(), address.size());
|
address.copy(buf.data(), address.size());
|
||||||
*(buf.data() + address.size()) = 0; // ensure null termination
|
buf[address.size()] = 0; // null terminate
|
||||||
}
|
}
|
||||||
sx.speak(cmd_id, text, is_ssml, is_cued, std::move(buf), std::move(marks));
|
sx.speak(cmd_id, text, is_ssml, is_cued, std::move(buf), std::move(marks));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user