4570e084macos: Disconnect menu items
In GTK-Adwaita, it's easy thanks to "gsettings" CLI application. In
macOS, however, there seems to no way to clear an application's
"@AppStorage" data.
Shota FUJI
authored at
Shota FUJI
comitted at
cf516079macos: Accept Xcode project settings recommendation
It has been showing a warning and it was annoying.
Shota FUJI
authored at
Shota FUJI
comitted at
1dd7aab4macos: Change non-modified variable to immutable
Addressed a Xcode warning.
Shota FUJI
authored at
Shota FUJI
comitted at
afb2d6b4macos: Merge server discovery and main window
The former is (most of the case) shown once.
The reason I changed the payload of ".found" case is, without that, the
only reference will be "ConnectedView" and every updates to the View
would release then re-create a connection.
Shota FUJI
authored at
Shota FUJI
comitted at
d53ccec3macos: Save connected server ID and reconnect on launch
The current UX is not complete, as there is no way to disconnect.
Considering the usecase of connecting to more than one Roon server is
rare, the discovery window should be integrated into the main window.
Then it can conditionally render server discovery or connected view
without going to discovery view first.
Shota FUJI
authored at
Shota FUJI
comitted at
37c16ed0core: Allow clients to set custom extension ID/name/version
It has been pain to manage authorization tokens in Roon settings page.
Shota FUJI
authored at
Shota FUJI
comitted at
dfc4cec0macos: Display loading UI during extension authorization
It has been unclear what it's doing and what a user should do.
Shota FUJI
authored at
Shota FUJI
comitted at
8b8802c2macos: Display now playing texts (title and artist, mostly)
Shota FUJI
authored at
Shota FUJI
comitted at
9e6bf7bfmacos: Fix more than one element in array crashes application
I don't know how I got to that iteration code, but the
`UnsafePointer<T>.successor` is NOT a method to iterate over an array.
<https://codeberg.org/pocka/plac/issues/17>
Shota FUJI
authored at
Shota FUJI
comitted at
065d06d6core: Print debug log on macOS build
Ideally, integrating OSLog is the best. However, it's time-consuming and
a lot of work needs to be done. This is good for now.
Shota FUJI
authored at
Shota FUJI
comitted at
8fdfb08dgtk-adwaita: Remove "develop build" style from window
Even though there is some missing features (search and disconnect menu
option,) it's usable for my day-to-day usage. Now all concurrency and
memory bugs are fixed, this is the best timing to remove WIP label.
Shota FUJI
authored at
Shota FUJI
comitted at
5ed1b013core: Give WS read and event handlers dedicated threads
<https://codeberg.org/pocka/plac/issues/16>
Parsing and handling incoming message in the same thread that reads
WebSocket message from socket sometime drops WebSocket message, due to
the thread being busy. This redesign solves that by separating reading
and parsing/handling using dedicated threads.
Although volume change operation now feels little bit sluggish, no more
dropped response. Every operation is working correctly.
Shota FUJI
authored at
Shota FUJI
comitted at
12dfcdb9core: Fix potential race condition
Extremely rare, though (I saw only once.)
Shota FUJI
authored at
Shota FUJI
comitted at
03235177core: Output request ID on control request send log
"/control" endpoint suffers response loss as well as "/change_volume"
endpoint. Request ID helps debugging this, because it's visible on data
payload in Wireshark.
Shota FUJI
authored at
Shota FUJI
comitted at
05a6f716gtk-adwaita: Volume controls
While "it works," user experience is not great. For some reason,
response for "/change_volume" got lost even though my machine sees a TCP
packet. I also see this at "/control" endpoint too. However, "/seek"
endpoint, which is called more frequently, does not encounter this.
Most likely application problem given my experience on low-level
programming, but it could be packet issue (Roon Server) or transport
layer issue (websocket.zig or Linux?) I don't know, really.
Shota FUJI
authored at
Shota FUJI
comitted at
ba20af71gtk-adwaita: Connect to server directly via IP address and port
UDP multicast/broadcast is unreliable, especially in my environment
where Roon server (or the machine hosting it) randomly stops responding
to discovery query. Direct connection is really instant and I believe
this would improve normal UX too.
Shota FUJI
authored at
Shota FUJI
comitted at
4b536649core: Function to discovery server by IP address
Roon Server or my server machine reject replying to UDP
multicast/broadcast after several attempts. This functionality can be a
good way to avoid UDP multicast and broadcast issues.
Shota FUJI
authored at
Shota FUJI
comitted at