session_recovery: Add wayland extension protocol prototype for session recovery
Like with all other wayland protocols I add the files generated with wayland scanner here. Also the xml so we have the source around for updating and modifications. We might want to think about wayland-scanner support in our build system but this works for now. The protocol prototype is hold simple and does only have a uuid signal and provide call to handle the uuid assignment from compositor to app and app providing its uuid if present already.
This commit is contained in:
parent
0522053dd1
commit
df041fe77b
|
@ -368,6 +368,8 @@ endif
|
||||||
if HAVE_WAYLAND
|
if HAVE_WAYLAND
|
||||||
enlightenment_src += \
|
enlightenment_src += \
|
||||||
src/bin/e_uuid_store.c \
|
src/bin/e_uuid_store.c \
|
||||||
|
src/bin/session-recovery-protocol.c \
|
||||||
|
src/bin/session-recovery-server-protocol.h \
|
||||||
src/bin/e_comp_wl_data.c \
|
src/bin/e_comp_wl_data.c \
|
||||||
src/bin/e_comp_wl_input.c \
|
src/bin/e_comp_wl_input.c \
|
||||||
src/bin/e_comp_wl.c
|
src/bin/e_comp_wl.c
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "wayland-util.h"
|
||||||
|
|
||||||
|
|
||||||
|
static const struct wl_interface *types[] = {
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message session_recovery_requests[] = {
|
||||||
|
{ "provide_uuid", "s", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message session_recovery_events[] = {
|
||||||
|
{ "uuid", "s", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
WL_EXPORT const struct wl_interface session_recovery_interface = {
|
||||||
|
"session_recovery", 1,
|
||||||
|
1, session_recovery_requests,
|
||||||
|
1, session_recovery_events,
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
#ifndef SESSION_RECOVERY_SERVER_PROTOCOL_H
|
||||||
|
#define SESSION_RECOVERY_SERVER_PROTOCOL_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include "wayland-util.h"
|
||||||
|
|
||||||
|
struct wl_client;
|
||||||
|
struct wl_resource;
|
||||||
|
|
||||||
|
struct session_recovery;
|
||||||
|
|
||||||
|
extern const struct wl_interface session_recovery_interface;
|
||||||
|
|
||||||
|
struct session_recovery_interface {
|
||||||
|
/**
|
||||||
|
* provide_uuid - (none)
|
||||||
|
* @uuid: (none)
|
||||||
|
*/
|
||||||
|
void (*provide_uuid)(struct wl_client *client,
|
||||||
|
struct wl_resource *resource,
|
||||||
|
const char *uuid);
|
||||||
|
};
|
||||||
|
|
||||||
|
#define SESSION_RECOVERY_UUID 0
|
||||||
|
|
||||||
|
#define SESSION_RECOVERY_UUID_SINCE_VERSION 1
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
session_recovery_send_uuid(struct wl_resource *resource_, const char *uuid)
|
||||||
|
{
|
||||||
|
wl_resource_post_event(resource_, SESSION_RECOVERY_UUID, uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,12 @@
|
||||||
|
<protocol name="session_recovery">
|
||||||
|
|
||||||
|
<interface name="session_recovery" version="1">
|
||||||
|
<request name="provide_uuid">
|
||||||
|
<arg name="uuid" type="string"/>
|
||||||
|
</request>
|
||||||
|
<event name="uuid">
|
||||||
|
<arg name="uuid" type="string"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
Loading…
Reference in New Issue