diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2023-10-11 12:08:16 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2023-10-26 00:41:50 +0300 |
commit | 36e2c9697e431414ae0263635f3ebf1f3c200723 (patch) | |
tree | 5a4c103039ee6e0a7f68c3e34248893f3425899a /homescreen/proto | |
parent | 8db829a4a790e30b5dfd27b531aa8018918fde10 (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')
-rw-r--r-- | homescreen/proto/agl_shell.proto | 110 |
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 { +}; |