feat(music): add music data layer for plex and jellyfin

Backend-neutral fetchArtistAlbums/fetchAlbumTracks/fetchInstantMix/
fetchLyrics, lyrics model + LRC parser, audio quality presets, music
transcode (plex /music universal, jellyfin audio PlaybackInfo profile),
station/InstantMix radio, music search, playlist type derivation, and
audio download resolution.
This commit is contained in:
edde746
2026-07-05 15:55:52 +02:00
parent c87a9060f9
commit fff559da06
27 changed files with 1487 additions and 125 deletions
+6
View File
@@ -15,6 +15,7 @@ import 'base_shared_preferences_service.dart';
import 'device_performance.dart';
export 'base_shared_preferences_service.dart'
show Pref, BoolPref, IntPref, DoublePref, StringPref, NullableStringPref, StringListPref, EnumPref, JsonPref;
import '../models/audio_quality_preset.dart';
import '../models/transcode_quality_preset.dart';
import '../navigation/navigation_tabs.dart';
import '../utils/platform_detector.dart';
@@ -420,6 +421,11 @@ class SettingsService extends BaseSharedPreferencesService {
values: TranscodeQualityPreset.values,
defaultValue: TranscodeQualityPreset.original,
);
static const musicQualityPreset = EnumPref<AudioQualityPreset>(
'music_quality_preset',
values: AudioQualityPreset.values,
defaultValue: AudioQualityPreset.original,
);
static const autoPlayNextEpisode = BoolPref('auto_play_next_episode', defaultValue: true);
static const useExoPlayer = BoolPref('use_exoplayer', defaultValue: true);
static const startupSection = EnumPref<NavigationTabId>(