aboutsummaryrefslogtreecommitdiffstats
path: root/homescreen/proto/agl_shell.proto
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2023-10-11 12:08:16 +0300
committerMarius Vlad <marius.vlad@collabora.com>2023-10-26 00:41:50 +0300
commit36e2c9697e431414ae0263635f3ebf1f3c200723 (patch)
tree5a4c103039ee6e0a7f68c3e34248893f3425899a /homescreen/proto/agl_shell.proto
parent8db829a4a790e30b5dfd27b531aa8018918fde10 (diff)
AglShellGrpcClient: Add activation with gRPC proxy
This follow-ups in footsteps of flutter-homescreen to have activation using gRPC. Note that setting up wayland surfaces is still need to have the agl-shell protocol available. In Qt this is managed directly by Qt/QPA while on other toolkits this happens at a lower level (flutter-auto or chromium CEF). With it, create a listening thread for gRRC events in order to perform the initial start + activate sequence. Bug-AGL: SPEC-4912 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I019d0e7944dde02c84b2841e22d3971f226d610a
Diffstat (limited to 'homescreen/proto/agl_shell.proto')
-rw-r--r--homescreen/proto/agl_shell.proto110
1 files changed, 110 insertions, 0 deletions
diff --git a/homescreen/proto/agl_shell.proto b/homescreen/proto/agl_shell.proto
new file mode 100644
index 0000000..c4f3dfe
--- /dev/null
+++ b/homescreen/proto/agl_shell.proto
@@ -0,0 +1,110 @@
+syntax = "proto3";
+// using empty Response suitable better for forward compat
+//import "google/protobuf/empty.proto";
+package agl_shell_ipc;
+
+service AglShellManagerService {
+ rpc ActivateApp(ActivateRequest) returns (ActivateResponse) {}
+ rpc DeactivateApp(DeactivateRequest) returns (DeactivateResponse) {}
+ rpc SetAppSplit(SplitRequest) returns (SplitResponse) {}
+ rpc SetAppFloat(FloatRequest) returns (FloatResponse) {}
+ rpc SetAppFullscreen(FullscreenRequest) returns (FullscreenResponse) {}
+ rpc AppStatusState(AppStateRequest) returns (stream AppStateResponse) {}
+ rpc GetOutputs(OutputRequest) returns (ListOutputResponse) {}
+ rpc SetAppNormal(NormalRequest) returns (NormalResponse) {}
+ rpc SetAppOnOutput(AppOnOutputRequest) returns (AppOnOutputResponse) {}
+ rpc SetAppPosition(AppPositionRequest) returns (AppPositionResponse) {}
+ rpc SetAppScale(AppScaleRequest) returns (AppScaleResponse) {}
+}
+
+message ActivateRequest {
+ string app_id = 1;
+ string output_name = 2;
+}
+
+message ActivateResponse {
+};
+
+
+message DeactivateRequest {
+ string app_id = 1;
+}
+
+message DeactivateResponse {
+}
+
+message SplitRequest {
+ string app_id = 1;
+ int32 tile_orientation = 2;
+}
+
+message SplitResponse {
+}
+
+message FloatRequest {
+ string app_id = 1;
+ int32 x_pos = 2;
+ int32 y_pos = 3;
+}
+
+message FloatResponse {
+}
+
+message AppStateRequest {
+}
+
+message AppStateResponse {
+ int32 state = 1;
+ string app_id = 2;
+}
+
+message OutputRequest {
+};
+
+message OutputResponse {
+ string name = 1;
+};
+
+message ListOutputResponse {
+ repeated OutputResponse outputs = 1;
+};
+
+message NormalRequest {
+ string app_id = 1;
+};
+
+message NormalResponse {
+};
+
+message FullscreenRequest {
+ string app_id = 1;
+};
+
+message FullscreenResponse {
+};
+
+message AppOnOutputRequest {
+ string app_id = 1;
+ string output = 2;
+};
+
+message AppOnOutputResponse {
+};
+
+message AppPositionRequest {
+ string app_id = 1;
+ int32 x = 2;
+ int32 y = 3;
+};
+
+message AppPositionResponse {
+};
+
+message AppScaleRequest {
+ string app_id = 1;
+ int32 width = 2;
+ int32 height = 3;
+};
+
+message AppScaleResponse {
+};