FreeCalypso > hg > fc-tourmaline
view src/cs/services/mks/mks_api.h @ 28:b5a5e3ea94ed
components: GPF library recipes preened
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 18:00:44 +0000 |
parents | 4e78acac3d88 |
children |
line wrap: on
line source
/** * @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_ */