Skip to content

v1.14.0

@NiLuJe NiLuJe tagged this 05 Apr 21:49
Changes:
  * The wfm_mode setting is now honored everywhere. On the CLI, individual wfm= suboptions have been replaced by a global -W, --waveform flag.
  * One can now ask the eInk controller to do a full inversion of the refresh region. Available via -H, --nightmode on the CLI.
    Note that this is *NOT* mutually exclusive with -h, --invert, and, while similar in purposes, behavior may vary in some cases,
    as --invert will only invert painted pixels, while --nightmode will invert the full region being refreshed.
    A good example of different behavior would be in overlay/bgless/fgless mode.
    This is not available on einkfb devices (Kindle < 5).
    This is disabled on devices where it is known to be or have at some point been unstable (apparently, the Kobo Aura).
    As a measure of precaution, this is disabled on Cervantes, because I'm not quite sure if they might suffer from the same flaw,
    as some Cervantes models *may* be based on a board similar to the Aura's.
  * Fix device identification on *some* Kobo devices when onboard is unavailable.
  * Small speedup in image rendering in *some* circumstances (generally, on 8 or 4bpp fbs).
  * Some small safety tweaks regarding dump/restore behavior, to prevent undefined behavior in extreme edge cases.
  * Don't crash the CLI app when passing a suboption with no value. Return a real error instead ;).
  * On the CLI, slightly altered -s, --refresh's behavior regarding suboptions,
    to allow to *mostly* use it on its own if one simply wants a full-screen refresh: just pass a *single* bogus suboption.
    i.e., you can do fbink -s foo now.
    For reference, before, you'd have been using something like fbink -s WFM=AUTO
    While this *technically* still works, it won't actually honor the WFM option anymore, as that has moved to the global -W, --waveform flag.
    Swapping to the real "optional arguments" getopt behavior would imply a few annoying quirks to the short form syntax,
    (i.e., having to put suboptions right next to the option, with no spaces: -swidth=50,height=50 and not -s width=50,height=50),
    which would potentially be more destructive than this slightly terrible workaround ;).
  * Code tweaks & cleanups. Of particular note, enforced auto-vectorization in a few image decoding codepaths,
    so, if image support suddenly broke or started producing garbage output, please give me a shout (and an image file that reproduces the issue).

API Changes:
  * The default value (i.e., 0) for the WFM_MODE_INDEX_T enum is now WFM_AUTO instead of WFM_GC16
  * is_nightmode field added to the FBInkConfig struct
  * fbink_refresh now takes a different set of arguments
  * Added a size field to the FBInkDump struct (and re-ordered it to limit padding).
    This *potentially* allows using the dump as input for fbink_print_raw_data...

ABI Changes:
  * fbink_refresh's signature has changed.
Assets 2