Releases: nikp123/xava
Development Build
Commits
- 621e384: [bugfix] revert changes to wayland module (nikp123)
Development Build
Merge pull request #42 from nikp123/unstable Update to 0.7.1.0
Modularity
This version of XAVA pretty much changed everything:
- Input and Output methods are now loaded as a "library file module"
- There are filter modules as well that control how audio is processed
- OpenGL is now by default
- Everything non-OpenGL is moved to the "unsupported" branch (so to say) to ensure compatibility
- PROPER CI/CD
- Redone some of the config file
- Introduces VBO and shaders (This time PROPERLY)
- Resolution scaling
- Fullscreen viewport adjustment options added
- Default options are now defined by CMake files
- Added error logging system
- Added IO abstraction libraries
- Added OS function abstraction libraries
- Added IONotify functionality (to track file changes at runtime)
- Shaderpack support
- Wayland support
- PipeWire support
- Cleaned the codebase (a lot)
- No more monolithic CMake files
- Probably more, but I can't remember.... It's been a whole years worth of changes tbh.
Fixes for the "stable" build
Anyway, it only took a day and a half to find two critical flaws 3d8d271 and 5fd216a. Great job me.
Though this time these aren't user bugs and more lean towards security exploits.
Advice of the day: Use static code checkers (cppcheck), -Wall
and code fuzzers (if you're into this sort of thing)
Also attached are the patched Windows binaries.
Stablity focus
Since this release didn't include any major changes, the focus has been mostly on bugfixing and adding quality-of-life improvements. I thought of pushing this release before introducing anything major since who knows when the code could become stable once again.
Enough rambling, here's the changelog:
Fixes:
- Restored PulseAudio audio buffer fragmenting
- SIGTERM signal is now handled properly
- FIFO latency fixes
- Fixed color initialization on X11 (NVIDIA only)
- VSync behaviour + Vsync not working in some cases
- Few corrections in the desktop shortcut file for Linux
- Shadows appear "as intended" on Windows
- Signal handler now responds when in sleep mode
- Fixed memory bugs and leaks
- Fix (dumb) iniparser linking issues on distros such as Ubuntu
- Fixed color parsing on X11
- Fixed header file path for SDL2
- Fixed a bunch of typos
- Fixed Windows directory parsing
- Fixed crash on reload on Windows
- Fixed oddoneout buggy bar(s)
- Fixed GCC 10 compiler issues
- Don't use Xresources if unavailable (such as on Wayland)
- A few XWayland oriented fixes
- Windows audio is now read in the proper format (float32)
- And an another small Windows audio fix
- Fixed pkg-config path
- CMake-related fix
- Fixed gradient calculation algorithm on X11
- Delocalized a variable which caused a crash on Windows due to being invalid
Features:
- Root window mode for X11 - I'd recommend this if you don't have a compositor on
- Linux inode watcher came back
- Introduced automatic config file reloads on windows - Makes it easy to preview changes
- Added fullscreen mode to Windows
- Added build flags for optional features
- Removed restriction on bar count
override_redirect
to change window ordering on X11- Reload on display change/configure on X11
Changes:
- Cleaned up warnings in lots of places
- Cleaned iniparser usage
- CCache in travis builds
- Multiple build configs in travis
- Version info managed by build system rather than manually
- Limit sample buffer to 1024 on PortAudio to reduce delays
- Version info automatically written into NSIS file
- Overhaul to the input and output systems (leaning towards more modularization)
- Config system overhaul (more modularized and less monolithic)
- Added own wrappers for system functions (makes the code simpler and avoids clutter)
- Stack optimization for functions that are often called
- Tried to fix cursed garbage code
- Removed FreeDesktop shortcut from Windows build
- Windows code cleanup
- Window class is now ALWAYS set on X11
- Updated documentation
- Fixed Windows headers for internal functions
Removal:
- RAW mode - It's kind of goes against being a desktop application
Some patches to 0.6.2
Changes:
- oddoneout is symetric/reflective instead of one-way
- Travis would now automate builds, YAY!
Fixes:
- Gravity is linear on framerate instead of exponential (this helps shitty CPUs mostly)
- Some shadow/pixel alignment issues
- Windows can now properly copy it's default config if it's not present (directory find issue)
- FIFO was completely broken (i wonder if karlstav noticed this too)
- git issues regarding iniparser resolved
Another patch to 0.6.2
New additions:
- Ability to show/hide taskbar icon
- Added autostart guides for both Windows/*NIX
Fixes:
set_win_prop
now only changes the window class not it's behaviour- Window title is set regardless of
set_win_prop
- minor tweak to the shortcut name so that start menu recognizes it better (on Linux)
Minor changes/fixes to 0.6.2
This is just a fix for the 0.6.2 release, featuring:
- Changed attributes and proper licensing info
- Changed Windows shortcuts and added an application icon
- Reverted gravity change because it would break existing configs, instead just ship a config with that tweak
- Made Windows window load the app icon
- Slight modifications to the README
Support, simpler setup and more features
Introducing:
- Ability to change input audio buffer size
- Ability to change background opacity
- Draggable windows under Windows
- New default config (also per OS)
- Vsync and variable Vsync support
- New and improved installer for easier and more customizable installation and setup
Changes/fixes:
- Proper WASAPI support
- Optimizations in ALSA, PulseAudio, PortAudio, WASAPI and FIFO to improve CPU performance (by reducing the number of function calls)
- Fix for NVIDIA graphics cards capping at 100%
- Slightly reorganized README for easier understanding
- WGL and GLX are stripped from most bugs (some still remain, like shadows cutting the polygons)
- Refactored code base
- Reworked Windows window behavior
To install just download and install the xava-win-installer.exe
. Or in case of the *NIX folk, just compile it (follow the README)
In case you want to change some options or want to figure out how to compile the software refer to the README in this repository.
Also for those who don't have admin privileges for some reason, open the installer in WinRAR or 7z and extract the files.
WASAPI introduced
I finally wrote code that does Windows audio properly. And it wasn't as hard as I though it would be.
This doesn't count as a full release as this is mostly just a breakthrough since Windows users may enjoy this program as well without much hassle and poking around with their audio drivers.
However I still need to clean up my Windows OpenGL code that drops frames like crazy (and freezes without a trace or reason), so you'll just have to live with SDL as default (lacks transparency, crazy WM stuff, OpenGL and shadows).
In the included archive there's the Windows executable with all of the required libraries and a config file I use. Just extract and run it.
As for the config file it copies itself to %appdata%\xava\config.cfg when you first run xava and you can modify it from there.
Developer notes: Since WASAPI code is C++ only, the project technically has C++ code in and it's libraries, so you may notice that the binaries and executable take up more space. Also obviously it isn't C-only, so you need a C++ compiler installed as well.