diff options
| author | Rafaël Carré <rafael.carre@gmail.com> | 2010-06-23 13:56:08 +0000 |
|---|---|---|
| committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-06-23 13:56:08 +0000 |
| commit | 59fd2b24bd7ad8ff0c18f66ffbf83f7ceefa9d55 (patch) | |
| tree | ab90153c1106641d5973f43b727611d983d7a70f /apps/plugins/text_viewer/tv_reader.c | |
| parent | cf9bba710297617f01c37b613b5ab9fcd97733e3 (diff) | |
| download | rockbox-59fd2b24bd7ad8ff0c18f66ffbf83f7ceefa9d55.zip rockbox-59fd2b24bd7ad8ff0c18f66ffbf83f7ceefa9d55.tar.gz rockbox-59fd2b24bd7ad8ff0c18f66ffbf83f7ceefa9d55.tar.bz2 rockbox-59fd2b24bd7ad8ff0c18f66ffbf83f7ceefa9d55.tar.xz | |
FS#11399 by me: fix r26998 for text_viewer
Restore the old behaviour:
- preferences must be read-write for tv_preferences.c , read-only for
all other modules -> use pointer to const struct
- init functions must get the plugin buffer + its size as arguments for
easily adding new functions -> use pointer to buffer pointer and size
to make allocation easier
- preferences meaning is private to each file and must not be known by
tv_preferences.c -> move tv_check_header_and_footer() back in
tv_window.c; also avoid chaining 3 times the callbacks by calling
tv_set_preferences() only once if more than one preference needs
changing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27089 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/text_viewer/tv_reader.c')
| -rw-r--r-- | apps/plugins/text_viewer/tv_reader.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/apps/plugins/text_viewer/tv_reader.c b/apps/plugins/text_viewer/tv_reader.c index 4e91af9..8403c30 100644 --- a/apps/plugins/text_viewer/tv_reader.c +++ b/apps/plugins/text_viewer/tv_reader.c @@ -170,18 +170,18 @@ static void tv_change_preferences(const struct tv_preferences *oldp) tv_seek(cur_file_pos + cur_start_file_pos - start_file_pos, SEEK_SET); } -bool tv_init_reader(void) +bool tv_init_reader(unsigned char **buf, size_t *size) { - size_t size; - - /* get the plugin buffer */ - reader_buffer = rb->plugin_get_buffer(&size); - - if (size < 2 * TV_MIN_BLOCK_SIZE) + if (*size < 2 * TV_MIN_BLOCK_SIZE) return false; - block_size = size / 2; + block_size = *size / 2; buffer_size = 2 * block_size; + reader_buffer = *buf; + + *buf += buffer_size; + *size -= buffer_size; + tv_add_preferences_change_listner(tv_change_preferences); return true; |