FreeCalypso > hg > ffs-editor
diff src/cs/services/mks/mks_api.h @ 0:92470e5d0b9e
src: partial import from FC Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 15 May 2020 01:28:16 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/services/mks/mks_api.h Fri May 15 01:28:16 2020 +0000 @@ -0,0 +1,152 @@ +/** + * @file mks_api.h + * + * API Definition for Magic Key Sequence Service. + * + * This file gathers all the constants, structure and functions declaration + * useful for a MKS service user. + * + * @author Laurent Sollier (l-sollier@ti.com) + * @version 0.1 + */ + +/* + * History: + * + * Date Author Modification + * ---------------------------------------- + * 11/19/2001 L Sollier Create + * + * + * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved + */ + +#ifndef _MKS_API_H_ +#define _MKS_API_H_ + +#include "mks/mks_cfg.h" + +#include "kpd/kpd_api.h" + +#include "rv/rv_general.h" +#include "rvf/rvf_api.h" + +/** + * @name External types + * + * Types used in API. + * + */ +/*@{*/ + +/** Definition of completion type used. + * Subscriber is notified when key sequence is completed. + */ +#define MKS_SEQUENCE_COMPLETED 0x01 + +/** Definition of completion type used. + * Subscriber is notified after key sequence is completed. + */ +#define MKS_POST_SEQUENCE 0x02 + + +/** Definition of one magic key sequence. */ +typedef struct { char name[KPD_MAX_CHAR_NAME+1]; /* It's not ensured that this name is unique */ + UINT8 nb_key_of_sequence; + T_KPD_VIRTUAL_KEY_ID key_id[MKS_NB_MAX_OF_KEY_IN_KEY_SEQUENCE]; + UINT8 completion_type; /* can equal to MKS_SEQUENCE_COMPLETED or MKS_POST_SEQUENCE */ + UINT8 nb_key_for_post_sequence; /* used only if completion_type == MKS_POST_SEQUENCE */ + T_RV_RETURN return_path; + } T_MKS_INFOS_KEY_SEQUENCE; + +/*@}*/ + + + +/** + * @name API functions + * + * API functions declarations. + */ +/*@{*/ + +/** + * function: mks_add_key_sequence + * + * This function initialize a magic key sequence. + * + * @param infos_key_sequence_p Magic key sequence. + * @return + * - RV_OK if operation is successful, + * - RV_INVALID_PARAMETER if one parameter is incorrect, + * - RV_MEMORY_ERR if memory reach its size limit. + * + */ +T_RV_RET mks_add_key_sequence(T_MKS_INFOS_KEY_SEQUENCE* infos_key_sequence_p); + +/** + * function: mks_remove_key_sequence + * + * This function remove an existing magic key sequence. + * + * @param infos_key_sequence_p Magic key sequence. + * @return + * - RV_OK + * - RV_MEMORY_ERR if memory reach its size limit. + * + * @note + * - If the name of the key sequence doesn't exist, no return status is + * sent to inform client that process has failed. + * + */ +T_RV_RET mks_remove_key_sequence(char name[KPD_MAX_CHAR_NAME+1]); + + +/*@}*/ + + +/*************************************************************************/ +/************************** MESSAGES DEFINITION **************************/ +/*************************************************************************/ + +/** + * The message offset must differ for each SWE in order to have + * unique msg_id in the system. + */ +#define MKS_MESSAGES_OFFSET (0x37 << 10) + + + +/** + * @name MKS_SEQUENCE_COMPLETED + * + * This message is sent to a subscriber when a key sequence is completed. + * + * Message issued by MKS to a subscriber. + */ +/*@{*/ + + +/** Message ID. */ +#define MKS_SEQUENCE_COMPLETED_MSG (MKS_MESSAGES_OFFSET | 0x001) + +/** Message structure. */ +typedef struct +{ + /** Message header. */ + T_RV_HDR hdr; + + /** Name of key sequence. */ + char name[KPD_MAX_CHAR_NAME]; + + /** Kind of completion (sequence completed or post_sequence). */ + UINT8 completion_type; + + /** Virtual key Id pressed (used when completion_type == MKS_POST_SEQUENCE). */ + T_KPD_VIRTUAL_KEY_ID key_pressed; + +} T_MKS_SEQUENCE_COMPLETED_MSG; +/*@}*/ + + +#endif /* #ifndef _MKS_API_H_ */ \ No newline at end of file