2 * Copyright (c) 2016 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 using System.Runtime.InteropServices;
18 using System.Collections.Generic;
24 [StructLayout(LayoutKind.Sequential)]
25 internal struct SatMenuSelectionInfoStruct
29 [StructLayout(LayoutKind.Sequential)]
30 internal struct SatEventDownloadInfoStruct
34 [StructLayout(LayoutKind.Sequential)]
35 internal struct SatUiUserConfirmInfoStruct
39 [StructLayout(LayoutKind.Sequential)]
40 internal struct SatMainMenuInfoStruct
42 internal int CommandId;
43 internal int IsMainMenuPresent;
44 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
45 internal string Title;
46 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.LPStruct)]
47 internal SatMenuInfoStruct[] MenuItem;
48 internal ushort NumOfMenuItems;
49 internal int IsMainMenuHelpInfo;
50 internal int IsUpdatedMainMenu;
51 internal SatIconIdentifierStruct IconId;
52 internal SatIconIdentifierListStruct IconIdList;
55 [StructLayout(LayoutKind.Sequential)]
56 internal struct SatMenuInfoStruct
58 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 261)]
63 [StructLayout(LayoutKind.Sequential)]
64 internal struct SatIconIdentifierStruct
66 internal int IsPresent;
67 internal SatIconQualifierType IconQualifier;
68 internal byte IconIdentifier;
69 internal SatIconInfoStruct IconInfo;
72 [StructLayout(LayoutKind.Sequential)]
73 internal struct SatIconInfoStruct
77 internal SatImageCodingScheme Ics;
78 internal ushort IconDataLength;
79 internal ushort ClutDataLength;
80 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)]
81 internal string IconFile;
82 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)]
83 internal string ClutFile;
86 [StructLayout(LayoutKind.Sequential)]
87 internal struct SatIconIdentifierListStruct
89 internal int IsPresent;
90 internal SatIconQualifierType IconListQualifier;
91 internal byte IconCount;
92 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)]
93 internal string IconIdentifierList;
94 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.LPStruct)]
95 internal SatIconInfoStruct[] IconInfoList;
98 [StructLayout(LayoutKind.Sequential)]
99 internal struct SatDisplayTextStruct
101 internal int CommandId;
102 internal SatTextInfoStruct Text;
103 internal uint Duration;
104 internal int IsPriorityHigh;
105 internal int IsUserResponseRequired;
106 internal int IsImmediateResponse;
107 internal SatIconIdentifierStruct IconId;
110 [StructLayout(LayoutKind.Sequential)]
111 internal struct SatTextInfoStruct
113 internal ushort Length;
114 internal IntPtr DataString;
117 [StructLayout(LayoutKind.Sequential)]
118 internal struct SatSelectItemStruct
120 internal int commandId;
121 internal int IsHelpInfoAvailable;
122 internal SatTextInfoStruct Text;
123 internal char DefaultItemIndex;
124 internal char MenuItemCount;
125 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.LPStruct)]
126 internal SatMenuItemInfoStruct[] MenuItems;
127 internal SatIconIdentifierStruct IconId;
128 internal SatIconIdentifierListStruct IconIdList;
131 [StructLayout(LayoutKind.Sequential)]
132 internal struct SatMenuItemInfoStruct
134 internal byte ItemId;
135 internal byte TextLength;
136 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
137 internal string Text;
140 [StructLayout(LayoutKind.Sequential)]
141 internal struct SatGetInKeyStruct
143 internal int CommandId;
144 internal SatInKeyType KeyType;
145 internal SatInputAlphabetType InputType;
146 internal int IsNumeric;
147 internal int IsHelpInfoAvailable;
148 internal SatTextInfoStruct Text;
149 internal uint Duration;
150 internal SatIconIdentifierStruct IconId;
153 [StructLayout(LayoutKind.Sequential)]
154 internal struct SatGetInputStruct
156 internal int CommandId;
157 internal SatInputAlphabetType Type;
158 internal int IsNumeric;
159 internal int IsHelpInfoAvailable;
160 internal int IsEchoInput;
161 internal SatTextInfoStruct Text;
162 internal SatResponseLengthStruct RespLength;
163 internal SatTextInfoStruct DefaultText;
164 internal SatIconIdentifierStruct IconId;
167 [StructLayout(LayoutKind.Sequential)]
168 internal struct SatResponseLengthStruct
174 [StructLayout(LayoutKind.Sequential)]
175 internal struct SatRefreshStruct
177 internal int CommandId;
178 internal SatRefreshAppType AppType;
179 internal SatCmdQualiRefresh RefreshMode;
180 internal byte FileCount;
181 [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U4, SizeConst = 20)]
182 internal SimFileId[] fileId;
185 [StructLayout(LayoutKind.Sequential)]
186 internal struct SatSendSmsStruct
188 internal int CommandId;
189 internal int IsPackingRequired;
190 internal SatAddressStruct Address;
191 internal SatSmsTpduStruct SmsTpdu;
194 [StructLayout(LayoutKind.Sequential)]
195 internal struct SatAddressStruct
197 internal SimTypeOfNumber Ton;
198 internal SimNumberPlanIdentity Npi;
199 internal byte DiallingNumLength;
200 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 200)]
201 internal string DiallingNumber;
204 [StructLayout(LayoutKind.Sequential)]
205 internal struct SatSmsTpduStruct
207 internal SatSmsTpduType TpduType;
208 internal byte DataLength;
209 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 175)]
210 internal string Data;
213 [StructLayout(LayoutKind.Sequential)]
214 internal struct SatEventListDataStruct
216 internal int IsEventDownloadActive;
217 internal int IsMtCallEvent;
218 internal int IsCallConnected;
219 internal int IsCallDisconnected;
220 internal int IsLocationStatus;
221 internal int IsUserActivity;
222 internal int IsIdleScreenAvailable;
223 internal int IsCardReaderStatus;
224 internal int IsLanguageSelection;
225 internal int IsBrowserTermination;
226 internal int IsDataAvailable;
227 internal int IsChannelStatus;
230 [StructLayout(LayoutKind.Sequential)]
231 internal struct SatSendDtmfDataStruct
233 internal int CommandId;
234 internal int IsHiddenMode;
235 internal SatTextInfoStruct DtmfString;
238 [StructLayout(LayoutKind.Sequential)]
239 internal struct SatCallCtrlIndCallSsDataStruct
241 internal SatTextInfoStruct Address;
242 internal SatTextInfoStruct SubAddress;
243 internal SatBcRepeatIndicatorType BcRepeatIndicator;
244 internal SatTextInfoStruct Ccp1;
245 internal SatTextInfoStruct Ccp2;
248 [StructLayout(LayoutKind.Sequential)]
249 internal struct SatCallCtrlIndUssdDataStruct
251 internal SatTextInfoStruct UssdString;
254 [StructLayout(LayoutKind.Explicit)]
255 internal struct SatCallCtrlIndStruct
258 internal SatCallCtrlIndCallSsDataStruct CallCtrlCnfCallData;
260 internal SatCallCtrlIndCallSsDataStruct CallCtrlCnfSsData;
262 internal SatCallCtrlIndUssdDataStruct CallCtrlCnfUssdData;
265 [StructLayout(LayoutKind.Sequential)]
266 internal struct SatCallCtrlIndDataStruct
268 internal SatCallType CallCtrlCnfType;
269 internal SatCallCtrlResultType CallCtrlResult;
270 internal SatTextInfoStruct DisplayData;
271 internal int IsUserInfoDispEnabled;
272 internal SatCallCtrlIndStruct CallCtrlIndData;
275 [StructLayout(LayoutKind.Sequential)]
276 internal struct SatTextTypeInfoStruct
278 internal int IsDigitOnly;
279 internal SatDataCodingSchemeStruct Dcs;
280 internal ushort StringLength;
281 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 501)]
282 internal string TextString;
285 [StructLayout(LayoutKind.Sequential)]
286 internal struct SatDataCodingSchemeStruct
288 internal int IsCompressedFormat;
289 internal SatAlphabetFormat AlphabetFormat;
290 internal SatMsgClassType MsgClass;
291 internal byte RawDcs;
294 [StructLayout(LayoutKind.Sequential)]
295 internal struct SatMoSmsCtrlDataStruct
297 internal SatCallCtrlResultType Result;
298 internal int IsUserInfoDisplayEnabled;
299 internal SatTextTypeInfoStruct DisplayData;
300 internal SatTextTypeInfoStruct RpDestAddr;
301 internal SatTextTypeInfoStruct TpDestAddr;
304 [StructLayout(LayoutKind.Sequential)]
305 internal struct SatSetupCallDataStruct
307 internal int CommandId;
308 internal SatCmdQualiSetupCall CallType;
309 internal SatTextInfoStruct DisplayText;
310 internal SatTextInfoStruct CallNumber;
311 internal uint Duration;
312 internal SatIconIdentifierStruct IconId;
315 [StructLayout(LayoutKind.Sequential)]
316 internal struct SatSendSsDataStruct
318 internal int CommandId;
319 internal SimTypeOfNumber Ton;
320 internal SimNumberPlanIdentity Npi;
321 internal byte StringLength;
322 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 161)]
323 internal string SsString;
326 [StructLayout(LayoutKind.Sequential)]
327 internal struct SatSetupUssdDataStruct
329 internal int CommandId;
330 internal byte RawDcs;
331 internal byte UssdStringLength;
332 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 266)]
333 internal string UssdString;
336 [StructLayout(LayoutKind.Sequential)]
337 internal struct SatResultDataStruct
341 internal static class SatStructConversions
343 internal static SatTextInfo ConvertSatTextInfoStruct(SatTextInfoStruct textStruct)
345 SatTextInfo textInfo = new SatTextInfo();
346 textInfo.Length = textStruct.Length;
347 Marshal.Copy(textStruct.DataString, textInfo.Data, 0, 501);
351 internal static SatIconInfo ConvertSatIconInfoStruct(SatIconInfoStruct iconStruct)
353 SatIconInfo iconInfo = new SatIconInfo();
354 iconInfo.IconWidth = iconStruct.Width;
355 iconInfo.IconHeight = iconStruct.Height;
356 iconInfo.Scheme = iconStruct.Ics;
357 iconInfo.IconLength = iconStruct.IconDataLength;
358 iconInfo.ClutLength = iconStruct.ClutDataLength;
359 iconInfo.IcnFile = iconStruct.IconFile;
360 iconInfo.CltFile = iconStruct.ClutFile;
364 internal static SatIconIdInfo ConvertSatIconIdentifierStruct(SatIconIdentifierStruct idStruct)
366 SatIconIdInfo iconId = new SatIconIdInfo();
367 if (idStruct.IsPresent == 1)
369 iconId.IsPresent = true;
372 else if (idStruct.IsPresent == 0)
374 iconId.IsPresent = false;
377 iconId.Qualifier = idStruct.IconQualifier;
378 iconId.Id = idStruct.IconIdentifier;
379 iconId.Info = ConvertSatIconInfoStruct(idStruct.IconInfo);
383 internal static SatIconIdListInfo ConvertSatIconIdListStruct(SatIconIdentifierListStruct listStruct)
385 SatIconIdListInfo iconIdList = new SatIconIdListInfo();
386 if (listStruct.IsPresent == 1)
388 iconIdList.IsPresent = true;
391 else if (listStruct.IsPresent == 0)
393 iconIdList.IsPresent = false;
396 iconIdList.Qualifier = listStruct.IconListQualifier;
397 iconIdList.Count = listStruct.IconCount;
398 iconIdList.IconList = Encoding.ASCII.GetBytes(listStruct.IconIdentifierList);
399 List<SatIconInfo> iconInfoList = new List<SatIconInfo>();
400 foreach (SatIconInfoStruct info in listStruct.IconInfoList)
402 iconInfoList.Add(ConvertSatIconInfoStruct(info));
405 iconIdList.Info = iconInfoList;
409 internal static SatMainMenuInfo ConvertSatMainMenuInfoStruct(SatMainMenuInfoStruct infoStruct)
411 SatMainMenuInfo mainMenuInfo = new SatMainMenuInfo();
412 mainMenuInfo.Id = infoStruct.CommandId;
413 if (infoStruct.IsMainMenuPresent == 1)
415 mainMenuInfo.IsPresent = true;
418 else if (infoStruct.IsMainMenuPresent == 0)
420 mainMenuInfo.IsPresent = false;
423 mainMenuInfo.Title = infoStruct.Title;
424 List<SatMenuInfo> menuInfoList = new List<SatMenuInfo>();
425 foreach (SatMenuInfoStruct menu in infoStruct.MenuItem)
427 SatMenuInfo menuInfo = new SatMenuInfo();
428 menuInfo.Item = menu.Item;
429 menuInfo.Id = menu.ItemId;
430 menuInfoList.Add(menuInfo);
433 mainMenuInfo.Items = menuInfoList;
434 mainMenuInfo.Num = infoStruct.NumOfMenuItems;
435 if (infoStruct.IsMainMenuHelpInfo == 1)
437 mainMenuInfo.IsHelpInfo = true;
440 else if (infoStruct.IsMainMenuHelpInfo == 0)
442 mainMenuInfo.IsHelpInfo = false;
445 if (infoStruct.IsUpdatedMainMenu == 1)
447 mainMenuInfo.IsUpdated = true;
450 else if (infoStruct.IsUpdatedMainMenu == 0)
452 mainMenuInfo.IsUpdated = false;
455 mainMenuInfo.IcnId = ConvertSatIconIdentifierStruct(infoStruct.IconId);
456 mainMenuInfo.IdList = ConvertSatIconIdListStruct(infoStruct.IconIdList);
460 internal static SatDisplayTextData ConvertSatDisplayTextStruct(SatDisplayTextStruct textStruct)
462 SatDisplayTextData textData = new SatDisplayTextData();
463 textData.Id = textStruct.CommandId;
464 textData.Text = ConvertSatTextInfoStruct(textStruct.Text);
465 textData.Drtn = textStruct.Duration;
466 if (textStruct.IsPriorityHigh == 1)
468 textData.IsPrtyHigh = true;
471 else if (textStruct.IsPriorityHigh == 0)
473 textData.IsPrtyHigh = false;
476 if (textStruct.IsUserResponseRequired == 1)
478 textData.IsRespRequired = true;
481 else if (textStruct.IsUserResponseRequired == 0)
483 textData.IsRespRequired = false;
486 if (textStruct.IsImmediateResponse == 1)
488 textData.IsImmediateResp = true;
491 else if (textStruct.IsImmediateResponse == 0)
493 textData.IsImmediateResp = false;
496 textData.IcnId = ConvertSatIconIdentifierStruct(textStruct.IconId);
500 internal static SatSelectItemData ConvertSatSelectItemStruct(SatSelectItemStruct itemStruct)
502 SatSelectItemData itemData = new SatSelectItemData();
503 itemData.Id = itemStruct.commandId;
504 if (itemStruct.IsHelpInfoAvailable == 1)
506 itemData.IsHelpAvailable = true;
509 else if (itemStruct.IsHelpInfoAvailable == 0)
511 itemData.IsHelpAvailable = false;
514 itemData.Text = ConvertSatTextInfoStruct(itemStruct.Text);
515 itemData.DefaultIndex = itemStruct.DefaultItemIndex;
516 itemData.ItemCount = itemStruct.MenuItemCount;
518 List<SatMenuItemInfo> items = new List<SatMenuItemInfo>();
519 foreach(SatMenuItemInfoStruct infoStruct in itemStruct.MenuItems)
521 SatMenuItemInfo menuItem = new SatMenuItemInfo();
522 menuItem.Id = infoStruct.ItemId;
523 menuItem.Length = infoStruct.TextLength;
524 menuItem.Txt = Encoding.ASCII.GetBytes(infoStruct.Text);
528 itemData.Items = items;
529 itemData.IcnId = ConvertSatIconIdentifierStruct(itemStruct.IconId);
530 itemData.IdList = ConvertSatIconIdListStruct(itemStruct.IconIdList);
534 internal static SatGetInKeyData ConvertSatGetInKeyStruct(SatGetInKeyStruct inKeyStruct)
536 SatGetInKeyData inKeyData = new SatGetInKeyData();
537 inKeyData.Id = inKeyStruct.CommandId;
538 inKeyData.Type = inKeyStruct.KeyType;
539 inKeyData.AlphabetType = inKeyStruct.InputType;
540 if (inKeyStruct.IsNumeric == 1)
542 inKeyData.IsNumericFlag = true;
545 else if (inKeyStruct.IsNumeric == 0)
547 inKeyData.IsNumericFlag = false;
550 if (inKeyStruct.IsHelpInfoAvailable == 1)
552 inKeyData.IsHelpAvailable = true;
555 else if (inKeyStruct.IsHelpInfoAvailable == 0)
557 inKeyData.IsHelpAvailable = false;
560 inKeyData.Text = ConvertSatTextInfoStruct(inKeyStruct.Text);
561 inKeyData.Duratn = inKeyStruct.Duration;
562 inKeyData.IcnId = ConvertSatIconIdentifierStruct(inKeyStruct.IconId);
566 internal static SatGetInputData ConvertSatGetInputStruct(SatGetInputStruct inputStruct)
568 SatGetInputData inputData = new SatGetInputData();
569 inputData.Id = inputStruct.CommandId;
570 inputData.Type = inputStruct.Type;
571 if (inputStruct.IsNumeric == 1)
573 inputData.IsNumericFlag = true;
576 else if (inputStruct.IsNumeric == 0)
578 inputData.IsNumericFlag = false;
581 if (inputStruct.IsHelpInfoAvailable == 1)
583 inputData.IsHelpAvailable = true;
586 else if (inputStruct.IsHelpInfoAvailable == 0)
588 inputData.IsHelpAvailable = false;
591 if (inputStruct.IsEchoInput == 1)
593 inputData.IsEcho = true;
596 else if (inputStruct.IsEchoInput == 0)
598 inputData.IsEcho = false;
601 inputData.Text = ConvertSatTextInfoStruct(inputStruct.Text);
603 SatResponseLengthInfo responseLength = new SatResponseLengthInfo();
604 responseLength.Min = inputStruct.RespLength.Min;
605 responseLength.Max = inputStruct.RespLength.Max;
607 inputData.RespLength = responseLength;
608 inputData.Default = ConvertSatTextInfoStruct(inputStruct.DefaultText);
609 inputData.IcnId = ConvertSatIconIdentifierStruct(inputStruct.IconId);
613 internal static SatRefreshData ConvertSatRefreshStruct(SatRefreshStruct refreshStruct)
615 SatRefreshData refreshData = new SatRefreshData();
616 refreshData.Id = refreshStruct.CommandId;
617 refreshData.Type = refreshStruct.AppType;
618 refreshData.Mode = refreshStruct.RefreshMode;
619 refreshData.Count = refreshStruct.FileCount;
620 List<SimFileId> fileId = new List<SimFileId>();
621 foreach(SimFileId id in refreshStruct.fileId)
625 refreshData.IdList = fileId;
629 internal static SatAddressData ConvertSatAddressStruct(SatAddressStruct addressStruct)
631 SatAddressData addressData = new SatAddressData();
632 addressData.Type = addressStruct.Ton;
633 addressData.NumId = addressStruct.Npi;
634 addressData.NumLen = addressStruct.DiallingNumLength;
635 addressData.Number = addressStruct.DiallingNumber;
639 internal static SatSmsTpduInfo ConvertSatSmsTpduStruct(SatSmsTpduStruct tpduStruct)
641 SatSmsTpduInfo tpduInfo = new SatSmsTpduInfo();
642 tpduInfo.Type = tpduStruct.TpduType;
643 tpduInfo.Length = tpduStruct.DataLength;
644 tpduInfo.Data = Encoding.ASCII.GetBytes(tpduStruct.Data);
648 internal static SatSendSmsData ConvertSatSendSmsStruct(SatSendSmsStruct smsStruct)
650 SatSendSmsData smsData = new SatSendSmsData();
651 smsData.Id = smsStruct.CommandId;
652 if (smsStruct.IsPackingRequired == 1)
654 smsData.IsPackRequired = true;
657 else if (smsStruct.IsPackingRequired == 0)
659 smsData.IsPackRequired = false;
662 smsData.Addr = ConvertSatAddressStruct(smsStruct.Address);
663 smsData.Info = ConvertSatSmsTpduStruct(smsStruct.SmsTpdu);
667 internal static SatEventListData ConvertSatEventListStruct(SatEventListDataStruct listStruct)
669 SatEventListData listData = new SatEventListData();
670 if (listStruct.IsEventDownloadActive == 1)
672 listData.IsDownloadActive = true;
675 else if (listStruct.IsEventDownloadActive == 0)
677 listData.IsDownloadActive = false;
680 if (listStruct.IsMtCallEvent == 1)
682 listData.IsCallEvent = true;
685 else if (listStruct.IsMtCallEvent == 0)
687 listData.IsCallEvent = false;
690 if (listStruct.IsCallConnected == 1)
692 listData.IsConnected = true;
695 else if (listStruct.IsCallConnected == 0)
697 listData.IsConnected = false;
700 if (listStruct.IsCallDisconnected == 1)
702 listData.IsDisconnected = true;
705 else if (listStruct.IsCallDisconnected == 0)
707 listData.IsDisconnected = false;
710 if (listStruct.IsLocationStatus == 1)
712 listData.IsStatus = true;
715 else if (listStruct.IsLocationStatus == 0)
717 listData.IsStatus = false;
720 if (listStruct.IsUserActivity == 1)
722 listData.IsUsrActivity = true;
725 else if (listStruct.IsUserActivity == 0)
727 listData.IsUsrActivity = false;
730 if (listStruct.IsIdleScreenAvailable == 1)
732 listData.IsIdleScreen = true;
735 else if (listStruct.IsIdleScreenAvailable == 0)
737 listData.IsIdleScreen = false;
740 if (listStruct.IsCardReaderStatus == 1)
742 listData.IsReaderStatus = true;
745 else if (listStruct.IsCardReaderStatus == 0)
747 listData.IsReaderStatus = false;
750 if (listStruct.IsLanguageSelection == 1)
752 listData.IsLanguageSelect = true;
755 else if (listStruct.IsLanguageSelection == 0)
757 listData.IsLanguageSelect = false;
760 if (listStruct.IsBrowserTermination == 1)
762 listData.IsBrowserTerminate = true;
765 else if (listStruct.IsBrowserTermination == 0)
767 listData.IsBrowserTerminate = false;
770 if (listStruct.IsDataAvailable == 1)
772 listData.IsDataPresent = true;
775 else if (listStruct.IsDataAvailable == 0)
777 listData.IsDataPresent = false;
780 if (listStruct.IsChannelStatus == 1)
782 listData.IsCnlStatus = true;
785 else if (listStruct.IsChannelStatus == 0)
787 listData.IsCnlStatus = false;
793 internal static SatSendDtmfData ConvertSatSendDtmfStruct(SatSendDtmfDataStruct dtmfStruct)
795 SatSendDtmfData dtmfData = new SatSendDtmfData();
796 dtmfData.Id = dtmfStruct.CommandId;
797 if (dtmfStruct.IsHiddenMode == 1)
799 dtmfData.IsHidden = true;
802 else if (dtmfStruct.IsHiddenMode == 0)
804 dtmfData.IsHidden = false;
807 dtmfData.Dtmf = ConvertSatTextInfoStruct(dtmfStruct.DtmfString);
811 internal static SatCallCtrlData ConvertSatCallCtrlIndCallSsDataStruct(SatCallCtrlIndCallSsDataStruct dataStruct)
813 SatCallCtrlData data = new SatCallCtrlData();
814 data.Addr = ConvertSatTextInfoStruct(dataStruct.Address);
815 data.SubAddr = ConvertSatTextInfoStruct(dataStruct.SubAddress);
816 data.RepeatIndicator = dataStruct.BcRepeatIndicator;
817 data.Ccparam1 = ConvertSatTextInfoStruct(dataStruct.Ccp1);
818 data.Ccparam2 = ConvertSatTextInfoStruct(dataStruct.Ccp2);
822 internal static SatCallCtrlConfirmData ConvertSatCallCtrlIndDataStruct(SatCallCtrlIndDataStruct dataStruct)
824 SatCallCtrlConfirmData data = new SatCallCtrlConfirmData();
825 data.Type = dataStruct.CallCtrlCnfType;
826 data.Result = dataStruct.CallCtrlResult;
827 data.Data = ConvertSatTextInfoStruct(dataStruct.DisplayData);
828 if (dataStruct.IsUserInfoDispEnabled == 1)
830 data.IsUserInfoEnabled = true;
833 else if (dataStruct.IsUserInfoDispEnabled == 0)
835 data.IsUserInfoEnabled = false;
838 if (dataStruct.CallCtrlCnfType == SatCallType.MoVoice)
840 data.CallData = ConvertSatCallCtrlIndCallSsDataStruct(dataStruct.CallCtrlIndData.CallCtrlCnfCallData);
843 else if (dataStruct.CallCtrlCnfType == SatCallType.Ss)
845 data.SsData = ConvertSatCallCtrlIndCallSsDataStruct(dataStruct.CallCtrlIndData.CallCtrlCnfSsData);
848 else if (dataStruct.CallCtrlCnfType == SatCallType.Ussd)
850 data.Ussd = ConvertSatTextInfoStruct(dataStruct.CallCtrlIndData.CallCtrlCnfUssdData.UssdString);
856 internal static SatDataCodingScheme ConvertSatDataCodingSchemeStruct(SatDataCodingSchemeStruct dataStruct)
858 SatDataCodingScheme codingScheme = new SatDataCodingScheme();
859 if (dataStruct.IsCompressedFormat == 1)
861 codingScheme.IsCompressed = true;
864 else if (dataStruct.IsCompressedFormat == 0)
866 codingScheme.IsCompressed = false;
869 codingScheme.Alphabet = dataStruct.AlphabetFormat;
870 codingScheme.Msg = dataStruct.MsgClass;
871 codingScheme.Dcs = dataStruct.RawDcs;
875 internal static SatTextTypeInfo ConvertSatTextTypeInfoStruct(SatTextTypeInfoStruct infoStruct)
877 SatTextTypeInfo info = new SatTextTypeInfo();
878 if (infoStruct.IsDigitOnly == 1)
883 else if (infoStruct.IsDigitOnly == 0)
885 info.IsDigit = false;
888 info.CodingScheme = ConvertSatDataCodingSchemeStruct(infoStruct.Dcs);
889 info.StringLen = infoStruct.StringLength;
890 info.Text = infoStruct.TextString;
894 internal static SatMoSmsCtrlData ConvertSatMoSmsCtrlDataStruct(SatMoSmsCtrlDataStruct dataStruct)
896 SatMoSmsCtrlData data = new SatMoSmsCtrlData();
897 data.Result = dataStruct.Result;
898 if (dataStruct.IsUserInfoDisplayEnabled == 1)
900 data.IsUserInfo = true;
903 else if (dataStruct.IsUserInfoDisplayEnabled == 0)
905 data.IsUserInfo = false;
908 data.Data = ConvertSatTextTypeInfoStruct(dataStruct.DisplayData);
909 data.RpAddr = ConvertSatTextTypeInfoStruct(dataStruct.RpDestAddr);
910 data.TpAddr = ConvertSatTextTypeInfoStruct(dataStruct.TpDestAddr);
914 internal static SatSetupCallData ConvertSatSetupCallDataStruct(SatSetupCallDataStruct dataStruct)
916 SatSetupCallData callData = new SatSetupCallData();
917 callData.Id = dataStruct.CommandId;
918 callData.Type = dataStruct.CallType;
919 callData.Text = ConvertSatTextInfoStruct(dataStruct.DisplayText);
920 callData.Number = ConvertSatTextInfoStruct(dataStruct.CallNumber);
921 callData.Duratn = dataStruct.Duration;
922 callData.IcnId = ConvertSatIconIdentifierStruct(dataStruct.IconId);
926 internal static SatSendSsData ConvertSatSendSsDataStruct(SatSendSsDataStruct dataStruct)
928 SatSendSsData ssData = new SatSendSsData();
929 ssData.Id = dataStruct.CommandId;
930 ssData.NumType = dataStruct.Ton;
931 ssData.Identity = dataStruct.Npi;
932 ssData.StringLen = dataStruct.StringLength;
933 ssData.Ss = dataStruct.SsString;
937 internal static SatSetupUssdData ConvertSatSetupUssdDataStruct(SatSetupUssdDataStruct ussdStruct)
939 SatSetupUssdData ussdData = new SatSetupUssdData();
940 ussdData.Id = ussdStruct.CommandId;
941 ussdData.Dcs = ussdStruct.RawDcs;
942 ussdData.StringLen = ussdStruct.UssdStringLength;
943 ussdData.Ussd = ussdStruct.UssdString;