Commits at d85027493fbf578475c7ce0fca8fb7794a19fa96
bcf2497dcore: Download image using normal HTTP instead of WebSocket
Downloading large number of images through WebSocket easily clogs
connection and affects sending of other actions (e.g. playback control)
and receiving of events. By using normal HTTP via separate connection,
this no longer happens.
This patch finally enables me to open "Explore > Library Tracks" page.
Shota FUJI
authored at
Shota FUJI
comitted at
a6d963afcore: Relax timeouts
It was too short. Especially browse APIs frequently timed-out on Qobuz
pages.
Shota FUJI
authored at
Shota FUJI
comitted at
9fc84020core: Limit number of concurrent image downloads
To prevent server from choked. Unfortunately, due to high duplication,
"Library > Tracks" still timeouts and renders app unresponsive.
Shota FUJI
authored at
Shota FUJI
comitted at
7f2d5aebgtk-adwaita: Seek feature
GTK4's slider/range widget is shitty, thus this feature works shitty as
well. There are no "drag ended" equivalent signal and drag start emits
JUMP scroll type value change signal. Also, setting `false` to
`sensitive` resets focus so long jump using keyboard is impossible too.
Debouncing or throttling would help a little bit, but won't solve the
problem fundamentally. Seek change events sent by server would resets
drag operation.
Valadoc shows no result for "throttle/debounce" and GTK4 seems to have
no function and widget for that. Implementing debounce/throttle function
by hand, testing that, and adding additional delay to seek triggered
by seek is not acceptable given those won't work when a track is playing.
The only way to solve this is implementing custom widget, which means
re-implementing slider UI from scratch or carefully patching and
workarounding GtkRange's internal implementation. Both are
time-consuming, exhausting, negatively effects maintainability, and
stupid.
GTK4's rendered widget is great. Its API and abstraction are dogshit.
Shota FUJI
authored at
Shota FUJI
comitted at
c5b9431dgtk-adwaita: Automatic reconnection on server close
*Not tested*
Testing against Roon Server is really frustrating task.
Shota FUJI
authored at
Shota FUJI
comitted at
1a88a96ccore: Refactor to use constant defined in std
Did not notice the constant at the time of writing the logic.
Shota FUJI
authored at
Shota FUJI
comitted at
8116f858core: Do not send duplicated request for image downloads
Previously there were multiple requests made to the same image_key and
options pair. This is problematic on opening "Library > Tracks", because
the page has a lot of same images.
Shota FUJI
authored at
Shota FUJI
comitted at
94edd150gtk-adwaita: Remove browse items' angle icon from AT
It's just for presentation. To be honest, I have no idea what to label
it. "Arrow indicating next navigation"?
Shota FUJI
authored at
Shota FUJI
comitted at
659b1c11gtk-adwaita: Remove artwork from accessibility tree
I have no control over the image. Announcing it as "artwork of <track>"
does not bring new information.
Shota FUJI
authored at
Shota FUJI
comitted at
dad9c096core: Rename service modules
Names are not best (they are CamelCase instead of snake_case) but one
level less nesting is good enough for now.
Shota FUJI
authored at
Shota FUJI
comitted at
e23a985ccore: Upgrade libmoo (u64 request_id migration)
libmoo previously used i64 for request_id. While Roon server accepts
requests with i64 request_id, having negative number IDs looks weird.
Also, the current implementation starts from 0 thus half of the space
has been remaining unused. Using u64 for request_id just has pros.
Shota FUJI
authored at
Shota FUJI
comitted at
ca23543agtk-adwaita: Scroll to top on browser navigation
Although not ideal, better than restoring to nonsensical position.
Shota FUJI
authored at
Shota FUJI
comitted at
13eb02e0gtk-adwaita: Remove AppImage build
Built AppImage won't launch.
Shota FUJI
authored at
Shota FUJI
comitted at
5f1a9e50gtk-adwaita: build step for AppImage (broken)
While the step produces `Plac.AppImage`, built file does not run with
this error:
```
./zig-out/Plac.AppImage: error while loading shared libraries: libharfbuzz.so.0: cannot open shared object file: No such file or directory
```
harfbuzz is installed but AppImage can't load the non-bundled library.
I have no idea where is the problem: it could be Zig compiler, Nix,
linuxdeploy, or my environment. AppImage docs is pretty shallow and
scattered, recommended tools are questionable quality, but most
importantly, the whole concept seems not to work well with Nix.
Even if the underlying problem will be solved, this won't be in the
repository. Given many errors and quirks I've seen at this point, I
don't think it'll work in others' environments. Although it's not user
friendly, running `nix develop && zig build run` is way better than
CMake or Bazel or `configure` or whatever.
I'm going to put this commit in trunk as build scripts and newly added
files are useful for non-AppImage builds.
Shota FUJI
authored at
Shota FUJI
comitted at
d49fc523gtk-adwaita: Add app icon
Required for generating an AppImage file.
Shota FUJI
authored at
Shota FUJI
comitted at
9cde9cafgtk-adwaita: Suppress deprecation warnings from Vala compiler
See code comment for rationale.
Shota FUJI
authored at
Shota FUJI
comitted at
b6090f98gtk-adwaita: Remove unhelpful debug log
These lines were added to debug a particular problem, which has been
solved. As "what was changed" is unclear from log text, these are not
useful and are simply noise.
Shota FUJI
authored at
Shota FUJI
comitted at