2 * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef SMS_PLUGIN_CBMSG_HANDLER_H
18 #define SMS_PLUGIN_CBMSG_HANDLER_H
21 /*==================================================================================================
23 ==================================================================================================*/
29 #include "MsgTextConvert.h"
30 #include "SmsPluginTypes.h"
34 #include <tapi_common.h>
36 #include <ITapiNetText.h>
40 /*==================================================================================================
42 ==================================================================================================*/
43 typedef map<unsigned char, SMS_CBMSG_PAGE_S> cbPageMap;
46 typedef struct _CB_PAGE_INFO_S
48 unsigned char geoScope;
49 unsigned char updateNum;
50 unsigned short msgCode;
52 unsigned char totalPages;
54 unsigned char pageCnt;
55 unsigned int totalSize;
60 /*==================================================================================================
62 ==================================================================================================*/
63 class SmsPluginCbMsgHandler
66 static SmsPluginCbMsgHandler* instance();
68 void handleCbMsg(TapiHandle *handle, TelSmsCbMsg_t *pCbMsg);
69 void handleEtwsMsg(TapiHandle *handle, TelSmsEtwsMsg_t *pEtwsMsg);
72 SmsPluginCbMsgHandler();
73 virtual ~SmsPluginCbMsgHandler();
75 static SmsPluginCbMsgHandler* pInstance;
77 void Decode2gCbMsg(TelSmsCbMsg_t *pCbMsg, SMS_CBMSG_PAGE_S *pCbPage);
78 void Decode3gCbMsg(TelSmsCbMsg_t *pCbMsg, SMS_CBMSG_PAGE_S *pCbPage);
79 void DecodeEtwsMsg(TelSmsEtwsMsg_t *pEtwsMsg, SMS_ETWS_PRIMARY_S *pEtwsPn);
80 unsigned short encodeCbSerialNum ( SMS_CBMSG_SERIAL_NUM_S snFields );
81 int CMAS_class(unsigned short message_id);
83 bool checkCbOpt(SMS_CBMSG_PAGE_S CbPage, bool *pJavaMsg, msg_sim_slot_id_t simIndex);
84 unsigned char checkCbPage(SMS_CBMSG_PAGE_S CbPage);
85 void MakeCbMsg(SMS_CBMSG_PAGE_S CbPage, SMS_CBMSG_S *pCbMsg);
86 void convertCbMsgToMsginfo(SMS_CBMSG_S *pCbMsg, MSG_MESSAGE_INFO_S *pMsgInfo, msg_sim_slot_id_t simIndex);
87 void convertEtwsMsgToMsginfo(SMS_CBMSG_PAGE_S EtwsMsg, MSG_MESSAGE_INFO_S *pMsgInfo, msg_sim_slot_id_t simIndex);
88 int convertTextToUtf8 (unsigned char* outBuf, int outBufSize, SMS_CBMSG_S* pCbMsg);
89 void addToPageList(SMS_CBMSG_PAGE_S CbPage);
90 void removeFromPageList(SMS_CBMSG_PAGE_S CbPage);
92 void decodeCbMsgDCS(unsigned char dcsData, const unsigned char *pMsgData, SMS_CBMSG_DCS_S* pDcs);
93 void convertLangType(SMS_CBMSG_LANG_TYPE_T InType , MSG_CB_LANGUAGE_TYPE_T *pOutType);
94 unsigned long getRecvTime();
95 void getDisplayName(unsigned short MsgId, char *pDisplayName, msg_sim_slot_id_t simIndex);
97 vector<CB_PAGE_INFO_S> pageList;
101 #endif //SMS_PLUGIN_CBMSG_HANDLER_H