1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2002 Gilles Roux
12 * 2010 Yoshihisa Uchida
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20 * KIND, either express or implied.
22 ****************************************************************************/
25 #include "tv_reader.h"
26 #include "tv_text_processor.h"
27 #include "tv_text_reader.h"
30 static bool get_double_blocks
;
32 bool tv_init_text_reader(unsigned char **buf
, size_t *size
)
34 return tv_init_text_processor(buf
, size
) && tv_init_pager(buf
, size
);
37 void tv_finalize_text_reader(void)
42 void tv_set_read_conditions(int blocks
, int width
)
44 tv_set_creation_conditions(blocks
, width
);
47 off_t
tv_get_total_text_size(void)
49 return tv_get_file_size();
52 bool tv_get_next_line(const unsigned char **buf
)
55 const unsigned char *buffer
= tv_get_buffer(&bufsize
);
60 tv_create_formed_text(buffer
, bufsize
, get_block
, get_double_blocks
, buf
));
66 void tv_read_start(int block
, bool is_multi
)
69 get_double_blocks
= is_multi
;
70 tv_reset_line_positions();
75 return tv_get_line_positions(0);
78 void tv_seek_top(void)
80 tv_move_screen(0, 0, SEEK_SET
);