2023-10-20 23:12:33 +00:00
|
|
|
import 'package:freezer/api/download_manager/service_interface.dart';
|
2024-02-12 02:37:26 +00:00
|
|
|
import 'package:freezer/settings.dart';
|
2023-10-19 12:34:22 +00:00
|
|
|
|
|
|
|
class DownloadService {
|
|
|
|
static const NOTIFICATION_ID = 6969;
|
|
|
|
static const NOTIFICATION_CHANNEL_ID = "freezerdownloads";
|
|
|
|
|
2023-10-28 12:42:06 +00:00
|
|
|
final ServiceInterface service;
|
2023-10-19 12:34:22 +00:00
|
|
|
DownloadService(this.service);
|
|
|
|
|
2024-02-12 02:37:26 +00:00
|
|
|
AudioQuality? _preferredQuality;
|
|
|
|
AudioQuality? _downloadQuality;
|
|
|
|
bool useGetURL = false;
|
|
|
|
|
2023-10-28 12:42:06 +00:00
|
|
|
void run() {
|
|
|
|
service.on('addDownloads').listen((event) {});
|
2024-02-12 02:37:26 +00:00
|
|
|
service.on('updateQuality').listen((event) {
|
|
|
|
_preferredQuality = AudioQuality.values[event!['q']!];
|
|
|
|
});
|
|
|
|
service.on('updateCapabilities').listen((event) {
|
|
|
|
final bool canStreamHQ = event!['canStreamHQ'];
|
|
|
|
final bool canStreamLossless = event['canStreamLossless'];
|
|
|
|
|
|
|
|
if (canStreamHQ || canStreamLossless) useGetURL = true;
|
|
|
|
|
|
|
|
_downloadQuality = settings.maxQualityFor(
|
|
|
|
_preferredQuality!, canStreamHQ, canStreamLossless);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
void downloadTrack(String trackId) {
|
|
|
|
// final deezerAudio = DeezerAudio(deezerAPI: deezerAPI, md5origin: md5origin, quality: quality, trackId: trackId, mediaVersion: mediaVersion)
|
|
|
|
// if (useGetURL) {
|
|
|
|
// final url =
|
|
|
|
// }
|
2023-10-28 12:42:06 +00:00
|
|
|
}
|
2023-10-19 12:34:22 +00:00
|
|
|
}
|