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