Author |
Message |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 15.11.2009 19:49 |
Quote |
|
Я написал плагин для DjVu, вот исходники:
http://www.bibles.org.uk/libdjvu-1.1.tar.gz
а вот V3update.bin в котором он инсталирован:
http://www.bibles.org.uk/hanlin-v3-firmware.zip
Преимущества по сравнению со стандартным:
возможность "zoom" (до бесконечности и передвижения окна по странице, т.е. просмотреть можно каждую пылинку... при этом параметры шкалирования и передвижения можно менять с помощью меню.
можно переключаться между битональным и композитным ("цветным") способами вывода на экран. Это нужно потому что цветной метод намного медленнее но существует не мало книг (почти весь Google Books + archive.org) которые нуждаются в этом. Но если книга сканирована правильно (битонально) то конечно нужно использовать только битональный метод. |
|
|
|
 |
MM Бывалый участник форума

Joined: 17 Dec 2007 Posts: 139
Location: Ukraine
|
Posted: 15.11.2009 23:15 |
Quote |
|
Давно не открывал книги формата djvu, в основном перешел на fb2, и всю интересующую литературу ищу в этом формате. Надежность не было времени оценивать, в основном смотрел на функционал. В этой новой читалки, радует, наконец, то убрана полоса внизу, на которой отображался номер страницы, теперь все место на экране пущено на отображения страницы книги.
Замечены следующие багги:
- В альбомном режиме при использовании кнопок листания смотреть можно только верхнюю половинку страницы (выходит, чтобы увидеть вторую половинку страницы нужно пользоваться кнопками сдвига? – не совсем правильно). Да, и то самое касается книжной ориентации страницы, если нижняя часть страницы не влезает на экран
- Меню не закрывается после вызова пунктов, связанных с шагом шкалирования (пункты меню 3-8 ), и их снова можно вызвать. В таком случае неплохо бы было в конце пункта проставить какие-то единицы измерения, значение которых менялось бы при вызове данного пункта
- Было бы логичнее в меню заменить шаг и шаг шкалирования на шаг изменения масштаба и шаг сдвига, так понятней
Один раз во время листания читалка вылетела на книжную полку. Сдвиг/зум страницы очень быстрый, листания помедленнее. Иногда путаешься с управлениям в альбомном режиме, какая клавиша вперед, а какая назад: в кулридере 9 вперед, 0 назад, здесь - наоборот 0 вперед, 9 назад.
Когда открывал первую книгу в формате djvu, вместо обложки отображался какой-то мусор, потом понял: долгим нажатием минуса поменял режим с B&W на COLOUR и все стало нормально.
Ну и на последок пожелания на счет управления: хотелось бы сдвиг страницы перенести на кнопки 2678 (по типу WASD на клавиатуре), ну и поменять клавиши листания в альбомном режиме, сделать как в кулридере. |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 15.11.2009 23:50 |
Quote |
|
Спасибо за полезные замечания.
Во-первых, этот djvu который вызвал вылет на книжную полку --- можно мне отправить его на tigran@bibles.org.uk? --- я проверю, может действительно баг...
Во-вторых, насчёт меню --- согласен, я тоже долго мучался чтобы понять какое значение возвращать в функции OnMenuAction() --- согласно интерфэйсу должно быть "1 - action has been processed in plugin and viewer should flush the screen" --- но на самом деле фокус остаётся в меню, т.е. нужно опять нажимать ОК или Cancel чтобы из него выйти. Тогда я решил возвращать значение "2" --- вообще ничего не менять тем самым давая знать пользователю что нужно ещё выйти из меню.
Насчёт скорости листания --- кажется это близко к пределу (хотя есть идеи как ускорить но наверное не сработает, но я попробую). В любом случае, мой вариант намного (зависит от типа файла, минимум на 20%, максимум в 3-4 раза) быстрее чем листание старой версией.
Насчёт того чтобы симулировать "логические страницы" (в смысле чтобы 0 и 9 передвигались по данной странице а когда уткнутся в конец то перелистывали её) --- это не баг, или точнее, далеко не очевидно что это баг. Ну представьте себе что вы настроили (путём разных манипуляций зума и сдвига) себе оптимальное положение окна на странице и хотите чтобы _все_ страницы открывались именно в этом окне? Тогда предлагаемый вами вариант всё испортит, т.е. добавит ненужные нажатия клавиш чтобы снова поставить окно туда куда надо.
Posted after 16 minutes 47 seconds:
Я забыл добавить что исходников программы "viewer" (т.е. интерфэйса между книжной полкой и собственно моим плагин-ом) у меня, к сожалению, нет, так что я могу лишь "догадываться" о поведении интерфэйса. Если кто знает как именно заставить OnMenuAction() _выйти_ из состояния меню (т.е. чтобы не нужно было снова нажимать OK/Cancel для выхода) то, пожалуйста, сообщите мне и я буду рад исправить это дело.
(Я ведь не GUI-программист, а Linux kernel hacker; собственно этот djvu viewer моя первая GUI-программа, не считая симулятора термоядерных реакций на поверхности нейтронных звёзд написанного лет 18 назад  |
|
|
|
 |
 torbich Член клуба The eBook

Joined: 09 Oct 2007 Posts: 874
Location: Мексика (Киев, Украина)
|
Posted: 16.11.2009 00:33 |
Quote |
|
tigran123 wrote: |
Насчёт того чтобы симулировать "логические страницы" (в смысле чтобы 0 и 9 передвигались по данной странице а когда уткнутся в конец то перелистывали её) --- это не баг, или точнее, далеко не очевидно что это баг. Ну представьте себе что вы настроили (путём разных манипуляций зума и сдвига) себе оптимальное положение окна на странице и хотите чтобы _все_ страницы открывались именно в этом окне? Тогда предлагаемый вами вариант всё испортит, т.е. добавит ненужные нажатия клавиш чтобы снова поставить окно туда куда надо.
|
В чем-то Вы правы, но в ландшафтном варианте симулировать логические страницы точно нужно. Возможно, стоит сделать опцию? Симулировать логические страницы / фиксировать окно.
Кстати, фиксированное окно в ландшафте сбивается - при переходе на следующую страницу забывается, на сколько на предыдущей было сдвинуто влево/вправо. _________________ Nook Simple Touch, Sony T1, Pocketbook 602, LBook V3, iPaq 1940, HTC Wildfire |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 16.11.2009 01:13 |
Quote |
|
torbich wrote: |
В чем-то Вы правы, но в ландшафтном варианте симулировать логические страницы точно нужно. Возможно, стоит сделать опцию? Симулировать логические страницы / фиксировать окно.
|
Согласен. Проблема с меню в том что количество опций не может превысить 8 (поэтому я стёр ненужные 3) --- кстати, в старой версии максимум 9 но в последней почему-то 8... А вложенные меню (т.е. submenus) почему-то не сработали. Но может виноват я
torbich wrote: |
Кстати, фиксированное окно в ландшафте сбивается - при переходе на следующую страницу забывается, на сколько на предыдущей было сдвинуто влево/вправо. |
А вот это уже настоящий баг -- да, Вы правы (только что проверил) --- спасибо, обязательно постараюсь починить.
Posted after 22 minutes 37 seconds:
Причина бага ясна --- сначала я сохранял позицию окна между страницами (естественно), но когда тестировал на djvu файле со слишком разными размерами страниц то иногда окно предыдущей страницы оказывалось _больше_ всей следующей страницы (а это --- "конец" и я, совсем позабыв зачем сохранял позицию окна просто занулил начальное положение.
Можно сделать так --- понятие "положение окна" на странице переопределим как "относительное", в смысле "пропорций". Т.е. перелистывая страницу придётся сделать преобразование масштаба страницы а не только начальной позиции окна, чтобы сохранить пропорции и чтобы окно не вылезло за пределы... |
|
|
|
 |
nenin Активный участник форума

Joined: 20 Oct 2006 Posts: 198
Location: Минск
|
Posted: 16.11.2009 04:22 |
Quote |
|
tigran123 , Вам бы с lunohodом скооперироваться и в OI djvu прикрутить... |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 16.11.2009 12:04 |
Quote |
|
Так, за ночь всё прояснилось! Я ведь написал эту программу всего за полтора дня и в голове всё перепуталось... Теперь всё стало ясным как день и я понял (вдобавок к _истинной_ причине найденного ММ бага) почему зоом-аут (т.е. уровень масштаба < 1.0) не работал прежде. Всё это я починил (но пока не поставил новый V3update.bin --- дайте мне день/два всё протестировать...) и наверное даже "вылет в книжную полку" тоже починил (ибо стало ясным в какой ситуации это могло произойти с ММ, но конечно то мог быть и иной баг которого я пока не заметил).
Кроме того, мне (в пятницу) поступило предложение от одного производителя ибук-ридеров чтобы я возглавил их "development team" и помог сделать нечто гораздо лучшее чем Hanlin V3. Во-первых, я ещё не согласился (может Jinke поделится исходниками, тогда продолжу помогать им --- не люблю я начинать "всё с начала"), а во-вторых я всё равно люблю доводить дела до конца и конечно сделаю все исправления/улучшения в этой версии (а потом заново перепишу под их ("иного производителя") интерфэйс если соглашусь на условия), если время будет то можно и под OI переписать, например под кулридеровский GUI).
В общем, как будет готова новая версия я дам знать на этом форуме... _________________ http://www.bibles.org.uk |
|
|
|
 |
 Ben.Chi Член клуба The eBook

Joined: 29 May 2008 Posts: 565
Location: Чита, Россия
|
Posted: 16.11.2009 12:09 |
Quote |
|
tigran123 wrote: | поступило предложение от одного производителя ибук-ридеров |
ага.. про Lbook не забывай. Читалку или автономной сделай или в прошивку встраивай. Народ тебя не забудет  _________________ Hanlin_V3, Hanlin_V3ext, iPad2_64 Wi-Fi+3G |
|
|
|
 |
 Psychedelic Постоянный участник форума

Joined: 22 Dec 2007 Posts: 141
|
Posted: 16.11.2009 16:53 |
Quote |
|
tigran123 wrote: | Я ведь написал эту программу всего за полтора дня и в голове всё перепуталось... |
О да такие нереальные сроки мне знакомы Только вот разбиратся с V3 пришлось вам с месяц до этого + кем то написанный просмоторщик djvu..
За плагин спасибо. |
|
|
|
 |
Lonely Raven Активный участник форума

Joined: 09 Apr 2008 Posts: 187
Location: Киев
|
Posted: 16.11.2009 19:40 |
Quote |
|
tigran123
Спасибо за плагин. Не могли бы вы скентоваться с уважаемым biv_sumy, он в этой:
http://www.the-ebook.org/forum/viewtopic.php?t=7998&start=1540
теме выпекает самопальные прошивки с интегрированным последним CoolReaderom и прочими вкусностями и выпустить совместную прошивку с вашим DjVu плагином. |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 16.11.2009 19:56 |
Quote |
|
"скентоваться"? Я уехал из СССР в начале 1990-х и за это время русский язык видимо сильно изменился. Сейчас я наверное выгляжу как тот русский иммигрант слушающий "поле" на грам-пластинке в "Короне Российской империи"
А если серьёзно, конечно я не против того, чтобы он включил мой плагин в его "прошивку". |
|
|
|
 |
Lonely Raven Активный участник форума

Joined: 09 Apr 2008 Posts: 187
Location: Киев
|
Posted: 16.11.2009 20:24 |
Quote |
|
tigran123
Та ладно вам. "Скентоваться" прилагательное которое мы употребляли ещё в школе, в годах так восьмидесятых прошлого века. http://ru.wiktionary.org/wiki/кент
Ну раз не против, то хм-м может письмецо ему черкнете, али напишете в той теме. |
|
|
|
 |
 Psychedelic Постоянный участник форума

Joined: 22 Dec 2007 Posts: 141
|
Posted: 16.11.2009 20:25 |
Quote |
|
tigran123 wrote: | "скентоваться"? Я уехал из СССР в начале 1990-х и за это время русский язык видимо сильно изменился. Сейчас я наверное выгляжу как тот русский иммигрант слушающий "поле" на грам-пластинке в "Короне Российской империи"
А если серьёзно, конечно я не против того, чтобы он включил мой плагин в его "прошивку". |
Cлово скентоватся (кент) и раньше было, до 90x. Просто вы его не знали.  |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
|
|
|
 |
 Ben.Chi Член клуба The eBook

Joined: 29 May 2008 Posts: 565
Location: Чита, Россия
|
Posted: 17.11.2009 03:49 |
Quote |
|
tigran123 wrote: | выложил стабильную версию: |
пожелание..
Хорошо бы плагинчик вставлять в последнюю бэту Баггинса. В этом случае бОльший вариант, что люди посмотрят работу новой дежавю-читалки. _________________ Hanlin_V3, Hanlin_V3ext, iPad2_64 Wi-Fi+3G |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 17.11.2009 12:17 |
Quote |
|
Да, Баггинс уже мне написал что вставит её.
Вчера вечером я попробовал сам попользоватся ею и сразу же понял насколько важным было замечание ММ и torbich о необходимости передвижения окна по странице через Next/Prev page а не только маленькими шажками "сдвига". Они абсолютно правы --- без этого чтение - мука. Всё остальное над чем я уже начал работать (page cache, async page readahead in a separate thread, better conserving battery power etc etc) отходит на задний план. Сначала научим читалку ходить не на четвереньках, а потом уже научим летать
Кстати, добавлю ещё опцию "две колонки" в которой подойдя к нижнему краю страницы левой колонки окно перемещается вправо и к верхнему краю и только оттуда (снова упершись в нижний край) перелистывается страница. Тогда можно энциклопедии удобно читать (они обычно в две колонки набраны).
Posted after 8 minutes 31 seconds:
Кроме того, Баггинс объяснил мне что делать в OnMenuAction() чтобы возвратиться из меню без необходимости нажимать OK или Cancel лишний раз. Так что этот момент уже тоже исправлен. И клавиши 0/9 в ландшафте сделал как в CoolReader, т.е. 9 вперёд, 0 назад а не наоборот.
Last edited by tigran123 on 17.11.2009 12:57; edited 1 time in total |
|
|
|
 |
 Ben.Chi Член клуба The eBook

Joined: 29 May 2008 Posts: 565
Location: Чита, Россия
|
Posted: 17.11.2009 12:50 |
Quote |
|
tigran123
отлично! значит есть вероятность, что в будущем LBook будет не только фб2 хорошо читать, но и дежавю. Ждем. _________________ Hanlin_V3, Hanlin_V3ext, iPad2_64 Wi-Fi+3G |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 17.11.2009 19:18 |
Quote |
|
Я не поставил пока новую версию, но мне не терпится сообщить "народу" что читалка уже изменилась практически "до неузнаваемости", т.е. намного удобнее и правильнее чем было 2 дня назад
Это я к тому чтобы люди "не привыкали" к старым клавишам --- теперь всё гораздо интуитивнее и проще, и функций больше. Но чтобы "лицом в грязь" не ударить я хочу всё протестировать серьёзно а потом уже делать релиз. Кроме того, руки чешутся доделать "продвинутую" функцию "asynchronous page readahead via threads". libpthread.so на ридере стоит, следовательно в принципе осуществимо --- тогда можно перешагнуть барьер скорости по листанию страниц синхронного метода (т.е. пока человек читает одну страницу другой "thread" читает следующую... просто синхронизацию доступа к критической секции кода (т.е. всё связанное с djvu_context) нужно очень внимательно и грамотно сделать, иначе будет кошмар неуправляемый...)
И страничку специальную добавил:
http://www.bibles.org.uk/libdjvu
Туда буду выкладывать исходники и готовый V3update.bin. |
|
|
|
 |
 tigran123 Кандидат в члены клуба The eBook

Joined: 05 Nov 2009 Posts: 305
Location: London
|
Posted: 18.11.2009 15:47 |
Quote |
|
Обновил прошивку (достаточно много улучшений и клавишы работают интуитивно, т.е. даже жене объяснять не пришлось --- сама догадалась и описал свойста программы здесь:
http://www.bibles.org.uk/libdjvu
Два известных бага:
1. Попытка перейти вперёд за пределы последней страницы в файле приводит к потере вертикального положения на текущей странице (т.е. придётся снова нажимать назад чтобы востановить --- починю скоро)
2. Долгое нажатие 0/9 в ландшафте переходит на 10 страниц но не туда куда надо (т.е. вместо назад -> вперёд и наоборот). Тоже починю... _________________ http://www.bibles.org.uk |
|
|
|
 |
MM Бывалый участник форума

Joined: 17 Dec 2007 Posts: 139
Location: Ukraine
|
Posted: 18.11.2009 20:52 |
Quote |
|
Замечания \ просьбы \ пожелания следующие:
1. Если страница не влезает на экран, то при перелистывании отображалась только та нижняя ее часть (ну или плюс еще полстроки-строка с предыдущей логической страницы), которую не было видно, которая не влезла на экран, а не страница от низа – таким образом, не приходиться искать ту строчку на которой закончил читать до того, как нажал на кнопку листания.
2. В меню для шага масштаба и шага сдвига задать какие-то единицы, что бы хоть как то ориентироваться. Если это возможно, то поставить значения в конце пункта меню, и когда данный пункт будет вызываться, то менялось это значения без закрывания меню.
3. Боковые клавиши листания: стрелка, которая показывает вправо, при нажатии перемещает картинку влево, вторая - показывает влево, а перемещает вправо. В данном случае поменять действия для клавиш наоборот, т.е. что бы сдвиг изображения вправо производился верхней клавишей листания, а влево нижней. (хотя тут вопрос спорный)
Относительно первого пункта, на счет той общей части изображения которая будет видна на обоих логических страницах, что бы она отображалась более светлым цветом, как это было кажется в старой китайской читалке.
Ну и еще был такой момент, когда нажал на клавишу перелистывания вперед, и до того, как страница сменилась, нажал на клавишу возврата (esc), и в итоге получил, что страница так и не была сменена следующей, плюс к этому я уже не смог ни перелиснуть ни выйти в книжную полку – пришлось только выключать и заново включать устройство кнопкой power |
|
|
|
 |
|