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;
48 typedef struct MirBlob MirBlob;
50 typedef struct MirError MirError;
51 
52 
59 typedef struct MirOutput MirOutput;
60 
67 
69 
76 typedef void (*mir_connected_callback)(MirConnection *connection, void *client_context);
77 
87 typedef void (*mir_surface_callback)(MirSurface *surface, void *client_context);
88 
96 typedef void (*mir_buffer_stream_callback)(MirBufferStream *stream, void *client_context);
97 
105  MirSurface* surface, MirEvent const* event, void* context);
106 
116  MirConnection* connection, MirLifecycleState state, void* context);
117 
125 typedef void (*mir_ping_event_callback)(
126  MirConnection* connection, int32_t serial, void* context);
127 
135  MirConnection* connection, void* context);
136 
147 typedef void (*mir_client_fd_callback)(
148  MirPromptSession *prompt_session, size_t count, int const* fds, void* context);
149 
150 
151 typedef void (*mir_surface_id_callback)(
152  MirSurface* surface, MirPersistentId* id, void* context);
153 
159 typedef enum MirBufferUsage
160 {
164 
169 typedef struct MirSurfaceParameters
170 {
171  char const *name;
172  int width;
173  int height;
175  MirBufferUsage buffer_usage;
184  uint32_t output_id;
186 
188 
197 #ifndef __cplusplus
198 __attribute__ ((deprecated))
199 #endif
200 typedef enum MirPlatformType
201 {
206 
207 typedef struct MirPlatformPackage
208 {
210  int fd_items;
211 
215 
223 typedef struct MirModuleProperties
224 {
225  char const *name;
229  char const *filename;
231 
236 typedef struct MirGraphicsRegion
237 {
238  int width;
239  int height;
240  int stride;
242  char *vaddr;
243 
245 
250 typedef struct MirDisplayInfo
251 {
252  uint32_t width;
253  uint32_t height;
254 
258 
263 typedef struct MirDisplayCard
264 {
265  uint32_t card_id;
268 
270 {
290 
292 {
297 
298 typedef struct MirDisplayMode
299 {
302  double refresh_rate;
304 
306 
307 typedef struct MirDisplayOutput
308 {
309  uint32_t num_modes;
311  uint32_t preferred_mode;
313  uint32_t current_mode;
314 
318 
319  uint32_t card_id;
320  uint32_t output_id;
321  MirDisplayOutputType type;
322 
323  int32_t position_x;
324  int32_t position_y;
325  uint32_t connected;
326  uint32_t used;
327 
330 
334 
336 {
337  uint32_t num_outputs;
339  uint32_t num_cards;
342 
346 typedef struct MirBufferStreamInfo
347 {
352 
353 typedef struct MirRectangle
354 {
355  int left;
356  int top;
357  unsigned int width;
358  unsigned int height;
359 } MirRectangle;
360 
363 
371 {
378  unsigned int width;
380  unsigned int height;
387 
393 typedef void (*mir_screencast_callback)(MirScreencast *screencast, void *client_context);
394 
400 typedef void (*mir_prompt_session_callback)(MirPromptSession* prompt_provider, void* context);
401 
409  MirPromptSession* prompt_provider, MirPromptSessionState state, void* context);
410 
422  MirConnection* connection, MirPlatformMessage* reply, void* context);
423 
432  MirConnection* connection, void* context);
433 
439 typedef enum MirErrorDomain
440 {
448 
470 
471 typedef void (*mir_error_callback)(
472  MirConnection* connection,
473  MirError const* error,
474  void* context);
475 
476 #ifdef __cplusplus
477 }
479 #endif
480 
481 #endif /* MIR_TOOLKIT_CLIENT_TYPES_H_ */
struct MirOutput MirOutput
Descriptor for an output connection.
Definition: client_types.h:59
uint32_t physical_height_mm
Definition: client_types.h:329
int displacement_y
Definition: client_types.h:350
MirPowerMode power_mode
Definition: client_types.h:331
Definition: client_types.h:207
Definition: client_types.h:335
struct MirDisplayConfig MirDisplayConfig
Definition: client_types.h:49
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:355
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:115
struct MirBufferStream MirBufferStream
Definition: client_types.h:46
MirScreencastParameters is the structure of required information that you must provide to Mir in orde...
Definition: client_types.h:370
void(* mir_surface_id_callback)(MirSurface *surface, MirPersistentId *id, void *context)
Definition: client_types.h:151
Definition: common.h:116
struct MirSurfaceParameters MirSurfaceParameters
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:272
Definition: client_types.h:284
Definition: client_types.h:249
Definition: common.h:125
MirOrientation orientation
Definition: client_types.h:332
void(* mir_buffer_stream_callback)(MirBufferStream *stream, void *client_context)
Callback to be passed when calling:
Definition: client_types.h:96
Definition: common.h:128
int height
Definition: client_types.h:173
struct MirBlob MirBlob
Definition: client_types.h:48
struct MirScreencast MirScreencast
Definition: client_types.h:43
int top
Definition: client_types.h:356
struct MirError MirError
Definition: client_types.h:50
MirPromptSessionState
Definition: common.h:131
MirPixelFormat pixel_format
Definition: client_types.h:174
uint32_t output_id
The id of the output to place the surface in.
Definition: client_types.h:184
Definition: client_types.h:271
Definition: client_types.h:283
Definition: common.h:124
Definition: common.h:111
void(* mir_surface_event_callback)(MirSurface *surface, MirEvent const *event, void *context)
Callback for handling of surface events.
Definition: client_types.h:104
MirDisplayMode * modes
Definition: client_types.h:310
Definition: client_types.h:286
int32_t position_y
Definition: client_types.h:324
Definition: client_types.h:202
Definition: common.h:112
MirOutputConnectionState
Definition: client_types.h:291
struct MirInputDevice MirInputDevice
Definition: client_types.h:362
A global configuration change request is already pending.
Definition: client_types.h:460
int displacement_x
Definition: client_types.h:349
MirDisplayCard * cards
Definition: client_types.h:340
struct MirPromptSession MirPromptSession
Definition: client_types.h:45
Definition: client_types.h:161
unsigned int height
The height of the screencast which can be different than the screen region capture height...
Definition: client_types.h:380
The displacement from the top-left corner of the surface.
Definition: client_types.h:346
uint32_t output_id
Definition: client_types.h:320
uint32_t used
Definition: client_types.h:326
Definition: common.h:115
int32_t position_x
Definition: client_types.h:323
uint32_t width
Definition: client_types.h:252
struct MirDisplayMode MirDisplayMode
uint32_t height
Definition: client_types.h:253
int stride
Definition: client_types.h:240
Definition: client_types.h:305
struct MirScreencastSpec MirScreencastSpec
Definition: client_types.h:44
Definition: client_types.h:285
uint32_t connected
Definition: client_types.h:325
A cancel request was received, but no global display configuration preview is in progress.
Definition: client_types.h:464
Definition: common.h:119
MirDisplayConfiguration provides details of the graphics environment.
Definition: client_types.h:263
Definition: client_types.h:280
Definition: client_types.h:187
Definition: client_types.h:298
int height
Definition: client_types.h:239
uint32_t vertical_resolution
Definition: client_types.h:300
MirPixelFormat pixel_format
Definition: client_types.h:241
MirPixelFormat current_format
Definition: client_types.h:317
Definition: common.h:120
char const * name
Definition: client_types.h:225
struct MirDisplayConfiguration MirDisplayConfiguration
MirOrientation
Direction relative to the "natural" orientation of the display.
Definition: common.h:186
char const * name
Definition: client_types.h:171
Definition: client_types.h:203
struct MirPersistentId MirPersistentId
Definition: client_types.h:47
uint32_t card_id
Definition: client_types.h:265
struct MirBufferStreamInfo MirBufferStreamInfo
The displacement from the top-left corner of the surface.
char * vaddr
Definition: client_types.h:242
void(* mir_screencast_callback)(MirScreencast *screencast, void *client_context)
Callback to be passed when calling MirScreencast functions.
Definition: client_types.h:393
MirDisplayConfigurationError
Errors from the mir_error_domain_display_configuration MirErrorDomain.
Definition: client_types.h:452
Definition: client_types.h:288
struct MirWaitHandle MirWaitHandle
Returned by asynchronous functions.
Definition: client_types.h:66
struct MirGraphicsRegion MirGraphicsRegion
Retrieved information about a MirSurface.
struct MirSurface MirSurface
Definition: client_types.h:41
uint32_t num_outputs
Definition: client_types.h:337
Retrieved information about a loadable module.
Definition: client_types.h:223
Definition: client_types.h:293
uint32_t current_mode
Definition: client_types.h:313
Definition: client_types.h:250
uint32_t num_output_formats
Definition: client_types.h:315
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:125
Definition: client_types.h:307
MirErrorDomain
Specifies the origin of an error.
Definition: client_types.h:439
Definition: client_types.h:273
struct MirPlatformMessage MirPlatformMessage
Definition: client_types.h:68
Definition: client_types.h:275
struct MirPlatformPackage MirPlatformPackage
struct MirDisplayOutput MirDisplayOutput
struct MirDisplayInfo MirDisplayInfo
uint32_t physical_width_mm
Definition: client_types.h:328
void(* mir_platform_operation_callback)(MirConnection *connection, MirPlatformMessage *reply, void *context)
Callback called when a platform operation completes.
Definition: client_types.h:421
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:147
Errors relating to display configuration.
Definition: client_types.h:446
int supported_pixel_format_items
Definition: client_types.h:255
struct MirConnection MirConnection
Definition: client_types.h:40
Definition: client_types.h:276
MirPixelFormat * output_formats
Definition: client_types.h:316
Display configuration was attempted but was rejected by the hardware.
Definition: client_types.h:468
int minor_version
Definition: client_types.h:227
struct MirEvent MirEvent
Definition: event.h:67
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:431
Definition: common.h:118
unsigned int width
Definition: client_types.h:357
MirBufferUsage
MirBufferUsage specifies how a surface can and will be used.
Definition: client_types.h:159
Definition: client_types.h:277
MirPixelFormat
32-bit pixel formats (8888): The order of components in the enum matches the order of the components ...
Definition: common.h:156
int fd_items
Definition: client_types.h:210
void(* mir_surface_callback)(MirSurface *surface, void *client_context)
Callback to be passed when calling:
Definition: client_types.h:87
void(* mir_prompt_session_callback)(MirPromptSession *prompt_provider, void *context)
Callback member of MirPromptSession for handling of prompt sessions.
Definition: client_types.h:400
Definition: client_types.h:287
uint32_t max_simultaneous_outputs
Definition: client_types.h:266
MirBufferUsage buffer_usage
Definition: client_types.h:175
uint32_t num_cards
Definition: client_types.h:339
double refresh_rate
Definition: client_types.h:302
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:376
uint32_t preferred_mode
There might be no preferred mode, which is indicated by a value >=num_modes.
Definition: client_types.h:311
unsigned int height
Definition: client_types.h:358
void(* mir_error_callback)(MirConnection *connection, MirError const *error, void *context)
Definition: client_types.h:471
void * MirEGLNativeWindowType
Definition: client_types.h:38
struct MirSurfaceSpec MirSurfaceSpec
Definition: client_types.h:42
Definition: client_types.h:204
Definition: common.h:114
MirPixelFormat pixel_format
The pixel format of the screencast.
Definition: client_types.h:385
int data_items
Definition: client_types.h:209
unsigned int width
The width of the screencast which can be different than the screen region capture width...
Definition: client_types.h:378
void(* mir_connected_callback)(MirConnection *connection, void *client_context)
Callback to be passed when issuing a mir_connect request.
Definition: client_types.h:76
MirDisplayOutputType type
Definition: client_types.h:321
Definition: client_types.h:282
Definition: common.h:117
MirDisplayOutputType
Definition: client_types.h:269
Definition: client_types.h:279
Definition: common.h:113
Definition: common.h:121
int micro_version
Definition: client_types.h:228
Definition: client_types.h:353
Retrieved information about a MirSurface.
Definition: client_types.h:236
int major_version
Definition: client_types.h:226
Definition: common.h:122
struct MirRectangle MirRectangle
int width
Definition: client_types.h:172
Definition: client_types.h:274
void(* mir_display_config_callback)(MirConnection *connection, void *context)
Callback called when a display config change has occurred.
Definition: client_types.h:134
Definition: dispatchable.h:33
char const * filename
Definition: client_types.h:229
Definition: common.h:123
uint32_t num_modes
Definition: client_types.h:309
struct MirDisplayCard MirDisplayCard
MirDisplayConfiguration provides details of the graphics environment.
uint32_t card_id
Definition: client_types.h:319
Definition: common.h:127
Definition: client_types.h:281
int width
Definition: client_types.h:238
MirPlatformType
The native buffer type for the system the client is connected on.
Definition: client_types.h:200
MirDisplayOutput * outputs
Definition: client_types.h:338
struct MirInputConfig MirInputConfig
Definition: client_types.h:361
Definition: client_types.h:295
Definition: client_types.h:162
Definition: common.h:126
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:169
Definition: client_types.h:278
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:408
MirBufferStream * stream
Definition: client_types.h:348
uint32_t horizontal_resolution
Definition: client_types.h:301
void * MirEGLNativeDisplayType
Definition: client_types.h:39
Client is not permitted to change global display configuration.
Definition: client_types.h:456
Definition: client_types.h:294

Copyright © 2012-2016 Canonical Ltd.
Generated on Sat Dec 3 12:48:59 UTC 2016