Skip to content

Releases: NiLuJe/FBInk

v1.25.0: SoC Puppet

05 Dec 02:50
Compare
Choose a tag to compare

Changes:

  • Update libevdev
  • Update to Cozette 1.18.1
  • Update to Scientifica v2.3
  • Support the Kobo Libra 2
  • Support the Kobo Sage (and document the new sunxi quirks it introduced, e.g., EINK_NO_MERGE)
  • Update i2c-tools
  • Identify the PocketBook Inkpad Lite
  • Support Eclipse waveform modes on Kobo Mk.9+
  • Various updates to the DevCaps script to make it more useful when poking at new devices
  • Update to libunibreak 5.0
  • Support the Kindle PW5 (and document the new features of the MTK platform)
  • Identify the PocketBook PB617
  • Identify a new PocketBook Inkpad Pro 3 variant
  • Add the -K, --animate flag to the CLI to enable animated refreshes on MTK
  • Update ctrld
  • Identify & support devices running on mainline kernels with fbdev support (mostly NTX boards so far)
  • Support the Kobo Clara 2E
  • Identify the Kindle Basic 4
  • The CLI tool now supports DUNM waveform modes on Kindle (MTK only)
  • The CLI tool now supports DU4, GCK16 & GLKW16 waveform modes on Kobo (Mk.9+)
  • Attempt to detect the Kindle Touch A properly (will only behave with a Nickel version tag)
  • Fix the finger_trace tool on the Kobo Touch A, B & C
  • Identify the Kindle Scribe
  • Minor code cleanups

API Changes:

  • Added a no_merge field to FBInkConfig in order to control the EINK_NO_MERGE flag on sunxi
  • Allow fbink_reinit usage on Kindle (#67)
  • New MTK_SWIPE_DIRECTION_INDEX_T enum
  • Added an is_animated field to FBInkConfig in order to enable animated refreshed on MTK
  • New fbink_mtk_set_swipe_data function to setup the animation settings on MTK
  • New fbink_wait_for_any_complete function, mapping to the new WAIT_FOR_ANY_UPDATE_COMPLETE_MTK ioctl on MTK
  • New fbink_mtk_set_halftone function to setup the checkerboard overlay feature found on MTK
  • New fbink_mtk_toggle_auto_reagl function to setup the so-called "fast mode" on MTK
  • New fbink_mtk_toggle_pen_mode function, mapping to the new MXCFB_SET_STYLUS_MODE ioctl on MTKv3
  • Add an OK_GRAYSCALE_CHANGE constant, allowing to detect grayscale flag swaps in fbink_reinit
  • New MAINLINE_DEVICE_ID_E enum
  • New DEVICE_UNKNOWN constant
  • New fields inverted_grayscale, is_kindle_mtk, has_eclipse_wfm & unreliable_wait_for in FBInkState

ABI Changes:

  • Renamed fbink_toggle_sunxi_ntx_pen_mode to fbink_sunxi_toggle_ntx_pen_mode

Buildsystem Changes:

  • N/A

v1.24.0: Icarus

29 Aug 20:25
Compare
Choose a tag to compare
Changes:
  * CLI documentation cleanups, thanks to @fulldecent (#59)
  * On plain Linux builds, honor the FRAMEBUFFER env var (#61)
  * PocketBook: ID the PB741
  * Update to Cozette 1.11.3
  * Deal with some Y2K38 shenanigans (#63)
  * Update to Spleen 1.9.1
  * Minor code tweaks & cleanups.
  * Added support for the Kobo Elipsa, and the whole new family of SoCs that came with it (sunxi, w/ disp2 ioctls)...
    There are quite a few quirks involved, see #64 for more details.
    Double-check the API docs, as a few APIs behave differently and/or are no longer usable on sunxi,
    because of technical limitations of the platform.
  * As a part of the sunxi porting effort, a few new PoCs have popped up in the utils folder,
    the most interesting of which is probably finger_trace.c, which implements a quick'n dirty pointer trail
    as a means to test rotation & input shenanigans on Kobo. You can build it via the ftrace make target.
    As well as the sunxigrab.sh script, which allows taking screengrabs on that platform.
  * Update stb
  * The fbdepth utility is now a real boy! Since its feature set has been moved to the API (fbink_set_fb_info),
    it's been rebuilt as a proper API client.
    It has also moved to a dedicated build target, fbdepth.

API Changes:
  * fbink_get_last_rect gained a new argument,
    allowing you to choose whether the coordinates returned are run through the current rotation quirks or not.
    (This only applies to the is_ntx_quirky_landscape state).
    Previously, it behaved as if this new flag was set to true, which didn't make much sense in practice,
    as the cases where you'd actually want that are very few and far between.
  * fbink_cls gained a new argument,
    allowing you to bypass rotation quirks for the supplied coordinates.
    (e.g., you passed a rect that *already* went through said quirks).
    This obviously ties into the previous entry ;).
  * New function: fbink_rect_dump
    Allows dumping a specific rect as-is, with no positioning or rotation trickery.
    (e.g., a rect from fbink_get_last_rect).
  * New function: fbink_toggle_sunxi_ntx_pen_mode
    Allows toggling "pen" refresh mode on Kobo devices with a sunxi SoC.
  * New function: fbink_sunxi_ntx_enforce_rota (with a matching SUNXI_FORCE_ROTA_INDEX_T enum).
    On sunxi, allows controlling how rotation is handled (gyro, gyro w/ constraints, fixed àla linuxfb,
    or even matching the working buffer, provided we have some help from the custom fbdamage kernel module).
  * As a consequence, FBInkState gained a new field, sunxi_force_rota, to reflect the current state.
    It is set to FORCE_ROTA_NOTSUP on unsupported platforms.
  * FBInkState also gained a new field, sunxi_has_fbdamage, to indicate whether fbdamage is loaded or not.
    It is set to false on unsuppoorted platforms.
  * New function: fbink_invert_screen
    Simple helper to fake a nightmode swap on devices without HW inversion support.
  * Added a bunch of public enums to make switches on FBInkState's device_id field more readable:
    CERVANTES_DEVICE_ID_E, KOBO_DEVICE_ID_E, REMARKABLE_DEVICE_ID_E & POCKETBOOK_DEVICE_ID_E
    (Nothing on Kindle, as there are *many* IDs for a single device there...).
  * Added a scanline_stride field to FBInkState (matching fInfo.line_length)
  * New function: fbink_get_fb_pointer
    Exports a pointer to the backing buffer, as well as said buffer's size.
    Low-level API, mostly useful if you're using FBInk in a platform abstraction layer (e.g., a Qt5 QPA).
  * New function: fbink_set_fb_info
    Allows one to control bitdepth & rotation (precisely what used to be available only in the dedicated fbdepth tool).
    Low-level API, beware, and make sure you understand the implications!
  * Every fbink_reinit-like function is now marked warn_unused_result, as checking the return value may be critical.
  * New function: fbink_get_fb_info
    Allows one to return a copy of the *full* vInfo & fInfo structs.
    Low-level API, prefer fbink_get_state unless you really have no other choice!

ABI Changes:
  * Signature updates for:
    * fbink_get_last_rect
    * fbink_cls
  * The "is_pb_sunxi" field in FBInkState has been renamed to "is_sunxi", to accomodate the Kobo Elipsa.

Buildsystem Changes:
  * The fbdepth utility is now built as part of a dedicated target, via make fbdepth.
    You'll want to buil it from a pristine tree (make distclean),
    to prevent it from linking against a larger than necessary library.
  * Added two new modular build flags: DRAW & BITMAP
    This means that bare MINIMAL builds are now *really* bare: they don't feature *any* primitive drawing features.
    Unless you're doing very particular things, anything that previously relied on a bare MINIMAL build probably
    requires a MINIMAL + BITMAP build now.
  * Added a dist target to generate release tarballs.