77using CC608WriteFn = void (*) (
void *,
unsigned char *, size_t, std::chrono::milliseconds, int);
87 void FlushTxtBuffers(
void);
88 CC608Buffer *GetOutputText(
bool &changed,
int &streamIdx);
90 void SetMode(
int mode);
91 void ClearBuffers(
bool input,
bool output,
int outputStreamIdx = -1);
93 std::chrono::milliseconds timecode,
char type)
override;
97 int Update(
unsigned char *inpos);
98 void Update608Text(std::vector<CC608Text*> *ccbuf,
99 int replace = 0,
int scroll = 0,
100 bool scroll_prsv =
false,
101 int scroll_yoff = 0,
int scroll_ymax = 15,
103 int NumInputBuffers(
bool need_to_lock =
true);
106 bool m_enabled {
false};
108 int m_readPosition {0};
109 int m_writePosition {0};
111 size_t m_maxTextSize {0};
112 std::array<TextContainer,MAXTBUFFER+1> m_inputBuffers {};
114 int m_ccPageNum {0x888};
116 std::array<CC608StateTracker,MAXOUTBUFFERS>
m_state;
void(*)(void *, unsigned char *, size_t, std::chrono::milliseconds, int) CC608WriteFn
static constexpr int8_t MAXTBUFFER
static constexpr int8_t MAXOUTBUFFERS
std::vector< CC608Text * > m_buffers
void SetTTPageNum(int page)
std::array< CC608StateTracker, MAXOUTBUFFERS > m_state
void SetEnabled(bool enable)
CC608StateTracker()=default
CC608Text(QString T, int X, int Y)
CC608Text(const CC608Text &other)=default
std::chrono::milliseconds timecode