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 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>
26 
27 #include <stddef.h>
28 
29 #ifdef __cplusplus
30 
34 extern "C" {
35 #endif
36 
37 /* Display server connection API */
38 typedef void* MirEGLNativeWindowType;
41 typedef struct MirSurface MirSurface;
47 typedef struct MirBlob MirBlob;
49 
56 typedef struct MirOutput MirOutput;
57 
64 
66 
73 typedef void (*mir_connected_callback)(MirConnection *connection, void *client_context);
74 
84 typedef void (*mir_surface_callback)(MirSurface *surface, void *client_context);
85 
93 typedef void (*mir_buffer_stream_callback)(MirBufferStream *stream, void *client_context);
94 
102  MirSurface* surface, MirEvent const* event, void* context);
103 
113  MirConnection* connection, MirLifecycleState state, void* context);
114 
122 typedef void (*mir_ping_event_callback)(
123  MirConnection* connection, int32_t serial, void* context);
124 
132  MirConnection* connection, void* context);
133 
144 typedef void (*mir_client_fd_callback)(
145  MirPromptSession *prompt_session, size_t count, int const* fds, void* context);
146 
147 
148 typedef void (*mir_surface_id_callback)(
149  MirSurface* surface, MirPersistentId* id, void* context);
150 
156 typedef enum MirBufferUsage
157 {
161 
166 typedef struct MirSurfaceParameters
167 {
168  char const *name;
169  int width;
170  int height;
172  MirBufferUsage buffer_usage;
181  uint32_t output_id;
183 
185 
194 #ifndef __cplusplus
195 __attribute__ ((deprecated))
196 #endif
197 typedef enum MirPlatformType
198 {
202 
203 typedef struct MirPlatformPackage
204 {
206  int fd_items;
207 
211 
219 typedef struct MirModuleProperties
220 {
221  char const *name;
225  char const *filename;
227 
232 typedef struct MirGraphicsRegion
233 {
234  int width;
235  int height;
236  int stride;
238  char *vaddr;
239 
241 
246 typedef struct MirDisplayInfo
247 {
248  uint32_t width;
249  uint32_t height;
250 
254 
259 typedef struct MirDisplayCard
260 {
261  uint32_t card_id;
264 
266 {
283 
284 typedef enum MirOutputType
285 {
301 } MirOutputType;
302 
304 {
309 
310 typedef struct MirDisplayMode
311 {
314  double refresh_rate;
316 
318 
319 typedef struct MirDisplayOutput
320 {
321  uint32_t num_modes;
323  uint32_t preferred_mode;
325  uint32_t current_mode;
326 
330 
331  uint32_t card_id;
332  uint32_t output_id;
333  MirDisplayOutputType type;
334 
335  int32_t position_x;
336  int32_t position_y;
337  uint32_t connected;
338  uint32_t used;
339 
342 
346 
348 {
349  uint32_t num_outputs;
351  uint32_t num_cards;
354 
358 typedef struct MirBufferStreamInfo
359 {
364 
365 typedef struct MirRectangle
366 {
367  int left;
368  int top;
369  unsigned int width;
370  unsigned int height;
371 } MirRectangle;
372 
375 
383 {
390  unsigned int width;
392  unsigned int height;
399 
405 typedef void (*mir_screencast_callback)(MirScreencast *screencast, void *client_context);
406 
412 typedef void (*mir_prompt_session_callback)(MirPromptSession* prompt_provider, void* context);
413 
421  MirPromptSession* prompt_provider, MirPromptSessionState state, void* context);
422 
434  MirConnection* connection, MirPlatformMessage* reply, void* context);
435 
444  MirConnection* connection, void* context);
445 
446 #ifdef __cplusplus
447 }
449 #endif
450 
451 #endif /* MIR_TOOLKIT_CLIENT_TYPES_H_ */
struct MirOutput MirOutput
Descriptor for an output connection.
Definition: client_types.h:56
uint32_t physical_height_mm
Definition: client_types.h:341
int displacement_y
Definition: client_types.h:362
MirPowerMode power_mode
Definition: client_types.h:343
Definition: client_types.h:203
Definition: client_types.h:347
Definition: mir_surface.h:86
struct MirDisplayConfig MirDisplayConfig
Definition: client_types.h:48
struct MirModuleProperties MirModuleProperties
Retrieved information about a loadable module.
struct MirScreencastParameters MirScreencastParameters
MirScreencastParameters is the structure of required information that you must provide to Mir in orde...
int left
Definition: client_types.h:367
Definition: mir_surface.h:146
void(* mir_lifecycle_event_callback)(MirConnection *connection, MirLifecycleState state, void *context)
Callback called when a lifecycle event/callback is requested from the running server.
Definition: client_types.h:112
struct MirBufferStream MirBufferStream
Definition: client_types.h:45
MirScreencastParameters is the structure of required information that you must provide to Mir in orde...
Definition: client_types.h:382
void(* mir_surface_id_callback)(MirSurface *surface, MirPersistentId *id, void *context)
Definition: client_types.h:148
Definition: client_types.h:291
struct MirSurfaceParameters MirSurfaceParameters
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:268
Definition: client_types.h:280
Definition: client_types.h:300
void(* mir_surface_event_callback)(MirSurface *surface, MirEvent const *event, void *context)
Callback for handling of surface events.
Definition: client_types.h:101
MirOrientation orientation
Definition: client_types.h:344
Definition: mir_wait_handle.h:31
void(* mir_buffer_stream_callback)(MirBufferStream *stream, void *client_context)
Callback to be passed when calling:
Definition: client_types.h:93
int height
Definition: client_types.h:170
struct MirBlob MirBlob
Definition: client_types.h:47
int top
Definition: client_types.h:368
MirPromptSessionState
Definition: common.h:109
MirPixelFormat pixel_format
Definition: client_types.h:171
uint32_t output_id
The id of the output to place the surface in.
Definition: client_types.h:181
Definition: client_types.h:267
Definition: client_types.h:279
Definition: client_types.h:299
Definition: client_types.h:286
MirDisplayMode * modes
Definition: client_types.h:322
int __attribute__((constructor)) init_google_protobuf()
Definition: google_protobuf_guard.cpp:21
int32_t position_y
Definition: client_types.h:336
Definition: client_types.h:199
Definition: client_types.h:287
MirOutputConnectionState
Definition: client_types.h:303
struct MirInputDevice MirInputDevice
Definition: client_types.h:374
int displacement_x
Definition: client_types.h:361
MirDisplayCard * cards
Definition: client_types.h:352
Definition: client_types.h:158
unsigned int height
The height of the screencast which can be different than the screen region capture height...
Definition: client_types.h:392
The displacement from the top-left corner of the surface.
Definition: client_types.h:358
uint32_t output_id
Definition: client_types.h:332
Definition: client_types.h:317
uint32_t used
Definition: client_types.h:338
Definition: client_types.h:290
Definition: client_types.h:184
int32_t position_x
Definition: client_types.h:335
uint32_t width
Definition: client_types.h:248
Definition: mir_screencast.h:49
struct MirDisplayMode MirDisplayMode
uint32_t height
Definition: client_types.h:249
int stride
Definition: client_types.h:236
Definition: client_types.h:281
uint32_t connected
Definition: client_types.h:337
Definition: client_types.h:294
MirDisplayConfiguration provides details of the graphics environment.
Definition: client_types.h:259
Definition: client_types.h:276
Definition: client_types.h:310
int height
Definition: client_types.h:235
uint32_t vertical_resolution
Definition: client_types.h:312
MirPixelFormat pixel_format
Definition: client_types.h:237
MirPixelFormat current_format
Definition: client_types.h:329
Definition: client_types.h:295
char const * name
Definition: client_types.h:221
struct MirDisplayConfiguration MirDisplayConfiguration
void(* mir_client_fd_callback)(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:144
MirOrientation
Direction relative to the "natural" orientation of the display.
Definition: common.h:164
char const * name
Definition: client_types.h:168
Definition: client_types.h:200
uint32_t card_id
Definition: client_types.h:261
struct MirBufferStreamInfo MirBufferStreamInfo
The displacement from the top-left corner of the surface.
char * vaddr
Definition: client_types.h:238
void(* mir_screencast_callback)(MirScreencast *screencast, void *client_context)
Callback to be passed when calling MirScreencast functions.
Definition: client_types.h:405
Definition: mir_surface.h:135
struct MirGraphicsRegion MirGraphicsRegion
Retrieved information about a MirSurface.
uint32_t num_outputs
Definition: client_types.h:349
Retrieved information about a loadable module.
Definition: client_types.h:219
Definition: client_types.h:305
uint32_t current_mode
Definition: client_types.h:325
Definition: client_types.h:246
uint32_t num_output_formats
Definition: client_types.h:327
void(* mir_ping_event_callback)(MirConnection *connection, int32_t serial, void *context)
Callback called when the server pings for responsiveness testing.
Definition: client_types.h:122
Definition: client_types.h:319
Definition: client_types.h:269
struct MirPlatformMessage MirPlatformMessage
Definition: client_types.h:65
Definition: client_types.h:271
struct MirPlatformPackage MirPlatformPackage
struct MirDisplayOutput MirDisplayOutput
struct MirDisplayInfo MirDisplayInfo
uint32_t physical_width_mm
Definition: client_types.h:340
void(* mir_platform_operation_callback)(MirConnection *connection, MirPlatformMessage *reply, void *context)
Callback called when a platform operation completes.
Definition: client_types.h:433
int supported_pixel_format_items
Definition: client_types.h:251
Definition: client_types.h:272
MirPixelFormat * output_formats
Definition: client_types.h:328
int minor_version
Definition: client_types.h:223
MirPowerMode
Definition: common.h:101
void(* mir_input_config_callback)(MirConnection *connection, void *context)
Callback called when a change of input devices has occurred.
Definition: client_types.h:443
Definition: client_types.h:293
unsigned int width
Definition: client_types.h:369
MirBufferUsage
MirBufferUsage specifies how a surface can and will be used.
Definition: client_types.h:156
Definition: client_types.h:273
Definition: mir_prompt_session.h:49
MirPixelFormat
32-bit pixel formats (8888): The order of components in the enum matches the order of the components ...
Definition: common.h:134
int fd_items
Definition: client_types.h:206
void(* mir_surface_callback)(MirSurface *surface, void *client_context)
Callback to be passed when calling:
Definition: client_types.h:84
void(* mir_prompt_session_callback)(MirPromptSession *prompt_provider, void *context)
Callback member of MirPromptSession for handling of prompt sessions.
Definition: client_types.h:412
uint32_t max_simultaneous_outputs
Definition: client_types.h:262
MirBufferUsage buffer_usage
Definition: client_types.h:172
uint32_t num_cards
Definition: client_types.h:351
double refresh_rate
Definition: client_types.h:314
MirLifecycleState
Definition: common.h:94
MirRectangle region
The rectangular region of the screen to capture - The region is specified in virtual screen space hen...
Definition: client_types.h:388
uint32_t preferred_mode
There might be no preferred mode, which is indicated by a value >=num_modes.
Definition: client_types.h:323
unsigned int height
Definition: client_types.h:370
void * MirEGLNativeWindowType
Definition: client_types.h:38
Definition: client_types.h:289
MirPixelFormat pixel_format
The pixel format of the screencast.
Definition: client_types.h:397
int data_items
Definition: client_types.h:205
unsigned int width
The width of the screencast which can be different than the screen region capture width...
Definition: client_types.h:390
void(* mir_connected_callback)(MirConnection *connection, void *client_context)
Callback to be passed when issuing a mir_connect request.
Definition: client_types.h:73
MirDisplayOutputType type
Definition: client_types.h:333
Definition: client_types.h:278
Definition: client_types.h:292
Definition: mir_connection.h:96
MirDisplayOutputType
Definition: client_types.h:265
Definition: client_types.h:275
Definition: client_types.h:288
Definition: client_types.h:296
int micro_version
Definition: client_types.h:224
Definition: client_types.h:365
Retrieved information about a MirSurface.
Definition: client_types.h:232
Definition: event_private.h:181
int major_version
Definition: client_types.h:222
Definition: client_types.h:297
struct MirRectangle MirRectangle
int width
Definition: client_types.h:169
Definition: client_types.h:270
void(* mir_display_config_callback)(MirConnection *connection, void *context)
Callback called when a display config change has occurred.
Definition: client_types.h:131
MirOutputType
Definition: client_types.h:284
char const * filename
Definition: client_types.h:225
Definition: client_types.h:298
uint32_t num_modes
Definition: client_types.h:321
struct MirDisplayCard MirDisplayCard
MirDisplayConfiguration provides details of the graphics environment.
uint32_t card_id
Definition: client_types.h:331
Definition: client_types.h:277
int width
Definition: client_types.h:234
MirPlatformType
The native buffer type for the system the client is connected on.
Definition: client_types.h:197
MirDisplayOutput * outputs
Definition: client_types.h:350
struct MirInputConfig MirInputConfig
Definition: client_types.h:373
Definition: client_types.h:307
Definition: client_types.h:245
Definition: client_types.h:159
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:166
Definition: client_types.h:274
void(* mir_prompt_session_state_change_callback)(MirPromptSession *prompt_provider, MirPromptSessionState state, void *context)
Callback member of MirPromptSession for handling of prompt sessions events.
Definition: client_types.h:420
MirBufferStream * stream
Definition: client_types.h:360
uint32_t horizontal_resolution
Definition: client_types.h:313
void * MirEGLNativeDisplayType
Definition: client_types.h:39
Definition: client_types.h:306

Copyright © 2012-2015 Canonical Ltd.
Generated on Wed Mar 30 00:29:56 UTC 2016