EARHORNMUSIC UPnP · Android TV · Phones · Android Auto · GNU/Linux
Release 0.5.0

QueuePersistenceExtensions.kt

Each line, with the release that last changed it.

0.5.01package dev.stave.data
2
3import dev.stave.domain.model.DidlItem
4import kotlin.time.Duration.Companion.milliseconds
5
6/** DidlItem.Track → PersistedTrack. Duration → millis; all other fields copy verbatim. */
7fun 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. */
32fun 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)