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.
18 #include "MsgCmdHandler.h"
19 #include "MsgSettingHandler.h"
20 #include "MsgUtilFunction.h"
21 #include "MsgCppTypes.h"
24 /*==================================================================================================
25 FUNCTION IMPLEMENTATION
26 ==================================================================================================*/
27 int MsgSetConfigHandler(const MSG_CMD_S *pCmd, char **ppEvent)
29 msg_error_t err = MSG_SUCCESS;
34 // Get Setting Structure
35 MSG_SETTING_S* pSetting = (MSG_SETTING_S*)pCmd->cmdData;
38 err = MsgSetConfigData(pSetting);
40 if (err == MSG_SUCCESS)
42 MSG_DEBUG("Command Handle Success : MsgSetConfigData()");
46 MSG_DEBUG("Command Handle Fail : MsgSetConfigData()");
50 switch (pCmd->cmdType) {
51 case MSG_CMD_SET_SMSC_OPT :
52 eventType = MSG_EVENT_SET_SMSC_OPT;
54 case MSG_CMD_SET_CB_OPT :
55 eventType = MSG_EVENT_SET_CB_OPT;
57 case MSG_CMD_SET_SMS_SEND_OPT :
58 eventType = MSG_EVENT_SET_SMS_SEND_OPT;
60 case MSG_CMD_SET_MMS_SEND_OPT :
61 eventType = MSG_EVENT_SET_MMS_SEND_OPT;
63 case MSG_CMD_SET_MMS_RECV_OPT :
64 eventType = MSG_EVENT_SET_MMS_RECV_OPT;
66 case MSG_CMD_SET_PUSH_MSG_OPT :
67 eventType = MSG_EVENT_SET_PUSH_MSG_OPT;
69 case MSG_CMD_SET_VOICE_MSG_OPT :
70 eventType = MSG_EVENT_SET_VOICE_MSG_OPT;
72 case MSG_CMD_SET_GENERAL_MSG_OPT :
73 eventType = MSG_EVENT_SET_GENERAL_MSG_OPT;
75 case MSG_CMD_SET_MSG_SIZE_OPT :
76 eventType = MSG_EVENT_SET_MSG_SIZE_OPT;
82 eventSize = MsgMakeEvent(NULL, 0, eventType, err, (void**)ppEvent);
88 int MsgGetConfigHandler(const MSG_CMD_S *pCmd, char **ppEvent)
90 msg_error_t err = MSG_SUCCESS;
92 char* encodedData = NULL;
93 AutoPtr<char> buf(&encodedData);
100 MSG_OPTION_TYPE_T type = 0;
101 memcpy((void *)&type, (void*)((char*)pCmd+sizeof(MSG_CMD_TYPE_T)+MAX_COOKIE_LEN), sizeof(MSG_OPTION_TYPE_T));
104 MSG_SETTING_S setting;
107 msg_sim_slot_id_t simIndex = 0;
108 switch(setting.type) {
110 memcpy(&simIndex, (void*)((char*)pCmd+sizeof(MSG_CMD_TYPE_T)+MAX_COOKIE_LEN+sizeof(MSG_OPTION_TYPE_T)), sizeof(msg_sim_slot_id_t));
111 setting.option.cbMsgOpt.simIndex = simIndex;
113 case MSG_VOICEMAIL_OPT :
114 memcpy(&simIndex, (void*)((char*)pCmd+sizeof(MSG_CMD_TYPE_T)+MAX_COOKIE_LEN+sizeof(MSG_OPTION_TYPE_T)), sizeof(msg_sim_slot_id_t));
115 setting.option.voiceMailOpt.simIndex = simIndex;
118 memcpy(&simIndex, (void*)((char*)pCmd+sizeof(MSG_CMD_TYPE_T)+MAX_COOKIE_LEN+sizeof(MSG_OPTION_TYPE_T)), sizeof(msg_sim_slot_id_t));
119 setting.option.smscList.simIndex = simIndex;
125 err = MsgGetConfigData(&setting);
127 if (err == MSG_SUCCESS)
129 MSG_DEBUG("Command Handle Success : MsgGetConfigData()");
131 // Encoding Config Data
132 switch (setting.type)
134 case MSG_GENERAL_OPT :
135 dataSize += sizeof(MSG_GENERAL_OPT_S);
137 case MSG_SMS_SENDOPT :
138 dataSize += sizeof(MSG_SMS_SENDOPT_S);
141 dataSize += sizeof(MSG_SMSC_LIST_S);
143 case MSG_MMS_SENDOPT :
144 dataSize += sizeof(MSG_MMS_SENDOPT_S);
146 case MSG_MMS_RECVOPT :
147 dataSize += sizeof(MSG_MMS_RECVOPT_S);
149 case MSG_MMS_STYLEOPT :
150 dataSize += sizeof(MSG_MMS_STYLEOPT_S);
152 case MSG_PUSHMSG_OPT :
153 dataSize += sizeof(MSG_PUSHMSG_OPT_S);
156 dataSize += sizeof(MSG_CBMSG_OPT_S);
158 case MSG_VOICEMAIL_OPT :
159 dataSize += sizeof(MSG_VOICEMAIL_OPT_S);
161 case MSG_MSGSIZE_OPT :
162 dataSize += sizeof(MSG_MSGSIZE_OPT_S);
168 encodedData = (char*)new char[dataSize];
169 void* p = (void*)encodedData;
171 switch (setting.type)
173 case MSG_GENERAL_OPT :
174 memcpy(p, &(setting.option.generalOpt), dataSize);
176 case MSG_SMS_SENDOPT :
177 memcpy(p, &(setting.option.smsSendOpt), dataSize);
180 memcpy(p, &(setting.option.smscList), dataSize);
182 case MSG_MMS_SENDOPT :
183 memcpy(p, &(setting.option.mmsSendOpt), dataSize);
185 case MSG_MMS_RECVOPT :
186 memcpy(p, &(setting.option.mmsRecvOpt), dataSize);
188 case MSG_MMS_STYLEOPT :
189 memcpy(p, &(setting.option.mmsStyleOpt), dataSize);
191 case MSG_PUSHMSG_OPT :
192 memcpy(p, &(setting.option.pushMsgOpt), dataSize);
195 memcpy(p, &(setting.option.cbMsgOpt), dataSize);
197 case MSG_VOICEMAIL_OPT :
198 memcpy(p, &(setting.option.voiceMailOpt), dataSize);
200 case MSG_MSGSIZE_OPT :
201 memcpy(p, &(setting.option.msgSizeOpt), dataSize);
207 MSG_DEBUG("Command Handle Fail : MsgGetConfigData()");
210 MSG_DEBUG("dataSize [%d]", dataSize);
212 switch (pCmd->cmdType) {
213 case MSG_CMD_GET_SMSC_OPT :
214 eventType = MSG_EVENT_GET_SMSC_OPT;
216 case MSG_CMD_GET_CB_OPT :
217 eventType = MSG_EVENT_GET_CB_OPT;
219 case MSG_CMD_GET_SMS_SEND_OPT :
220 eventType = MSG_EVENT_GET_SMS_SEND_OPT;
222 case MSG_CMD_GET_MMS_SEND_OPT :
223 eventType = MSG_EVENT_GET_MMS_SEND_OPT;
225 case MSG_CMD_GET_MMS_RECV_OPT :
226 eventType = MSG_EVENT_GET_MMS_RECV_OPT;
228 case MSG_CMD_GET_PUSH_MSG_OPT :
229 eventType = MSG_EVENT_GET_PUSH_MSG_OPT;
231 case MSG_CMD_GET_VOICE_MSG_OPT :
232 eventType = MSG_EVENT_GET_VOICE_MSG_OPT;
234 case MSG_CMD_GET_GENERAL_MSG_OPT :
235 eventType = MSG_EVENT_GET_GENERAL_MSG_OPT;
237 case MSG_CMD_GET_MSG_SIZE_OPT :
238 eventType = MSG_EVENT_GET_MSG_SIZE_OPT;
245 eventSize = MsgMakeEvent(encodedData, dataSize, eventType, err, (void**)ppEvent);