Lines Matching refs:screen
243 struct Screen screen[2];
302 ctx->screen[0].row_used = 0;
303 ctx->screen[1].row_used = 0;
327 static void write_char(CCaptionSubContext *ctx, struct Screen *screen, char ch)
330 char *row = screen->characters[ctx->cursor_row];
331 char *font = screen->fonts[ctx->cursor_row];
332 char *color = screen->colors[ctx->cursor_row];
333 char *bg = screen->bgs[ctx->cursor_row];
334 char *charset = screen->charsets[ctx->cursor_row];
352 av_log(ctx, AV_LOG_WARNING, "Data Ignored since exceeding screen width\n");
400 // use Inactive screen
401 return ctx->screen + !ctx->active_screen;
405 // use active screen
406 return ctx->screen + ctx->active_screen;
414 struct Screen *screen;
420 screen = get_writing_screen(ctx);
430 UNSET_FLAG(screen->row_used, i);
433 for (i = 0; i < keep_lines && screen->row_used; i++) {
436 memcpy(screen->characters[i_row], screen->characters[i_row+1], SCREEN_COLUMNS);
437 memcpy(screen->colors[i_row], screen->colors[i_row+1], SCREEN_COLUMNS);
438 memcpy(screen->bgs[i_row], screen->bgs[i_row+1], SCREEN_COLUMNS);
439 memcpy(screen->fonts[i_row], screen->fonts[i_row+1], SCREEN_COLUMNS);
440 memcpy(screen->charsets[i_row], screen->charsets[i_row+1], SCREEN_COLUMNS);
441 if (CHECK_FLAG(screen->row_used, i_row + 1))
442 SET_FLAG(screen->row_used, i_row);
445 UNSET_FLAG(screen->row_used, ctx->cursor_row);
451 struct Screen *screen = ctx->screen + ctx->active_screen;
459 for (i = 0; screen->row_used && i < SCREEN_ROWS; i++)
461 if (CHECK_FLAG(screen->row_used, i)) {
462 const char *row = screen->characters[i];
463 const char *charset = screen->charsets[i];
472 for (i = 0; screen->row_used && i < SCREEN_ROWS; i++)
474 if (CHECK_FLAG(screen->row_used, i)) {
475 const char *row = screen->characters[i];
476 const char *font = screen->fonts[i];
477 const char *bg = screen->bgs[i];
478 const char *color = screen->colors[i];
479 const char *charset = screen->charsets[i];
596 if (screen->row_used && ctx->buffer[bidx].len >= 2) {
620 struct Screen *screen = get_writing_screen(ctx);
628 SET_FLAG(screen->row_used, ctx->cursor_row);
629 write_char(ctx, screen, ' ');
638 struct Screen *screen = get_writing_screen(ctx);
655 write_char(ctx, screen, ' ');
661 struct Screen *screen = ctx->screen + ctx->active_screen;
664 // In buffered mode, keep writing to screen until it is wiped.
669 screen->row_used = 0;
673 // stay on the screen.
687 // capture what was already on the screen since the last EOC.
703 struct Screen *screen = get_writing_screen(ctx);
704 write_char(ctx, screen, 0);
709 struct Screen *screen = get_writing_screen(ctx);
711 SET_FLAG(screen->row_used, ctx->cursor_row);
729 write_char(ctx, screen, hi);
734 write_char(ctx, screen, lo);
736 write_char(ctx, screen, 0);
804 // Only in realtime mode. In buffered mode, we re-use the inactive screen
807 struct Screen *screen = ctx->screen + !ctx->active_screen;
808 screen->row_used = 0;