Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions libmpv/src/main/cpp/event.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ static void sendPropertyUpdateToJava(JNIEnv *env, mpv_event_property *prop) {
env->DeleteLocalRef(jvalue);
}

static void sendEndFileToJava(JNIEnv *env, mpv_event_end_file *end_file) {
env->CallStaticVoidMethod(mpv_MPVLib, mpv_MPVLib_endFile, end_file->reason, end_file->error);
}

static void sendEventToJava(JNIEnv *env, int event) {
env->CallStaticVoidMethod(mpv_MPVLib, mpv_MPVLib_event, event);
}
Expand Down Expand Up @@ -74,6 +78,7 @@ void *event_thread(void *arg) {

while (true) {
mpv_event *mp_event;
mpv_event_end_file *mp_end_file;
mpv_event_property *mp_property;
mpv_event_log_message *msg;

Expand All @@ -95,6 +100,10 @@ void *event_thread(void *arg) {
mp_property = (mpv_event_property*)mp_event->data;
sendPropertyUpdateToJava(env, mp_property);
break;
case MPV_EVENT_END_FILE:
mp_end_file = (mpv_event_end_file*)mp_event->data;
sendEndFileToJava(env, mp_end_file);
break;
default:
ALOGV("event: %s\n", mpv_event_name(mp_event->event_id));
sendEventToJava(env, mp_event->event_id);
Expand Down
1 change: 1 addition & 0 deletions libmpv/src/main/cpp/jni_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ void init_methods_cache(JNIEnv *env) {
mpv_MPVLib_eventProperty_Sl = env->GetStaticMethodID(mpv_MPVLib, "eventProperty", "(Ljava/lang/String;J)V"); // eventProperty(String, long)
mpv_MPVLib_eventProperty_Sd = env->GetStaticMethodID(mpv_MPVLib, "eventProperty", "(Ljava/lang/String;D)V"); // eventProperty(String, double)
mpv_MPVLib_eventProperty_SS = env->GetStaticMethodID(mpv_MPVLib, "eventProperty", "(Ljava/lang/String;Ljava/lang/String;)V"); // eventProperty(String, String)
mpv_MPVLib_endFile = env->GetStaticMethodID(mpv_MPVLib, "endFile", "(II)V"); // endFile(int, int)
mpv_MPVLib_event = env->GetStaticMethodID(mpv_MPVLib, "event", "(I)V"); // event(int)
mpv_MPVLib_logMessage_SiS = env->GetStaticMethodID(mpv_MPVLib, "logMessage", "(Ljava/lang/String;ILjava/lang/String;)V"); // logMessage(String, int, String)
#undef FIND_CLASS
Expand Down
1 change: 1 addition & 0 deletions libmpv/src/main/cpp/jni_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ UTIL_EXTERN jmethodID mpv_MPVLib_eventProperty_S,
mpv_MPVLib_eventProperty_Sl,
mpv_MPVLib_eventProperty_Sd,
mpv_MPVLib_eventProperty_SS,
mpv_MPVLib_endFile,
mpv_MPVLib_event,
mpv_MPVLib_logMessage_SiS;
41 changes: 41 additions & 0 deletions libmpv/src/main/java/dev/jdtech/mpv/MPVLib.kt
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,14 @@ object MPVLib {
}
}

@JvmStatic
fun endFile(reason: Int, error: Int) {
synchronized(observers) {
for (o in observers)
o.endFile(reason, error)
}
}

@JvmStatic
fun event(eventId: Int) {
synchronized(observers) {
Expand Down Expand Up @@ -129,6 +137,7 @@ object MPVLib {
fun eventProperty(property: String, value: Double)
fun eventProperty(property: String, value: Boolean)
fun eventProperty(property: String, value: String)
fun endFile(reason: Int, error: Int)
fun event(eventId: Int)
}

Expand All @@ -149,6 +158,14 @@ object MPVLib {
const val MPV_FORMAT_BYTE_ARRAY: Int = 9
}

object MpvEndFileReason {
const val MPV_END_FILE_REASON_EOF: Int = 0
const val MPV_END_FILE_REASON_STOP: Int = 2
const val MPV_END_FILE_REASON_QUIT: Int = 3
const val MPV_END_FILE_REASON_ERROR: Int = 4
const val MPV_END_FILE_REASON_REDIRECT: Int = 5
}

object MpvEvent {
const val MPV_EVENT_NONE: Int = 0
const val MPV_EVENT_SHUTDOWN: Int = 1
Expand Down Expand Up @@ -183,4 +200,28 @@ object MPVLib {
const val MPV_LOG_LEVEL_DEBUG: Int = 60
const val MPV_LOG_LEVEL_TRACE: Int = 70
}

object MpvError {
const val MPV_ERROR_SUCCESS: Int = 0
const val MPV_ERROR_EVENT_QUEUE_FULL: Int = -1
const val MPV_ERROR_NOMEM: Int = -2
const val MPV_ERROR_UNINITIALIZED: Int = -3
const val MPV_ERROR_INVALID_PARAMETER: Int = -4
const val MPV_ERROR_OPTION_NOT_FOUND: Int = -5
const val MPV_ERROR_OPTION_FORMAT: Int = -6
const val MPV_ERROR_OPTION_ERROR: Int = -7
const val MPV_ERROR_PROPERTY_NOT_FOUND: Int = -8
const val MPV_ERROR_PROPERTY_FORMAT: Int = -9
const val MPV_ERROR_PROPERTY_UNAVAILABLE: Int = -10
const val MPV_ERROR_PROPERTY_ERROR: Int = -11
const val MPV_ERROR_COMMAND: Int = -12
const val MPV_ERROR_LOADING_FAILED: Int = -13
const val MPV_ERROR_AO_INIT_FAILED: Int = -14
const val MPV_ERROR_VO_INIT_FAILED: Int = -15
const val MPV_ERROR_NOTHING_TO_PLAY: Int = -16
const val MPV_ERROR_UNKNOWN_FORMAT: Int = -17
const val MPV_ERROR_UNSUPPORTED: Int = -18
const val MPV_ERROR_NOT_IMPLEMENTED: Int = -19
const val MPV_ERROR_GENERIC: Int = -20
}
}
Loading