2020-03-24 22:17:03 +01:00
|
|
|
import 'package:dartz/dartz.dart';
|
|
|
|
|
2020-03-28 14:35:41 +01:00
|
|
|
import '../../core/error/failures.dart';
|
2020-03-24 22:17:03 +01:00
|
|
|
import '../entities/album.dart';
|
2020-08-08 19:02:03 +02:00
|
|
|
import '../entities/artist.dart';
|
2020-12-19 12:22:57 +01:00
|
|
|
import '../entities/loop_mode.dart';
|
2020-03-28 14:35:41 +01:00
|
|
|
import '../entities/song.dart';
|
2020-03-24 22:17:03 +01:00
|
|
|
|
|
|
|
abstract class MusicDataRepository {
|
2020-11-15 16:36:50 +01:00
|
|
|
Stream<List<Song>> get songStream;
|
|
|
|
Stream<List<Song>> getAlbumSongStream(Album album);
|
|
|
|
Stream<List<Song>> get queueStream;
|
2020-12-15 21:09:58 +01:00
|
|
|
Stream<int> get currentIndexStream;
|
2020-12-19 12:22:57 +01:00
|
|
|
|
|
|
|
Stream<LoopMode> get loopModeStream;
|
2020-11-15 16:36:50 +01:00
|
|
|
|
2020-03-28 14:35:41 +01:00
|
|
|
Future<Either<Failure, List<Song>>> getSongs();
|
2020-04-16 08:04:34 +02:00
|
|
|
Future<Either<Failure, List<Song>>> getSongsFromAlbum(Album album);
|
2020-03-24 22:17:03 +01:00
|
|
|
Future<Either<Failure, List<Album>>> getAlbums();
|
2020-08-08 19:02:03 +02:00
|
|
|
Future<Either<Failure, List<Artist>>> getArtists();
|
2020-03-24 22:17:03 +01:00
|
|
|
Future<void> updateDatabase();
|
2020-09-19 17:08:48 +02:00
|
|
|
|
|
|
|
Future<void> setSongBlocked(Song song, bool blocked);
|
2020-10-18 12:18:37 +02:00
|
|
|
Future<void> toggleNextSongLink(Song song);
|
2020-03-24 22:17:03 +01:00
|
|
|
}
|