forked from enlightenment/enlightenment
extend wl extension macros to store globals into extension data
This commit is contained in:
parent
a658c785c3
commit
e919734df7
|
@ -96,9 +96,14 @@ typedef struct E_Comp_Wl_Extension_Data
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
struct wl_resource *global;
|
||||||
struct wl_client *client;
|
struct wl_client *client;
|
||||||
void (*read_pixels)(E_Comp_Wl_Output *output, void *pixels);
|
void (*read_pixels)(E_Comp_Wl_Output *output, void *pixels);
|
||||||
} screenshooter;
|
} screenshooter;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct wl_resource *global;
|
||||||
|
} session_recovery;
|
||||||
} E_Comp_Wl_Extension_Data;
|
} E_Comp_Wl_Extension_Data;
|
||||||
|
|
||||||
struct _E_Comp_Wl_Data
|
struct _E_Comp_Wl_Data
|
||||||
|
|
|
@ -81,7 +81,12 @@ static const struct screenshooter_interface _e_screenshooter_interface =
|
||||||
_e_comp_wl_screenshooter_cb_shoot
|
_e_comp_wl_screenshooter_cb_shoot
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GLOBAL_BIND_CB(NAME, IFACE) \
|
#define GLOBAL_BIND_CB(NAME, IFACE, ...) \
|
||||||
|
static void \
|
||||||
|
_e_comp_wl_##NAME##_cb_unbind(struct wl_resource *resource EINA_UNUSED) \
|
||||||
|
{ \
|
||||||
|
e_comp_wl->extensions->NAME.global = NULL; \
|
||||||
|
} \
|
||||||
static void \
|
static void \
|
||||||
_e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void *data EINA_UNUSED, uint32_t version EINA_UNUSED, uint32_t id) \
|
_e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void *data EINA_UNUSED, uint32_t version EINA_UNUSED, uint32_t id) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -94,7 +99,8 @@ _e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void *data EINA_UNUSED, ui
|
||||||
return;\
|
return;\
|
||||||
}\
|
}\
|
||||||
\
|
\
|
||||||
wl_resource_set_implementation(res, &_e_##NAME##_interface, NULL, NULL);\
|
e_comp_wl->extensions->NAME.global = res; \
|
||||||
|
wl_resource_set_implementation(res, &_e_##NAME##_interface, NULL, _e_comp_wl_##NAME##_cb_unbind);\
|
||||||
}
|
}
|
||||||
|
|
||||||
GLOBAL_BIND_CB(session_recovery, zwp_e_session_recovery_interface)
|
GLOBAL_BIND_CB(session_recovery, zwp_e_session_recovery_interface)
|
||||||
|
|
Loading…
Reference in New Issue