summaryrefslogtreecommitdiff
path: root/apps/plugins/text_viewer/tv_reader.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-06-23 13:56:08 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-06-23 13:56:08 +0000
commit59fd2b24bd7ad8ff0c18f66ffbf83f7ceefa9d55 (patch)
treeab90153c1106641d5973f43b727611d983d7a70f /apps/plugins/text_viewer/tv_reader.c
parentcf9bba710297617f01c37b613b5ab9fcd97733e3 (diff)
downloadrockbox-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.c16
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;