%PDF- %PDF-
| Direktori : /lib/calibre/calibre/gui2/tts/ |
| Current File : //lib/calibre/calibre/gui2/tts/common.py |
#!/usr/bin/env python3
# License: GPL v3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
from enum import Enum, auto
class EventType(Enum):
mark = auto()
begin = auto()
end = auto()
cancel = auto()
pause = auto()
resume = auto()
class Event:
def __init__(self, etype, data=None):
self.type = etype
self.data = data
def __repr__(self):
return f'Event(type={self.type}, data={self.data})'
def add_markup(text_parts, mark_template, escape_marked_text, chunk_size=0):
buf = []
size = 0
for x in text_parts:
if isinstance(x, int):
item = mark_template.format(x)
else:
item = escape_marked_text(x)
sz = len(item)
if chunk_size and size + sz > chunk_size:
yield ''.join(buf).strip()
size = 0
buf = []
size += sz
buf.append(item)
if size:
yield ''.join(buf).strip()