author | pohly <pohly> | 2005-05-05 14:39:33 (UTC) |
---|---|---|
committer | pohly <pohly> | 2005-05-05 14:39:33 (UTC) |
commit | 39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91 (patch) (unidiff) | |
tree | 96e66fdc18dca4d4ab8611133e072f57dea224b9 /noncore/apps/opie-reader/CHM.cpp | |
parent | 279fc4fd1986074acbadd3a8e86fcf3968a8dd5c (diff) | |
download | opie-39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91.zip opie-39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91.tar.gz opie-39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91.tar.bz2 |
new opie-reader sources with support for ArriereGo, Reb input and flite output plugins
Diffstat (limited to 'noncore/apps/opie-reader/CHM.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CHM.cpp | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/noncore/apps/opie-reader/CHM.cpp b/noncore/apps/opie-reader/CHM.cpp index 88d53bf..ace5abc 100644 --- a/noncore/apps/opie-reader/CHM.cpp +++ b/noncore/apps/opie-reader/CHM.cpp | |||
@@ -5,6 +5,9 @@ | |||
5 | #include <stdio.h> | 5 | #include <stdio.h> |
6 | #include <qimage.h> | 6 | #include <qimage.h> |
7 | #include <qpixmap.h> | 7 | #include <qpixmap.h> |
8 | #ifdef USEQPE | ||
9 | #include <qpe/global.h> | ||
10 | #endif | ||
8 | 11 | ||
9 | #ifndef __STATIC | 12 | #ifndef __STATIC |
10 | extern "C" | 13 | extern "C" |
@@ -49,26 +52,30 @@ CHM::~CHM() { | |||
49 | chm_close(chmFile); | 52 | chm_close(chmFile); |
50 | } | 53 | } |
51 | 54 | ||
52 | void CHM::suspend() { | 55 | void CHM::suspend() { |
53 | #ifdef USEQPE | 56 | #ifdef USEQPE |
54 | bSuspended = true; | 57 | bSuspended = true; |
55 | //suspos = gztell(file); | 58 | //suspos = gztell(file); |
56 | chm_close(chmFile); | 59 | chm_close(chmFile); |
57 | chmFile = NULL; | 60 | chmFile = NULL; |
58 | sustime = time(NULL); | 61 | sustime = time(NULL); |
59 | #endif | 62 | #endif |
60 | } | 63 | } |
61 | 64 | ||
62 | void CHM::unsuspend() { | 65 | void CHM::unsuspend() { |
63 | #ifdef USEQPE | 66 | #ifdef USEQPE |
64 | if (bSuspended) | 67 | if (bSuspended) |
65 | { | 68 | { |
66 | bSuspended = false; | 69 | bSuspended = false; |
67 | int delay = time(NULL) - sustime; | 70 | int delay = time(NULL) - sustime; |
68 | if (delay < 10) | 71 | if (delay < 10) |
69 | sleep(10-delay); | 72 | { |
73 | Global::statusMessage("Stalling"); | ||
74 | sleep(10-delay); | ||
75 | } | ||
70 | chmFile = chm_open(fname); | 76 | chmFile = chm_open(fname); |
71 | for (int i = 0; chmFile == NULL && i < 5; i++) { | 77 | for (int i = 0; chmFile == NULL && i < 5; i++) { |
78 | Global::statusMessage("Stalling"); | ||
72 | sleep(5); | 79 | sleep(5); |
73 | chmFile = chm_open(fname); | 80 | chmFile = chm_open(fname); |
74 | } | 81 | } |
@@ -77,7 +84,7 @@ void CHM::unsuspend() { | |||
77 | exit(0); | 84 | exit(0); |
78 | } | 85 | } |
79 | //suspos = gzseek(file, suspos, SEEK_SET); | 86 | //suspos = gzseek(file, suspos, SEEK_SET); |
80 | } | 87 | } |
81 | #endif | 88 | #endif |
82 | } | 89 | } |
83 | 90 | ||
@@ -86,6 +93,7 @@ void CHM::addContent(QString content) { | |||
86 | } | 93 | } |
87 | 94 | ||
88 | void CHM::FillHomeContent() { | 95 | void CHM::FillHomeContent() { |
96 | unsuspend(); | ||
89 | if (chmHHCPath != "") { | 97 | if (chmHHCPath != "") { |
90 | const char *ext; | 98 | const char *ext; |
91 | char buffer[65536]; | 99 | char buffer[65536]; |
@@ -162,6 +170,7 @@ void CHM::FillHomeContent() { | |||
162 | 170 | ||
163 | bool CHM::FillBuffer() | 171 | bool CHM::FillBuffer() |
164 | { | 172 | { |
173 | unsuspend(); | ||
165 | bool bRetVal = false; | 174 | bool bRetVal = false; |
166 | char buffer[65536]; | 175 | char buffer[65536]; |
167 | int swath, offset; | 176 | int swath, offset; |
@@ -196,6 +205,7 @@ bool CHM::FillBuffer() | |||
196 | } | 205 | } |
197 | 206 | ||
198 | bool CHM::FillContent() { | 207 | bool CHM::FillContent() { |
208 | unsuspend(); | ||
199 | bool bRetVal = false; | 209 | bool bRetVal = false; |
200 | if (chmPath != "") { | 210 | if (chmPath != "") { |
201 | /* try to find the file */ | 211 | /* try to find the file */ |
@@ -239,7 +249,8 @@ bool CHM::FillContent() { | |||
239 | return bRetVal; | 249 | return bRetVal; |
240 | } | 250 | } |
241 | 251 | ||
242 | bool CHM::getFile(const QString& href) { | 252 | bool CHM::getFile(const QString& _href, const QString& ) { |
253 | QString href = "/" + _href; | ||
243 | qDebug("Got:%s", (const char*)href); | 254 | qDebug("Got:%s", (const char*)href); |
244 | bool bRetVal = false; | 255 | bool bRetVal = false; |
245 | QString temp = chmPath; | 256 | QString temp = chmPath; |
@@ -319,11 +330,11 @@ int CHM::OpenFile(const char *src) { | |||
319 | int CHM::getch() { | 330 | int CHM::getch() { |
320 | if ( (bufpos+1) >= chmBuffer.length() ) | 331 | if ( (bufpos+1) >= chmBuffer.length() ) |
321 | return EOF; | 332 | return EOF; |
322 | #ifdef _WINDOWS | 333 | #ifdef _WINDOWS |
323 | QChar letter = chmBuffer.at(bufpos++); | 334 | QChar letter = chmBuffer.at(bufpos++); |
324 | #else | 335 | #else |
325 | QChar letter = chmBuffer[bufpos++]; | 336 | QChar letter = chmBuffer[bufpos++]; |
326 | #endif | 337 | #endif |
327 | return (int)(char)letter; | 338 | return (int)(char)letter; |
328 | } | 339 | } |
329 | 340 | ||