3378919dAllow setting fixed discovery UDP port number
For firewalled environment.
https://codeberg.org/pocka/plac-for-gtk4/issues/21
Shota FUJI
authored at
Shota FUJI
comitted at
8ef35b20Use treefmt for formatting
dprint-plugin-exec doesn't work inside non-FHS environment.
I'm not a fan of treefmt's overall design: file paths rather than
stdin/stdout, noisy CLI outputs, over-complicated mechanism, etc.
Shota FUJI
authored at
Shota FUJI
comitted at
139b96a3Do not use flake-utils
Dependency just for just several lines is ridiculous.
Shota FUJI
authored at
Shota FUJI
comitted at
03aef5b8Use unstable nixpkgs
`nix flake update`
I'm not seeing benefits of using stable channel. When using this flake
from other flake, 99.9% of the time the caller sets `nixpkgs.follows` so
using stable is rather problematic.
Shota FUJI
authored at
Shota FUJI
comitted at
36a122b8Simplify connection process
This patch refactors and simplifies connection process, which has been
messy as it was designed for C API. This refactor also removed the
unnecessary short-lived WebSocket connection on startup.
That unorganized `try_listen` / `start` methods have been pain point for
me. It was unclear how the class calls methods one by another, by
looking at class.
Elimination of startup short-lived WebSocket connection reduces startup
time. It was not a bothering one, but there is no technical reason to
close the established connection so this is good.
Shota FUJI
authored at
Shota FUJI
comitted at
42bdb450Remove third-party copyright notice
Plac for GTK4 no longer statically links to libraries.
Shota FUJI
authored at
Shota FUJI
comitted at
8ca06f40Fix extension registration errors in short time
Request handler at registration does not ignore ping request from Roon
server and tried to parse it as register response.
Shota FUJI
authored at
Shota FUJI
comitted at
417fbfc7Use SOOD parsing written in Vala
For faster compilation in Nix build (no downloading) and pure-Vala
challenge.
Shota FUJI
authored at
Shota FUJI
comitted at
d1962e17Fix seekbar behavior being flaky
Sometimes the seekbar remains disabled (`sensitive = false`) and
sometime it keeps previous tracks seek location after track changed.
These are due to mishandling of `seek_position`'s nullability.
Shota FUJI
authored at
Shota FUJI
comitted at
61dd1427Use Zone class directly for view model
`Zone` class became GObject.
Shota FUJI
authored at
Shota FUJI
comitted at
28bbf5cfUse json-glib instead of Zig module
To integrate to GLib ecosystem more.
I rejected json-glib before due to poor API, but the lure of "Vala only
codebase" was too attractive. While the new codebase is quite verbose,
overall line counts are lower than the before.
Due to C API deserializing and serializing code is not readable and
error-prone. I created `JsonHelper` module to mitigate the shitty API
but it's nowhere near perfect.
These code seriously need unit tests, but that would take a while. For
now, this is good enough.
Shota FUJI
authored at
Shota FUJI
comitted at
7ad3f9fePut space after type parameter's close angle
It was so ugly and stupid but I had no idea which uncrustify property is
the culprit.
Shota FUJI
authored at
Shota FUJI
comitted at
19824f68Rename namespace "Plac.V2" to "Plac"
V1 code is no longer there.
Shota FUJI
authored at
Shota FUJI
comitted at
7bd484b9Rewrite WS connection and messaging in Vala (GLib)
The added overheads, especially cognitive overhead, had been bothering
me long time. Communicating via plain C FFI also means the Zig part has
to take care of thread-safety *outside of* GLib main-loop, which comes
with noticeable performance penalty.
By implementing (almost) everything in Vala, thread unsafety and
performance penalty caused by locking have gone. Browser navigations are
much quicker and I'm yet to see a single unresponsed request.
JSON serializing and deserializing module is the only remaining Zig
code. Although I'd much like to this part to Vala as well, JSON handling
in Vala is horrible shit so I doubt the migration will happen in a
foreseeable future.
This patch just replaces the C API (in Zig) by Vala counterpart. I did
not application restructure or refactor or whatever. Those will make
this patch more difficult to view. The only difference (regression?) is
the connection object cannot withstand WebSocket connection closing.
However, in my limited testing, libsoup seems to keep WebSocket
connection even when computer is sleeping... so the chance of
disconnection will be lower than before therefore that's not a huge
problem.
Shota FUJI
authored at
Shota FUJI
comitted at
23e3c3b1Fix constructor functions for seriealizer use uint8[] rather than string
Shota FUJI
authored at
Shota FUJI
comitted at