v3.0: UTF-8 and Performance
Podbit v3.0
Podbit v3 comes shipped with full Unicode support (UTF-8 encoded), with no hacky escape requirements or random failures. Some UIs (tables in particular) have been redesigned to fit the new UTF-8 model a little better.
This release also features a completely redesigned events system, which has caused a 600% reduction in CPU load on my machine (load avg from 12.5 to merely 2.1 - 3 at worst). This new system has allowed for the fixing of a few irritating bugs that were almost impossible to patch with the old system. Users can expect more stable playback handling and lower battery usage on this new version. And, finally, some nice visual improvements have been sprinkled throughout the program.
Changelog
- Swap out "libncurses" for "libncursesw", which supports UTF-8 encoding (or, really, whatever encoding you specified via your LC_* environment variables)
- Change all our UI code to use Unicode characters (runes) for length limits, splits and previews etc. This means that text will no longer distort at the edge of the terminal, especially when resized
- Fixed tables overspilling onto adjacent rows when UTF-8 characters are used
- Fixed a rare crash in rendering menus when UTF-8 is involved
- YoutubeDL downloads will no longer behave strangely on failure, instead correctly reporting that they failed
- Reduced redundant channels and channel copying, which should cause slightly lower memory footprint and CPU load
- Reduced sound system update timer from 200ms to 1s
- Reduced queue reload frequency from every 25s to every 60s
- Tables will now show text in column colors, rather than black and white with background highlights
- Prevent redundant screen redraws when idle and paused
- Ensure that the screen redraws when a download completes or changes status
- Ensure that tray messages do not linger longer than max message time when last in the queue
It should be noted that this release technically has a new dependency, as plain ncurses is no longer sufficient to run the program; it must now be built with wide character support (-lncursesw).
Enjoy!