Rewrite waveform using RenderNodes
Alternative to !64 (closed)
Fixes #61
This MR also rewrites the waveform to use RenderNodes instead of Cairo, improving performance.
However, this MR completely rewrites the rendering logic, instead of only adapting the draw methods.
The code was originally created in 2023, while creating a concept for fixing #3: #3 (comment 2047227)
I originally didn't submit the code because there wasn't a consensus from a design perspective.
I'm now posting this as a seperate MR as suggested in !64 (comment 2058307)
Additional changes:
- Add a third color to show the difference between the drag-position and audio-position
- Expose state- and style-related variables as gobject properties
This video shows the new behaviour:
Bildschirmaufzeichnung_vom_2024-03-21__16-58-18