summaryrefslogtreecommitdiffstats
path: root/player/command.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-04-05 23:54:21 +0200
committerwm4 <wm4@nowhere>2014-04-06 03:22:49 +0200
commit49d1b42f7088c0d41df346437b64fe20bbaac22f (patch)
tree9756ee23e00870608705b17371bc25c38eee38cd /player/command.h
parent14eb233da98bbac1c606e392e658f400deb5024b (diff)
downloadmpv-49d1b42f7088c0d41df346437b64fe20bbaac22f.tar.bz2
mpv-49d1b42f7088c0d41df346437b64fe20bbaac22f.tar.xz
client API: add a way to notify clients of property changes
This turned out ridiculously complex. I think it will have to be simplified some day. Main reason for the complexity are: - filtering properties by forcing clients to observe individual properties explicitly (to avoid spamming clients with changes they don't want) - optional retrieval of property value with the notification (the basic idea was that this is more user friendly) - allowing to the client to specify a format in which the value should be retrieved (because if a property changes its type, the client API couldn't convert it properly, and compatibility would break) I don't know yet which of these are important, and everything could change. In particular, the interface and semantics should be adjusted to reduce the implementation complexity. While I consider the API complete, there could (and probably will) be bugs left. Also while the implementation is complete, it's inefficient. The complexity of the property matching is O(a*b*c) with a clients, b observed properties, and c properties changing at once. I threw away an earlier implementation using bitmasks, because it was too unwieldy.
Diffstat (limited to 'player/command.h')
-rw-r--r--player/command.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/player/command.h b/player/command.h
index a04bfac343..795a759906 100644
--- a/player/command.h
+++ b/player/command.h
@@ -34,7 +34,9 @@ int mp_property_do(const char* name, int action, void* val,
struct MPContext *mpctx);
const struct m_option *mp_get_property_list(void);
+int mp_find_property_index(const char *property);
void mp_notify(struct MPContext *mpctx, int event, void *arg);
+void mp_notify_property(struct MPContext *mpctx, char *property);
#endif /* MPLAYER_COMMAND_H */