Compare commits

..

1 Commits

Author SHA1 Message Date
Richard Hajek
fb3853f73b
Merge 42e954428b into 3e34bc4be6 2025-09-19 21:43:29 +06:00
57 changed files with 532 additions and 920 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,5 +1,3 @@
// dart format width=80
/// GENERATED CODE - DO NOT MODIFY BY HAND /// GENERATED CODE - DO NOT MODIFY BY HAND
/// ***************************************************** /// *****************************************************
/// FlutterGen /// FlutterGen
@ -7,7 +5,7 @@
// coverage:ignore-file // coverage:ignore-file
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
@ -69,10 +67,6 @@ class $AssetsImagesGen {
class $AssetsImagesLogosGen { class $AssetsImagesLogosGen {
const $AssetsImagesLogosGen(); const $AssetsImagesLogosGen();
/// File path: assets/images/logos/dab-music.png
AssetGenImage get dabMusic =>
const AssetGenImage('assets/images/logos/dab-music.png');
/// File path: assets/images/logos/invidious.jpg /// File path: assets/images/logos/invidious.jpg
AssetGenImage get invidious => AssetGenImage get invidious =>
const AssetGenImage('assets/images/logos/invidious.jpg'); const AssetGenImage('assets/images/logos/invidious.jpg');
@ -86,12 +80,11 @@ class $AssetsImagesLogosGen {
const AssetGenImage('assets/images/logos/songlink-transparent.png'); const AssetGenImage('assets/images/logos/songlink-transparent.png');
/// List of all assets /// List of all assets
List<AssetGenImage> get values => List<AssetGenImage> get values => [invidious, jiosaavn, songlinkTransparent];
[dabMusic, invidious, jiosaavn, songlinkTransparent];
} }
class Assets { class Assets {
const Assets._(); Assets._();
static const String license = 'LICENSE'; static const String license = 'LICENSE';
static const $AssetsBrandingGen branding = $AssetsBrandingGen(); static const $AssetsBrandingGen branding = $AssetsBrandingGen();
@ -106,14 +99,12 @@ class AssetGenImage {
this._assetName, { this._assetName, {
this.size, this.size,
this.flavors = const {}, this.flavors = const {},
this.animation,
}); });
final String _assetName; final String _assetName;
final Size? size; final Size? size;
final Set<String> flavors; final Set<String> flavors;
final AssetGenImageAnimation? animation;
Image image({ Image image({
Key? key, Key? key,
@ -136,7 +127,7 @@ class AssetGenImage {
bool gaplessPlayback = true, bool gaplessPlayback = true,
bool isAntiAlias = false, bool isAntiAlias = false,
String? package, String? package,
FilterQuality filterQuality = FilterQuality.medium, FilterQuality filterQuality = FilterQuality.low,
int? cacheWidth, int? cacheWidth,
int? cacheHeight, int? cacheHeight,
}) { }) {
@ -183,15 +174,3 @@ class AssetGenImage {
String get keyName => _assetName; String get keyName => _assetName;
} }
class AssetGenImageAnimation {
const AssetGenImageAnimation({
required this.isAnimation,
required this.duration,
required this.frames,
});
final bool isAnimation;
final Duration duration;
final int frames;
}

View File

@ -1,4 +1,3 @@
// dart format width=80
/// GENERATED CODE - DO NOT MODIFY BY HAND /// GENERATED CODE - DO NOT MODIFY BY HAND
/// ***************************************************** /// *****************************************************
/// FlutterGen /// FlutterGen
@ -6,7 +5,7 @@
// coverage:ignore-file // coverage:ignore-file
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
class FontFamily { class FontFamily {
FontFamily._(); FontFamily._();

View File

@ -1,4 +1,3 @@
// dart format width=80
// GENERATED CODE - DO NOT MODIFY BY HAND // GENERATED CODE - DO NOT MODIFY BY HAND
// ************************************************************************** // **************************************************************************
@ -60,7 +59,10 @@ import 'package:spotube/pages/track/track.dart' as _i35;
/// [_i1.AboutSpotubePage] /// [_i1.AboutSpotubePage]
class AboutSpotubeRoute extends _i41.PageRouteInfo<void> { class AboutSpotubeRoute extends _i41.PageRouteInfo<void> {
const AboutSpotubeRoute({List<_i41.PageRouteInfo>? children}) const AboutSpotubeRoute({List<_i41.PageRouteInfo>? children})
: super(AboutSpotubeRoute.name, initialChildren: children); : super(
AboutSpotubeRoute.name,
initialChildren: children,
);
static const String name = 'AboutSpotubeRoute'; static const String name = 'AboutSpotubeRoute';
@ -81,11 +83,15 @@ class AlbumRoute extends _i41.PageRouteInfo<AlbumRouteArgs> {
required _i43.SpotubeSimpleAlbumObject album, required _i43.SpotubeSimpleAlbumObject album,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
AlbumRoute.name, AlbumRoute.name,
args: AlbumRouteArgs(key: key, id: id, album: album), args: AlbumRouteArgs(
rawPathParams: {'id': id}, key: key,
initialChildren: children, id: id,
); album: album,
),
rawPathParams: {'id': id},
initialChildren: children,
);
static const String name = 'AlbumRoute'; static const String name = 'AlbumRoute';
@ -93,13 +99,21 @@ class AlbumRoute extends _i41.PageRouteInfo<AlbumRouteArgs> {
name, name,
builder: (data) { builder: (data) {
final args = data.argsAs<AlbumRouteArgs>(); final args = data.argsAs<AlbumRouteArgs>();
return _i2.AlbumPage(key: args.key, id: args.id, album: args.album); return _i2.AlbumPage(
key: args.key,
id: args.id,
album: args.album,
);
}, },
); );
} }
class AlbumRouteArgs { class AlbumRouteArgs {
const AlbumRouteArgs({this.key, required this.id, required this.album}); const AlbumRouteArgs({
this.key,
required this.id,
required this.album,
});
final _i42.Key? key; final _i42.Key? key;
@ -121,11 +135,14 @@ class ArtistRoute extends _i41.PageRouteInfo<ArtistRouteArgs> {
_i42.Key? key, _i42.Key? key,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
ArtistRoute.name, ArtistRoute.name,
args: ArtistRouteArgs(artistId: artistId, key: key), args: ArtistRouteArgs(
rawPathParams: {'id': artistId}, artistId: artistId,
initialChildren: children, key: key,
); ),
rawPathParams: {'id': artistId},
initialChildren: children,
);
static const String name = 'ArtistRoute'; static const String name = 'ArtistRoute';
@ -134,15 +151,20 @@ class ArtistRoute extends _i41.PageRouteInfo<ArtistRouteArgs> {
builder: (data) { builder: (data) {
final pathParams = data.inheritedPathParams; final pathParams = data.inheritedPathParams;
final args = data.argsAs<ArtistRouteArgs>( final args = data.argsAs<ArtistRouteArgs>(
orElse: () => ArtistRouteArgs(artistId: pathParams.getString('id')), orElse: () => ArtistRouteArgs(artistId: pathParams.getString('id')));
return _i3.ArtistPage(
args.artistId,
key: args.key,
); );
return _i3.ArtistPage(args.artistId, key: args.key);
}, },
); );
} }
class ArtistRouteArgs { class ArtistRouteArgs {
const ArtistRouteArgs({required this.artistId, this.key}); const ArtistRouteArgs({
required this.artistId,
this.key,
});
final String artistId; final String artistId;
@ -158,7 +180,10 @@ class ArtistRouteArgs {
/// [_i4.BlackListPage] /// [_i4.BlackListPage]
class BlackListRoute extends _i41.PageRouteInfo<void> { class BlackListRoute extends _i41.PageRouteInfo<void> {
const BlackListRoute({List<_i41.PageRouteInfo>? children}) const BlackListRoute({List<_i41.PageRouteInfo>? children})
: super(BlackListRoute.name, initialChildren: children); : super(
BlackListRoute.name,
initialChildren: children,
);
static const String name = 'BlackListRoute'; static const String name = 'BlackListRoute';
@ -174,7 +199,10 @@ class BlackListRoute extends _i41.PageRouteInfo<void> {
/// [_i5.ConnectControlPage] /// [_i5.ConnectControlPage]
class ConnectControlRoute extends _i41.PageRouteInfo<void> { class ConnectControlRoute extends _i41.PageRouteInfo<void> {
const ConnectControlRoute({List<_i41.PageRouteInfo>? children}) const ConnectControlRoute({List<_i41.PageRouteInfo>? children})
: super(ConnectControlRoute.name, initialChildren: children); : super(
ConnectControlRoute.name,
initialChildren: children,
);
static const String name = 'ConnectControlRoute'; static const String name = 'ConnectControlRoute';
@ -190,7 +218,10 @@ class ConnectControlRoute extends _i41.PageRouteInfo<void> {
/// [_i6.ConnectPage] /// [_i6.ConnectPage]
class ConnectRoute extends _i41.PageRouteInfo<void> { class ConnectRoute extends _i41.PageRouteInfo<void> {
const ConnectRoute({List<_i41.PageRouteInfo>? children}) const ConnectRoute({List<_i41.PageRouteInfo>? children})
: super(ConnectRoute.name, initialChildren: children); : super(
ConnectRoute.name,
initialChildren: children,
);
static const String name = 'ConnectRoute'; static const String name = 'ConnectRoute';
@ -206,7 +237,10 @@ class ConnectRoute extends _i41.PageRouteInfo<void> {
/// [_i7.GettingStartedPage] /// [_i7.GettingStartedPage]
class GettingStartedRoute extends _i41.PageRouteInfo<void> { class GettingStartedRoute extends _i41.PageRouteInfo<void> {
const GettingStartedRoute({List<_i41.PageRouteInfo>? children}) const GettingStartedRoute({List<_i41.PageRouteInfo>? children})
: super(GettingStartedRoute.name, initialChildren: children); : super(
GettingStartedRoute.name,
initialChildren: children,
);
static const String name = 'GettingStartedRoute'; static const String name = 'GettingStartedRoute';
@ -228,15 +262,15 @@ class HomeBrowseSectionItemsRoute
required _i43.SpotubeBrowseSectionObject<Object> section, required _i43.SpotubeBrowseSectionObject<Object> section,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
HomeBrowseSectionItemsRoute.name, HomeBrowseSectionItemsRoute.name,
args: HomeBrowseSectionItemsRouteArgs( args: HomeBrowseSectionItemsRouteArgs(
key: key, key: key,
sectionId: sectionId, sectionId: sectionId,
section: section, section: section,
), ),
rawPathParams: {'sectionId': sectionId}, rawPathParams: {'sectionId': sectionId},
initialChildren: children, initialChildren: children,
); );
static const String name = 'HomeBrowseSectionItemsRoute'; static const String name = 'HomeBrowseSectionItemsRoute';
@ -276,7 +310,10 @@ class HomeBrowseSectionItemsRouteArgs {
/// [_i9.HomePage] /// [_i9.HomePage]
class HomeRoute extends _i41.PageRouteInfo<void> { class HomeRoute extends _i41.PageRouteInfo<void> {
const HomeRoute({List<_i41.PageRouteInfo>? children}) const HomeRoute({List<_i41.PageRouteInfo>? children})
: super(HomeRoute.name, initialChildren: children); : super(
HomeRoute.name,
initialChildren: children,
);
static const String name = 'HomeRoute'; static const String name = 'HomeRoute';
@ -292,7 +329,10 @@ class HomeRoute extends _i41.PageRouteInfo<void> {
/// [_i10.LastFMLoginPage] /// [_i10.LastFMLoginPage]
class LastFMLoginRoute extends _i41.PageRouteInfo<void> { class LastFMLoginRoute extends _i41.PageRouteInfo<void> {
const LastFMLoginRoute({List<_i41.PageRouteInfo>? children}) const LastFMLoginRoute({List<_i41.PageRouteInfo>? children})
: super(LastFMLoginRoute.name, initialChildren: children); : super(
LastFMLoginRoute.name,
initialChildren: children,
);
static const String name = 'LastFMLoginRoute'; static const String name = 'LastFMLoginRoute';
@ -308,7 +348,10 @@ class LastFMLoginRoute extends _i41.PageRouteInfo<void> {
/// [_i11.LibraryPage] /// [_i11.LibraryPage]
class LibraryRoute extends _i41.PageRouteInfo<void> { class LibraryRoute extends _i41.PageRouteInfo<void> {
const LibraryRoute({List<_i41.PageRouteInfo>? children}) const LibraryRoute({List<_i41.PageRouteInfo>? children})
: super(LibraryRoute.name, initialChildren: children); : super(
LibraryRoute.name,
initialChildren: children,
);
static const String name = 'LibraryRoute'; static const String name = 'LibraryRoute';
@ -328,10 +371,13 @@ class LikedPlaylistRoute extends _i41.PageRouteInfo<LikedPlaylistRouteArgs> {
required _i43.SpotubeSimplePlaylistObject playlist, required _i43.SpotubeSimplePlaylistObject playlist,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
LikedPlaylistRoute.name, LikedPlaylistRoute.name,
args: LikedPlaylistRouteArgs(key: key, playlist: playlist), args: LikedPlaylistRouteArgs(
initialChildren: children, key: key,
); playlist: playlist,
),
initialChildren: children,
);
static const String name = 'LikedPlaylistRoute'; static const String name = 'LikedPlaylistRoute';
@ -339,13 +385,19 @@ class LikedPlaylistRoute extends _i41.PageRouteInfo<LikedPlaylistRouteArgs> {
name, name,
builder: (data) { builder: (data) {
final args = data.argsAs<LikedPlaylistRouteArgs>(); final args = data.argsAs<LikedPlaylistRouteArgs>();
return _i12.LikedPlaylistPage(key: args.key, playlist: args.playlist); return _i12.LikedPlaylistPage(
key: args.key,
playlist: args.playlist,
);
}, },
); );
} }
class LikedPlaylistRouteArgs { class LikedPlaylistRouteArgs {
const LikedPlaylistRouteArgs({this.key, required this.playlist}); const LikedPlaylistRouteArgs({
this.key,
required this.playlist,
});
final _i42.Key? key; final _i42.Key? key;
@ -367,15 +419,15 @@ class LocalLibraryRoute extends _i41.PageRouteInfo<LocalLibraryRouteArgs> {
bool isCache = false, bool isCache = false,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
LocalLibraryRoute.name, LocalLibraryRoute.name,
args: LocalLibraryRouteArgs( args: LocalLibraryRouteArgs(
location: location, location: location,
key: key, key: key,
isDownloads: isDownloads, isDownloads: isDownloads,
isCache: isCache, isCache: isCache,
), ),
initialChildren: children, initialChildren: children,
); );
static const String name = 'LocalLibraryRoute'; static const String name = 'LocalLibraryRoute';
@ -419,7 +471,10 @@ class LocalLibraryRouteArgs {
/// [_i14.LogsPage] /// [_i14.LogsPage]
class LogsRoute extends _i41.PageRouteInfo<void> { class LogsRoute extends _i41.PageRouteInfo<void> {
const LogsRoute({List<_i41.PageRouteInfo>? children}) const LogsRoute({List<_i41.PageRouteInfo>? children})
: super(LogsRoute.name, initialChildren: children); : super(
LogsRoute.name,
initialChildren: children,
);
static const String name = 'LogsRoute'; static const String name = 'LogsRoute';
@ -435,7 +490,10 @@ class LogsRoute extends _i41.PageRouteInfo<void> {
/// [_i15.LyricsPage] /// [_i15.LyricsPage]
class LyricsRoute extends _i41.PageRouteInfo<void> { class LyricsRoute extends _i41.PageRouteInfo<void> {
const LyricsRoute({List<_i41.PageRouteInfo>? children}) const LyricsRoute({List<_i41.PageRouteInfo>? children})
: super(LyricsRoute.name, initialChildren: children); : super(
LyricsRoute.name,
initialChildren: children,
);
static const String name = 'LyricsRoute'; static const String name = 'LyricsRoute';
@ -455,10 +513,13 @@ class MiniLyricsRoute extends _i41.PageRouteInfo<MiniLyricsRouteArgs> {
required _i44.Size prevSize, required _i44.Size prevSize,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
MiniLyricsRoute.name, MiniLyricsRoute.name,
args: MiniLyricsRouteArgs(key: key, prevSize: prevSize), args: MiniLyricsRouteArgs(
initialChildren: children, key: key,
); prevSize: prevSize,
),
initialChildren: children,
);
static const String name = 'MiniLyricsRoute'; static const String name = 'MiniLyricsRoute';
@ -466,13 +527,19 @@ class MiniLyricsRoute extends _i41.PageRouteInfo<MiniLyricsRouteArgs> {
name, name,
builder: (data) { builder: (data) {
final args = data.argsAs<MiniLyricsRouteArgs>(); final args = data.argsAs<MiniLyricsRouteArgs>();
return _i16.MiniLyricsPage(key: args.key, prevSize: args.prevSize); return _i16.MiniLyricsPage(
key: args.key,
prevSize: args.prevSize,
);
}, },
); );
} }
class MiniLyricsRouteArgs { class MiniLyricsRouteArgs {
const MiniLyricsRouteArgs({this.key, required this.prevSize}); const MiniLyricsRouteArgs({
this.key,
required this.prevSize,
});
final _i44.Key? key; final _i44.Key? key;
@ -488,7 +555,10 @@ class MiniLyricsRouteArgs {
/// [_i17.PlayerLyricsPage] /// [_i17.PlayerLyricsPage]
class PlayerLyricsRoute extends _i41.PageRouteInfo<void> { class PlayerLyricsRoute extends _i41.PageRouteInfo<void> {
const PlayerLyricsRoute({List<_i41.PageRouteInfo>? children}) const PlayerLyricsRoute({List<_i41.PageRouteInfo>? children})
: super(PlayerLyricsRoute.name, initialChildren: children); : super(
PlayerLyricsRoute.name,
initialChildren: children,
);
static const String name = 'PlayerLyricsRoute'; static const String name = 'PlayerLyricsRoute';
@ -504,7 +574,10 @@ class PlayerLyricsRoute extends _i41.PageRouteInfo<void> {
/// [_i18.PlayerQueuePage] /// [_i18.PlayerQueuePage]
class PlayerQueueRoute extends _i41.PageRouteInfo<void> { class PlayerQueueRoute extends _i41.PageRouteInfo<void> {
const PlayerQueueRoute({List<_i41.PageRouteInfo>? children}) const PlayerQueueRoute({List<_i41.PageRouteInfo>? children})
: super(PlayerQueueRoute.name, initialChildren: children); : super(
PlayerQueueRoute.name,
initialChildren: children,
);
static const String name = 'PlayerQueueRoute'; static const String name = 'PlayerQueueRoute';
@ -520,7 +593,10 @@ class PlayerQueueRoute extends _i41.PageRouteInfo<void> {
/// [_i19.PlayerTrackSourcesPage] /// [_i19.PlayerTrackSourcesPage]
class PlayerTrackSourcesRoute extends _i41.PageRouteInfo<void> { class PlayerTrackSourcesRoute extends _i41.PageRouteInfo<void> {
const PlayerTrackSourcesRoute({List<_i41.PageRouteInfo>? children}) const PlayerTrackSourcesRoute({List<_i41.PageRouteInfo>? children})
: super(PlayerTrackSourcesRoute.name, initialChildren: children); : super(
PlayerTrackSourcesRoute.name,
initialChildren: children,
);
static const String name = 'PlayerTrackSourcesRoute'; static const String name = 'PlayerTrackSourcesRoute';
@ -541,11 +617,15 @@ class PlaylistRoute extends _i41.PageRouteInfo<PlaylistRouteArgs> {
required _i43.SpotubeSimplePlaylistObject playlist, required _i43.SpotubeSimplePlaylistObject playlist,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
PlaylistRoute.name, PlaylistRoute.name,
args: PlaylistRouteArgs(key: key, id: id, playlist: playlist), args: PlaylistRouteArgs(
rawPathParams: {'id': id}, key: key,
initialChildren: children, id: id,
); playlist: playlist,
),
rawPathParams: {'id': id},
initialChildren: children,
);
static const String name = 'PlaylistRoute'; static const String name = 'PlaylistRoute';
@ -563,7 +643,11 @@ class PlaylistRoute extends _i41.PageRouteInfo<PlaylistRouteArgs> {
} }
class PlaylistRouteArgs { class PlaylistRouteArgs {
const PlaylistRouteArgs({this.key, required this.id, required this.playlist}); const PlaylistRouteArgs({
this.key,
required this.id,
required this.playlist,
});
final _i42.Key? key; final _i42.Key? key;
@ -581,7 +665,10 @@ class PlaylistRouteArgs {
/// [_i21.ProfilePage] /// [_i21.ProfilePage]
class ProfileRoute extends _i41.PageRouteInfo<void> { class ProfileRoute extends _i41.PageRouteInfo<void> {
const ProfileRoute({List<_i41.PageRouteInfo>? children}) const ProfileRoute({List<_i41.PageRouteInfo>? children})
: super(ProfileRoute.name, initialChildren: children); : super(
ProfileRoute.name,
initialChildren: children,
);
static const String name = 'ProfileRoute'; static const String name = 'ProfileRoute';
@ -597,7 +684,10 @@ class ProfileRoute extends _i41.PageRouteInfo<void> {
/// [_i22.RootAppPage] /// [_i22.RootAppPage]
class RootAppRoute extends _i41.PageRouteInfo<void> { class RootAppRoute extends _i41.PageRouteInfo<void> {
const RootAppRoute({List<_i41.PageRouteInfo>? children}) const RootAppRoute({List<_i41.PageRouteInfo>? children})
: super(RootAppRoute.name, initialChildren: children); : super(
RootAppRoute.name,
initialChildren: children,
);
static const String name = 'RootAppRoute'; static const String name = 'RootAppRoute';
@ -613,7 +703,10 @@ class RootAppRoute extends _i41.PageRouteInfo<void> {
/// [_i23.SearchPage] /// [_i23.SearchPage]
class SearchRoute extends _i41.PageRouteInfo<void> { class SearchRoute extends _i41.PageRouteInfo<void> {
const SearchRoute({List<_i41.PageRouteInfo>? children}) const SearchRoute({List<_i41.PageRouteInfo>? children})
: super(SearchRoute.name, initialChildren: children); : super(
SearchRoute.name,
initialChildren: children,
);
static const String name = 'SearchRoute'; static const String name = 'SearchRoute';
@ -635,14 +728,14 @@ class SettingsMetadataProviderFormRoute
required List<_i43.MetadataFormFieldObject> fields, required List<_i43.MetadataFormFieldObject> fields,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
SettingsMetadataProviderFormRoute.name, SettingsMetadataProviderFormRoute.name,
args: SettingsMetadataProviderFormRouteArgs( args: SettingsMetadataProviderFormRouteArgs(
key: key, key: key,
title: title, title: title,
fields: fields, fields: fields,
), ),
initialChildren: children, initialChildren: children,
); );
static const String name = 'SettingsMetadataProviderFormRoute'; static const String name = 'SettingsMetadataProviderFormRoute';
@ -682,7 +775,10 @@ class SettingsMetadataProviderFormRouteArgs {
/// [_i25.SettingsMetadataProviderPage] /// [_i25.SettingsMetadataProviderPage]
class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> { class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> {
const SettingsMetadataProviderRoute({List<_i41.PageRouteInfo>? children}) const SettingsMetadataProviderRoute({List<_i41.PageRouteInfo>? children})
: super(SettingsMetadataProviderRoute.name, initialChildren: children); : super(
SettingsMetadataProviderRoute.name,
initialChildren: children,
);
static const String name = 'SettingsMetadataProviderRoute'; static const String name = 'SettingsMetadataProviderRoute';
@ -698,7 +794,10 @@ class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> {
/// [_i26.SettingsPage] /// [_i26.SettingsPage]
class SettingsRoute extends _i41.PageRouteInfo<void> { class SettingsRoute extends _i41.PageRouteInfo<void> {
const SettingsRoute({List<_i41.PageRouteInfo>? children}) const SettingsRoute({List<_i41.PageRouteInfo>? children})
: super(SettingsRoute.name, initialChildren: children); : super(
SettingsRoute.name,
initialChildren: children,
);
static const String name = 'SettingsRoute'; static const String name = 'SettingsRoute';
@ -714,7 +813,10 @@ class SettingsRoute extends _i41.PageRouteInfo<void> {
/// [_i27.SettingsScrobblingPage] /// [_i27.SettingsScrobblingPage]
class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> { class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> {
const SettingsScrobblingRoute({List<_i41.PageRouteInfo>? children}) const SettingsScrobblingRoute({List<_i41.PageRouteInfo>? children})
: super(SettingsScrobblingRoute.name, initialChildren: children); : super(
SettingsScrobblingRoute.name,
initialChildren: children,
);
static const String name = 'SettingsScrobblingRoute'; static const String name = 'SettingsScrobblingRoute';
@ -730,7 +832,10 @@ class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> {
/// [_i28.StatsAlbumsPage] /// [_i28.StatsAlbumsPage]
class StatsAlbumsRoute extends _i41.PageRouteInfo<void> { class StatsAlbumsRoute extends _i41.PageRouteInfo<void> {
const StatsAlbumsRoute({List<_i41.PageRouteInfo>? children}) const StatsAlbumsRoute({List<_i41.PageRouteInfo>? children})
: super(StatsAlbumsRoute.name, initialChildren: children); : super(
StatsAlbumsRoute.name,
initialChildren: children,
);
static const String name = 'StatsAlbumsRoute'; static const String name = 'StatsAlbumsRoute';
@ -746,7 +851,10 @@ class StatsAlbumsRoute extends _i41.PageRouteInfo<void> {
/// [_i29.StatsArtistsPage] /// [_i29.StatsArtistsPage]
class StatsArtistsRoute extends _i41.PageRouteInfo<void> { class StatsArtistsRoute extends _i41.PageRouteInfo<void> {
const StatsArtistsRoute({List<_i41.PageRouteInfo>? children}) const StatsArtistsRoute({List<_i41.PageRouteInfo>? children})
: super(StatsArtistsRoute.name, initialChildren: children); : super(
StatsArtistsRoute.name,
initialChildren: children,
);
static const String name = 'StatsArtistsRoute'; static const String name = 'StatsArtistsRoute';
@ -762,7 +870,10 @@ class StatsArtistsRoute extends _i41.PageRouteInfo<void> {
/// [_i30.StatsMinutesPage] /// [_i30.StatsMinutesPage]
class StatsMinutesRoute extends _i41.PageRouteInfo<void> { class StatsMinutesRoute extends _i41.PageRouteInfo<void> {
const StatsMinutesRoute({List<_i41.PageRouteInfo>? children}) const StatsMinutesRoute({List<_i41.PageRouteInfo>? children})
: super(StatsMinutesRoute.name, initialChildren: children); : super(
StatsMinutesRoute.name,
initialChildren: children,
);
static const String name = 'StatsMinutesRoute'; static const String name = 'StatsMinutesRoute';
@ -778,7 +889,10 @@ class StatsMinutesRoute extends _i41.PageRouteInfo<void> {
/// [_i31.StatsPage] /// [_i31.StatsPage]
class StatsRoute extends _i41.PageRouteInfo<void> { class StatsRoute extends _i41.PageRouteInfo<void> {
const StatsRoute({List<_i41.PageRouteInfo>? children}) const StatsRoute({List<_i41.PageRouteInfo>? children})
: super(StatsRoute.name, initialChildren: children); : super(
StatsRoute.name,
initialChildren: children,
);
static const String name = 'StatsRoute'; static const String name = 'StatsRoute';
@ -794,7 +908,10 @@ class StatsRoute extends _i41.PageRouteInfo<void> {
/// [_i32.StatsPlaylistsPage] /// [_i32.StatsPlaylistsPage]
class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> { class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> {
const StatsPlaylistsRoute({List<_i41.PageRouteInfo>? children}) const StatsPlaylistsRoute({List<_i41.PageRouteInfo>? children})
: super(StatsPlaylistsRoute.name, initialChildren: children); : super(
StatsPlaylistsRoute.name,
initialChildren: children,
);
static const String name = 'StatsPlaylistsRoute'; static const String name = 'StatsPlaylistsRoute';
@ -810,7 +927,10 @@ class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> {
/// [_i33.StatsStreamFeesPage] /// [_i33.StatsStreamFeesPage]
class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> { class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> {
const StatsStreamFeesRoute({List<_i41.PageRouteInfo>? children}) const StatsStreamFeesRoute({List<_i41.PageRouteInfo>? children})
: super(StatsStreamFeesRoute.name, initialChildren: children); : super(
StatsStreamFeesRoute.name,
initialChildren: children,
);
static const String name = 'StatsStreamFeesRoute'; static const String name = 'StatsStreamFeesRoute';
@ -826,7 +946,10 @@ class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> {
/// [_i34.StatsStreamsPage] /// [_i34.StatsStreamsPage]
class StatsStreamsRoute extends _i41.PageRouteInfo<void> { class StatsStreamsRoute extends _i41.PageRouteInfo<void> {
const StatsStreamsRoute({List<_i41.PageRouteInfo>? children}) const StatsStreamsRoute({List<_i41.PageRouteInfo>? children})
: super(StatsStreamsRoute.name, initialChildren: children); : super(
StatsStreamsRoute.name,
initialChildren: children,
);
static const String name = 'StatsStreamsRoute'; static const String name = 'StatsStreamsRoute';
@ -846,11 +969,14 @@ class TrackRoute extends _i41.PageRouteInfo<TrackRouteArgs> {
required String trackId, required String trackId,
List<_i41.PageRouteInfo>? children, List<_i41.PageRouteInfo>? children,
}) : super( }) : super(
TrackRoute.name, TrackRoute.name,
args: TrackRouteArgs(key: key, trackId: trackId), args: TrackRouteArgs(
rawPathParams: {'id': trackId}, key: key,
initialChildren: children, trackId: trackId,
); ),
rawPathParams: {'id': trackId},
initialChildren: children,
);
static const String name = 'TrackRoute'; static const String name = 'TrackRoute';
@ -859,15 +985,20 @@ class TrackRoute extends _i41.PageRouteInfo<TrackRouteArgs> {
builder: (data) { builder: (data) {
final pathParams = data.inheritedPathParams; final pathParams = data.inheritedPathParams;
final args = data.argsAs<TrackRouteArgs>( final args = data.argsAs<TrackRouteArgs>(
orElse: () => TrackRouteArgs(trackId: pathParams.getString('id')), orElse: () => TrackRouteArgs(trackId: pathParams.getString('id')));
return _i35.TrackPage(
key: args.key,
trackId: args.trackId,
); );
return _i35.TrackPage(key: args.key, trackId: args.trackId);
}, },
); );
} }
class TrackRouteArgs { class TrackRouteArgs {
const TrackRouteArgs({this.key, required this.trackId}); const TrackRouteArgs({
this.key,
required this.trackId,
});
final _i44.Key? key; final _i44.Key? key;
@ -883,7 +1014,10 @@ class TrackRouteArgs {
/// [_i36.UserAlbumsPage] /// [_i36.UserAlbumsPage]
class UserAlbumsRoute extends _i41.PageRouteInfo<void> { class UserAlbumsRoute extends _i41.PageRouteInfo<void> {
const UserAlbumsRoute({List<_i41.PageRouteInfo>? children}) const UserAlbumsRoute({List<_i41.PageRouteInfo>? children})
: super(UserAlbumsRoute.name, initialChildren: children); : super(
UserAlbumsRoute.name,
initialChildren: children,
);
static const String name = 'UserAlbumsRoute'; static const String name = 'UserAlbumsRoute';
@ -899,7 +1033,10 @@ class UserAlbumsRoute extends _i41.PageRouteInfo<void> {
/// [_i37.UserArtistsPage] /// [_i37.UserArtistsPage]
class UserArtistsRoute extends _i41.PageRouteInfo<void> { class UserArtistsRoute extends _i41.PageRouteInfo<void> {
const UserArtistsRoute({List<_i41.PageRouteInfo>? children}) const UserArtistsRoute({List<_i41.PageRouteInfo>? children})
: super(UserArtistsRoute.name, initialChildren: children); : super(
UserArtistsRoute.name,
initialChildren: children,
);
static const String name = 'UserArtistsRoute'; static const String name = 'UserArtistsRoute';
@ -915,7 +1052,10 @@ class UserArtistsRoute extends _i41.PageRouteInfo<void> {
/// [_i38.UserDownloadsPage] /// [_i38.UserDownloadsPage]
class UserDownloadsRoute extends _i41.PageRouteInfo<void> { class UserDownloadsRoute extends _i41.PageRouteInfo<void> {
const UserDownloadsRoute({List<_i41.PageRouteInfo>? children}) const UserDownloadsRoute({List<_i41.PageRouteInfo>? children})
: super(UserDownloadsRoute.name, initialChildren: children); : super(
UserDownloadsRoute.name,
initialChildren: children,
);
static const String name = 'UserDownloadsRoute'; static const String name = 'UserDownloadsRoute';
@ -931,7 +1071,10 @@ class UserDownloadsRoute extends _i41.PageRouteInfo<void> {
/// [_i39.UserLocalLibraryPage] /// [_i39.UserLocalLibraryPage]
class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> { class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> {
const UserLocalLibraryRoute({List<_i41.PageRouteInfo>? children}) const UserLocalLibraryRoute({List<_i41.PageRouteInfo>? children})
: super(UserLocalLibraryRoute.name, initialChildren: children); : super(
UserLocalLibraryRoute.name,
initialChildren: children,
);
static const String name = 'UserLocalLibraryRoute'; static const String name = 'UserLocalLibraryRoute';
@ -947,7 +1090,10 @@ class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> {
/// [_i40.UserPlaylistsPage] /// [_i40.UserPlaylistsPage]
class UserPlaylistsRoute extends _i41.PageRouteInfo<void> { class UserPlaylistsRoute extends _i41.PageRouteInfo<void> {
const UserPlaylistsRoute({List<_i41.PageRouteInfo>? children}) const UserPlaylistsRoute({List<_i41.PageRouteInfo>? children})
: super(UserPlaylistsRoute.name, initialChildren: children); : super(
UserPlaylistsRoute.name,
initialChildren: children,
);
static const String name = 'UserPlaylistsRoute'; static const String name = 'UserPlaylistsRoute';

View File

@ -80,7 +80,6 @@ abstract class SpotubeIcons {
static const hoverOff = Icons.back_hand_outlined; static const hoverOff = Icons.back_hand_outlined;
static const dragHandle = Icons.drag_indicator; static const dragHandle = Icons.drag_indicator;
static const lightning = Icons.flash_on_rounded; static const lightning = Icons.flash_on_rounded;
static const lightningOutlined = FeatherIcons.zap;
static const colorSync = FeatherIcons.activity; static const colorSync = FeatherIcons.activity;
static const language = FeatherIcons.globe; static const language = FeatherIcons.globe;
static const error = FeatherIcons.alertTriangle; static const error = FeatherIcons.alertTriangle;

View File

@ -463,6 +463,5 @@
"audio_scrobblers": "Audio Scrobblers", "audio_scrobblers": "Audio Scrobblers",
"scrobbling": "Scrobbling", "scrobbling": "Scrobbling",
"source": "Source: ", "source": "Source: ",
"uncompressed": "Uncompressed", "uncompressed": "Uncompressed"
"dab_music_source_description": "For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching."
} }

View File

@ -2942,12 +2942,6 @@ abstract class AppLocalizations {
/// In en, this message translates to: /// In en, this message translates to:
/// **'Uncompressed'** /// **'Uncompressed'**
String get uncompressed; String get uncompressed;
/// No description provided for @dab_music_source_description.
///
/// In en, this message translates to:
/// **'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.'**
String get dab_music_source_description;
} }
class _AppLocalizationsDelegate class _AppLocalizationsDelegate

View File

@ -1543,8 +1543,4 @@ class AppLocalizationsAr extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1544,8 +1544,4 @@ class AppLocalizationsBn extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1554,8 +1554,4 @@ class AppLocalizationsCa extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1544,8 +1544,4 @@ class AppLocalizationsCs extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1556,8 +1556,4 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1542,8 +1542,4 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1557,8 +1557,4 @@ class AppLocalizationsEs extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1554,8 +1554,4 @@ class AppLocalizationsEu extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1542,8 +1542,4 @@ class AppLocalizationsFa extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1542,8 +1542,4 @@ class AppLocalizationsFi extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1562,8 +1562,4 @@ class AppLocalizationsFr extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1548,8 +1548,4 @@ class AppLocalizationsHi extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1550,8 +1550,4 @@ class AppLocalizationsId extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1549,8 +1549,4 @@ class AppLocalizationsIt extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1513,8 +1513,4 @@ class AppLocalizationsJa extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1551,8 +1551,4 @@ class AppLocalizationsKa extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1517,8 +1517,4 @@ class AppLocalizationsKo extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1554,8 +1554,4 @@ class AppLocalizationsNe extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1548,8 +1548,4 @@ class AppLocalizationsNl extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1550,8 +1550,4 @@ class AppLocalizationsPl extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1547,8 +1547,4 @@ class AppLocalizationsPt extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1550,8 +1550,4 @@ class AppLocalizationsRu extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1556,8 +1556,4 @@ class AppLocalizationsTa extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1539,8 +1539,4 @@ class AppLocalizationsTh extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1557,8 +1557,4 @@ class AppLocalizationsTl extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1550,8 +1550,4 @@ class AppLocalizationsTr extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1546,8 +1546,4 @@ class AppLocalizationsUk extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1552,8 +1552,4 @@ class AppLocalizationsVi extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }

View File

@ -1506,10 +1506,6 @@ class AppLocalizationsZh extends AppLocalizations {
@override @override
String get uncompressed => 'Uncompressed'; String get uncompressed => 'Uncompressed';
@override
String get dab_music_source_description =>
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
} }
/// The translations for Chinese, as used in Taiwan (`zh_TW`). /// The translations for Chinese, as used in Taiwan (`zh_TW`).

View File

@ -112,13 +112,8 @@ mixin _$WebSocketLoadEventData {
required TResult orElse(), required TResult orElse(),
}) => }) =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
/// Serializes this WebSocketLoadEventData to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError; Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$WebSocketLoadEventDataCopyWith<WebSocketLoadEventData> get copyWith => $WebSocketLoadEventDataCopyWith<WebSocketLoadEventData> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -147,8 +142,6 @@ class _$WebSocketLoadEventDataCopyWithImpl<$Res,
// ignore: unused_field // ignore: unused_field
final $Res Function($Val) _then; final $Res Function($Val) _then;
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -197,8 +190,6 @@ class __$$WebSocketLoadEventDataPlaylistImplCopyWithImpl<$Res>
$Res Function(_$WebSocketLoadEventDataPlaylistImpl) _then) $Res Function(_$WebSocketLoadEventDataPlaylistImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -222,8 +213,6 @@ class __$$WebSocketLoadEventDataPlaylistImplCopyWithImpl<$Res>
)); ));
} }
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
$SpotubeSimplePlaylistObjectCopyWith<$Res>? get collection { $SpotubeSimplePlaylistObjectCopyWith<$Res>? get collection {
@ -292,14 +281,12 @@ class _$WebSocketLoadEventDataPlaylistImpl
other.initialIndex == initialIndex)); other.initialIndex == initialIndex));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => Object.hash(runtimeType, int get hashCode => Object.hash(runtimeType,
const DeepCollectionEquality().hash(_tracks), collection, initialIndex); const DeepCollectionEquality().hash(_tracks), collection, initialIndex);
/// Create a copy of WebSocketLoadEventData @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$WebSocketLoadEventDataPlaylistImplCopyWith< _$$WebSocketLoadEventDataPlaylistImplCopyWith<
@ -433,11 +420,8 @@ abstract class WebSocketLoadEventDataPlaylist extends WebSocketLoadEventData {
SpotubeSimplePlaylistObject? get collection; SpotubeSimplePlaylistObject? get collection;
@override @override
int? get initialIndex; int? get initialIndex;
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@override @override
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
_$$WebSocketLoadEventDataPlaylistImplCopyWith< _$$WebSocketLoadEventDataPlaylistImplCopyWith<
_$WebSocketLoadEventDataPlaylistImpl> _$WebSocketLoadEventDataPlaylistImpl>
get copyWith => throw _privateConstructorUsedError; get copyWith => throw _privateConstructorUsedError;
@ -472,8 +456,6 @@ class __$$WebSocketLoadEventDataAlbumImplCopyWithImpl<$Res>
$Res Function(_$WebSocketLoadEventDataAlbumImpl) _then) $Res Function(_$WebSocketLoadEventDataAlbumImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -497,8 +479,6 @@ class __$$WebSocketLoadEventDataAlbumImplCopyWithImpl<$Res>
)); ));
} }
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
$SpotubeSimpleAlbumObjectCopyWith<$Res>? get collection { $SpotubeSimpleAlbumObjectCopyWith<$Res>? get collection {
@ -565,14 +545,12 @@ class _$WebSocketLoadEventDataAlbumImpl extends WebSocketLoadEventDataAlbum {
other.initialIndex == initialIndex)); other.initialIndex == initialIndex));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => Object.hash(runtimeType, int get hashCode => Object.hash(runtimeType,
const DeepCollectionEquality().hash(_tracks), collection, initialIndex); const DeepCollectionEquality().hash(_tracks), collection, initialIndex);
/// Create a copy of WebSocketLoadEventData @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl> _$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl>
@ -705,11 +683,8 @@ abstract class WebSocketLoadEventDataAlbum extends WebSocketLoadEventData {
SpotubeSimpleAlbumObject? get collection; SpotubeSimpleAlbumObject? get collection;
@override @override
int? get initialIndex; int? get initialIndex;
/// Create a copy of WebSocketLoadEventData
/// with the given fields replaced by the non-null parameter values.
@override @override
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
_$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl> _$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl>
get copyWith => throw _privateConstructorUsedError; get copyWith => throw _privateConstructorUsedError;
} }

View File

@ -18,12 +18,15 @@ class $AuthenticationTableTable extends AuthenticationTable
requiredDuringInsert: false, requiredDuringInsert: false,
defaultConstraints: defaultConstraints:
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT')); GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
static const VerificationMeta _cookieMeta = const VerificationMeta('cookie');
@override @override
late final GeneratedColumnWithTypeConverter<DecryptedText, String> cookie = late final GeneratedColumnWithTypeConverter<DecryptedText, String> cookie =
GeneratedColumn<String>('cookie', aliasedName, false, GeneratedColumn<String>('cookie', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true) type: DriftSqlType.string, requiredDuringInsert: true)
.withConverter<DecryptedText>( .withConverter<DecryptedText>(
$AuthenticationTableTable.$convertercookie); $AuthenticationTableTable.$convertercookie);
static const VerificationMeta _accessTokenMeta =
const VerificationMeta('accessToken');
@override @override
late final GeneratedColumnWithTypeConverter<DecryptedText, String> late final GeneratedColumnWithTypeConverter<DecryptedText, String>
accessToken = GeneratedColumn<String>('access_token', aliasedName, false, accessToken = GeneratedColumn<String>('access_token', aliasedName, false,
@ -52,6 +55,8 @@ class $AuthenticationTableTable extends AuthenticationTable
if (data.containsKey('id')) { if (data.containsKey('id')) {
context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
} }
context.handle(_cookieMeta, const VerificationResult.success());
context.handle(_accessTokenMeta, const VerificationResult.success());
if (data.containsKey('expiration')) { if (data.containsKey('expiration')) {
context.handle( context.handle(
_expirationMeta, _expirationMeta,
@ -296,6 +301,8 @@ class $BlacklistTableTable extends BlacklistTable
late final GeneratedColumn<String> name = GeneratedColumn<String>( late final GeneratedColumn<String> name = GeneratedColumn<String>(
'name', aliasedName, false, 'name', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _elementTypeMeta =
const VerificationMeta('elementType');
@override @override
late final GeneratedColumnWithTypeConverter<BlacklistedType, String> late final GeneratedColumnWithTypeConverter<BlacklistedType, String>
elementType = GeneratedColumn<String>('element_type', aliasedName, false, elementType = GeneratedColumn<String>('element_type', aliasedName, false,
@ -329,6 +336,7 @@ class $BlacklistTableTable extends BlacklistTable
} else if (isInserting) { } else if (isInserting) {
context.missing(_nameMeta); context.missing(_nameMeta);
} }
context.handle(_elementTypeMeta, const VerificationResult.success());
if (data.containsKey('element_id')) { if (data.containsKey('element_id')) {
context.handle(_elementIdMeta, context.handle(_elementIdMeta,
elementId.isAcceptableOrUnknown(data['element_id']!, _elementIdMeta)); elementId.isAcceptableOrUnknown(data['element_id']!, _elementIdMeta));
@ -558,6 +566,8 @@ class $PreferencesTableTable extends PreferencesTable
requiredDuringInsert: false, requiredDuringInsert: false,
defaultConstraints: defaultConstraints:
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT')); GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
static const VerificationMeta _audioQualityMeta =
const VerificationMeta('audioQuality');
@override @override
late final GeneratedColumnWithTypeConverter<SourceQualities, String> late final GeneratedColumnWithTypeConverter<SourceQualities, String>
audioQuality = GeneratedColumn<String>( audioQuality = GeneratedColumn<String>(
@ -637,6 +647,8 @@ class $PreferencesTableTable extends PreferencesTable
defaultConstraints: GeneratedColumn.constraintIsAlways( defaultConstraints: GeneratedColumn.constraintIsAlways(
'CHECK ("skip_non_music" IN (0, 1))'), 'CHECK ("skip_non_music" IN (0, 1))'),
defaultValue: const Constant(false)); defaultValue: const Constant(false));
static const VerificationMeta _closeBehaviorMeta =
const VerificationMeta('closeBehavior');
@override @override
late final GeneratedColumnWithTypeConverter<CloseBehavior, String> late final GeneratedColumnWithTypeConverter<CloseBehavior, String>
closeBehavior = GeneratedColumn<String>( closeBehavior = GeneratedColumn<String>(
@ -646,6 +658,8 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: Constant(CloseBehavior.close.name)) defaultValue: Constant(CloseBehavior.close.name))
.withConverter<CloseBehavior>( .withConverter<CloseBehavior>(
$PreferencesTableTable.$convertercloseBehavior); $PreferencesTableTable.$convertercloseBehavior);
static const VerificationMeta _accentColorSchemeMeta =
const VerificationMeta('accentColorScheme');
@override @override
late final GeneratedColumnWithTypeConverter<SpotubeColor, String> late final GeneratedColumnWithTypeConverter<SpotubeColor, String>
accentColorScheme = GeneratedColumn<String>( accentColorScheme = GeneratedColumn<String>(
@ -655,6 +669,8 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: const Constant("Slate:0xff64748b")) defaultValue: const Constant("Slate:0xff64748b"))
.withConverter<SpotubeColor>( .withConverter<SpotubeColor>(
$PreferencesTableTable.$converteraccentColorScheme); $PreferencesTableTable.$converteraccentColorScheme);
static const VerificationMeta _layoutModeMeta =
const VerificationMeta('layoutMode');
@override @override
late final GeneratedColumnWithTypeConverter<LayoutMode, String> layoutMode = late final GeneratedColumnWithTypeConverter<LayoutMode, String> layoutMode =
GeneratedColumn<String>('layout_mode', aliasedName, false, GeneratedColumn<String>('layout_mode', aliasedName, false,
@ -663,6 +679,7 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: Constant(LayoutMode.adaptive.name)) defaultValue: Constant(LayoutMode.adaptive.name))
.withConverter<LayoutMode>( .withConverter<LayoutMode>(
$PreferencesTableTable.$converterlayoutMode); $PreferencesTableTable.$converterlayoutMode);
static const VerificationMeta _localeMeta = const VerificationMeta('locale');
@override @override
late final GeneratedColumnWithTypeConverter<Locale, String> locale = late final GeneratedColumnWithTypeConverter<Locale, String> locale =
GeneratedColumn<String>('locale', aliasedName, false, GeneratedColumn<String>('locale', aliasedName, false,
@ -671,6 +688,7 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: const Constant( defaultValue: const Constant(
'{"languageCode":"system","countryCode":"system"}')) '{"languageCode":"system","countryCode":"system"}'))
.withConverter<Locale>($PreferencesTableTable.$converterlocale); .withConverter<Locale>($PreferencesTableTable.$converterlocale);
static const VerificationMeta _marketMeta = const VerificationMeta('market');
@override @override
late final GeneratedColumnWithTypeConverter<Market, String> market = late final GeneratedColumnWithTypeConverter<Market, String> market =
GeneratedColumn<String>('market', aliasedName, false, GeneratedColumn<String>('market', aliasedName, false,
@ -678,6 +696,8 @@ class $PreferencesTableTable extends PreferencesTable
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: Constant(Market.US.name)) defaultValue: Constant(Market.US.name))
.withConverter<Market>($PreferencesTableTable.$convertermarket); .withConverter<Market>($PreferencesTableTable.$convertermarket);
static const VerificationMeta _searchModeMeta =
const VerificationMeta('searchMode');
@override @override
late final GeneratedColumnWithTypeConverter<SearchMode, String> searchMode = late final GeneratedColumnWithTypeConverter<SearchMode, String> searchMode =
GeneratedColumn<String>('search_mode', aliasedName, false, GeneratedColumn<String>('search_mode', aliasedName, false,
@ -694,6 +714,8 @@ class $PreferencesTableTable extends PreferencesTable
type: DriftSqlType.string, type: DriftSqlType.string,
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: const Constant("")); defaultValue: const Constant(""));
static const VerificationMeta _localLibraryLocationMeta =
const VerificationMeta('localLibraryLocation');
@override @override
late final GeneratedColumnWithTypeConverter<List<String>, String> late final GeneratedColumnWithTypeConverter<List<String>, String>
localLibraryLocation = GeneratedColumn<String>( localLibraryLocation = GeneratedColumn<String>(
@ -719,6 +741,8 @@ class $PreferencesTableTable extends PreferencesTable
type: DriftSqlType.string, type: DriftSqlType.string,
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: const Constant("https://inv.nadeko.net")); defaultValue: const Constant("https://inv.nadeko.net"));
static const VerificationMeta _themeModeMeta =
const VerificationMeta('themeMode');
@override @override
late final GeneratedColumnWithTypeConverter<ThemeMode, String> themeMode = late final GeneratedColumnWithTypeConverter<ThemeMode, String> themeMode =
GeneratedColumn<String>('theme_mode', aliasedName, false, GeneratedColumn<String>('theme_mode', aliasedName, false,
@ -726,6 +750,8 @@ class $PreferencesTableTable extends PreferencesTable
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: Constant(ThemeMode.system.name)) defaultValue: Constant(ThemeMode.system.name))
.withConverter<ThemeMode>($PreferencesTableTable.$converterthemeMode); .withConverter<ThemeMode>($PreferencesTableTable.$converterthemeMode);
static const VerificationMeta _audioSourceMeta =
const VerificationMeta('audioSource');
@override @override
late final GeneratedColumnWithTypeConverter<AudioSource, String> audioSource = late final GeneratedColumnWithTypeConverter<AudioSource, String> audioSource =
GeneratedColumn<String>('audio_source', aliasedName, false, GeneratedColumn<String>('audio_source', aliasedName, false,
@ -734,6 +760,8 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: Constant(AudioSource.youtube.name)) defaultValue: Constant(AudioSource.youtube.name))
.withConverter<AudioSource>( .withConverter<AudioSource>(
$PreferencesTableTable.$converteraudioSource); $PreferencesTableTable.$converteraudioSource);
static const VerificationMeta _youtubeClientEngineMeta =
const VerificationMeta('youtubeClientEngine');
@override @override
late final GeneratedColumnWithTypeConverter<YoutubeClientEngine, String> late final GeneratedColumnWithTypeConverter<YoutubeClientEngine, String>
youtubeClientEngine = GeneratedColumn<String>( youtubeClientEngine = GeneratedColumn<String>(
@ -743,6 +771,8 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: Constant(YoutubeClientEngine.youtubeExplode.name)) defaultValue: Constant(YoutubeClientEngine.youtubeExplode.name))
.withConverter<YoutubeClientEngine>( .withConverter<YoutubeClientEngine>(
$PreferencesTableTable.$converteryoutubeClientEngine); $PreferencesTableTable.$converteryoutubeClientEngine);
static const VerificationMeta _streamMusicCodecMeta =
const VerificationMeta('streamMusicCodec');
@override @override
late final GeneratedColumnWithTypeConverter<SourceCodecs, String> late final GeneratedColumnWithTypeConverter<SourceCodecs, String>
streamMusicCodec = GeneratedColumn<String>( streamMusicCodec = GeneratedColumn<String>(
@ -752,6 +782,8 @@ class $PreferencesTableTable extends PreferencesTable
defaultValue: Constant(SourceCodecs.weba.name)) defaultValue: Constant(SourceCodecs.weba.name))
.withConverter<SourceCodecs>( .withConverter<SourceCodecs>(
$PreferencesTableTable.$converterstreamMusicCodec); $PreferencesTableTable.$converterstreamMusicCodec);
static const VerificationMeta _downloadMusicCodecMeta =
const VerificationMeta('downloadMusicCodec');
@override @override
late final GeneratedColumnWithTypeConverter<SourceCodecs, String> late final GeneratedColumnWithTypeConverter<SourceCodecs, String>
downloadMusicCodec = GeneratedColumn<String>( downloadMusicCodec = GeneratedColumn<String>(
@ -855,6 +887,7 @@ class $PreferencesTableTable extends PreferencesTable
if (data.containsKey('id')) { if (data.containsKey('id')) {
context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
} }
context.handle(_audioQualityMeta, const VerificationResult.success());
if (data.containsKey('album_color_sync')) { if (data.containsKey('album_color_sync')) {
context.handle( context.handle(
_albumColorSyncMeta, _albumColorSyncMeta,
@ -897,12 +930,20 @@ class $PreferencesTableTable extends PreferencesTable
skipNonMusic.isAcceptableOrUnknown( skipNonMusic.isAcceptableOrUnknown(
data['skip_non_music']!, _skipNonMusicMeta)); data['skip_non_music']!, _skipNonMusicMeta));
} }
context.handle(_closeBehaviorMeta, const VerificationResult.success());
context.handle(_accentColorSchemeMeta, const VerificationResult.success());
context.handle(_layoutModeMeta, const VerificationResult.success());
context.handle(_localeMeta, const VerificationResult.success());
context.handle(_marketMeta, const VerificationResult.success());
context.handle(_searchModeMeta, const VerificationResult.success());
if (data.containsKey('download_location')) { if (data.containsKey('download_location')) {
context.handle( context.handle(
_downloadLocationMeta, _downloadLocationMeta,
downloadLocation.isAcceptableOrUnknown( downloadLocation.isAcceptableOrUnknown(
data['download_location']!, _downloadLocationMeta)); data['download_location']!, _downloadLocationMeta));
} }
context.handle(
_localLibraryLocationMeta, const VerificationResult.success());
if (data.containsKey('piped_instance')) { if (data.containsKey('piped_instance')) {
context.handle( context.handle(
_pipedInstanceMeta, _pipedInstanceMeta,
@ -915,6 +956,12 @@ class $PreferencesTableTable extends PreferencesTable
invidiousInstance.isAcceptableOrUnknown( invidiousInstance.isAcceptableOrUnknown(
data['invidious_instance']!, _invidiousInstanceMeta)); data['invidious_instance']!, _invidiousInstanceMeta));
} }
context.handle(_themeModeMeta, const VerificationResult.success());
context.handle(_audioSourceMeta, const VerificationResult.success());
context.handle(
_youtubeClientEngineMeta, const VerificationResult.success());
context.handle(_streamMusicCodecMeta, const VerificationResult.success());
context.handle(_downloadMusicCodecMeta, const VerificationResult.success());
if (data.containsKey('discord_presence')) { if (data.containsKey('discord_presence')) {
context.handle( context.handle(
_discordPresenceMeta, _discordPresenceMeta,
@ -1983,6 +2030,8 @@ class $ScrobblerTableTable extends ScrobblerTable
late final GeneratedColumn<String> username = GeneratedColumn<String>( late final GeneratedColumn<String> username = GeneratedColumn<String>(
'username', aliasedName, false, 'username', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _passwordHashMeta =
const VerificationMeta('passwordHash');
@override @override
late final GeneratedColumnWithTypeConverter<DecryptedText, String> late final GeneratedColumnWithTypeConverter<DecryptedText, String>
passwordHash = GeneratedColumn<String>( passwordHash = GeneratedColumn<String>(
@ -2015,6 +2064,7 @@ class $ScrobblerTableTable extends ScrobblerTable
} else if (isInserting) { } else if (isInserting) {
context.missing(_usernameMeta); context.missing(_usernameMeta);
} }
context.handle(_passwordHashMeta, const VerificationResult.success());
return context; return context;
} }
@ -2545,6 +2595,8 @@ class $SourceMatchTableTable extends SourceMatchTable
late final GeneratedColumn<String> sourceId = GeneratedColumn<String>( late final GeneratedColumn<String> sourceId = GeneratedColumn<String>(
'source_id', aliasedName, false, 'source_id', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _sourceTypeMeta =
const VerificationMeta('sourceType');
@override @override
late final GeneratedColumnWithTypeConverter<SourceType, String> sourceType = late final GeneratedColumnWithTypeConverter<SourceType, String> sourceType =
GeneratedColumn<String>('source_type', aliasedName, false, GeneratedColumn<String>('source_type', aliasedName, false,
@ -2590,6 +2642,7 @@ class $SourceMatchTableTable extends SourceMatchTable
} else if (isInserting) { } else if (isInserting) {
context.missing(_sourceIdMeta); context.missing(_sourceIdMeta);
} }
context.handle(_sourceTypeMeta, const VerificationResult.success());
if (data.containsKey('created_at')) { if (data.containsKey('created_at')) {
context.handle(_createdAtMeta, context.handle(_createdAtMeta,
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
@ -2848,6 +2901,8 @@ class $AudioPlayerStateTableTable extends AudioPlayerStateTable
requiredDuringInsert: true, requiredDuringInsert: true,
defaultConstraints: defaultConstraints:
GeneratedColumn.constraintIsAlways('CHECK ("playing" IN (0, 1))')); GeneratedColumn.constraintIsAlways('CHECK ("playing" IN (0, 1))'));
static const VerificationMeta _loopModeMeta =
const VerificationMeta('loopMode');
@override @override
late final GeneratedColumnWithTypeConverter<PlaylistMode, String> loopMode = late final GeneratedColumnWithTypeConverter<PlaylistMode, String> loopMode =
GeneratedColumn<String>('loop_mode', aliasedName, false, GeneratedColumn<String>('loop_mode', aliasedName, false,
@ -2863,12 +2918,15 @@ class $AudioPlayerStateTableTable extends AudioPlayerStateTable
requiredDuringInsert: true, requiredDuringInsert: true,
defaultConstraints: defaultConstraints:
GeneratedColumn.constraintIsAlways('CHECK ("shuffled" IN (0, 1))')); GeneratedColumn.constraintIsAlways('CHECK ("shuffled" IN (0, 1))'));
static const VerificationMeta _collectionsMeta =
const VerificationMeta('collections');
@override @override
late final GeneratedColumnWithTypeConverter<List<String>, String> late final GeneratedColumnWithTypeConverter<List<String>, String>
collections = GeneratedColumn<String>('collections', aliasedName, false, collections = GeneratedColumn<String>('collections', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true) type: DriftSqlType.string, requiredDuringInsert: true)
.withConverter<List<String>>( .withConverter<List<String>>(
$AudioPlayerStateTableTable.$convertercollections); $AudioPlayerStateTableTable.$convertercollections);
static const VerificationMeta _tracksMeta = const VerificationMeta('tracks');
@override @override
late final GeneratedColumnWithTypeConverter<List<SpotubeTrackObject>, String> late final GeneratedColumnWithTypeConverter<List<SpotubeTrackObject>, String>
tracks = GeneratedColumn<String>('tracks', aliasedName, false, tracks = GeneratedColumn<String>('tracks', aliasedName, false,
@ -2908,12 +2966,15 @@ class $AudioPlayerStateTableTable extends AudioPlayerStateTable
} else if (isInserting) { } else if (isInserting) {
context.missing(_playingMeta); context.missing(_playingMeta);
} }
context.handle(_loopModeMeta, const VerificationResult.success());
if (data.containsKey('shuffled')) { if (data.containsKey('shuffled')) {
context.handle(_shuffledMeta, context.handle(_shuffledMeta,
shuffled.isAcceptableOrUnknown(data['shuffled']!, _shuffledMeta)); shuffled.isAcceptableOrUnknown(data['shuffled']!, _shuffledMeta));
} else if (isInserting) { } else if (isInserting) {
context.missing(_shuffledMeta); context.missing(_shuffledMeta);
} }
context.handle(_collectionsMeta, const VerificationResult.success());
context.handle(_tracksMeta, const VerificationResult.success());
if (data.containsKey('current_index')) { if (data.containsKey('current_index')) {
context.handle( context.handle(
_currentIndexMeta, _currentIndexMeta,
@ -3244,6 +3305,7 @@ class $HistoryTableTable extends HistoryTable
type: DriftSqlType.dateTime, type: DriftSqlType.dateTime,
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: currentDateAndTime); defaultValue: currentDateAndTime);
static const VerificationMeta _typeMeta = const VerificationMeta('type');
@override @override
late final GeneratedColumnWithTypeConverter<HistoryEntryType, String> type = late final GeneratedColumnWithTypeConverter<HistoryEntryType, String> type =
GeneratedColumn<String>('type', aliasedName, false, GeneratedColumn<String>('type', aliasedName, false,
@ -3254,6 +3316,7 @@ class $HistoryTableTable extends HistoryTable
late final GeneratedColumn<String> itemId = GeneratedColumn<String>( late final GeneratedColumn<String> itemId = GeneratedColumn<String>(
'item_id', aliasedName, false, 'item_id', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _dataMeta = const VerificationMeta('data');
@override @override
late final GeneratedColumnWithTypeConverter<Map<String, dynamic>, String> late final GeneratedColumnWithTypeConverter<Map<String, dynamic>, String>
data = GeneratedColumn<String>('data', aliasedName, false, data = GeneratedColumn<String>('data', aliasedName, false,
@ -3279,12 +3342,14 @@ class $HistoryTableTable extends HistoryTable
context.handle(_createdAtMeta, context.handle(_createdAtMeta,
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
} }
context.handle(_typeMeta, const VerificationResult.success());
if (data.containsKey('item_id')) { if (data.containsKey('item_id')) {
context.handle(_itemIdMeta, context.handle(_itemIdMeta,
itemId.isAcceptableOrUnknown(data['item_id']!, _itemIdMeta)); itemId.isAcceptableOrUnknown(data['item_id']!, _itemIdMeta));
} else if (isInserting) { } else if (isInserting) {
context.missing(_itemIdMeta); context.missing(_itemIdMeta);
} }
context.handle(_dataMeta, const VerificationResult.success());
return context; return context;
} }
@ -3543,6 +3608,7 @@ class $LyricsTableTable extends LyricsTable
late final GeneratedColumn<String> trackId = GeneratedColumn<String>( late final GeneratedColumn<String> trackId = GeneratedColumn<String>(
'track_id', aliasedName, false, 'track_id', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _dataMeta = const VerificationMeta('data');
@override @override
late final GeneratedColumnWithTypeConverter<SubtitleSimple, String> data = late final GeneratedColumnWithTypeConverter<SubtitleSimple, String> data =
GeneratedColumn<String>('data', aliasedName, false, GeneratedColumn<String>('data', aliasedName, false,
@ -3569,6 +3635,7 @@ class $LyricsTableTable extends LyricsTable
} else if (isInserting) { } else if (isInserting) {
context.missing(_trackIdMeta); context.missing(_trackIdMeta);
} }
context.handle(_dataMeta, const VerificationResult.success());
return context; return context;
} }
@ -3786,12 +3853,15 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable
late final GeneratedColumn<String> entryPoint = GeneratedColumn<String>( late final GeneratedColumn<String> entryPoint = GeneratedColumn<String>(
'entry_point', aliasedName, false, 'entry_point', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true); type: DriftSqlType.string, requiredDuringInsert: true);
static const VerificationMeta _apisMeta = const VerificationMeta('apis');
@override @override
late final GeneratedColumnWithTypeConverter<List<String>, String> apis = late final GeneratedColumnWithTypeConverter<List<String>, String> apis =
GeneratedColumn<String>('apis', aliasedName, false, GeneratedColumn<String>('apis', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true) type: DriftSqlType.string, requiredDuringInsert: true)
.withConverter<List<String>>( .withConverter<List<String>>(
$MetadataPluginsTableTable.$converterapis); $MetadataPluginsTableTable.$converterapis);
static const VerificationMeta _abilitiesMeta =
const VerificationMeta('abilities');
@override @override
late final GeneratedColumnWithTypeConverter<List<String>, String> abilities = late final GeneratedColumnWithTypeConverter<List<String>, String> abilities =
GeneratedColumn<String>('abilities', aliasedName, false, GeneratedColumn<String>('abilities', aliasedName, false,
@ -3884,6 +3954,8 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable
} else if (isInserting) { } else if (isInserting) {
context.missing(_entryPointMeta); context.missing(_entryPointMeta);
} }
context.handle(_apisMeta, const VerificationResult.success());
context.handle(_abilitiesMeta, const VerificationResult.success());
if (data.containsKey('selected')) { if (data.containsKey('selected')) {
context.handle(_selectedMeta, context.handle(_selectedMeta,
selected.isAcceptableOrUnknown(data['selected']!, _selectedMeta)); selected.isAcceptableOrUnknown(data['selected']!, _selectedMeta));

File diff suppressed because it is too large Load Diff

View File

@ -103,7 +103,6 @@ class TrackSource with _$TrackSource {
required SourceQualities quality, required SourceQualities quality,
required SourceCodecs codec, required SourceCodecs codec,
required String bitrate, required String bitrate,
required String qualityLabel,
}) = _TrackSource; }) = _TrackSource;
factory TrackSource.fromJson(Map<String, dynamic> json) => factory TrackSource.fromJson(Map<String, dynamic> json) =>

View File

@ -28,12 +28,8 @@ mixin _$TrackSourceQuery {
String get isrc => throw _privateConstructorUsedError; String get isrc => throw _privateConstructorUsedError;
bool get explicit => throw _privateConstructorUsedError; bool get explicit => throw _privateConstructorUsedError;
/// Serializes this TrackSourceQuery to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError; Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of TrackSourceQuery
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$TrackSourceQueryCopyWith<TrackSourceQuery> get copyWith => $TrackSourceQueryCopyWith<TrackSourceQuery> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -64,8 +60,6 @@ class _$TrackSourceQueryCopyWithImpl<$Res, $Val extends TrackSourceQuery>
// ignore: unused_field // ignore: unused_field
final $Res Function($Val) _then; final $Res Function($Val) _then;
/// Create a copy of TrackSourceQuery
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -136,8 +130,6 @@ class __$$TrackSourceQueryImplCopyWithImpl<$Res>
$Res Function(_$TrackSourceQueryImpl) _then) $Res Function(_$TrackSourceQueryImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of TrackSourceQuery
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -241,7 +233,7 @@ class _$TrackSourceQueryImpl extends _TrackSourceQuery {
other.explicit == explicit)); other.explicit == explicit));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => Object.hash( int get hashCode => Object.hash(
runtimeType, runtimeType,
@ -253,9 +245,7 @@ class _$TrackSourceQueryImpl extends _TrackSourceQuery {
isrc, isrc,
explicit); explicit);
/// Create a copy of TrackSourceQuery @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith => _$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith =>
@ -298,11 +288,8 @@ abstract class _TrackSourceQuery extends TrackSourceQuery {
String get isrc; String get isrc;
@override @override
bool get explicit; bool get explicit;
/// Create a copy of TrackSourceQuery
/// with the given fields replaced by the non-null parameter values.
@override @override
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
_$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith => _$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -320,12 +307,8 @@ mixin _$TrackSourceInfo {
String get pageUrl => throw _privateConstructorUsedError; String get pageUrl => throw _privateConstructorUsedError;
int get durationMs => throw _privateConstructorUsedError; int get durationMs => throw _privateConstructorUsedError;
/// Serializes this TrackSourceInfo to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError; Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of TrackSourceInfo
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$TrackSourceInfoCopyWith<TrackSourceInfo> get copyWith => $TrackSourceInfoCopyWith<TrackSourceInfo> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -355,8 +338,6 @@ class _$TrackSourceInfoCopyWithImpl<$Res, $Val extends TrackSourceInfo>
// ignore: unused_field // ignore: unused_field
final $Res Function($Val) _then; final $Res Function($Val) _then;
/// Create a copy of TrackSourceInfo
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -421,8 +402,6 @@ class __$$TrackSourceInfoImplCopyWithImpl<$Res>
_$TrackSourceInfoImpl _value, $Res Function(_$TrackSourceInfoImpl) _then) _$TrackSourceInfoImpl _value, $Res Function(_$TrackSourceInfoImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of TrackSourceInfo
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -509,14 +488,12 @@ class _$TrackSourceInfoImpl implements _TrackSourceInfo {
other.durationMs == durationMs)); other.durationMs == durationMs));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => Object.hash( int get hashCode => Object.hash(
runtimeType, id, title, artists, thumbnail, pageUrl, durationMs); runtimeType, id, title, artists, thumbnail, pageUrl, durationMs);
/// Create a copy of TrackSourceInfo @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith => _$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith =>
@ -555,11 +532,8 @@ abstract class _TrackSourceInfo implements TrackSourceInfo {
String get pageUrl; String get pageUrl;
@override @override
int get durationMs; int get durationMs;
/// Create a copy of TrackSourceInfo
/// with the given fields replaced by the non-null parameter values.
@override @override
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
_$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith => _$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -574,14 +548,9 @@ mixin _$TrackSource {
SourceQualities get quality => throw _privateConstructorUsedError; SourceQualities get quality => throw _privateConstructorUsedError;
SourceCodecs get codec => throw _privateConstructorUsedError; SourceCodecs get codec => throw _privateConstructorUsedError;
String get bitrate => throw _privateConstructorUsedError; String get bitrate => throw _privateConstructorUsedError;
String get qualityLabel => throw _privateConstructorUsedError;
/// Serializes this TrackSource to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError; Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of TrackSource
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$TrackSourceCopyWith<TrackSource> get copyWith => $TrackSourceCopyWith<TrackSource> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -596,8 +565,7 @@ abstract class $TrackSourceCopyWith<$Res> {
{String url, {String url,
SourceQualities quality, SourceQualities quality,
SourceCodecs codec, SourceCodecs codec,
String bitrate, String bitrate});
String qualityLabel});
} }
/// @nodoc /// @nodoc
@ -610,8 +578,6 @@ class _$TrackSourceCopyWithImpl<$Res, $Val extends TrackSource>
// ignore: unused_field // ignore: unused_field
final $Res Function($Val) _then; final $Res Function($Val) _then;
/// Create a copy of TrackSource
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -619,7 +585,6 @@ class _$TrackSourceCopyWithImpl<$Res, $Val extends TrackSource>
Object? quality = null, Object? quality = null,
Object? codec = null, Object? codec = null,
Object? bitrate = null, Object? bitrate = null,
Object? qualityLabel = null,
}) { }) {
return _then(_value.copyWith( return _then(_value.copyWith(
url: null == url url: null == url
@ -638,10 +603,6 @@ class _$TrackSourceCopyWithImpl<$Res, $Val extends TrackSource>
? _value.bitrate ? _value.bitrate
: bitrate // ignore: cast_nullable_to_non_nullable : bitrate // ignore: cast_nullable_to_non_nullable
as String, as String,
qualityLabel: null == qualityLabel
? _value.qualityLabel
: qualityLabel // ignore: cast_nullable_to_non_nullable
as String,
) as $Val); ) as $Val);
} }
} }
@ -658,8 +619,7 @@ abstract class _$$TrackSourceImplCopyWith<$Res>
{String url, {String url,
SourceQualities quality, SourceQualities quality,
SourceCodecs codec, SourceCodecs codec,
String bitrate, String bitrate});
String qualityLabel});
} }
/// @nodoc /// @nodoc
@ -670,8 +630,6 @@ class __$$TrackSourceImplCopyWithImpl<$Res>
_$TrackSourceImpl _value, $Res Function(_$TrackSourceImpl) _then) _$TrackSourceImpl _value, $Res Function(_$TrackSourceImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of TrackSource
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -679,7 +637,6 @@ class __$$TrackSourceImplCopyWithImpl<$Res>
Object? quality = null, Object? quality = null,
Object? codec = null, Object? codec = null,
Object? bitrate = null, Object? bitrate = null,
Object? qualityLabel = null,
}) { }) {
return _then(_$TrackSourceImpl( return _then(_$TrackSourceImpl(
url: null == url url: null == url
@ -698,10 +655,6 @@ class __$$TrackSourceImplCopyWithImpl<$Res>
? _value.bitrate ? _value.bitrate
: bitrate // ignore: cast_nullable_to_non_nullable : bitrate // ignore: cast_nullable_to_non_nullable
as String, as String,
qualityLabel: null == qualityLabel
? _value.qualityLabel
: qualityLabel // ignore: cast_nullable_to_non_nullable
as String,
)); ));
} }
} }
@ -713,8 +666,7 @@ class _$TrackSourceImpl implements _TrackSource {
{required this.url, {required this.url,
required this.quality, required this.quality,
required this.codec, required this.codec,
required this.bitrate, required this.bitrate});
required this.qualityLabel});
factory _$TrackSourceImpl.fromJson(Map<String, dynamic> json) => factory _$TrackSourceImpl.fromJson(Map<String, dynamic> json) =>
_$$TrackSourceImplFromJson(json); _$$TrackSourceImplFromJson(json);
@ -727,12 +679,10 @@ class _$TrackSourceImpl implements _TrackSource {
final SourceCodecs codec; final SourceCodecs codec;
@override @override
final String bitrate; final String bitrate;
@override
final String qualityLabel;
@override @override
String toString() { String toString() {
return 'TrackSource(url: $url, quality: $quality, codec: $codec, bitrate: $bitrate, qualityLabel: $qualityLabel)'; return 'TrackSource(url: $url, quality: $quality, codec: $codec, bitrate: $bitrate)';
} }
@override @override
@ -743,19 +693,14 @@ class _$TrackSourceImpl implements _TrackSource {
(identical(other.url, url) || other.url == url) && (identical(other.url, url) || other.url == url) &&
(identical(other.quality, quality) || other.quality == quality) && (identical(other.quality, quality) || other.quality == quality) &&
(identical(other.codec, codec) || other.codec == codec) && (identical(other.codec, codec) || other.codec == codec) &&
(identical(other.bitrate, bitrate) || other.bitrate == bitrate) && (identical(other.bitrate, bitrate) || other.bitrate == bitrate));
(identical(other.qualityLabel, qualityLabel) ||
other.qualityLabel == qualityLabel));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => int get hashCode => Object.hash(runtimeType, url, quality, codec, bitrate);
Object.hash(runtimeType, url, quality, codec, bitrate, qualityLabel);
/// Create a copy of TrackSource @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith => _$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith =>
@ -774,8 +719,7 @@ abstract class _TrackSource implements TrackSource {
{required final String url, {required final String url,
required final SourceQualities quality, required final SourceQualities quality,
required final SourceCodecs codec, required final SourceCodecs codec,
required final String bitrate, required final String bitrate}) = _$TrackSourceImpl;
required final String qualityLabel}) = _$TrackSourceImpl;
factory _TrackSource.fromJson(Map<String, dynamic> json) = factory _TrackSource.fromJson(Map<String, dynamic> json) =
_$TrackSourceImpl.fromJson; _$TrackSourceImpl.fromJson;
@ -789,12 +733,7 @@ abstract class _TrackSource implements TrackSource {
@override @override
String get bitrate; String get bitrate;
@override @override
String get qualityLabel; @JsonKey(ignore: true)
/// Create a copy of TrackSource
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(includeFromJson: false, includeToJson: false)
_$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith => _$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }

View File

@ -36,7 +36,6 @@ const _$AudioSourceEnumMap = {
AudioSource.piped: 'piped', AudioSource.piped: 'piped',
AudioSource.jiosaavn: 'jiosaavn', AudioSource.jiosaavn: 'jiosaavn',
AudioSource.invidious: 'invidious', AudioSource.invidious: 'invidious',
AudioSource.dabMusic: 'dabMusic',
}; };
_$TrackSourceQueryImpl _$$TrackSourceQueryImplFromJson(Map json) => _$TrackSourceQueryImpl _$$TrackSourceQueryImplFromJson(Map json) =>
@ -89,7 +88,6 @@ _$TrackSourceImpl _$$TrackSourceImplFromJson(Map json) => _$TrackSourceImpl(
quality: $enumDecode(_$SourceQualitiesEnumMap, json['quality']), quality: $enumDecode(_$SourceQualitiesEnumMap, json['quality']),
codec: $enumDecode(_$SourceCodecsEnumMap, json['codec']), codec: $enumDecode(_$SourceCodecsEnumMap, json['codec']),
bitrate: json['bitrate'] as String, bitrate: json['bitrate'] as String,
qualityLabel: json['qualityLabel'] as String,
); );
Map<String, dynamic> _$$TrackSourceImplToJson(_$TrackSourceImpl instance) => Map<String, dynamic> _$$TrackSourceImplToJson(_$TrackSourceImpl instance) =>
@ -98,11 +96,9 @@ Map<String, dynamic> _$$TrackSourceImplToJson(_$TrackSourceImpl instance) =>
'quality': _$SourceQualitiesEnumMap[instance.quality]!, 'quality': _$SourceQualitiesEnumMap[instance.quality]!,
'codec': _$SourceCodecsEnumMap[instance.codec]!, 'codec': _$SourceCodecsEnumMap[instance.codec]!,
'bitrate': instance.bitrate, 'bitrate': instance.bitrate,
'qualityLabel': instance.qualityLabel,
}; };
const _$SourceQualitiesEnumMap = { const _$SourceQualitiesEnumMap = {
SourceQualities.uncompressed: 'uncompressed',
SourceQualities.high: 'high', SourceQualities.high: 'high',
SourceQualities.medium: 'medium', SourceQualities.medium: 'medium',
SourceQualities.low: 'low', SourceQualities.low: 'low',
@ -111,6 +107,4 @@ const _$SourceQualitiesEnumMap = {
const _$SourceCodecsEnumMap = { const _$SourceCodecsEnumMap = {
SourceCodecs.m4a: 'm4a', SourceCodecs.m4a: 'm4a',
SourceCodecs.weba: 'weba', SourceCodecs.weba: 'weba',
SourceCodecs.mp3: 'mp3',
SourceCodecs.flac: 'flac',
}; };

View File

@ -91,27 +91,10 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
) )
else ...[ else ...[
Text(context.l10n.author_name(plugin.author)), Text(context.l10n.author_name(plugin.author)),
Container( DestructiveBadge(
padding: const EdgeInsets.symmetric( leading: const Icon(SpotubeIcons.warning),
horizontal: 6, child: Text(context.l10n.third_party),
vertical: 2, )
),
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(6),
),
child: Row(
mainAxisSize: MainAxisSize.min,
spacing: 4,
children: [
const Icon(SpotubeIcons.warning, size: 14),
Text(
context.l10n.third_party,
style: const TextStyle(color: Colors.white),
).xSmall
],
),
),
], ],
SecondaryBadge( SecondaryBadge(
leading: const Icon(SpotubeIcons.connect), leading: const Icon(SpotubeIcons.connect),

View File

@ -65,9 +65,8 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
.join("\n\n"); .join("\n\n");
return AlertDialog( return AlertDialog(
title: Text( title: Text(context
context.l10n.do_you_want_to_install_this_plugin, .l10n.do_you_want_to_install_this_plugin),
),
content: Column( content: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
@ -186,26 +185,9 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
context.l10n.author_name(pluginRepo.owner), context.l10n.author_name(pluginRepo.owner),
style: context.theme.typography.xSmall, style: context.theme.typography.xSmall,
), ),
Container( DestructiveBadge(
padding: const EdgeInsets.symmetric( leading: const Icon(SpotubeIcons.warning),
horizontal: 6, child: Text(context.l10n.third_party),
vertical: 2,
),
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(6),
),
child: Row(
mainAxisSize: MainAxisSize.min,
spacing: 4,
children: [
const Icon(SpotubeIcons.warning, size: 14),
Text(
context.l10n.third_party,
style: const TextStyle(color: Colors.white),
).xSmall
],
),
), ),
], ],
SecondaryBadge( SecondaryBadge(

View File

@ -46,14 +46,6 @@ class PlayerView extends HookConsumerWidget {
final isLocalTrack = currentActiveTrack is SpotubeLocalTrackObject; final isLocalTrack = currentActiveTrack is SpotubeLocalTrackObject;
final mediaQuery = MediaQuery.sizeOf(context); final mediaQuery = MediaQuery.sizeOf(context);
final activeSourceCodec = useMemoized(
() {
return currentActiveTrackSource
?.getSourceOfCodec(currentActiveTrackSource.codec);
},
[currentActiveTrackSource?.sources, currentActiveTrackSource?.codec],
);
final shouldHide = useState(true); final shouldHide = useState(true);
ref.listen(navigationPanelHeight, (_, height) { ref.listen(navigationPanelHeight, (_, height) {
@ -275,21 +267,6 @@ class PlayerView extends HookConsumerWidget {
); );
}), }),
), ),
const Gap(25),
if (activeSourceCodec != null)
OutlineBadge(
style: const ButtonStyle.outline(
size: ButtonSize.normal,
density: ButtonDensity.dense,
shape: ButtonShape.rectangle,
).copyWith(
textStyle: (context, states, value) {
return value.copyWith(fontWeight: FontWeight.w500);
},
),
leading: const Icon(SpotubeIcons.lightningOutlined),
child: Text(activeSourceCodec.qualityLabel),
)
], ],
), ),
), ),

View File

@ -7,6 +7,7 @@ import 'package:spotube/components/ui/button_tile.dart';
import 'package:spotube/models/database/database.dart'; import 'package:spotube/models/database/database.dart';
import 'package:spotube/modules/getting_started/blur_card.dart'; import 'package:spotube/modules/getting_started/blur_card.dart';
import 'package:spotube/extensions/context.dart'; import 'package:spotube/extensions/context.dart';
import 'package:spotube/extensions/string.dart';
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
final audioSourceToIconMap = { final audioSourceToIconMap = {
@ -22,8 +23,6 @@ final audioSourceToIconMap = {
), ),
AudioSource.jiosaavn: AudioSource.jiosaavn:
Assets.images.logos.jiosaavn.image(width: 20, height: 20), Assets.images.logos.jiosaavn.image(width: 20, height: 20),
AudioSource.dabMusic:
Assets.images.logos.dabMusic.image(width: 20, height: 20),
}; };
class GettingStartedPagePlaybackSection extends HookConsumerWidget { class GettingStartedPagePlaybackSection extends HookConsumerWidget {
@ -48,10 +47,8 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
AudioSource.piped: context.l10n.piped_source_description, AudioSource.piped: context.l10n.piped_source_description,
AudioSource.jiosaavn: AudioSource.jiosaavn:
"${context.l10n.jiosaavn_source_description}\n" "${context.l10n.jiosaavn_source_description}\n"
"${context.l10n.highest_quality("320kbps mp4")}", "${context.l10n.highest_quality("320kbps mp")}",
AudioSource.invidious: context.l10n.invidious_source_description, AudioSource.invidious: context.l10n.invidious_source_description,
AudioSource.dabMusic: "${context.l10n.dab_music_source_description}\n"
"${context.l10n.highest_quality("320kbps mp3, HI-RES 24bit 44.1kHz-96kHz flac")}",
}, },
[]); []);
@ -73,28 +70,43 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
child: Text(context.l10n.select_audio_source).semiBold().large(), child: Text(context.l10n.select_audio_source).semiBold().large(),
), ),
const Gap(16), const Gap(16),
RadioGroup<AudioSource>( Select<AudioSource>(
value: preferences.audioSource, value: preferences.audioSource,
onChanged: (value) { onChanged: (value) {
if (value == null) return;
preferencesNotifier.setAudioSource(value); preferencesNotifier.setAudioSource(value);
}, },
child: Wrap( placeholder: Text(preferences.audioSource.name.capitalize()),
itemBuilder: (context, value) => Row(
mainAxisSize: MainAxisSize.min,
spacing: 6, spacing: 6,
runSpacing: 6,
children: [ children: [
for (final source in AudioSource.values) audioSourceToIconMap[value]!,
RadioCard( Text(value.name.capitalize()),
value: source,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
audioSourceToIconMap[source]!,
Text(source.label),
],
),
),
], ],
), ),
popup: (context) {
return SelectPopup(
items: SelectItemBuilder(
childCount: AudioSource.values.length,
builder: (context, index) {
final source = AudioSource.values[index];
return SelectItemButton(
value: source,
child: Row(
mainAxisSize: MainAxisSize.min,
spacing: 6,
children: [
audioSourceToIconMap[source]!,
Text(source.name.capitalize()),
],
),
);
},
),
);
},
), ),
const Gap(16), const Gap(16),
Text( Text(

View File

@ -53,16 +53,14 @@ class SettingsPlaybackSection extends HookConsumerWidget {
value: SourceQualities.high, value: SourceQualities.high,
child: Text(context.l10n.high), child: Text(context.l10n.high),
), ),
if (preferences.audioSource != AudioSource.dabMusic) ...[ SelectItemButton(
SelectItemButton( value: SourceQualities.medium,
value: SourceQualities.medium, child: Text(context.l10n.medium),
child: Text(context.l10n.medium), ),
), SelectItemButton(
SelectItemButton( value: SourceQualities.low,
value: SourceQualities.low, child: Text(context.l10n.low),
child: Text(context.l10n.low), ),
),
]
], ],
onChanged: (value) { onChanged: (value) {
if (value != null) { if (value != null) {

View File

@ -27,12 +27,8 @@ mixin _$AudioPlayerState {
int get currentIndex => throw _privateConstructorUsedError; int get currentIndex => throw _privateConstructorUsedError;
List<SpotubeTrackObject> get tracks => throw _privateConstructorUsedError; List<SpotubeTrackObject> get tracks => throw _privateConstructorUsedError;
/// Serializes this AudioPlayerState to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError; Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of AudioPlayerState
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$AudioPlayerStateCopyWith<AudioPlayerState> get copyWith => $AudioPlayerStateCopyWith<AudioPlayerState> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -62,8 +58,6 @@ class _$AudioPlayerStateCopyWithImpl<$Res, $Val extends AudioPlayerState>
// ignore: unused_field // ignore: unused_field
final $Res Function($Val) _then; final $Res Function($Val) _then;
/// Create a copy of AudioPlayerState
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -128,8 +122,6 @@ class __$$AudioPlayerStateImplCopyWithImpl<$Res>
$Res Function(_$AudioPlayerStateImpl) _then) $Res Function(_$AudioPlayerStateImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of AudioPlayerState
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -234,7 +226,7 @@ class _$AudioPlayerStateImpl extends _AudioPlayerState {
const DeepCollectionEquality().equals(other._tracks, _tracks)); const DeepCollectionEquality().equals(other._tracks, _tracks));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => Object.hash( int get hashCode => Object.hash(
runtimeType, runtimeType,
@ -245,9 +237,7 @@ class _$AudioPlayerStateImpl extends _AudioPlayerState {
currentIndex, currentIndex,
const DeepCollectionEquality().hash(_tracks)); const DeepCollectionEquality().hash(_tracks));
/// Create a copy of AudioPlayerState @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith => _$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith =>
@ -287,11 +277,8 @@ abstract class _AudioPlayerState extends AudioPlayerState {
int get currentIndex; int get currentIndex;
@override @override
List<SpotubeTrackObject> get tracks; List<SpotubeTrackObject> get tracks;
/// Create a copy of AudioPlayerState
/// with the given fields replaced by the non-null parameter values.
@override @override
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
_$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith => _$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }

View File

@ -224,23 +224,11 @@ class UserPreferencesNotifier extends Notifier<PreferencesTableData> {
} }
void setAudioSource(AudioSource type) { void setAudioSource(AudioSource type) {
switch ((type, state.audioQuality)) { // Only allow uncompressed quality for DAB Music
// DAB music only supports high quality/uncompressed streams if (type != AudioSource.dabMusic &&
case ( state.audioQuality == SourceQualities.uncompressed) {
AudioSource.dabMusic, setAudioQuality(SourceQualities.high);
SourceQualities.low || SourceQualities.medium
):
setAudioQuality(SourceQualities.high);
break;
// If the user switches from DAB music to other sources and has
// uncompressed quality selected, downgrade to high quality
case (!= AudioSource.dabMusic, SourceQualities.uncompressed):
setAudioQuality(SourceQualities.high);
break;
default:
break;
} }
setData(PreferencesTableCompanion(audioSource: Value(type))); setData(PreferencesTableCompanion(audioSource: Value(type)));
} }

View File

@ -30,12 +30,8 @@ mixin _$SongLink {
String? get nativeAppUriMobile => throw _privateConstructorUsedError; String? get nativeAppUriMobile => throw _privateConstructorUsedError;
String? get nativeAppUriDesktop => throw _privateConstructorUsedError; String? get nativeAppUriDesktop => throw _privateConstructorUsedError;
/// Serializes this SongLink to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError; Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of SongLink
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$SongLinkCopyWith<SongLink> get copyWith => $SongLinkCopyWith<SongLink> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
@ -67,8 +63,6 @@ class _$SongLinkCopyWithImpl<$Res, $Val extends SongLink>
// ignore: unused_field // ignore: unused_field
final $Res Function($Val) _then; final $Res Function($Val) _then;
/// Create a copy of SongLink
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -151,8 +145,6 @@ class __$$SongLinkImplCopyWithImpl<$Res>
_$SongLinkImpl _value, $Res Function(_$SongLinkImpl) _then) _$SongLinkImpl _value, $Res Function(_$SongLinkImpl) _then)
: super(_value, _then); : super(_value, _then);
/// Create a copy of SongLink
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
@override @override
$Res call({ $Res call({
@ -269,14 +261,12 @@ class _$SongLinkImpl implements _SongLink {
other.nativeAppUriDesktop == nativeAppUriDesktop)); other.nativeAppUriDesktop == nativeAppUriDesktop));
} }
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
@override @override
int get hashCode => Object.hash(runtimeType, displayName, linkId, platform, int get hashCode => Object.hash(runtimeType, displayName, linkId, platform,
show, uniqueId, country, url, nativeAppUriMobile, nativeAppUriDesktop); show, uniqueId, country, url, nativeAppUriMobile, nativeAppUriDesktop);
/// Create a copy of SongLink @JsonKey(ignore: true)
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override @override
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
_$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith => _$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith =>
@ -323,11 +313,8 @@ abstract class _SongLink implements SongLink {
String? get nativeAppUriMobile; String? get nativeAppUriMobile;
@override @override
String? get nativeAppUriDesktop; String? get nativeAppUriDesktop;
/// Create a copy of SongLink
/// with the given fields replaced by the non-null parameter values.
@override @override
@JsonKey(includeFromJson: false, includeToJson: false) @JsonKey(ignore: true)
_$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith => _$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }

View File

@ -170,7 +170,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
/// ///
/// If no sources match the codec, it will return the first or last source /// If no sources match the codec, it will return the first or last source
/// based on the user's audio quality preference. /// based on the user's audio quality preference.
TrackSource? getSourceOfCodec(SourceCodecs codec) { String? getUrlOfCodec(SourceCodecs codec) {
final preferences = ref.read(userPreferencesProvider); final preferences = ref.read(userPreferencesProvider);
final exactMatch = sources.firstWhereOrNull( final exactMatch = sources.firstWhereOrNull(
@ -179,7 +179,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
); );
if (exactMatch != null) { if (exactMatch != null) {
return exactMatch; return exactMatch.url;
} }
final sameCodecSources = sources final sameCodecSources = sources
@ -193,8 +193,8 @@ abstract class SourcedTrack extends BasicSourcedTrack {
if (sameCodecSources.isNotEmpty) { if (sameCodecSources.isNotEmpty) {
return preferences.audioQuality > SourceQualities.low return preferences.audioQuality > SourceQualities.low
? sameCodecSources.first ? sameCodecSources.first.url
: sameCodecSources.last; : sameCodecSources.last.url;
} }
final fallbackSource = sources.sorted((a, b) { final fallbackSource = sources.sorted((a, b) {
@ -204,12 +204,8 @@ abstract class SourcedTrack extends BasicSourcedTrack {
}); });
return preferences.audioQuality > SourceQualities.low return preferences.audioQuality > SourceQualities.low
? fallbackSource.firstOrNull ? fallbackSource.firstOrNull?.url
: fallbackSource.lastOrNull; : fallbackSource.lastOrNull?.url;
}
String? getUrlOfCodec(SourceCodecs codec) {
return getSourceOfCodec(codec)?.url;
} }
SourceCodecs get codec { SourceCodecs get codec {
@ -224,4 +220,12 @@ abstract class SourcedTrack extends BasicSourcedTrack {
_ => preferences.streamMusicCodec _ => preferences.streamMusicCodec
}; };
} }
TrackSource get activeTrackSource {
final audioQuality = ref.read(userPreferencesProvider).audioQuality;
return sources.firstWhereOrNull(
(source) => source.codec == codec && source.quality == audioQuality,
) ??
sources.first;
}
} }

View File

@ -54,7 +54,6 @@ class DABMusicSourcedTrack extends SourcedTrack {
static Future<List<TrackSource>> fetchSources( static Future<List<TrackSource>> fetchSources(
String id, String id,
SourceQualities quality, SourceQualities quality,
AudioQuality trackMaximumQuality,
) async { ) async {
try { try {
final isUncompressed = quality == SourceQualities.uncompressed; final isUncompressed = quality == SourceQualities.uncompressed;
@ -65,26 +64,14 @@ class DABMusicSourcedTrack extends SourcedTrack {
if (streamResponse.url == null) { if (streamResponse.url == null) {
throw Exception("No stream URL found for track ID: $id"); throw Exception("No stream URL found for track ID: $id");
} }
// kbps = (bitDepth * sampleRate * channels) / 1000
final uncompressedBitrate = !isUncompressed
? 0
: ((trackMaximumQuality.maximumBitDepth ?? 0) *
((trackMaximumQuality.maximumSamplingRate ?? 0) * 1000) *
2) /
1000;
return [ return [
TrackSource( TrackSource(
url: streamResponse.url!, url: streamResponse.url!,
quality: isUncompressed quality: isUncompressed
? SourceQualities.uncompressed ? SourceQualities.uncompressed
: SourceQualities.high, : SourceQualities.high,
bitrate: bitrate: isUncompressed ? "2998kbps" : "320kbps",
isUncompressed ? "${uncompressedBitrate.floor()}kbps" : "320kbps",
codec: isUncompressed ? SourceCodecs.flac : SourceCodecs.mp3, codec: isUncompressed ? SourceCodecs.flac : SourceCodecs.mp3,
qualityLabel: isUncompressed
? "${trackMaximumQuality.maximumBitDepth}bit • ${trackMaximumQuality.maximumSamplingRate}kHz • FLAC • Stereo"
: "MP3 • 320kbps • mp3 • Stereo",
), ),
]; ];
} catch (e, stackTrace) { } catch (e, stackTrace) {
@ -104,7 +91,6 @@ class DABMusicSourcedTrack extends SourcedTrack {
source = await fetchSources( source = await fetchSources(
result.id.toString(), result.id.toString(),
ref.read(userPreferencesProvider).audioQuality, ref.read(userPreferencesProvider).audioQuality,
result.audioQuality!,
); );
} }
@ -200,11 +186,6 @@ class DABMusicSourcedTrack extends SourcedTrack {
final source = await fetchSources( final source = await fetchSources(
sibling.id, sibling.id,
ref.read(userPreferencesProvider).audioQuality, ref.read(userPreferencesProvider).audioQuality,
const AudioQuality(
isHiRes: true,
maximumBitDepth: 16,
maximumSamplingRate: 44.1,
),
); );
return DABMusicSourcedTrack( return DABMusicSourcedTrack(

View File

@ -94,7 +94,6 @@ class InvidiousSourcedTrack extends SourcedTrack {
static List<TrackSource> toSources(InvidiousVideoResponse manifest) { static List<TrackSource> toSources(InvidiousVideoResponse manifest) {
return manifest.adaptiveFormats.map((stream) { return manifest.adaptiveFormats.map((stream) {
var isWebm = stream.type.contains("audio/webm");
return TrackSource( return TrackSource(
url: stream.url.toString(), url: stream.url.toString(),
quality: switch (stream.qualityLabel) { quality: switch (stream.qualityLabel) {
@ -102,11 +101,10 @@ class InvidiousSourcedTrack extends SourcedTrack {
"medium" => SourceQualities.medium, "medium" => SourceQualities.medium,
_ => SourceQualities.low, _ => SourceQualities.low,
}, },
codec: isWebm ? SourceCodecs.weba : SourceCodecs.m4a, codec: stream.type.contains("audio/webm")
? SourceCodecs.weba
: SourceCodecs.m4a,
bitrate: stream.bitrate, bitrate: stream.bitrate,
qualityLabel:
"${isWebm ? "Opus" : "AAC"}${stream.bitrate.replaceAll("kbps", "")}kbps "
"${isWebm ? "weba" : "m4a"} • Stereo",
); );
}).toList(); }).toList();
} }

View File

@ -104,7 +104,6 @@ class JioSaavnSourcedTrack extends SourcedTrack {
: SourceQualities.low, : SourceQualities.low,
codec: SourceCodecs.m4a, codec: SourceCodecs.m4a,
bitrate: link.quality, bitrate: link.quality,
qualityLabel: "AAC • ${link.quality} • MP4 • Stereo",
); );
}).toList() }).toList()
); );

View File

@ -98,7 +98,6 @@ class PipedSourcedTrack extends SourcedTrack {
static List<TrackSource> toSources(PipedStreamResponse manifest) { static List<TrackSource> toSources(PipedStreamResponse manifest) {
return manifest.audioStreams.map((audio) { return manifest.audioStreams.map((audio) {
final isMp4 = audio.format == PipedAudioStreamFormat.m4a;
return TrackSource( return TrackSource(
url: audio.url.toString(), url: audio.url.toString(),
quality: switch (audio.quality) { quality: switch (audio.quality) {
@ -106,11 +105,10 @@ class PipedSourcedTrack extends SourcedTrack {
"medium" => SourceQualities.medium, "medium" => SourceQualities.medium,
_ => SourceQualities.low, _ => SourceQualities.low,
}, },
codec: isMp4 ? SourceCodecs.m4a : SourceCodecs.weba, codec: audio.format == PipedAudioStreamFormat.m4a
? SourceCodecs.m4a
: SourceCodecs.weba,
bitrate: audio.bitrate.toString(), bitrate: audio.bitrate.toString(),
qualityLabel:
"${isMp4 ? "AAC" : "Opus"}${(audio.bitrate / 1000).floor()}kbps "
"${isMp4 ? "m4a" : "weba"} • Stereo",
); );
}).toList(); }).toList();
} }

View File

@ -98,7 +98,6 @@ class YoutubeSourcedTrack extends SourcedTrack {
static List<TrackSource> toTrackSources(StreamManifest manifest) { static List<TrackSource> toTrackSources(StreamManifest manifest) {
return manifest.audioOnly.map((streamInfo) { return manifest.audioOnly.map((streamInfo) {
var isWebm = streamInfo.codec.mimeType == "audio/webm";
return TrackSource( return TrackSource(
url: streamInfo.url.toString(), url: streamInfo.url.toString(),
quality: switch (streamInfo.qualityLabel) { quality: switch (streamInfo.qualityLabel) {
@ -107,11 +106,10 @@ class YoutubeSourcedTrack extends SourcedTrack {
"low" => SourceQualities.low, "low" => SourceQualities.low,
_ => SourceQualities.high, _ => SourceQualities.high,
}, },
codec: isWebm ? SourceCodecs.weba : SourceCodecs.m4a, codec: streamInfo.codec.mimeType == "audio/webm"
? SourceCodecs.weba
: SourceCodecs.m4a,
bitrate: streamInfo.bitrate.bitsPerSecond.toString(), bitrate: streamInfo.bitrate.bitsPerSecond.toString(),
qualityLabel:
"${isWebm ? "Opus" : "AAC"}${(streamInfo.bitrate.kiloBitsPerSecond).floor()}kbps "
"${isWebm ? "weba" : "m4a"} • Stereo",
); );
}).toList(); }).toList();
} }

View File

@ -1,176 +1,147 @@
{ {
"ar": [ "ar": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"bn": [ "bn": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ca": [ "ca": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"cs": [ "cs": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"de": [ "de": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"es": [ "es": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"eu": [ "eu": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"fa": [ "fa": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"fi": [ "fi": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"fr": [ "fr": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"hi": [ "hi": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"id": [ "id": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"it": [ "it": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ja": [ "ja": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ka": [ "ka": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ko": [ "ko": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ne": [ "ne": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"nl": [ "nl": [
"audio_source", "audio_source",
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"pl": [ "pl": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"pt": [ "pt": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ru": [ "ru": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"ta": [ "ta": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"th": [ "th": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"tl": [ "tl": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"tr": [ "tr": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"uk": [ "uk": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"vi": [ "vi": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"zh": [ "zh": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
], ],
"zh_TW": [ "zh_TW": [
"source", "source",
"uncompressed", "uncompressed"
"dab_music_source_description"
] ]
} }