musikr: use interpreter instead of taginterpreter
This commit is contained in:
parent
0919f29085
commit
b2073f2213
3 changed files with 8 additions and 9 deletions
|
@ -28,13 +28,12 @@ import org.oxycblt.musikr.tag.interpret.Separators
|
|||
data class Storage(
|
||||
/**
|
||||
* A repository of cached metadata to read and write from over the course of music loading only.
|
||||
* This will be used only during music loading.
|
||||
*/
|
||||
val cache: MutableSongCache,
|
||||
|
||||
/**
|
||||
* A repository of cover images to for re-use during music loading. Should be kept in lock-step
|
||||
* with the cache for best performance. This will be used during music loading and when
|
||||
* with the [cache] for best performance. This will be used during music loading and when
|
||||
* retrieving cover information from the library.
|
||||
*/
|
||||
val covers: MutableCovers,
|
||||
|
|
|
@ -33,7 +33,7 @@ import org.oxycblt.musikr.graph.MusicGraph
|
|||
import org.oxycblt.musikr.model.LibraryFactory
|
||||
import org.oxycblt.musikr.playlist.db.StoredPlaylists
|
||||
import org.oxycblt.musikr.playlist.interpret.PlaylistInterpreter
|
||||
import org.oxycblt.musikr.tag.interpret.TagInterpreter
|
||||
import org.oxycblt.musikr.tag.interpret.Interpreter
|
||||
|
||||
internal interface EvaluateStep {
|
||||
suspend fun evaluate(complete: Flow<Complete>): MutableLibrary
|
||||
|
@ -41,7 +41,7 @@ internal interface EvaluateStep {
|
|||
companion object {
|
||||
fun new(storage: Storage, interpretation: Interpretation): EvaluateStep =
|
||||
EvaluateStepImpl(
|
||||
TagInterpreter.new(interpretation),
|
||||
Interpreter.new(interpretation),
|
||||
PlaylistInterpreter.new(interpretation),
|
||||
storage.storedPlaylists,
|
||||
LibraryFactory.new())
|
||||
|
@ -49,7 +49,7 @@ internal interface EvaluateStep {
|
|||
}
|
||||
|
||||
private class EvaluateStepImpl(
|
||||
private val tagInterpreter: TagInterpreter,
|
||||
private val interpreter: Interpreter,
|
||||
private val playlistInterpreter: PlaylistInterpreter,
|
||||
private val storedPlaylists: StoredPlaylists,
|
||||
private val libraryFactory: LibraryFactory
|
||||
|
@ -65,7 +65,7 @@ private class EvaluateStepImpl(
|
|||
val rawSongs = filterFlow.right
|
||||
val preSongs =
|
||||
rawSongs
|
||||
.tryMap { tagInterpreter.interpret(it) }
|
||||
.tryMap { interpreter.interpret(it) }
|
||||
.flowOn(Dispatchers.Default)
|
||||
.buffer(Channel.UNLIMITED)
|
||||
val prePlaylists =
|
||||
|
|
|
@ -30,15 +30,15 @@ import org.oxycblt.musikr.tag.format.parseId3GenreNames
|
|||
import org.oxycblt.musikr.tag.parse.ParsedTags
|
||||
import org.oxycblt.musikr.util.toUuidOrNull
|
||||
|
||||
internal interface TagInterpreter {
|
||||
internal interface Interpreter {
|
||||
fun interpret(song: RawSong): PreSong
|
||||
|
||||
companion object {
|
||||
fun new(interpretation: Interpretation): TagInterpreter = TagInterpreterImpl(interpretation)
|
||||
fun new(interpretation: Interpretation): Interpreter = InterpreterImpl(interpretation)
|
||||
}
|
||||
}
|
||||
|
||||
private class TagInterpreterImpl(private val interpretation: Interpretation) : TagInterpreter {
|
||||
private class InterpreterImpl(private val interpretation: Interpretation) : Interpreter {
|
||||
override fun interpret(song: RawSong): PreSong {
|
||||
val individualPreArtists =
|
||||
makePreArtists(
|
Loading…
Reference in a new issue