wip: Implement events

This commit is contained in:
2026-04-10 23:28:46 +02:00
parent 626380bcc4
commit f6721de3a6
36 changed files with 1824 additions and 111 deletions
@@ -0,0 +1,89 @@
package dev.zoriya.omni
import com.margelo.nitro.omni.HybridOmniEventMapSpec
import com.margelo.nitro.omni.Rendition
import com.margelo.nitro.omni.Track
import org.videolan.libvlc.MediaPlayer
class EventMap(val player: MediaPlayer) : HybridOmniEventMapSpec(), MediaPlayer.EventListener {
init {
player.setEventListener(this)
}
override fun onEvent(event: MediaPlayer.Event) {
when (event) {
}
}
override fun addOnEndListener(cb: () -> Unit) {
}
override fun removeOnEndListener(cb: () -> Unit) {
TODO("Not yet implemented")
}
override fun addOnPrevListener(cb: () -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnPrevListener(cb: () -> Unit) {
TODO("Not yet implemented")
}
override fun addOnNextListener(cb: () -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnNextListener(cb: () -> Unit) {
TODO("Not yet implemented")
}
override fun addOnErrorListener(cb: (type: String, message: String) -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnErrorListener(cb: (type: String, message: String) -> Unit) {
TODO("Not yet implemented")
}
override fun addOnAudioFocusChangeListener(cb: (status: String) -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnAudioFocusChangeListener(cb: (status: String) -> Unit) {
TODO("Not yet implemented")
}
override fun addOnVideoTrackChangeListener(cb: (track: Track) -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnVideoTrackChangeListener(cb: (track: Track) -> Unit) {
TODO("Not yet implemented")
}
override fun addOnAudioTrackChangeListener(cb: (track: Track) -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnAudioTrackChangeListener(cb: (track: Track) -> Unit) {
TODO("Not yet implemented")
}
override fun addOnSubtitleChangeListener(cb: (track: Track?) -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnSubtitleChangeListener(cb: (track: Track?) -> Unit) {
TODO("Not yet implemented")
}
override fun addOnRenditionChangeListener(cb: (rendition: Rendition) -> Unit) {
TODO("Not yet implemented")
}
override fun removeOnRenditionChangeListener(cb: (rendition: Rendition) -> Unit) {
TODO("Not yet implemented")
}
}
@@ -2,6 +2,7 @@ package dev.zoriya.omni
import android.net.Uri
import com.margelo.nitro.NitroModules
import com.margelo.nitro.omni.HybridOmniEventMapSpec
import com.margelo.nitro.omni.Source
import com.margelo.nitro.omni.HybridOmniPlayerSpec
import com.margelo.nitro.omni.PlayerStatus
@@ -19,6 +20,7 @@ object VlcConst {
class OmniPlayer() : HybridOmniPlayerSpec() {
val player = MediaPlayer(VlcConst.vlc)
override val eventMap = EventMap(player);
override var source: Source by deferredObservable { _, _, new ->
val src = new.src.firstOrNull()?.uri ?: return@deferredObservable