aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* print the stacktrace before calling log.FatallnFlorian Fischer2023-06-301-0/+2
|
* add debug message when terminating mpv subprocessFlorian Fischer2023-06-301-0/+1
|
* remember the current song before waiting for mpvFlorian Fischer2023-06-301-1/+4
|
* fix toggling of playing state in wrms.PlayPauseFlorian Fischer2023-06-301-4/+4
|
* cleanup Wrms._nextFlorian Fischer2023-06-301-5/+9
|
* fix condition in AdjustSongWeightFlorian Fischer2023-06-301-2/+1
|
* serialize player state change though a channelFlorian Fischer2023-06-302-53/+120
| | | | | Only the player.serveCmds and the runMpv goroutines are racing now. But this race should be a benign race.
* synchronize playback controlFlorian Fischer2023-06-012-17/+43
|
* take the lock when adding or modifying songsFlorian Fischer2023-06-011-5/+14
|
* actually increase the expected next event idFlorian Fischer2023-06-011-1/+2
|
* send events in a total orderFlorian Fischer2023-06-013-109/+135
| | | | | | | Move Connection code to wmrs.go. Introduce a RWMutex to synchronize access to the internal Wrms state. Tag each event when it is broadcast with the next event count. Senders will order the broadcasted events. This guarantees that no obsoltete events are ever delivered.
* tag all events with a monotonic id in order to ignore outdated onesFlorian Fischer2023-05-314-28/+22
|
* support skipping the current song while playback is pausedFlorian Fischer2023-05-313-17/+42
|
* create websocket context after successfully identifying the connectionFlorian Fischer2023-05-311-4/+3
| | | | Fixes: d8bdce51c336f3693121202402ee38ff3f12c0e2
* use an atomic pointer to track the current songFlorian Fischer2023-05-314-13/+24
| | | | | Also fix showing finished songs as current playing on new clients.
* send bad request status if the websocket connection has a bad UUID cookieFlorian Fischer2023-05-311-0/+4
|
* add thread saftey TODOFlorian Fischer2023-05-311-0/+1
|
* mark search query distinguishing TODO as doneFlorian Fischer2023-05-311-1/+1
|
* mark admin controlls as doneFlorian Fischer2023-05-311-2/+2
|
* prevent deadlocks when connections are closedFlorian Fischer2023-05-312-19/+59
| | | | | | | | | | | | | | | | | Currently the unbounded Events channel is never closed and Connection are not removed from WRMS therefore any call to Broadcast deadlocks because the wsEndpoint consumer is no longer reading Events. Prevent this deadlock with a combination of announcing the closing of connections and sender counting for each connection. Before a sender is trying to write to the Events channel it checks if it is already closed. If it observes that the connection is open it registers itself as sender send the Event and unregisters itself. The wsEndpoint announces that the connection is closed and consumes Events until no registered senders are left. Then it closed the Events channel and terminates.
* allow admins to skip or delete songsFlorian Fischer2023-05-314-3/+82
|
* add more verbose logging around loading tracks from spotifyFlorian Fischer2023-05-311-0/+2
|
* mention the uplaod backendFlorian Fischer2023-05-301-0/+5
|
* add more TODOsFlorian Fischer2023-05-301-0/+4
|
* log file path on upload errorFlorian Fischer2023-05-301-2/+3
|
* distinguish between search queriesFlorian Fischer2023-05-304-21/+55
| | | | | | | | | | | Introduce a new Id field for events to distinguish between different searches. Since search result reporting is split up a old search could introduce results or terminate the current search. Keep track of a search counter to distinguish between result from the active search and stale ones. Allow to add multiple songs from the current search.
* use 'uploads' instead of 'upload' as default upload dirFlorian Fischer2023-05-281-1/+1
|
* improve mpv argv loggingFlorian Fischer2023-05-281-1/+1
|
* fix building mpv argv when no mpv flags are configuredFlorian Fischer2023-05-281-1/+3
|
* add more TODOsFlorian Fischer2023-05-281-1/+5
|
* escape html for search resultsFlorian Fischer2023-05-282-4/+10
|
* select pattern input on clickFlorian Fischer2023-05-281-1/+1
|
* refactor title and artist detectionFlorian Fischer2023-05-281-4/+15
|
* fix building mpv argvFlorian Fischer2023-05-281-1/+1
|
* restrict file upload to audio mime typesFlorian Fischer2023-05-281-1/+1
|
* fix next song not beeing removed from the playlistFlorian Fischer2023-05-281-1/+2
|
* refactor playing an uri and from stdinFlorian Fischer2023-05-281-10/+17
|
* support custom mpv flagsFlorian Fischer2023-05-282-1/+12
|
* use llog instead of fmt debuggingFlorian Fischer2023-05-281-12/+9
|
* allow loglevel to be specifies in config fileFlorian Fischer2023-05-283-3/+6
|
* include OS error in FatalfFlorian Fischer2023-05-281-2/+2
|
* log the output of a failed mpv executionFlorian Fischer2023-05-281-2/+3
|
* also toggle playpause button label on a stop eventFlorian Fischer2023-05-211-0/+5
|
* continue playback when adding a song to an empty queueFlorian Fischer2023-05-216-22/+24
| | | | | | | Now WRMS only switches the playback state when an admin calls the /playpause endpoint. When the queue runs out of songs the state is kept and continues when a new song is added.
* only add playbutton eventlistener for adminsFlorian Fischer2023-05-211-0/+2
|
* add song deletion and continue playback todosFlorian Fischer2023-05-211-0/+2
|
* fix yaml reflection tagFlorian Fischer2023-05-211-1/+1
|
* format code using go fmtFlorian Fischer2023-05-211-5/+5
|
* add sample configFlorian Fischer2023-05-211-0/+13
|
* allow YAML parsing of the spotify configFlorian Fischer2023-05-214-12/+20
|