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.devs/stefan/wl-session-recovery
parent
0522053dd1
commit
df041fe77b
4 changed files with 80 additions and 0 deletions
@ -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