Commit Graph

104 Commits

Author SHA1 Message Date
jeffvli d2e6658c36 add current song styles to rowIndex and title columns 2025-11-29 19:32:18 -08:00
jeffvli 9fd4abec25 re-implement mpv with new player 2025-11-29 19:30:47 -08:00
jeffvli 427f808180 rename internal types in domain models 2025-11-29 19:30:47 -08:00
jeffvli 550ba4f768 temporarily remove old player implementations to prevent broken app 2025-11-29 19:30:46 -08:00
jeffvli c7a473d864 refactor api controller to internalize server fetch 2025-11-02 21:56:35 -08:00
Kendall Garner 58ccd0cfd0 bugfix: remove duplicate scrobbling when there is only one item in the queue (#1222) 2025-10-25 20:25:07 +00:00
jeffvli 1b15c73db0 fix scrobble time race condition
- revert playerbar slider refactor
- re-implement mediasession handler
2025-10-13 11:44:42 -07:00
jeffvli 22b798812e Revert "fix playback controls being called multiple times on media key input"
This reverts commit 1b8661d566.
2025-10-13 11:38:19 -07:00
jeffvli 1b8661d566 fix playback controls being called multiple times on media key input 2025-10-13 04:33:11 -07:00
jeffvli c88c6cf55e add mediasession playback controls 2025-10-12 16:37:24 -07:00
jeffvli 58becc5c8e add useMediaSession hook to set metadata and status 2025-10-12 16:07:59 -07:00
Gabriele Mancini 6abdbd2f3e Feature: added silent song notification setting (#1129)
* feat: added silent song notification
2025-09-17 21:06:59 -07:00
Tarulia da42fd78d2 cleanup notification text 2025-09-08 17:20:03 +02:00
jeffvli b00305cc86 add setting to prevent sleep on playback (#1072) 2025-09-06 00:56:06 -07:00
Kendall Garner f5af1c314c add image loader/unloader and only toggle source 2025-09-03 19:56:51 -07:00
ch-rit 039e553aa0 fixed hiding the toast after content is loaded 2025-09-03 19:04:36 +02:00
Lyall a44ad66d46 add private mode toggle to app menu 2025-07-31 16:12:03 +01:00
Kendall Garner 69341f4492 More typechecks on scrobble, use timeout on notification (#1004) 2025-07-10 13:53:40 +00:00
Kendall Garner e00aeb2b67 enable notify, simplify use-scrobble with types, remove unused check 2025-07-07 19:25:25 -07:00
Kendall Garner 055d9ac5c1 use initial index for shuffling when availabe 2025-07-02 20:48:45 -07:00
Jeff c1330d92b2 Migrate to Mantine v8 and Design Changes (#961)
* mantine v8 migration

* various design changes and improvements
2025-06-24 00:04:36 -07:00
et21ff 62f4bb0d7b fix(player): Improve MPV stability and seek performance (#953) 2025-06-10 17:22:40 -07:00
jeffvli 930165d006 fix all imports for new structure 2025-05-26 17:20:02 -07:00
jeffvli 1cf587bc8f restructure files onto electron-vite boilerplate 2025-05-26 17:18:55 -07:00
jeffvli d35e73792f fix item playback buttons on search list (#885) 2025-05-06 14:50:59 -07:00
jeffvli 4a3604b1a8 handle playback on new artist list 2025-05-06 14:43:42 -07:00
jeffvli b9611589ba fix casing on some translation strings 2025-05-06 13:23:29 -07:00
Kendall Garner 0115ecb59b fix repeat one/repeat all scrobble 2025-04-20 10:54:44 -07:00
Kendall Garner a89b6640a9 horizontal scroll 2024-10-01 18:15:18 -07:00
Kendall Garner 660c9744bf clear queue when shuffle now 2024-09-11 20:36:46 -07:00
Kendall Garner 74aa88e082 add web visualizer (#314)
* add web visualizer

* fallback to simple model

* less samples, hopefully more efficient

* Use audiomotion analyzer

- Note: fixed to 4.1.1 because 4.2.0 uses esm which breaks in the current workflow...

* revert publish changes

* r2

* don't massively change package.json

* lazy
2024-09-09 01:25:01 +00:00
Kendall Garner 6b7c69e90a fix seeking between 0-1 seconds 2024-09-02 10:56:46 -07:00
Kendall Garner 528bef01f0 provide transcoding support 2024-09-01 08:26:30 -07:00
Kendall Garner 5b2977e5e8 [enhancement]: support viewing current/setting current time in remote 2024-08-24 13:26:45 -07:00
Kendall Garner 88741a8616 add ability to configure double click behavior 2024-08-19 21:56:55 -07:00
Kendall Garner 110a1a63f0 simplify remote/media session (#632) 2024-07-03 01:47:26 -07:00
Kendall Garner 67deb3e3d8 [bugfix]: only restart time when now for web 2024-05-23 20:41:01 -07:00
Kendall Garner 168153b211 [bugfix]: restart timestamp when adding to queue 2024-05-10 12:27:33 -07:00
Kendall Garner 0d03b66fe5 prevent change of media state with empty queue 2024-04-20 22:01:29 -07:00
Kendall Garner 65eca32de3 [bugfix]: do not update mpris status unnecessarily 2024-04-02 08:46:38 -07:00
Kendall Garner ab17ba8add [bugfix]: fix scrobble race conditions 2024-04-01 22:13:06 -07:00
Kendall Garner 65b045df03 [bugfix]: Resolve MPV next/prev race condition
Resolves #536.

With the previous implementation, next/previous would first update
the current queue and then call next/previous. However, since these were
asynchronous calls it was very likely that the second calls would fail
(and a test of adding delay showed that it actually caused a double skip).
This PR resolves this by just removing the prev/next.

Small other fixes:
- setQueue + pause -> setQueue(..., true)
- make MPV and web player have the same behavior for (pause/stop) where appropriate
2024-03-30 21:48:09 -07:00
jeffvli 9a43ea0e4a Attempt to fix player unresponsive on first start 2024-02-16 22:12:28 -08:00
Jeff eab11658bb Merge pull request #501 from kgarner7/allow-no-mpv
- OOBE default to web player
- Allow mpv to run using PATH env
- Add improved mpv error logging
- Add web player fallback on mpv error
2024-02-13 16:16:01 -08:00
jeffvli 9b0c9ba3ac Fallback to web player if mpv fails to run 2024-02-13 02:05:59 -08:00
Kendall Garner e6b01d4e2b [bugfix]: set MPV queue when now or queue is empty 2024-02-13 00:04:28 -08:00
Kendall Garner ae8fc6df13 [bugfix]: improve play behavior
- when adding songs to queue, only `play()` if the queue was empty
- when adding next/last to empty queue, behavior should be same as now
2024-02-10 00:38:21 -08:00
Kendall Garner eff1cee6a3 [bugfix]: Fix repeated track scrobbling (#480)
* [bugfix]: Fix repeated track scrobbling

This commit fixes scrobbling tracks that are repeated in the queue (either due
to a REPEAT_ONE or just enqueued multiple times). There are two extra cases:

1. The current player changes. The player alternates from 1 -> 2 -> 1 whenever playback
finishes normally, so this is a sort of epoch that can be used to detect both repeat one
and track being enqueued multiple times.
2. The current index changes. The player gets set back to 1 in a variety of cases (most often
previous/next), so the check in (1) is not enough. However, the index changing will help identify
that this is a new song.

* use unique id instead
2024-02-01 04:12:39 +00:00
Kendall Garner 5cc2276781 [bugfix]: web player edge cases
Two bugs addressed in response to Safari changes:
1. Only handle `onEnded` for real streams, preventing `autoNext()` spam when the last track finishes
2. `.play()` is not necessarily a safe operation (if empty wave was started, can cause exception later). Catch this exception and discard it. This also only occurred when playing the last track
2024-01-28 01:50:51 -08:00
Jeff 8430b1ec95 Add localization support (#333)
* Add updated i18n config and en locale
2023-10-30 19:22:45 -07:00