Mir
client_types.h
Go to the documentation of this file.
1 /*
2  * client_types.h: Type definitions used in client apps and libmirclient.
3  *
4  * Copyright © 2013 Canonical Ltd.
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License version 2 or 3,
8  * as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Authored by: Robert Carr <robert.carr@canonical.com>
19  */
20 
21 #ifndef MIR_TOOLKIT_CLIENT_TYPES_H_
22 #define MIR_TOOLKIT_CLIENT_TYPES_H_
23 
25 #include <mir_toolkit/common.h>
27 
28 #include <stddef.h>
29 
30 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /* Display server connection API */
39 typedef void* MirEGLNativeWindowType;
41 typedef struct MirConnection MirConnection;
42 typedef struct MirSurface MirWindow;
43 typedef struct MirSurfaceSpec MirWindowSpec;
44 typedef struct MirScreencast MirScreencast;
46 typedef struct MirPromptSession MirPromptSession;
47 typedef struct MirBufferStream MirBufferStream;
48 typedef struct MirPersistentId MirWindowId;
49 typedef struct MirBlob MirBlob;
50 typedef struct MirDisplayConfig MirDisplayConfig;
51 typedef struct MirError MirError;
53 typedef struct MirBuffer MirBuffer;
54 typedef struct MirRenderSurface MirRenderSurface;
55 
60 typedef struct MirCursorConfiguration MirCursorConfiguration
62 
69 typedef struct MirOutput MirOutput;
70 
76 typedef struct MirWaitHandle MirWaitHandle;
77 
79 
86 typedef void (*MirConnectedCallback)(
87  MirConnection *connection, void *client_context);
88 
95 typedef void (*MirWindowCallback)(MirWindow *window, void *client_context);
96 
104 typedef void (*MirBufferStreamCallback)(
105  MirBufferStream *stream, void *client_context);
106 
113 typedef void (*MirWindowEventCallback)(
114  MirWindow* window, MirEvent const* event, void* context);
115 
125  MirConnection* connection, MirLifecycleState state, void* context);
126 
134 typedef void (*MirPingEventCallback)(
135  MirConnection* connection, int32_t serial, void* context);
136 
143 typedef void (*MirDisplayConfigCallback)(
144  MirConnection* connection, void* context);
145 
156 typedef void (*MirClientFdCallback)(
157  MirPromptSession *prompt_session, size_t count, int const* fds, void* context);
158 
159 #pragma GCC diagnostic push
160 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
161 typedef void (*MirWindowIdCallback)(
162  MirWindow* window, MirWindowId* id, void* context);
163 #pragma GCC diagnostic pop
164 
170 typedef enum MirBufferUsage
171 {
174 } MirBufferUsage MIR_FOR_REMOVAL_IN_VERSION_1("No longer applicable when using MirRenderSurface");
175 
177 
186 #ifndef __cplusplus
187 MIR_FOR_REMOVAL_IN_VERSION_1("Use of this type is inherently non-portable")
188 #endif
189 typedef enum MirPlatformType
190 {
195 
196 typedef struct MirPlatformPackage
197 {
199  int fd_items;
200 
204 
212 typedef struct MirModuleProperties
213 {
214  char const *name;
218  char const *filename;
220 
221 typedef enum MirBufferLayout
222 {
226 
227 typedef enum MirPresentMode
228 {
229  mir_present_mode_immediate, //same as VK_PRESENT_MODE_IMMEDIATE_KHR
230  mir_present_mode_mailbox, //same as VK_PRESENT_MODE_MAILBOX_KHR
231  mir_present_mode_fifo, //same as VK_PRESENT_MODE_FIFO_KHR
232  mir_present_mode_fifo_relaxed, //same as VK_PRESENT_MODE_FIFO_RELAXED_KHR
235 
240 typedef struct MirGraphicsRegion
241 {
242  int width;
243  int height;
244  int stride;
246  char *vaddr;
247 
249 
254 typedef struct MirDisplayCard
255 {
256  uint32_t card_id;
259 
261 {
281 
283 {
288 
289 typedef struct MirDisplayMode
290 {
293  double refresh_rate;
295 
297 
298 typedef struct MirDisplayOutput
299 {
300  uint32_t num_modes;
302  uint32_t preferred_mode;
304  uint32_t current_mode;
305 
309 
310  uint32_t card_id;
311  uint32_t output_id;
313 
314  int32_t position_x;
315  int32_t position_y;
316  uint32_t connected;
317  uint32_t used;
318 
321 
325 
327 {
328  uint32_t num_outputs;
330  uint32_t num_cards;
333 
337 typedef struct MirBufferStreamInfo
338 {
343 
344 typedef struct MirRectangle
345 {
346  int left;
347  int top;
348  unsigned int width;
349  unsigned int height;
351 
352 typedef struct MirInputConfig MirInputConfig;
353 typedef struct MirInputDevice MirInputDevice;
354 typedef struct MirKeyboardConfig MirKeyboardConfig;
355 typedef struct MirPointerConfig MirPointerConfig;
356 typedef struct MirTouchpadConfig MirTouchpadConfig;
358 
366 {
373  unsigned int width;
375  unsigned int height;
382 
388 typedef void (*MirScreencastCallback)(
389  MirScreencast *screencast, void *client_context);
390 
396 typedef void (*MirPromptSessionCallback)(
397  MirPromptSession* prompt_provider, void* context);
398 
406  MirPromptSession* prompt_provider, MirPromptSessionState state,
407  void* context);
408 
420  MirConnection* connection, MirPlatformMessage* reply, void* context);
421 
429 typedef void (*MirInputConfigCallback)(
430  MirConnection* connection, void* context);
431 
432 typedef void (*MirBufferCallback)(MirBuffer*, void* context);
433 
439 typedef enum MirErrorDomain
440 {
454 
476 
485 
490 
496 
497 typedef void (*MirErrorCallback)(
498  MirConnection* connection, MirError const* error, void* context);
499 
500 #ifdef __cplusplus
501 }
503 #endif
504 
505 #endif /* MIR_TOOLKIT_CLIENT_TYPES_H_ */
mir_buffer_usage_software
Definition: client_types.h:2
mir_buffer_usage_hardware
Definition: client_types.h:0
struct MirScreencastSpec MirScreencastSpec
Definition: client_types.h:45
void(* MirPromptSessionCallback)(MirPromptSession *prompt_provider, void *context)
Callback member of MirPromptSession for handling of prompt sessions.
Definition: client_types.h:396
void(* MirLifecycleEventCallback)(MirConnection *connection, MirLifecycleState state, void *context)
Callback called when a lifecycle event/callback is requested from the running server.
Definition: client_types.h:124
struct MirPlatformPackage MirPlatformPackage
struct MirGraphicsRegion MirGraphicsRegion
Retrieved information about a MirWindow.
void(* MirPingEventCallback)(MirConnection *connection, int32_t serial, void *context)
Callback called when the server pings for responsiveness testing.
Definition: client_types.h:134
struct MirTouchscreenConfig MirTouchscreenConfig
Definition: client_types.h:357
void(* MirWindowEventCallback)(MirWindow *window, MirEvent const *event, void *context)
Callback for handling of window events.
Definition: client_types.h:113
void(* MirInputConfigCallback)(MirConnection *connection, void *context)
Callback called when a change of input devices has occurred.
Definition: client_types.h:429
MirOrientation
Direction relative to the "natural" orientation of the display.
Definition: common.h:209
struct MirTouchpadConfig MirTouchpadConfig
Definition: client_types.h:356
struct MirScreencast MirScreencast
Definition: client_types.h:44
void * MirEGLNativeWindowType
Definition: client_types.h:39
struct MirPersistentId MirWindowId
Definition: client_types.h:48
struct MirDisplayConfig MirDisplayConfig
Definition: client_types.h:50
struct MirScreencastParameters MirScreencastParameters
MirScreencastParameters is the structure of required information that you must provide to Mir in orde...
struct MirInputDevice MirInputDevice
Definition: client_types.h:353
struct MirDisplayCard MirDisplayCard
MirDisplayConfiguration provides details of the graphics environment.
MirPowerMode
Definition: common.h:124
enum @1 MIR_FOR_REMOVAL_IN_VERSION_1
struct MirDisplayMode MirDisplayMode
void * MirEGLNativeDisplayType
Definition: client_types.h:40
struct MirSurface MirWindow
Definition: client_types.h:42
MirDisplayOutputType
Definition: client_types.h:261
struct MirDisplayOutput MirDisplayOutput
MirLifecycleState
Definition: common.h:117
void(* MirErrorCallback)(MirConnection *connection, MirError const *error, void *context)
Definition: client_types.h:497
struct MirError MirError
Definition: client_types.h:51
void(* MirDisplayConfigCallback)(MirConnection *connection, void *context)
Callback called when a display config change has occurred.
Definition: client_types.h:143
void(* MirBufferStreamCallback)(MirBufferStream *stream, void *client_context)
Callback to be passed when calling:
Definition: client_types.h:104
void(* MirConnectedCallback)(MirConnection *connection, void *client_context)
Callback to be passed when issuing a mir_connect request.
Definition: client_types.h:86
struct MirWaitHandle MirWaitHandle
Returned by asynchronous functions.
Definition: client_types.h:76
MirDisplayConfigurationError
Errors from the mir_error_domain_display_configuration MirErrorDomain.
Definition: client_types.h:458
struct MirRectangle MirRectangle
struct MirPresentationChain MirPresentationChain
Definition: client_types.h:52
struct MirPlatformMessage MirPlatformMessage
Definition: client_types.h:78
struct MirBufferStreamInfo MirBufferStreamInfo
The displacement from the top-left corner of the surface.
struct MirBlob MirBlob
Definition: client_types.h:49
void(* MirScreencastCallback)(MirScreencast *screencast, void *client_context)
Callback to be passed when calling MirScreencast functions.
Definition: client_types.h:388
struct MirBuffer MirBuffer
Definition: client_types.h:53
MirOutputConnectionState
Definition: client_types.h:283
struct MirSurfaceSpec MirWindowSpec
Definition: client_types.h:43
struct MirPromptSession MirPromptSession
Definition: client_types.h:46
struct MirDisplayConfiguration MirDisplayConfiguration
void mir_window_spec_set_cursor_render_surface(MirWindowSpec *spec, MirRenderSurface *render_surface, int hotspot_x, int hotspot_y) MIR_DEPRECATE_RENDERSURFACES_FOR_RENAME
Set the MirWindowSpec to contain a specific cursor.
MirPixelFormat
32-bit pixel formats (8888): The order of components in the enum matches the order of the components ...
Definition: common.h:179
MirBufferLayout
Definition: client_types.h:222
void mir_window_spec_set_cursor_name(MirWindowSpec *spec, char const *name)
Set the name for the cursor from the system cursor theme.
void(* MirPlatformOperationCallback)(MirConnection *connection, MirPlatformMessage *reply, void *context)
Callback called when a platform operation completes.
Definition: client_types.h:419
struct MirModuleProperties MirModuleProperties
Retrieved information about a loadable module.
MirBufferUsage
MirBufferUsage specifies how a surface can and will be used.
Definition: client_types.h:171
struct MirBufferStream MirBufferStream
Definition: client_types.h:47
struct MirEvent MirEvent
Definition: event.h:50
void(* MirWindowCallback)(MirWindow *window, void *client_context)
Callback to be passed when calling window functions :
Definition: client_types.h:95
struct MirRenderSurface MirRenderSurface
Definition: client_types.h:54
struct MirPointerConfig MirPointerConfig
Definition: client_types.h:355
struct MirConnection MirConnection
Definition: client_types.h:41
void(* MirPromptSessionStateChangeCallback)(MirPromptSession *prompt_provider, MirPromptSessionState state, void *context)
Callback member of MirPromptSession for handling of prompt sessions events.
Definition: client_types.h:405
MirErrorDomain
Specifies the origin of an error.
Definition: client_types.h:440
MirPlatformType
The native buffer type for the system the client is connected on.
Definition: client_types.h:190
MirPromptSessionState
Definition: common.h:154
void(* MirWindowIdCallback)(MirWindow *window, MirWindowId *id, void *context)
Definition: client_types.h:161
struct MirOutput MirOutput
Descriptor for an output connection.
Definition: client_types.h:69
MirPresentMode
Definition: client_types.h:228
void(* MirBufferCallback)(MirBuffer *, void *context)
Definition: client_types.h:432
MirInputConfigurationError
Errors from the mir_error_domain_input_configuration MirErrorDomain.
Definition: client_types.h:480
void(* MirClientFdCallback)(MirPromptSession *prompt_session, size_t count, int const *fds, void *context)
Callback called when a request for client file descriptors completes.
Definition: client_types.h:156
struct MirKeyboardConfig MirKeyboardConfig
Definition: client_types.h:354
struct MirInputConfig MirInputConfig
Definition: client_types.h:352
@ mir_display_output_type_composite
Definition: client_types.h:267
@ mir_display_output_type_component
Definition: client_types.h:270
@ mir_display_output_type_lvds
Definition: client_types.h:269
@ mir_display_output_type_hdmib
Definition: client_types.h:274
@ mir_display_output_type_dvid
Definition: client_types.h:265
@ mir_display_output_type_vga
Definition: client_types.h:263
@ mir_display_output_type_tv
Definition: client_types.h:275
@ mir_display_output_type_unknown
Definition: client_types.h:262
@ mir_display_output_type_svideo
Definition: client_types.h:268
@ mir_display_output_type_dpi
Definition: client_types.h:279
@ mir_display_output_type_virtual
Definition: client_types.h:277
@ mir_display_output_type_dvia
Definition: client_types.h:266
@ mir_display_output_type_displayport
Definition: client_types.h:272
@ mir_display_output_type_dsi
Definition: client_types.h:278
@ mir_display_output_type_edp
Definition: client_types.h:276
@ mir_display_output_type_ninepindin
Definition: client_types.h:271
@ mir_display_output_type_hdmia
Definition: client_types.h:273
@ mir_display_output_type_dvii
Definition: client_types.h:264
@ mir_display_configuration_error_unauthorized
Client is not permitted to change global display configuration.
Definition: client_types.h:462
@ mir_display_configuration_error_no_preview_in_progress
A cancel request was received, but no global display configuration preview is in progress.
Definition: client_types.h:470
@ mir_display_configuration_error_rejected_by_hardware
Display configuration was attempted but was rejected by the hardware.
Definition: client_types.h:474
@ mir_display_configuration_error_in_progress
A global configuration change request is already pending.
Definition: client_types.h:466
@ mir_output_connection_state_unknown
Definition: client_types.h:286
@ mir_output_connection_state_connected
Definition: client_types.h:285
@ mir_output_connection_state_disconnected
Definition: client_types.h:284
@ mir_display_output_id_invalid
Definition: client_types.h:296
@ mir_buffer_layout_unknown
Definition: client_types.h:223
@ mir_buffer_layout_linear
Definition: client_types.h:224
@ mir_output_type_svideo
Definition: common.h:139
@ mir_output_type_dpi
Definition: common.h:150
@ mir_output_type_composite
Definition: common.h:138
@ mir_output_type_hdmia
Definition: common.h:144
@ mir_output_type_vga
Definition: common.h:134
@ mir_output_type_displayport
Definition: common.h:143
@ mir_output_type_component
Definition: common.h:141
@ mir_output_type_hdmib
Definition: common.h:145
@ mir_output_type_edp
Definition: common.h:147
@ mir_output_type_ninepindin
Definition: common.h:142
@ mir_output_type_dsi
Definition: common.h:149
@ mir_output_type_tv
Definition: common.h:146
@ mir_output_type_dvii
Definition: common.h:135
@ mir_output_type_virtual
Definition: common.h:148
@ mir_output_type_dvid
Definition: common.h:136
@ mir_output_type_unknown
Definition: common.h:133
@ mir_output_type_lvds
Definition: common.h:140
@ mir_output_type_dvia
Definition: common.h:137
@ mir_error_domain_input_configuration
Errors relating to input configuration.
Definition: client_types.h:452
@ mir_error_domain_display_configuration
Errors relating to display configuration.
Definition: client_types.h:446
@ mir_platform_type_gbm
Definition: client_types.h:191
@ mir_platform_type_android
Definition: client_types.h:192
@ mir_platform_type_eglstream
Definition: client_types.h:193
@ mir_platform_package_max
Definition: client_types.h:176
@ mir_present_mode_fifo_relaxed
Definition: client_types.h:232
@ mir_present_mode_mailbox
Definition: client_types.h:230
@ mir_present_mode_num_modes
Definition: client_types.h:233
@ mir_present_mode_fifo
Definition: client_types.h:231
@ mir_present_mode_immediate
Definition: client_types.h:229
@ mir_input_configuration_error_base_configuration_unauthorized
Client is not permitted to change global input configuration.
Definition: client_types.h:489
@ mir_input_configuration_error_unauthorized
Client is not permitted to change its input configuration.
Definition: client_types.h:494
@ mir_input_configuration_error_rejected_by_driver
Input configuration was attempted but was rejected by driver.
Definition: client_types.h:484
The displacement from the top-left corner of the surface.
Definition: client_types.h:338
MirBufferStream * stream
Definition: client_types.h:339
int displacement_x
Definition: client_types.h:340
int displacement_y
Definition: client_types.h:341
MirDisplayConfiguration provides details of the graphics environment.
Definition: client_types.h:255
uint32_t max_simultaneous_outputs
Definition: client_types.h:257
uint32_t card_id
Definition: client_types.h:256
Definition: client_types.h:327
uint32_t num_cards
Definition: client_types.h:330
MirDisplayOutput * outputs
Definition: client_types.h:329
uint32_t num_outputs
Definition: client_types.h:328
MirDisplayCard * cards
Definition: client_types.h:331
Definition: client_types.h:290
double refresh_rate
Definition: client_types.h:293
uint32_t vertical_resolution
Definition: client_types.h:291
uint32_t horizontal_resolution
Definition: client_types.h:292
Definition: client_types.h:299
MirPixelFormat current_format
Definition: client_types.h:308
uint32_t card_id
Definition: client_types.h:310
uint32_t connected
Definition: client_types.h:316
MirDisplayMode * modes
Definition: client_types.h:301
MirDisplayOutputType type
Definition: client_types.h:312
int32_t position_y
Definition: client_types.h:315
MirOrientation orientation
Definition: client_types.h:323
uint32_t num_modes
Definition: client_types.h:300
int32_t position_x
Definition: client_types.h:314
MirPixelFormat * output_formats
Definition: client_types.h:307
uint32_t preferred_mode
There might be no preferred mode, which is indicated by a value >=num_modes.
Definition: client_types.h:302
uint32_t physical_height_mm
Definition: client_types.h:320
uint32_t num_output_formats
Definition: client_types.h:306
MirPowerMode power_mode
Definition: client_types.h:322
uint32_t physical_width_mm
Definition: client_types.h:319
uint32_t output_id
Definition: client_types.h:311
uint32_t used
Definition: client_types.h:317
uint32_t current_mode
Definition: client_types.h:304
Retrieved information about a MirWindow.
Definition: client_types.h:241
int width
Definition: client_types.h:242
int height
Definition: client_types.h:243
int stride
Definition: client_types.h:244
MirPixelFormat pixel_format
Definition: client_types.h:245
char * vaddr
Definition: client_types.h:246
Retrieved information about a loadable module.
Definition: client_types.h:213
char const * filename
Definition: client_types.h:218
char const * name
Definition: client_types.h:214
int major_version
Definition: client_types.h:215
int micro_version
Definition: client_types.h:217
int minor_version
Definition: client_types.h:216
Definition: client_types.h:197
int fd_items
Definition: client_types.h:199
int data_items
Definition: client_types.h:198
int data[mir_platform_package_max]
Definition: client_types.h:201
int fd[mir_platform_package_max]
Definition: client_types.h:202
Definition: client_types.h:345
int top
Definition: client_types.h:347
unsigned int height
Definition: client_types.h:349
int left
Definition: client_types.h:346
unsigned int width
Definition: client_types.h:348
MirScreencastParameters is the structure of required information that you must provide to Mir in orde...
Definition: client_types.h:366
MirPixelFormat pixel_format
The pixel format of the screencast.
Definition: client_types.h:380
unsigned int width
The width of the screencast which can be different than the screen region capture width.
Definition: client_types.h:373
MirRectangle region
The rectangular region of the screen to capture - The region is specified in virtual screen space hen...
Definition: client_types.h:371
unsigned int height
The height of the screencast which can be different than the screen region capture height.
Definition: client_types.h:375

Copyright © 2012-2021 Canonical Ltd.
Generated on Wed Jul 28 02:57:36 UTC 2021
This documentation is licensed under the GPL version 2 or 3.