QueuePersistenceExtensions.kt
Each line, with the release that last changed it.
| 0.5.0 | 1 | package dev.stave.data |
| 2 | ||
| 3 | import dev.stave.domain.model.DidlItem | |
| 4 | import kotlin.time.Duration.Companion.milliseconds | |
| 5 | ||
| 6 | /** DidlItem.Track → PersistedTrack. Duration → millis; all other fields copy verbatim. */ | |
| 7 | fun DidlItem.Track.toPersisted(): PersistedTrack = PersistedTrack( | |
| 8 | id = id, | |
| 9 | parentId = parentId, | |
| 10 | title = title, | |
| 11 | artist = artist, | |
| 12 | albumArtist = albumArtist, | |
| 13 | album = album, | |
| 14 | composer = composer, | |
| 15 | genre = genre, | |
| 16 | date = date, | |
| 17 | trackNumber = trackNumber, | |
| 18 | discNumber = discNumber, | |
| 19 | durationMs = duration?.inWholeMilliseconds, | |
| 20 | albumArtUri = albumArtUri, | |
| 21 | resourceUrl = resourceUrl, | |
| 22 | mimeType = mimeType, | |
| 23 | sampleFrequency = sampleFrequency, | |
| 24 | bitsPerSample = bitsPerSample, | |
| 25 | channels = channels, | |
| 26 | bitrate = bitrate, | |
| 27 | size = size, | |
| 28 | extras = extras, | |
| 29 | ) | |
| 30 | ||
| 31 | /** PersistedTrack → DidlItem.Track. Millis → Duration. */ | |
| 32 | fun PersistedTrack.toDomain(): DidlItem.Track = DidlItem.Track( | |
| 33 | id = id, | |
| 34 | parentId = parentId, | |
| 35 | title = title, | |
| 36 | artist = artist, | |
| 37 | albumArtist = albumArtist, | |
| 38 | album = album, | |
| 39 | composer = composer, | |
| 40 | genre = genre, | |
| 41 | date = date, | |
| 42 | trackNumber = trackNumber, | |
| 43 | discNumber = discNumber, | |
| 44 | duration = durationMs?.milliseconds, | |
| 45 | albumArtUri = albumArtUri, | |
| 46 | resourceUrl = resourceUrl, | |
| 47 | mimeType = mimeType, | |
| 48 | sampleFrequency = sampleFrequency, | |
| 49 | bitsPerSample = bitsPerSample, | |
| 50 | channels = channels, | |
| 51 | bitrate = bitrate, | |
| 52 | size = size, | |
| 53 | extras = extras, | |
| 54 | ) |


