anbox-platform-sdk 1.28.0
Anbox Platform SDK API documentation
anbox_proxy.h
Go to the documentation of this file.
1/*
2 * This file is part of Anbox Platform SDK
3 *
4 * Copyright 2021 Canonical Ltd.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19#ifndef ANBOX_SDK_ANBOX_PROXY_H_
20#define ANBOX_SDK_ANBOX_PROXY_H_
21
23
24#include <errno.h>
25#include <stdint.h>
26#include <unistd.h>
27
32typedef int (*AnboxChangeScreenOrientationCallback)(AnboxScreenOrientationType orientation_type, void* user_data);
33
38typedef int (*AnboxChangeDisplayDensityCallback)(uint32_t density, void* user_data);
39
44typedef int (*AnboxChangeDisplaySizeCallback)(uint32_t width, uint32_t height, void* user_data);
45
51typedef int (*AnboxTriggerActionCallback)(const char* name, const char **args, size_t args_len, void* user_data);
52
57typedef int (*AnboxCreateADBConnectionCallback)(const char* id, void* user_data);
58
63typedef int (*AnboxDisconnectADBConnectionCallback)(const char* id, void* user_data);
64
65namespace anbox {
72 public:
73 AnboxProxy() = default;
74 virtual ~AnboxProxy() = default;
75 AnboxProxy(const AnboxProxy &) = delete;
76 AnboxProxy& operator=(const AnboxProxy &) = delete;
77
85 if (!change_screen_orientation_callback_)
86 return -EINVAL;
87 return change_screen_orientation_callback_(orientation_type, screen_orientation_callback_user_data_);
88 }
89
92 void* user_data) {
93 change_screen_orientation_callback_ = callback;
94 screen_orientation_callback_user_data_ = user_data;
95 }
96
103 int change_display_density(uint32_t density) {
104 if (!change_display_density_callback_)
105 return -EINVAL;
106 return change_display_density_callback_(density, display_density_callback_user_data_);
107 }
108
111 void* user_data) {
112 change_display_density_callback_ = callback;
113 display_density_callback_user_data_ = user_data;
114 }
115
123 int change_display_size(uint32_t width, uint32_t height) {
124 if (!change_display_size_callback_)
125 return -EINVAL;
126 return change_display_size_callback_(width, height, display_size_callback_user_data_);
127 }
128
131 void* user_data) {
132 change_display_size_callback_ = callback;
133 display_size_callback_user_data_ = user_data;
134 }
135
152 int trigger_action(const char* name, const char** args, size_t args_len) {
153 if (!trigger_action_callback_)
154 return -EINVAL;
155 return trigger_action_callback_(name, args, args_len, trigger_action_callback_user_data_);
156 }
157
160 void* user_data) {
161 trigger_action_callback_ = callback;
162 trigger_action_callback_user_data_ = user_data;
163 }
164
174 virtual int send_message(const char* type, size_t type_size,
175 const char* data, size_t data_size) {
176 (void) type;
177 (void) type_size;
178 (void) data;
179 (void) data_size;
180 return -EIO;
181 }
182
190 int create_adb_connection(const char* id) {
191 if (!create_adb_connection_callback_)
192 return -EINVAL;
193 return create_adb_connection_callback_(id, create_adb_connection_callback_user_data_);
194 }
195
198 void* user_data) {
199 create_adb_connection_callback_ = callback;
200 create_adb_connection_callback_user_data_ = user_data;
201 }
202
209 int disconnect_adb_connection(const char* id) {
210 if (!disconnect_adb_connection_callback_)
211 return -EINVAL;
212 return disconnect_adb_connection_callback_(id, disconnect_adb_connection_callback_user_data_);
213 }
214
217 void* user_data) {
218 disconnect_adb_connection_callback_ = callback;
219 disconnect_adb_connection_callback_user_data_ = user_data;
220 }
221
222 private:
223 AnboxChangeScreenOrientationCallback change_screen_orientation_callback_{nullptr};
224 AnboxChangeDisplayDensityCallback change_display_density_callback_{nullptr};
225 AnboxChangeDisplaySizeCallback change_display_size_callback_{nullptr};
226 AnboxTriggerActionCallback trigger_action_callback_{nullptr};
227 AnboxCreateADBConnectionCallback create_adb_connection_callback_{nullptr};
228 AnboxDisconnectADBConnectionCallback disconnect_adb_connection_callback_{nullptr};
229
230 void* screen_orientation_callback_user_data_{nullptr};
231 void* display_density_callback_user_data_{nullptr};
232 void* display_size_callback_user_data_{nullptr};
233 void* trigger_action_callback_user_data_{nullptr};
234 void* create_adb_connection_callback_user_data_{nullptr};
235 void* disconnect_adb_connection_callback_user_data_{nullptr};
236};
237} // namespace anbox
238
239#endif
int(* AnboxCreateADBConnectionCallback)(const char *id, void *user_data)
AnboxCreateADBConnectionCallback is invoked when creating ADB connection.
Definition anbox_proxy.h:57
int(* AnboxDisconnectADBConnectionCallback)(const char *id, void *user_data)
AnboxDisconnectADBConnectionCallback is invoked when disconnecting ADB connection.
Definition anbox_proxy.h:63
int(* AnboxChangeDisplaySizeCallback)(uint32_t width, uint32_t height, void *user_data)
AnboxChangeDisplaySizeCallback is invoked when changing the display size.
Definition anbox_proxy.h:44
int(* AnboxTriggerActionCallback)(const char *name, const char **args, size_t args_len, void *user_data)
AnboxTriggerActionCallback is invoked when an action is triggered within the Android system.
Definition anbox_proxy.h:51
int(* AnboxChangeScreenOrientationCallback)(AnboxScreenOrientationType orientation_type, void *user_data)
AnboxChangeScreenOrientationCallback is invoked when changing the screen orientation.
Definition anbox_proxy.h:32
int(* AnboxChangeDisplayDensityCallback)(uint32_t density, void *user_data)
AnboxChangeDisplayDensityCallback is invoked when changing the display density.
Definition anbox_proxy.h:38
AnboxProxy provides a proxy layer which encapsulates callbacks that can be used by a platform to chan...
Definition anbox_proxy.h:71
void set_change_display_size_callback(const AnboxChangeDisplaySizeCallback &callback, void *user_data)
Set the display size change callback.
AnboxProxy()=default
AnboxProxy(const AnboxProxy &)=delete
void set_change_screen_orientation_callback(const AnboxChangeScreenOrientationCallback &callback, void *user_data)
Set the screen orientation change callback.
Definition anbox_proxy.h:91
void set_disconnect_adb_connection_callback(const AnboxDisconnectADBConnectionCallback &callback, void *user_data)
Set the ADB connection disconnect callback.
int trigger_action(const char *name, const char **args, size_t args_len)
Trigger an action which is executed within the Android container.
void set_create_adb_connection_callback(const AnboxCreateADBConnectionCallback &callback, void *user_data)
Set the ADB connection creation callback.
int change_display_size(uint32_t width, uint32_t height)
Change the display size.
virtual int send_message(const char *type, size_t type_size, const char *data, size_t data_size)
Send a message from Anbox to the platform.
int disconnect_adb_connection(const char *id)
Disconnect ADB connection.
int change_screen_orientation(AnboxScreenOrientationType orientation_type)
Change the screen orientation.
Definition anbox_proxy.h:84
virtual ~AnboxProxy()=default
AnboxProxy & operator=(const AnboxProxy &)=delete
void set_change_display_density_callback(const AnboxChangeDisplayDensityCallback &callback, void *user_data)
Set the display density change callback.
void set_trigger_action_callback(const AnboxTriggerActionCallback &callback, void *user_data)
Set the trigger action callback.
int change_display_density(uint32_t density)
Change the display density.
int create_adb_connection(const char *id)
Create ADB connection.
AnboxScreenOrientationType
AnboxScreenOrientationType describes the type of display orientation.
Definition types.h:720