Skip to content
Snippets Groups Projects
Commit e21e57d3 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy Committed by Duncan McNamara
Browse files

Remote access: add chapter API and media info strings

parent 83e8d3a8
No related branches found
No related tags found
1 merge request!1960Remote access advanced options
......@@ -601,6 +601,7 @@
<string name="search_global">Search in all media library</string>
<string name="playlist_save">Save Playlist</string>
<string name="playlist_name_hint">Playlist name</string>
<string name="chapters">Chapters</string>
<string name="go_to_chapter">Go to chapter…</string>
<string name="current_chapter">Chapter: %s</string>
<string name="confirm_resume">Resume from last position?</string>
......
......@@ -584,9 +584,10 @@ class RemoteAccessServer(private val context: Context) : PlaybackService.Callbac
service?.let { service ->
service.currentMediaWrapper?.let { media ->
val bookmarks = withContext(Dispatchers.IO) { media.bookmarks ?: arrayOf() }
val chapters = withContext(Dispatchers.IO) { service.getChapters(-1) ?: arrayOf() }
val nowPlaying = NowPlaying(media.title ?: "", media.artist
?: "", service.isPlaying, service.getTime(), service.length, media.id, media.artworkURL
?: "", media.uri.toString(), getVolume(), service.isShuffling, service.repeatType, bookmarks = bookmarks.map { WSBookmark(it.title, it.time) })
?: "", media.uri.toString(), getVolume(), service.isShuffling, service.repeatType, bookmarks = bookmarks.map { WSBookmark(it.title, it.time) }, chapters = chapters.map { WSBookmark(it.name, it.duration) })
return nowPlaying
}
......@@ -739,7 +740,7 @@ class RemoteAccessServer(private val context: Context) : PlaybackService.Callbac
abstract class WSMessage(val type: String)
data class NowPlaying(val title: String, val artist: String, val playing: Boolean, val progress: Long, val duration: Long, val id: Long, val artworkURL: String, val uri: String, val volume: Int, val shuffle: Boolean, val repeat: Int, val shouldShow: Boolean = PlaylistManager.playingState.value
?: false, val bookmarks:List<WSBookmark> = listOf()) : WSMessage("now-playing")
?: false, val bookmarks:List<WSBookmark> = listOf(), val chapters:List<WSBookmark> = listOf()) : WSMessage("now-playing")
data class WSBookmark(val title: String, val time: Long)
......
......@@ -125,5 +125,9 @@ object TranslationMapping {
REMOTE_ACCESS_VERSION(R.string.remote_access_version),
REMOTE_ACCESS_HASH(R.string.build_remote_access_revision),
LIBRARIES(R.string.libraries),
SLEEP_TIMER(R.string.sleep_title),
PLAYBACK_SPEED(R.string.playback_speed),
CHAPTERS(R.string.chapters),
BOOKMARKS(R.string.bookmarks),
}
}
\ No newline at end of file
......@@ -170,6 +170,11 @@ object RemoteAccessWebSockets {
} else return false
}
"play-chapter" -> {
incomingMessage.id?.let { id ->
if (playbackControlAllowedOrSend(settings)) service?.chapterIdx = id
}
}
"play-media" -> {
if (playbackControlAllowedOrSend(settings)) service?.playIndex(incomingMessage.id!!) else return false
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment