diff --git a/app/src/main/java/org/oxycblt/auxio/image/stack/StackModule.kt b/app/src/main/java/org/oxycblt/auxio/image/stack/StackModule.kt index 4fc3c5eb8..97fd5ff7a 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/stack/StackModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/stack/StackModule.kt @@ -1,6 +1,6 @@ /* * Copyright (c) 2024 Auxio Project - * StackModule.kt is part of Auxio. + * MusikrModule.kt is part of Auxio. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/app/src/main/java/org/oxycblt/musikr/Library.kt b/app/src/main/java/org/oxycblt/musikr/Library.kt new file mode 100644 index 000000000..3facdeff5 --- /dev/null +++ b/app/src/main/java/org/oxycblt/musikr/Library.kt @@ -0,0 +1,38 @@ +package org.oxycblt.musikr + +import org.oxycblt.musikr.fs.Path + + +interface Library { + val songs: Collection + val albums: Collection + val artists: Collection + val genres: Collection + val playlists: Collection + + fun findSong(uid: Music.UID): Song? + + fun findSongByPath(path: Path): Song? + + fun findAlbum(uid: Music.UID): Album? + + fun findArtist(uid: Music.UID): Artist? + + fun findGenre(uid: Music.UID): Genre? + + fun findPlaylist(uid: Music.UID): Playlist? + + fun findPlaylistByName(name: String): Playlist? +} + +interface MutableLibrary : Library { + suspend fun createPlaylist(name: String, songs: List): MutableLibrary + + suspend fun renamePlaylist(playlist: Playlist, name: String): MutableLibrary + + suspend fun addToPlaylist(playlist: Playlist, songs: List): MutableLibrary + + suspend fun rewritePlaylist(playlist: Playlist, songs: List): MutableLibrary + + suspend fun deletePlaylist(playlist: Playlist): MutableLibrary +} diff --git a/app/src/main/java/org/oxycblt/musikr/Music.kt b/app/src/main/java/org/oxycblt/musikr/Music.kt index 291655f2e..5dcbb82a7 100644 --- a/app/src/main/java/org/oxycblt/musikr/Music.kt +++ b/app/src/main/java/org/oxycblt/musikr/Music.kt @@ -40,40 +40,6 @@ import org.oxycblt.musikr.tag.Disc import org.oxycblt.musikr.tag.Name import org.oxycblt.musikr.tag.ReleaseType -interface Library { - val songs: Collection - val albums: Collection - val artists: Collection - val genres: Collection - val playlists: Collection - - fun findSong(uid: Music.UID): Song? - - fun findSongByPath(path: Path): Song? - - fun findAlbum(uid: Music.UID): Album? - - fun findArtist(uid: Music.UID): Artist? - - fun findGenre(uid: Music.UID): Genre? - - fun findPlaylist(uid: Music.UID): Playlist? - - fun findPlaylistByName(name: String): Playlist? -} - -interface MutableLibrary : Library { - suspend fun createPlaylist(name: String, songs: List): MutableLibrary - - suspend fun renamePlaylist(playlist: Playlist, name: String): MutableLibrary - - suspend fun addToPlaylist(playlist: Playlist, songs: List): MutableLibrary - - suspend fun rewritePlaylist(playlist: Playlist, songs: List): MutableLibrary - - suspend fun deletePlaylist(playlist: Playlist): MutableLibrary -} - /** * Abstract music data. This contains universal information about all concrete music * implementations, such as identification information and names. diff --git a/app/src/main/java/org/oxycblt/musikr/StackModule.kt b/app/src/main/java/org/oxycblt/musikr/MusikrModule.kt similarity index 96% rename from app/src/main/java/org/oxycblt/musikr/StackModule.kt rename to app/src/main/java/org/oxycblt/musikr/MusikrModule.kt index 9d0c4d665..8b4b47c5c 100644 --- a/app/src/main/java/org/oxycblt/musikr/StackModule.kt +++ b/app/src/main/java/org/oxycblt/musikr/MusikrModule.kt @@ -1,6 +1,6 @@ /* * Copyright (c) 2024 Auxio Project - * StackModule.kt is part of Auxio. + * MusikrModule.kt is part of Auxio. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by