Commit Graph
11 Commits
Author SHA1 Message Date
Michael Manganiello a40ba5eb79 Update icons to the new Repeat ones 2023-06-20 23:51:04 -03:00
Michael Manganiello 196f7f2cff Add functionality to repeat current track
This new Loop mode keeps reproducing the current track, unless it is
changed using the player controls to go to the next/previous track.

As in other applications, this is set by using the "Repeat" button,
which now goes from "Off" -> "Repeat All" -> "Repeat One".
2023-06-20 23:23:38 -03:00
Michael Manganiello 13f0692566 Move loop button to auxiliary controls, change button color on toggle 2023-06-18 22:45:09 -03:00
Michael Manganiello 7161dd40a9 Reduce direct dependency on Player even more 2023-06-18 22:45:05 -03:00
Michael Manganiello 4629ede7a7 Interface BottomPanel through PlaybackManager to reduce direct dependency on Player 2023-06-18 22:43:03 -03:00
Michael Manganiello 2ab19f65e1 Add Loop functionality to player controls
Adding the Loop functionality, along with the Player changes to support
it, and a button to the player controls.

`Player` now has a `loopMode` attribute, which determines whether it
should loop. At the moment, only the following modes are supported:

* `LoopNone`: Disables loop.
* `LoopAll`: Enables loop for the entire playlist queue.

This has been designed as an enum, to support other modes in the future
(e.g. loop for the current track only).

It depends on the `loop` functionality provided by MPV (using the
[`loop-playlist` option](https://mpv.io/manual/master/#options-loop-playlist)),
so no custom logic is needed to reset the currently playing index.
2023-06-18 22:43:03 -03:00
Michael Manganiello 57646cfbfd Upgrade go-toml to v2
According to the official
[migration guide](https://github.com/pelletier/go-toml/tree/v2#migrating-from-v1),
there are no breaking changes that could affect this project.

Main differences are:

* `Default struct fields order`: Struct fields stop being alphabetically
  sorted, unless their sorting is changed in the struct definitions. Shouldn't be
  relevant.
* `No indentation by default`: Also not relevant for newly generated
  configuration files. Doesn't break reading existing configuration
  files.
2023-06-15 19:46:30 -07:00
Michael Manganiello 50c383df95 Scrobble playing track when removed from queue
This change fixes two `TODO` comments, by scrobbling the currently
playing track if it's removed from the queue, and only run OnSongChange
callbacks when the playing track is affected.
2023-06-15 22:42:51 -03:00
Michael Manganiello 7b15fe95e4 Use GridWrap from fyne-x
With https://github.com/fyne-io/fyne-x/pull/56 merged, the local
implementation can be removed to rely on the upstream version.
2023-06-14 22:08:01 -07:00
Michael Manganiello 39b17abd7d Fix typo on NewTappableIcon function 2023-06-12 18:45:21 -07:00
Michael Manganiello c19edccf80 Temporarily add tappable behavior to seekbar slider until Fyne 2.4 (#188)
Same code as
https://github.com/dweymouth/supersonic/commit/a9cec173ddcd0999cfbe7f61ca15c01bd3c1cbce,
but for the volume slider.

Related issue: #95
2023-06-10 14:57:38 -07:00