client API: report pause/unpause reason

Not sure about this... might redo.

At least this provides a case of a broadcasted event, which requires
per-event data allocation.

See github issue #576.
This commit is contained in:
wm4
2014-02-24 22:49:07 +01:00
parent 5d7007c644
commit 0adb8a9aaf
8 changed files with 119 additions and 31 deletions

View File

@@ -889,6 +889,32 @@ typedef struct mpv_event_log_message {
const char *text;
} mpv_event_log_message;
typedef struct mpv_event_pause_reason {
/**
* Actual pause state (0 or 1)
*/
int real_paused;
/**
* User requested pause state (0 or 1)
*/
int user_paused;
/**
* 1 if the action was triggered by an input command (or via an user key
* binding), 0 otherwise.
*/
int by_command;
/**
* 1 if the action was triggered by a low (or recovering) cache state,
* 0 otherwise.
*/
int by_cache;
/**
* 1 if the pausing was triggered because the end of playback was reached,
* and the "keep-open" option is enabled, 0 otherwise.
*/
int by_keep_open;
} mpv_event_pause_reason;
typedef struct mpv_event_script_input_dispatch {
/**
* Arbitrary integer value that was provided as argument to the
@@ -938,6 +964,8 @@ typedef struct mpv_event {
* The meaning and contents of data member depend on the event_id:
* MPV_EVENT_GET_PROPERTY_REPLY: mpv_event_property*
* MPV_EVENT_LOG_MESSAGE: mpv_event_log_message*
* MPV_EVENT_PAUSE: mpv_event_pause_reason*
* MPV_EVENT_UNPAUSE: mpv_event_pause_reason*
* MPV_EVENT_SCRIPT_INPUT_DISPATCH: mpv_event_script_input_dispatch*
* MPV_EVENT_CLIENT_MESSAGE: mpv_event_client_message*
* other: NULL