Dave Allie
7d4e236dd0
Build out lines when parsing html and holding >750 words in buffer ( #73 )
...
## Summary
* Build out lines for pages when holding over 750 buffered words
* Should fix issues with parsing long blocks of text causing memory
crashes
2025-12-21 13:43:19 +11:00
Dave Allie
3754af55c3
Update user guide
2025-12-20 01:44:39 +11:00
Dave Allie
afb2feae6f
Replace cover.jpg
2025-12-20 01:15:20 +11:00
Dave Allie
08e497ffcb
Cleanup indexing layout string
2025-12-20 00:33:55 +11:00
Dave Allie and Sam Davis
b498fbbcb3
Custom sleep screen support with BMP reading ( #57 )
...
## Summary
* Builds on top of
https://github.com/daveallie/crosspoint-reader/pull/16 - adresses
https://github.com/daveallie/crosspoint-reader/discussions/14
* This PR adds the ability for the user to supply a custom `sleep.bmp`
image at the root of the SD card that will be shown instead of the
default sleep screen if present.
* Supports:
* Different BPPs:
* 1bit
* 2bit
* 8bit
* 24bit
* 32bit (with alpha-channel ignored)
* Grayscale rendering
---------
Co-authored-by: Sam Davis <sam@sjd.co >
2025-12-19 08:45:14 +11:00
Dave Allie
a268aaf6e2
Skip pagebreak blocks when parsing epub file ( #58 )
...
## Summary
* Skip pagebreak blocks when parsing epub file
* These blocks break the flow and often contain the page number in them
which should not interrupt the flow of the content
- Attributes sourced from:
- https://www.w3.org/TR/epub-ssv-11/#pagebreak
- https://www.w3.org/TR/dpub-aria-1.1/#doc-pagebreak
2025-12-19 01:11:03 +11:00
Dave Allie
e66dbdcad3
Cut release 0.7.0
2025-12-19 00:44:22 +11:00
Dave Allie
1ef193ac50
Rendering "Indexing..." on white screen to avoid partial update
2025-12-18 22:13:24 +11:00
Dave Allie
85c1db7c5c
Fix font readability by expanding blacks and trimming whites ( #55 )
...
## Summary
* Previously, only pure black pixels in the font were marked as black,
this expands the black range, and makes the lightest pixels white
## Additional Context
* Noticed personally it was kind of "thin" and washed out a bit, this
massively helps, should also address concerns raised here:
https://github.com/daveallie/crosspoint-reader/discussions/39
2025-12-18 21:39:13 +11:00
Dave Allie
ee63cf4f18
Rename Screens to Activities and restructure files ( #44 )
...
## Summary
* This PR drastically reshapes the structure of the codebase, moving
from the concept of "Screens" to "Activities", restructing the files and
setting up the concept of subactivities.
* This should help with keep the main file clean and containing all
functional logic in the relevant activity.
* CrossPointState is now also a global singleton which should help with
accessing it from within activities.
## Additional Context
* This is probably going to be a bit disruptive for people with open
PRs, sorry 😞
2025-12-17 23:32:18 +11:00
Dave Allie
e0fc43cf13
Add home screen ( #42 )
...
## Summary
* Add home screen
* Sits as new root screen, allows for navigation to settings or file
list
2025-12-17 20:47:43 +11:00
Dave Allie
6879efac82
Use 6x8kB chunks instead of 1x48kB chunk for secondary display buffer ( #36 )
...
## Summary
- When allocating the `bwBuffer` required to restore the RED RAM in the
EPD, we were previously allocating the whole frame buffer in one
contiguous memory chunk (48kB)
- Depending on the state of memory fragmentation at the time of this
call, it may not be possible to allocate all that memory
- Instead, we now allocate 6 blocks of 8kB instead of the full 48kB,
this should mean the display updates are more resilient to different
memory conditions
## Additional Context
2025-12-17 01:39:22 +11:00
Dave Allie
eec3766bcf
Use single buffer mode for EInkDisplay ( #34 )
...
## Summary
* Frees up 48kB of statically allocated RAM in exchange for 48kB just
when grayscale rendering is needed
## Additional Context
* Upstream changes:
https://github.com/open-x4-epaper/community-sdk/pull/7
2025-12-17 00:17:49 +11:00
Dave Allie
5e6697732e
Cut release 0.6.0
2025-12-16 23:15:47 +11:00
Dave Allie
9f7b00c2a5
Parse cover image path from content.opf file ( #24 )
2025-12-16 03:15:54 +11:00
Dave Allie
5f150d3024
Fixed light gray text rendering
2025-12-16 02:16:38 +11:00
Dave Allie
484af45b83
Run CI action on PR as well as push
2025-12-15 23:17:35 +11:00
Dave Allie
3303541e15
Fix formatting
2025-12-15 23:17:23 +11:00
Dave Allie
5dc00b55aa
Upgrade open-x4-sdk to fix white streaks on sleep screen ( #21 )
...
https://github.com/open-x4-epaper/community-sdk/pull/6 fixes a power down issue with the display which was causing streaks to appear on the sleep screen
2025-12-15 22:27:27 +11:00
Dave Allie
c53c783524
Add Github Action to build release firmware on tag ( #20 )
2025-12-15 20:00:34 +11:00
Dave Allie
89fc8f1dc0
Add cppcheck and formatter to CI ( #19 )
...
* Add cppcheck and formatter to CI
* Checkout submodules
* Install matching clang-format version in CI
2025-12-15 19:46:52 +11:00
Dave Allie
8787b15bf4
Add Github templates
...
Added Github templates for PRs and bugs
Also added one for funding, please do not feel obligated to
donate to the project, this is not a for-profit endevour, I
just had someone ask where they could send a few dollars so
I have set it up
2025-12-15 08:16:59 +11:00
Dave Allie
458657c118
Add comparison images
2025-12-14 13:46:15 +11:00
Dave Allie
09aa1f4f2a
Update contribution instructions
2025-12-14 13:46:03 +11:00
Dave Allie
6f32caab6c
Cut release 0.5.1
2025-12-13 21:52:48 +11:00
Dave Allie
7d643b7739
Add user guide
2025-12-13 21:52:03 +11:00
Dave Allie
c90f3d8304
Add chapter selection screen
2025-12-13 21:17:34 +11:00
Dave Allie
8175069ea7
Return -1 from getTocIndexForSpineIndex if TOC item does not exist
2025-12-13 21:17:22 +11:00
Dave Allie
e68e4b41ed
Cut release 0.5.0
2025-12-13 20:16:12 +11:00
Dave Allie
7eea0eeccb
Show end of book screen when navigating past last page
2025-12-13 20:10:38 +11:00
Dave Allie
114c8b3a43
Process lines into pages as they are built
2025-12-13 20:10:16 +11:00
Dave Allie
fe831c615c
Remove tinyxml2 dependency replace with expat parsers ( #9 )
2025-12-13 19:36:01 +11:00
Dave Allie
2edc6ed15a
Cut release 0.4.0
2025-12-13 17:15:06 +11:00
Dave Allie
33e1499175
Show clearer indexing string
2025-12-13 16:02:27 +11:00
Dave Allie
11857183cc
Bump page file version
2025-12-13 00:42:17 +11:00
Dave Allie
779f3b07e2
Swap out babyblue font for pixelarial14
2025-12-13 00:16:10 +11:00
Dave Allie
f74c0d23a9
Move to smart pointers and split out ParsedText class ( #6 )
...
* Move to smart pointers and split out ParsedText class
* Cleanup ParsedText
* Fix clearCache functions and clear section cache if page load fails
* Bump Page and Section file versions
* Combine removeDir implementations in Epub
* Adjust screen margins
2025-12-12 22:13:34 +11:00
Dave Allie
0440576093
Restructure readme
2025-12-09 00:07:38 +11:00
Dave Allie
0b888a6502
Add section in readme on flashing via xteink.dve.al
2025-12-09 00:04:55 +11:00
Dave Allie
ea75ba5412
Cut release 0.3.0
2025-12-08 23:55:05 +11:00
Dave Allie
61c50be7db
Add version string to boot screen
2025-12-08 23:13:33 +11:00
Dave Allie
a98a2808b8
Add drawCenteredText to GfxRenderer
2025-12-08 22:52:19 +11:00
Dave Allie
797ddaab86
Cleanup serial output
2025-12-08 22:39:23 +11:00
Dave Allie
0800e8a845
Remove EpdRenderer and create new GfxRenderer
2025-12-08 22:06:09 +11:00
Dave Allie
c239cbbd89
Move to SDK EInkDisplay and enable anti-aliased 2-bit text ( #5 )
...
* First pass at moving to SDK EInkDisplay library
* Add 2-bit grayscale text and anti-aliased rendering of text
* Render status bar for empty chapters
* Refresh screen every 15 pages to avoid ghosting
* Simplify boot and sleep screens
* Give FileSelectionScreen task more stack memory
* Move text around slightly on Boot and Sleep screens
* Re-use existing buffer and write to whole screen for 'partial update'
2025-12-08 19:48:49 +11:00
Dave Allie
d2d39427af
Stream inflated EPUB HTMLs down to disk instead of inflating in memory ( #4 )
...
* Downgrade miniz for stability
* Stream HTML from ZIP down to disk instead of loading all in mem
2025-12-08 00:39:17 +11:00
Dave Allie
e922758913
Sort directories first in file picker
2025-12-07 19:17:43 +11:00
Dave Allie
1477520db8
Fix 1-bit font pixel alignment of last byte
2025-12-07 12:25:10 +11:00
Dave Allie
f6a7f8fe18
Build and use 1-bit font, saves a good amount of space
2025-12-07 01:26:49 +11:00
Dave Allie
6b3fbed01b
Reduce number of full screen refreshes to once every 20 pages
2025-12-06 22:12:01 +11:00
Dave Allie
5a23d72724
Version section bin files
2025-12-06 22:09:25 +11:00
Dave Allie
6da028c703
Add expat and swap out EPUB HTML parser ( #2 )
...
* Add expat and swap out ERB HTML parser
* Increase EpubHtmlParserSlim file buffer to 1024 bytes
* Cleanup TextBlock functions
* Do not break words when leaving spans
2025-12-06 20:57:24 +11:00
Dave Allie
6fe291f96c
Small cleanup
2025-12-06 20:24:24 +11:00
Dave Allie
1cbee2cb92
More pass by reference changes
2025-12-06 15:56:00 +11:00
Dave Allie
5b2177149f
Add image to README
2025-12-06 13:32:09 +11:00
Dave Allie
4c13528cfc
Sort items on FileSelectionScreen
2025-12-06 13:01:16 +11:00
Dave Allie
b89609691b
Fix bug with selectin epubs inside of folders
2025-12-06 12:57:17 +11:00
Dave Allie
00fd1a033a
Use reference passing for EpdRenderer
2025-12-06 12:56:39 +11:00
Dave Allie
283051d77f
Use InputManager from community-sdk
2025-12-06 12:35:41 +11:00
Dave Allie
1a2572d981
Update README.md with checkout instructions
...
Fixes https://github.com/daveallie/crosspoint-reader/issues/1
2025-12-06 04:53:58 +11:00
Dave Allie
9d3eaf4388
Update sleep screen
2025-12-06 04:20:41 +11:00
Dave Allie
20cff1745f
Avoid leaving screens mid-display update
...
Was leave the EPD in a bad state, blocking further actions
2025-12-06 03:02:52 +11:00
Dave Allie
24d01a2970
Fix memory leak with Epub object getting orphaned
2025-12-06 02:49:10 +11:00
Dave Allie
58cd36d51e
Add UI font
2025-12-06 01:44:14 +11:00
Dave Allie
aed915713b
Add new boot logo screen
2025-12-06 01:44:14 +11:00
Dave Allie
d2bba3bac7
Wrap up multiple font styles into EpdFontFamily
2025-12-06 01:44:14 +11:00
Dave Allie
d6d7385b52
Full screen refresh of EpubReaderScreen every 10 renders
...
This is done in an effort to minimise ghosting
2025-12-05 22:19:44 +11:00
Dave Allie
981bdd5a06
Add directory picking to home screen
2025-12-05 22:12:28 +11:00
Dave Allie
6ac56182fe
Upgrade open-x4-sdk
2025-12-05 21:14:08 +11:00
Dave Allie
b5970a27e3
Show indexing text when indexing
2025-12-05 21:12:15 +11:00
Dave Allie
bae4fc6a04
Avoid ghosting on sleep screen by doing a full screen update
2025-12-05 17:55:17 +11:00
Dave Allie
82aad6d94a
Speedup boot by not waiting for Serial
2025-12-05 17:47:23 +11:00
Dave Allie
e9b3a9c59a
Fix hold to wake logic
...
esp_sleep_get_wakeup_cause does not seem to be set when not connected to USB power
2025-12-04 00:57:32 +11:00
Dave Allie
5db2ac613b
Update README.md features
2025-12-04 00:14:47 +11:00
Dave Allie
87df778b06
Support left and right buttons in reader and file picker
2025-12-04 00:11:51 +11:00
Dave Allie
1df9812df6
Adjust input button thresholds to support more devices
2025-12-04 00:11:51 +11:00
Dave Allie
35284ac4b6
Add file selection screen
2025-12-04 00:11:51 +11:00
Dave Allie
27d34e782b
Use correct current page on reader screen
...
Fixes the page counter not updating
2025-12-03 22:34:16 +11:00
Dave Allie
91357548eb
Handle nested navpoint elements in nxc TOC
2025-12-03 22:30:50 +11:00
Dave Allie
980a06fa62
Remove debug lines
2025-12-03 22:30:13 +11:00
Dave Allie
fdedff1786
Add web flashing instructions
2025-12-03 22:21:11 +11:00
Dave Allie
9f5253313f
Public release
2025-12-03 22:06:45 +11:00