summaryrefslogtreecommitdiffstats
path: root/ppapi/api/extensions/dev/ppb_events_dev.idl
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/api/extensions/dev/ppb_events_dev.idl')
-rw-r--r--ppapi/api/extensions/dev/ppb_events_dev.idl87
1 files changed, 87 insertions, 0 deletions
diff --git a/ppapi/api/extensions/dev/ppb_events_dev.idl b/ppapi/api/extensions/dev/ppb_events_dev.idl
new file mode 100644
index 0000000..cfcc809
--- /dev/null
+++ b/ppapi/api/extensions/dev/ppb_events_dev.idl
@@ -0,0 +1,87 @@
+/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+label Chrome {
+ M27 = 0.1
+};
+
+/**
+ * Used to represent arbitrary C function pointers. Please note that usually
+ * the function that a <code>PP_Ext_GenericFuncType</code> pointer points to
+ * has a different signature than <code>void (*)()</code>.
+ */
+typedef void PP_Ext_GenericFuncType();
+
+/**
+ * An event listener that can be registered with the browser and receive
+ * notifications via the callback function.
+ *
+ * A function is defined for each event type to return a properly-filled
+ * <code>PP_Ext_EventListener</code> struct, for example,
+ * <code>PP_Ext_Alarms_OnAlarm_Dev()</code>.
+ */
+[passByValue]
+struct PP_Ext_EventListener {
+ /**
+ * The name of the event to register to.
+ */
+ cstr_t event_name;
+ /**
+ * A callback function whose signature is determined by
+ * <code>event_name</code>. All calls will happen on the same thread as the
+ * one on which <code>AddListener()</code> is called.
+ */
+ PP_Ext_GenericFuncType func;
+ /**
+ * An opaque pointer that will be passed to <code>func</code>.
+ */
+ mem_t user_data;
+};
+
+interface PPB_Ext_Events_Dev {
+ /**
+ * Registers a listener to an event.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance of
+ * a module.
+ * @param[in] listener A <code>PP_Ext_EventListener</code> struct.
+ *
+ * @return An listener ID, or 0 if failed.
+ */
+ uint32_t AddListener(
+ [in] PP_Instance instance,
+ [in] PP_Ext_EventListener listener);
+
+ /**
+ * Deregisters a listener.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance of
+ * a module.
+ * @param[in] listener_id The ID returned by <code>AddListener()</code>.
+ */
+ void RemoveListener(
+ [in] PP_Instance instance,
+ [in] uint32_t listener_id);
+};
+
+#inline c
+/**
+ * Creates a <code>PP_Ext_EventListener</code> struct.
+ *
+ * Usually you should not call it directly. Instead you should call those
+ * functions that return a <code>PP_Ext_EventListener</code> struct for a
+ * specific event type, for example, <code>PP_Ext_Alarms_OnAlarm_Dev()</code>.
+ */
+PP_INLINE struct PP_Ext_EventListener PP_Ext_MakeEventListener(
+ const char* event_name,
+ PP_Ext_GenericFuncType func,
+ void* user_data) {
+ struct PP_Ext_EventListener listener;
+ listener.event_name = event_name;
+ listener.func = func;
+ listener.user_data = user_data;
+ return listener;
+}
+#endinl