Skip to content

Commit

Permalink
Support for single-track repeat (resolves #76)
Browse files Browse the repository at this point in the history
  • Loading branch information
yktoo committed Oct 2, 2023
1 parent d9df5cf commit 30853bf
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 13 deletions.
20 changes: 16 additions & 4 deletions internal/player/main-window.go
Original file line number Diff line number Diff line change
Expand Up @@ -1329,20 +1329,26 @@ func (w *MainWindow) playerToggleRandom() {
w.errCheckDialog(err, glib.Local("Failed to toggle random mode"))
}

// playerToggleRepeat toggles player's repeat mode
// playerToggleRepeat toggles player's repeat/single modes
func (w *MainWindow) playerToggleRepeat() {
// Ignore if the state of the button is being updated programmatically
if w.optionsUpdating {
return
}

// Toggle Repeat and Single in the following pattern: No repeat → Repeat all → Repeat single
var err error
w.connector.IfConnected(func(client *mpd.Client) {
err = client.Repeat(w.connector.Status()["repeat"] == "0")
status := w.connector.Status()
repeat := status["repeat"] != "0"
single := status["single"] != "0"
if err = client.Repeat(!repeat || !single); err == nil {
err = client.Single(repeat && !single)
}
})

// Check for error
w.errCheckDialog(err, glib.Local("Failed to toggle repeat mode"))
w.errCheckDialog(err, glib.Local("Failed to toggle repeat/single mode"))
}

// queueClear empties MPD's play queue
Expand Down Expand Up @@ -2163,8 +2169,14 @@ func (w *MainWindow) updateLibraryPath() {
func (w *MainWindow) updateOptions() {
w.optionsUpdating = true
status := w.connector.Status()
repeat, single := status["repeat"] == "1", status["single"] == "1"
w.RandomButton.SetActive(status["random"] == "1")
w.RepeatButton.SetActive(status["repeat"] == "1")
w.RepeatButton.SetActive(repeat)
if repeat && single {
w.RepeatButton.SetIconName("ymuse-repeat-1-symbolic")
} else {
w.RepeatButton.SetIconName("ymuse-repeat-symbolic")
}
w.ConsumeButton.SetActive(status["consume"] == "1")
w.optionsUpdating = false
}
Expand Down
4 changes: 2 additions & 2 deletions resources/i18n/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,8 @@ msgstr "Umschalten der Wiedergabe fehlgeschlagen"
msgid "Failed to toggle random mode"
msgstr "Umschaltung des Zufallsmodus fehlgeschlagen"

msgid "Failed to toggle repeat mode"
msgstr "Umschalten des Wiederholungsmodus fehlgeschlagen"
msgid "Failed to toggle repeat/single mode"
msgstr "Umschalten des Wiederholungs- und Einzelmodus fehlgeschlagen"

msgid "Failed to update the library"
msgstr "Aktualisierung der Bibliothek fehlgeschlagen"
Expand Down
4 changes: 2 additions & 2 deletions resources/i18n/ja.po
Original file line number Diff line number Diff line change
Expand Up @@ -312,8 +312,8 @@ msgstr "トラックを再生できませんでした"
msgid "Failed to toggle random mode"
msgstr "ランダムモードを切り替えられませんでした"

msgid "Failed to toggle repeat mode"
msgstr "リピートモードを切り替えられませんでした"
msgid "Failed to toggle repeat/single mode"
msgstr "リピート/シングルモードの切り替えに失敗"

msgid "Failed to update the library"
msgstr "音楽ライブラリを更新できませんでした"
Expand Down
4 changes: 2 additions & 2 deletions resources/i18n/nl.po
Original file line number Diff line number Diff line change
Expand Up @@ -359,8 +359,8 @@ msgstr "Het is niet gelukt om het afspelen om te schakelen"
msgid "Failed to toggle random mode"
msgstr "Het is niet gelukt om de willekeurigmodus om te schakelen"

msgid "Failed to toggle repeat mode"
msgstr "Het is niet gelukt om de herhaalmodus om te schakelen"
msgid "Failed to toggle repeat/single mode"
msgstr "Het is niet gelukt om de herhaal-/single-modus om te schakelen"

msgid "Failed to update the library"
msgstr "Het is niet gelukt om de mediatheek bij te werken"
Expand Down
4 changes: 2 additions & 2 deletions resources/i18n/ru.po
Original file line number Diff line number Diff line change
Expand Up @@ -363,8 +363,8 @@ msgstr "Не удалось приостановить или возобнови
msgid "Failed to toggle random mode"
msgstr "Не удалось переключить режим случайного порядка"

msgid "Failed to toggle repeat mode"
msgstr "Не удалось переключить режим повтора"
msgid "Failed to toggle repeat/single mode"
msgstr "Не удалось переключить режим повтора/одного трека"

msgid "Failed to update the library"
msgstr "Не удалось обновить библиотеку"
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/ymuse.pot
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ msgstr ""
msgid "Failed to toggle random mode"
msgstr ""

msgid "Failed to toggle repeat mode"
msgid "Failed to toggle repeat/single mode"
msgstr ""

msgid "Failed to update the library"
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 30853bf

Please sign in to comment.