summaryrefslogtreecommitdiff
path: root/apps/plugins/textviewer/textviewer.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/textviewer/textviewer.c')
-rw-r--r--apps/plugins/textviewer/textviewer.c232
1 files changed, 0 insertions, 232 deletions
diff --git a/apps/plugins/textviewer/textviewer.c b/apps/plugins/textviewer/textviewer.c
deleted file mode 100644
index 289c741f96..0000000000
--- a/apps/plugins/textviewer/textviewer.c
+++ /dev/null
@@ -1,232 +0,0 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2002 Gilles Roux
11 * 2003 Garrett Derner
12 * 2010 Yoshihisa Uchida
13 *
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.
18 *
19 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20 * KIND, either express or implied.
21 *
22 ****************************************************************************/
23#include "plugin.h"
24#include "textviewer.h"
25#include "tv_bookmark.h"
26#include "tv_button.h"
27#include "tv_menu.h"
28#include "tv_readtext.h"
29#include "tv_screen.h"
30#include "tv_settings.h"
31
32PLUGIN_HEADER
33
34static bool viewer_init(const unsigned char *file)
35{
36 viewer_init_screen();
37 viewer_init_buffer();
38
39 if (!viewer_open(file))
40 return false;
41
42 /* Init mac_text value used in processing buffer */
43 mac_text = false;
44
45 return true;
46}
47
48static void viewer_exit(void *parameter)
49{
50 (void)parameter;
51
52 /* save preference and bookmarks */
53 if (!viewer_save_settings())
54 rb->splash(HZ, "Can't save preference and bookmarks.");
55
56 viewer_close();
57 viewer_finalize_screen();
58}
59
60enum plugin_status plugin_start(const void* file)
61{
62 int button, i, ok;
63 int lastbutton = BUTTON_NONE;
64 bool autoscroll = false;
65 long old_tick;
66
67 old_tick = *rb->current_tick;
68
69 if (!file)
70 return PLUGIN_ERROR;
71
72 ok = viewer_init(file);
73 if (!ok) {
74 rb->splash(HZ, "Error opening file.");
75 return PLUGIN_ERROR;
76 }
77
78 viewer_load_settings(); /* load the preferences and bookmark */
79
80#if LCD_DEPTH > 1
81 rb->lcd_set_backdrop(NULL);
82#endif
83
84 viewer_draw();
85
86 while (!done) {
87
88 if (autoscroll)
89 {
90 if(old_tick <= *rb->current_tick - (110-prefs.autoscroll_speed*10))
91 {
92 viewer_scroll_down(VIEWER_SCROLL_LINE);
93 viewer_draw();
94 old_tick = *rb->current_tick;
95 }
96 }
97
98 button = rb->button_get_w_tmo(HZ/10);
99
100 switch (button) {
101 case VIEWER_MENU:
102#ifdef VIEWER_MENU2
103 case VIEWER_MENU2:
104#endif
105 viewer_menu();
106 break;
107
108 case VIEWER_AUTOSCROLL:
109#ifdef VIEWER_AUTOSCROLL_PRE
110 if (lastbutton != VIEWER_AUTOSCROLL_PRE)
111 break;
112#endif
113 autoscroll = !autoscroll;
114 break;
115
116 case VIEWER_SCROLL_UP:
117 case VIEWER_SCROLL_UP | BUTTON_REPEAT:
118#ifdef VIEWER_SCROLL_UP2
119 case VIEWER_SCROLL_UP2:
120 case VIEWER_SCROLL_UP2 | BUTTON_REPEAT:
121#endif
122 viewer_scroll_up(VIEWER_SCROLL_PREFS);
123 viewer_draw();
124 old_tick = *rb->current_tick;
125 break;
126
127 case VIEWER_SCROLL_DOWN:
128 case VIEWER_SCROLL_DOWN | BUTTON_REPEAT:
129#ifdef VIEWER_PAGE_DOWN2
130 case VIEWER_SCROLL_DOWN2:
131 case VIEWER_SCROLL_DOWN2 | BUTTON_REPEAT:
132#endif
133 viewer_scroll_down(VIEWER_SCROLL_PREFS);
134 viewer_draw();
135 old_tick = *rb->current_tick;
136 break;
137
138 case VIEWER_SCREEN_LEFT:
139 case VIEWER_SCREEN_LEFT | BUTTON_REPEAT:
140 if (prefs.view_mode == WIDE)
141 {
142 /* Screen left */
143 viewer_scroll_left(VIEWER_SCROLL_SCREEN);
144 }
145 else { /* prefs.view_mode == NARROW */
146 /* Top of file */
147 viewer_top();
148 }
149 viewer_draw();
150 break;
151
152 case VIEWER_SCREEN_RIGHT:
153 case VIEWER_SCREEN_RIGHT | BUTTON_REPEAT:
154 if (prefs.view_mode == WIDE)
155 {
156 /* Screen right */
157 viewer_scrol_right(VIEWER_SCROLL_SCREEN);
158 }
159 else { /* prefs.view_mode == NARROW */
160 /* Bottom of file */
161 viewer_bottom();
162 }
163 viewer_draw();
164 break;
165
166#ifdef VIEWER_LINE_UP
167 case VIEWER_LINE_UP:
168 case VIEWER_LINE_UP | BUTTON_REPEAT:
169 /* Scroll up one line */
170 viewer_scroll_up(VIEWER_SCROLL_LINE);
171 viewer_draw();
172 old_tick = *rb->current_tick;
173 break;
174
175 case VIEWER_LINE_DOWN:
176 case VIEWER_LINE_DOWN | BUTTON_REPEAT:
177 /* Scroll down one line */
178 viewer_scroll_down(VIEWER_SCROLL_LINE);
179 viewer_draw();
180 old_tick = *rb->current_tick;
181 break;
182#endif
183#ifdef VIEWER_COLUMN_LEFT
184 case VIEWER_COLUMN_LEFT:
185 case VIEWER_COLUMN_LEFT | BUTTON_REPEAT:
186 if (prefs.view_mode == WIDE)
187 {
188 viewer_scroll_left(VIEWER_SCROLL_COLUMN);
189 viewer_draw();
190 }
191 break;
192
193 case VIEWER_COLUMN_RIGHT:
194 case VIEWER_COLUMN_RIGHT | BUTTON_REPEAT:
195 if (prefs.view_mode == WIDE)
196 {
197 viewer_scroll_right(VIEWER_SCROLL_COLUMN);
198 viewer_draw();
199 }
200 break;
201#endif
202
203#ifdef VIEWER_RC_QUIT
204 case VIEWER_RC_QUIT:
205#endif
206 case VIEWER_QUIT:
207#ifdef VIEWER_QUIT2
208 case VIEWER_QUIT2:
209#endif
210 viewer_exit(NULL);
211 done = true;
212 break;
213
214 case VIEWER_BOOKMARK:
215 viewer_add_remove_bookmark(cpage, cline);
216 viewer_draw();
217 break;
218
219 default:
220 if (rb->default_event_handler_ex(button, viewer_exit, NULL)
221 == SYS_USB_CONNECTED)
222 return PLUGIN_USB_CONNECTED;
223 break;
224 }
225 if (button != BUTTON_NONE)
226 {
227 lastbutton = button;
228 rb->yield();
229 }
230 }
231 return PLUGIN_OK;
232}