This commit is contained in:
2026-04-14 16:21:06 +02:00
parent 287477753e
commit 460b41a8c5
5 changed files with 301 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ SETTINGS_KEY_MAIN_DEVICE = "playback/audio_device_main"
SETTINGS_KEY_PREV_DEVICE = "playback/audio_device_preview"
SETTINGS_KEY_AFTER_SONG = "playback/after_song_mode"
SETTINGS_KEY_AFTER_DELAY = "playback/after_song_delay"
SETTINGS_KEY_ACOUSTID = "playback/acoustid_enabled"
def load_settings() -> dict:
@@ -50,6 +51,7 @@ def load_settings() -> dict:
"audio_device_preview":s.value(SETTINGS_KEY_PREV_DEVICE, ""),
"after_song_mode": s.value(SETTINGS_KEY_AFTER_SONG, "manual"),
"after_song_delay": s.value(SETTINGS_KEY_AFTER_DELAY, 2, type=int),
"acoustid_enabled": s.value(SETTINGS_KEY_ACOUSTID, False, type=bool),
}
@@ -72,6 +74,7 @@ def save_settings(values: dict):
s.setValue(SETTINGS_KEY_PREV_DEVICE, values.get("audio_device_preview", ""))
s.setValue(SETTINGS_KEY_AFTER_SONG, values.get("after_song_mode", "manual"))
s.setValue(SETTINGS_KEY_AFTER_DELAY, values.get("after_song_delay", 2))
s.setValue(SETTINGS_KEY_ACOUSTID, values.get("acoustid_enabled", False))
class SettingsDialog(QDialog):
@@ -260,6 +263,29 @@ class SettingsDialog(QDialog):
grp3_layout.addRow(note3)
layout.addWidget(grp3)
# AcoustID fingerprinting
grp4 = QGroupBox("AcoustID fingerprinting (valgfri)")
grp4_layout = QVBoxLayout(grp4)
grp4_layout.setSpacing(6)
self._chk_acoustid = QCheckBox("Kør AcoustID fingerprinting i baggrunden")
self._chk_acoustid.setToolTip(
"Analyserer sange uden MBID og slår dem op i AcoustID-databasen.\n"
"Kræver fpcalc (Chromaprint) installeret.\n"
"Startes automatisk 60 sekunder efter opstart."
)
grp4_layout.addWidget(self._chk_acoustid)
note4 = QLabel(
"fpcalc skal installeres separat:\n"
" Linux: sudo apt install libchromaprint-tools\n"
" Windows: download fra acoustid.org/chromaprint"
)
note4.setObjectName("result_count")
note4.setWordWrap(True)
grp4_layout.addWidget(note4)
layout.addWidget(grp4)
layout.addStretch()
return tab
@@ -449,6 +475,7 @@ class SettingsDialog(QDialog):
else:
self._radio_manual.setChecked(True)
self._spin_after_delay.setValue(v.get("after_song_delay", 2))
self._chk_acoustid.setChecked(v.get("acoustid_enabled", False))
# ── Gem ───────────────────────────────────────────────────────────────────
@@ -474,6 +501,7 @@ class SettingsDialog(QDialog):
"manual"
),
"after_song_delay": self._spin_after_delay.value(),
"acoustid_enabled": self._chk_acoustid.isChecked(),
}
save_settings(values)
self._values = values