lua: export end-file event fields

This commit is contained in:
wm4 2015-06-11 21:20:39 +02:00
parent 478ea1d0f3
commit ce513dedd8
2 changed files with 37 additions and 0 deletions

View File

@ -690,6 +690,23 @@ List of events
Happens after a file was unloaded. Typically, the player will load the Happens after a file was unloaded. Typically, the player will load the
next file right away, or quit if this was the last file. next file right away, or quit if this was the last file.
The event has the ``reason`` field, which takes one of these values:
``eof``
The file has ended. This can (but doesn't have to) include
incomplete files or broken network connections under
circumstances.
``stop``
Playback was ended by a command.
``quit``
Playback was ended by sending the quit command.
``error``
An error happened. In this case, an ``error`` field is present with
the error string.
``file-loaded`` ``file-loaded``
Happens after a file was loaded and begins playback. Happens after a file was loaded and begins playback.

View File

@ -512,6 +512,26 @@ static int script_wait_event(lua_State *L)
lua_setfield(L, -2, "args"); // event lua_setfield(L, -2, "args"); // event
break; break;
} }
case MPV_EVENT_END_FILE: {
mpv_event_end_file *eef = event->data;
const char *reason;
switch (eef->reason) {
case MPV_END_FILE_REASON_EOF: reason = "eof"; break;
case MPV_END_FILE_REASON_STOP: reason = "stop"; break;
case MPV_END_FILE_REASON_QUIT: reason = "quit"; break;
case MPV_END_FILE_REASON_ERROR: reason = "error"; break;
default:
reason = "unknown";
}
lua_pushstring(L, reason); // event reason
lua_setfield(L, -2, "reason"); // event
if (eef->reason == MPV_END_FILE_REASON_ERROR) {
lua_pushstring(L, mpv_error_string(eef->error)); // event error
lua_setfield(L, -2, "error"); // event
}
break;
}
case MPV_EVENT_PROPERTY_CHANGE: { case MPV_EVENT_PROPERTY_CHANGE: {
mpv_event_property *prop = event->data; mpv_event_property *prop = event->data;
lua_pushstring(L, prop->name); lua_pushstring(L, prop->name);