You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
4.0 KiB
112 lines
4.0 KiB
/* |
|
mobility_int.h - interface between engine and client for mobile platforms |
|
Copyright (C) 2015 a1batross |
|
|
|
This is free and unencumbered software released into the public domain. |
|
|
|
Anyone is free to copy, modify, publish, use, compile, sell, or |
|
distribute this software, either in source code form or as a compiled |
|
binary, for any purpose, commercial or non-commercial, and by any |
|
means. |
|
|
|
In jurisdictions that recognize copyright laws, the author or authors |
|
of this software dedicate any and all copyright interest in the |
|
software to the public domain. We make this dedication for the benefit |
|
of the public at large and to the detriment of our heirs and |
|
successors. We intend this dedication to be an overt act of |
|
relinquishment in perpetuity of all present and future rights to this |
|
software under copyright law. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR |
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
OTHER DEALINGS IN THE SOFTWARE. |
|
|
|
For more information, please refer to <http://unlicense.org/> |
|
*/ |
|
|
|
#pragma once |
|
#ifndef MOBILITY_INT_H |
|
#define MOBILITY_INT_H |
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#define MOBILITY_API_VERSION 2 |
|
#define MOBILITY_CLIENT_EXPORT "HUD_MobilityInterface" |
|
|
|
#define VIBRATE_NORMAL (1U << 0) // just vibrate for given "life" |
|
|
|
#define TOUCH_FL_HIDE (1U << 0) |
|
#define TOUCH_FL_NOEDIT (1U << 1) |
|
#define TOUCH_FL_CLIENT (1U << 2) |
|
#define TOUCH_FL_MP (1U << 3) |
|
#define TOUCH_FL_SP (1U << 4) |
|
#define TOUCH_FL_DEF_SHOW (1U << 5) |
|
#define TOUCH_FL_DEF_HIDE (1U << 6) |
|
#define TOUCH_FL_DRAW_ADDITIVE (1U << 7) |
|
#define TOUCH_FL_STROKE (1U << 8) |
|
#define TOUCH_FL_PRECISION (1U << 9) |
|
|
|
// flags for COM_ParseFileSafe |
|
#define PFILE_IGNOREBRACKET (1<<0) |
|
#define PFILE_HANDLECOLON (1<<1) |
|
|
|
typedef struct mobile_engfuncs_s |
|
{ |
|
// indicates version of API. Should be equal to MOBILITY_API_VERSION |
|
// version changes when existing functions are changes |
|
int version; |
|
|
|
// vibration control |
|
// life -- time to vibrate in ms |
|
void (*pfnVibrate)( float life, char flags ); |
|
|
|
// enable text input |
|
void (*pfnEnableTextInput)( int enable ); |
|
|
|
// add temporaty button, edit will be disabled |
|
void (*pfnTouchAddClientButton)( const char *name, const char *texture, const char *command, float x1, float y1, float x2, float y2, unsigned char *color, int round, float aspect, int flags ); |
|
|
|
// add button to defaults list. Will be loaded on config generation |
|
void (*pfnTouchAddDefaultButton)( const char *name, const char *texturefile, const char *command, float x1, float y1, float x2, float y2, unsigned char *color, int round, float aspect, int flags ); |
|
|
|
// hide/show buttons by pattern |
|
void (*pfnTouchHideButtons)( const char *name, unsigned char hide ); |
|
|
|
// remove button with given name |
|
void (*pfnTouchRemoveButton)( const char *name ); |
|
|
|
// when enabled, only client buttons shown |
|
void (*pfnTouchSetClientOnly)( unsigned char state ); |
|
|
|
// Clean defaults list |
|
void (*pfnTouchResetDefaultButtons)( void ); |
|
|
|
// Draw scaled font for client |
|
int (*pfnDrawScaledCharacter)( int x, int y, int number, int r, int g, int b, float scale ); |
|
|
|
void (*pfnSys_Warn)( const char *format, ... ); |
|
|
|
// Get native object for current platform. |
|
// Pass NULL to arguments to receive an array of available objects or NULL if nothing |
|
void *(*pfnGetNativeObject)( const char *obj ); |
|
|
|
void (*pfnSetCustomClientID)( const char *id ); |
|
|
|
// COM_ParseFile but with buffer size limit, len reports written size or -1 on overflow |
|
char* (*pfnParseFile)( char *data, char *buf, const int size, unsigned int flags, int *len ); |
|
// To be continued... |
|
} mobile_engfuncs_t; |
|
|
|
// function exported from client |
|
// returns 0 on no error otherwise error |
|
typedef int (*pfnMobilityInterface)( mobile_engfuncs_t *gMobileEngfuncs ); |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
#endif
|
|
|