Release 4.0.0-preview1-00258
[platform/core/csapi/tizenfx.git] / src / Tizen.Tapi / Tizen.Tapi / SatStructs.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 using System.Runtime.InteropServices;
18 using System.Collections.Generic;
19 using System.Text;
20 using System;
21
22 namespace Tizen.Tapi
23 {
24     [StructLayout(LayoutKind.Sequential)]
25     internal struct SatMenuSelectionInfoStruct
26     {
27     }
28
29     [StructLayout(LayoutKind.Sequential)]
30     internal struct SatEventDownloadInfoStruct
31     {
32     }
33
34     [StructLayout(LayoutKind.Sequential)]
35     internal struct SatUiUserConfirmInfoStruct
36     {
37     }
38
39     [StructLayout(LayoutKind.Sequential)]
40     internal struct SatMainMenuInfoStruct
41     {
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;
53     }
54
55     [StructLayout(LayoutKind.Sequential)]
56     internal struct SatMenuInfoStruct
57     {
58         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 261)]
59         internal string Item;
60         internal char ItemId;
61     }
62
63     [StructLayout(LayoutKind.Sequential)]
64     internal struct SatIconIdentifierStruct
65     {
66         internal int IsPresent;
67         internal SatIconQualifierType IconQualifier;
68         internal byte IconIdentifier;
69         internal SatIconInfoStruct IconInfo;
70     }
71
72     [StructLayout(LayoutKind.Sequential)]
73     internal struct SatIconInfoStruct
74     {
75         internal byte Width;
76         internal byte Height;
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;
84     }
85
86     [StructLayout(LayoutKind.Sequential)]
87     internal struct SatIconIdentifierListStruct
88     {
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;
96     }
97
98     [StructLayout(LayoutKind.Sequential)]
99     internal struct SatDisplayTextStruct
100     {
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;
108     }
109
110     [StructLayout(LayoutKind.Sequential)]
111     internal struct SatTextInfoStruct
112     {
113         internal ushort Length;
114         internal IntPtr DataString;
115     }
116
117     [StructLayout(LayoutKind.Sequential)]
118     internal struct SatSelectItemStruct
119     {
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;
129     }
130
131     [StructLayout(LayoutKind.Sequential)]
132     internal struct SatMenuItemInfoStruct
133     {
134         internal byte ItemId;
135         internal byte TextLength;
136         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
137         internal string Text;
138     }
139
140     [StructLayout(LayoutKind.Sequential)]
141     internal struct SatGetInKeyStruct
142     {
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;
151     }
152
153     [StructLayout(LayoutKind.Sequential)]
154     internal struct SatGetInputStruct
155     {
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;
165     }
166
167     [StructLayout(LayoutKind.Sequential)]
168     internal struct SatResponseLengthStruct
169     {
170         internal byte Min;
171         internal byte Max;
172     }
173
174     [StructLayout(LayoutKind.Sequential)]
175     internal struct SatRefreshStruct
176     {
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;
183     }
184
185     [StructLayout(LayoutKind.Sequential)]
186     internal struct SatSendSmsStruct
187     {
188         internal int CommandId;
189         internal int IsPackingRequired;
190         internal SatAddressStruct Address;
191         internal SatSmsTpduStruct SmsTpdu;
192     }
193
194     [StructLayout(LayoutKind.Sequential)]
195     internal struct SatAddressStruct
196     {
197         internal SimTypeOfNumber Ton;
198         internal SimNumberPlanIdentity Npi;
199         internal byte DiallingNumLength;
200         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 200)]
201         internal string DiallingNumber;
202     }
203
204     [StructLayout(LayoutKind.Sequential)]
205     internal struct SatSmsTpduStruct
206     {
207         internal SatSmsTpduType TpduType;
208         internal byte DataLength;
209         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 175)]
210         internal string Data;
211     }
212
213     [StructLayout(LayoutKind.Sequential)]
214     internal struct SatEventListDataStruct
215     {
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;
228     }
229
230     [StructLayout(LayoutKind.Sequential)]
231     internal struct SatSendDtmfDataStruct
232     {
233         internal int CommandId;
234         internal int IsHiddenMode;
235         internal SatTextInfoStruct DtmfString;
236     }
237
238     [StructLayout(LayoutKind.Sequential)]
239     internal struct SatCallCtrlIndCallSsDataStruct
240     {
241         internal SatTextInfoStruct Address;
242         internal SatTextInfoStruct SubAddress;
243         internal SatBcRepeatIndicatorType BcRepeatIndicator;
244         internal SatTextInfoStruct Ccp1;
245         internal SatTextInfoStruct Ccp2;
246     }
247
248     [StructLayout(LayoutKind.Sequential)]
249     internal struct SatCallCtrlIndUssdDataStruct
250     {
251         internal SatTextInfoStruct UssdString;
252     }
253
254     [StructLayout(LayoutKind.Explicit)]
255     internal struct SatCallCtrlIndStruct
256     {
257         [FieldOffset(0)]
258         internal SatCallCtrlIndCallSsDataStruct CallCtrlCnfCallData;
259         [FieldOffset(0)]
260         internal SatCallCtrlIndCallSsDataStruct CallCtrlCnfSsData;
261         [FieldOffset(0)]
262         internal SatCallCtrlIndUssdDataStruct CallCtrlCnfUssdData;
263     }
264
265     [StructLayout(LayoutKind.Sequential)]
266     internal struct SatCallCtrlIndDataStruct
267     {
268         internal SatCallType CallCtrlCnfType;
269         internal SatCallCtrlResultType CallCtrlResult;
270         internal SatTextInfoStruct DisplayData;
271         internal int IsUserInfoDispEnabled;
272         internal SatCallCtrlIndStruct CallCtrlIndData;
273     }
274
275     [StructLayout(LayoutKind.Sequential)]
276     internal struct SatTextTypeInfoStruct
277     {
278         internal int IsDigitOnly;
279         internal SatDataCodingSchemeStruct Dcs;
280         internal ushort StringLength;
281         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 501)]
282         internal string TextString;
283     }
284
285     [StructLayout(LayoutKind.Sequential)]
286     internal struct SatDataCodingSchemeStruct
287     {
288         internal int IsCompressedFormat;
289         internal SatAlphabetFormat AlphabetFormat;
290         internal SatMsgClassType MsgClass;
291         internal byte RawDcs;
292     }
293
294     [StructLayout(LayoutKind.Sequential)]
295     internal struct SatMoSmsCtrlDataStruct
296     {
297         internal SatCallCtrlResultType Result;
298         internal int IsUserInfoDisplayEnabled;
299         internal SatTextTypeInfoStruct DisplayData;
300         internal SatTextTypeInfoStruct RpDestAddr;
301         internal SatTextTypeInfoStruct TpDestAddr;
302     }
303
304     [StructLayout(LayoutKind.Sequential)]
305     internal struct SatSetupCallDataStruct
306     {
307         internal int CommandId;
308         internal SatCmdQualiSetupCall CallType;
309         internal SatTextInfoStruct DisplayText;
310         internal SatTextInfoStruct CallNumber;
311         internal uint Duration;
312         internal SatIconIdentifierStruct IconId;
313     }
314
315     [StructLayout(LayoutKind.Sequential)]
316     internal struct SatSendSsDataStruct
317     {
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;
324     }
325
326     [StructLayout(LayoutKind.Sequential)]
327     internal struct SatSetupUssdDataStruct
328     {
329         internal int CommandId;
330         internal byte RawDcs;
331         internal byte UssdStringLength;
332         [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 266)]
333         internal string UssdString;
334     }
335
336     [StructLayout(LayoutKind.Sequential)]
337     internal struct SatResultDataStruct
338     {
339     }
340
341     internal static class SatStructConversions
342     {
343         internal static SatTextInfo ConvertSatTextInfoStruct(SatTextInfoStruct textStruct)
344         {
345             SatTextInfo textInfo = new SatTextInfo();
346             textInfo.Length = textStruct.Length;
347             byte[] data = new byte[textStruct.Length];
348             Marshal.Copy(textStruct.DataString, data, 0, textInfo.Length);
349             textInfo.Data = data;
350             return textInfo;
351         }
352
353         internal static SatIconInfo ConvertSatIconInfoStruct(SatIconInfoStruct iconStruct)
354         {
355             SatIconInfo iconInfo = new SatIconInfo();
356             iconInfo.IconWidth = iconStruct.Width;
357             iconInfo.IconHeight = iconStruct.Height;
358             iconInfo.Scheme = iconStruct.Ics;
359             iconInfo.IconLength = iconStruct.IconDataLength;
360             iconInfo.ClutLength = iconStruct.ClutDataLength;
361             iconInfo.IcnFile = iconStruct.IconFile;
362             iconInfo.CltFile = iconStruct.ClutFile;
363             return iconInfo;
364         }
365
366         internal static SatIconIdInfo ConvertSatIconIdentifierStruct(SatIconIdentifierStruct idStruct)
367         {
368             SatIconIdInfo iconId = new SatIconIdInfo();
369             if (idStruct.IsPresent == 1)
370             {
371                 iconId.IsPresent = true;
372             }
373
374             else if (idStruct.IsPresent == 0)
375             {
376                 iconId.IsPresent = false;
377             }
378
379             iconId.Qualifier = idStruct.IconQualifier;
380             iconId.Id = idStruct.IconIdentifier;
381             iconId.Info = ConvertSatIconInfoStruct(idStruct.IconInfo);
382             return iconId;
383         }
384
385         internal static SatIconIdListInfo ConvertSatIconIdListStruct(SatIconIdentifierListStruct listStruct)
386         {
387             SatIconIdListInfo iconIdList = new SatIconIdListInfo();
388             if (listStruct.IsPresent == 1)
389             {
390                 iconIdList.IsPresent = true;
391             }
392
393             else if (listStruct.IsPresent == 0)
394             {
395                 iconIdList.IsPresent = false;
396             }
397
398             iconIdList.Qualifier = listStruct.IconListQualifier;
399             iconIdList.Count = listStruct.IconCount;
400             iconIdList.IconList = Encoding.ASCII.GetBytes(listStruct.IconIdentifierList);
401             List<SatIconInfo> iconInfoList = new List<SatIconInfo>();
402             foreach (SatIconInfoStruct info in listStruct.IconInfoList)
403             {
404                 iconInfoList.Add(ConvertSatIconInfoStruct(info));
405             }
406
407             iconIdList.Info = iconInfoList;
408             return iconIdList;
409         }
410
411         internal static SatMainMenuInfo ConvertSatMainMenuInfoStruct(SatMainMenuInfoStruct infoStruct)
412         {
413             SatMainMenuInfo mainMenuInfo = new SatMainMenuInfo();
414             mainMenuInfo.Id = infoStruct.CommandId;
415             if (infoStruct.IsMainMenuPresent == 1)
416             {
417                 mainMenuInfo.IsPresent = true;
418             }
419
420             else if (infoStruct.IsMainMenuPresent == 0)
421             {
422                 mainMenuInfo.IsPresent = false;
423             }
424
425             mainMenuInfo.Title = infoStruct.Title;
426             List<SatMenuInfo> menuInfoList = new List<SatMenuInfo>();
427             foreach (SatMenuInfoStruct menu in infoStruct.MenuItem)
428             {
429                 SatMenuInfo menuInfo = new SatMenuInfo();
430                 menuInfo.Item = menu.Item;
431                 menuInfo.Id = menu.ItemId;
432                 menuInfoList.Add(menuInfo);
433             }
434
435             mainMenuInfo.Items = menuInfoList;
436             mainMenuInfo.Num = infoStruct.NumOfMenuItems;
437             if (infoStruct.IsMainMenuHelpInfo == 1)
438             {
439                 mainMenuInfo.IsHelpInfo = true;
440             }
441
442             else if (infoStruct.IsMainMenuHelpInfo == 0)
443             {
444                 mainMenuInfo.IsHelpInfo = false;
445             }
446
447             if (infoStruct.IsUpdatedMainMenu == 1)
448             {
449                 mainMenuInfo.IsUpdated = true;
450             }
451
452             else if (infoStruct.IsUpdatedMainMenu == 0)
453             {
454                 mainMenuInfo.IsUpdated = false;
455             }
456
457             mainMenuInfo.IcnId = ConvertSatIconIdentifierStruct(infoStruct.IconId);
458             mainMenuInfo.IdList = ConvertSatIconIdListStruct(infoStruct.IconIdList);
459             return mainMenuInfo;
460         }
461
462         internal static SatDisplayTextData ConvertSatDisplayTextStruct(SatDisplayTextStruct textStruct)
463         {
464             SatDisplayTextData textData = new SatDisplayTextData();
465             textData.Id = textStruct.CommandId;
466             textData.Text = ConvertSatTextInfoStruct(textStruct.Text);
467             textData.Drtn = textStruct.Duration;
468             if (textStruct.IsPriorityHigh == 1)
469             {
470                 textData.IsPrtyHigh = true;
471             }
472
473             else if (textStruct.IsPriorityHigh == 0)
474             {
475                 textData.IsPrtyHigh = false;
476             }
477
478             if (textStruct.IsUserResponseRequired == 1)
479             {
480                 textData.IsRespRequired = true;
481             }
482
483             else if (textStruct.IsUserResponseRequired == 0)
484             {
485                 textData.IsRespRequired = false;
486             }
487
488             if (textStruct.IsImmediateResponse == 1)
489             {
490                 textData.IsImmediateResp = true;
491             }
492
493             else if (textStruct.IsImmediateResponse == 0)
494             {
495                 textData.IsImmediateResp = false;
496             }
497
498             textData.IcnId = ConvertSatIconIdentifierStruct(textStruct.IconId);
499             return textData;
500         }
501
502         internal static SatSelectItemData ConvertSatSelectItemStruct(SatSelectItemStruct itemStruct)
503         {
504             SatSelectItemData itemData = new SatSelectItemData();
505             itemData.Id = itemStruct.commandId;
506             if (itemStruct.IsHelpInfoAvailable == 1)
507             {
508                 itemData.IsHelpAvailable = true;
509             }
510
511             else if (itemStruct.IsHelpInfoAvailable == 0)
512             {
513                 itemData.IsHelpAvailable = false;
514             }
515
516             itemData.Text = ConvertSatTextInfoStruct(itemStruct.Text);
517             itemData.DefaultIndex = itemStruct.DefaultItemIndex;
518             itemData.ItemCount = itemStruct.MenuItemCount;
519
520             List<SatMenuItemInfo> items = new List<SatMenuItemInfo>();
521             foreach(SatMenuItemInfoStruct infoStruct in itemStruct.MenuItems)
522             {
523                 SatMenuItemInfo menuItem = new SatMenuItemInfo();
524                 menuItem.Id = infoStruct.ItemId;
525                 menuItem.Length = infoStruct.TextLength;
526                 menuItem.Txt = Encoding.ASCII.GetBytes(infoStruct.Text);
527                 items.Add(menuItem);
528             }
529
530             itemData.Items = items;
531             itemData.IcnId = ConvertSatIconIdentifierStruct(itemStruct.IconId);
532             itemData.IdList = ConvertSatIconIdListStruct(itemStruct.IconIdList);
533             return itemData;
534         }
535
536         internal static SatGetInKeyData ConvertSatGetInKeyStruct(SatGetInKeyStruct inKeyStruct)
537         {
538             SatGetInKeyData inKeyData = new SatGetInKeyData();
539             inKeyData.Id = inKeyStruct.CommandId;
540             inKeyData.Type = inKeyStruct.KeyType;
541             inKeyData.AlphabetType = inKeyStruct.InputType;
542             if (inKeyStruct.IsNumeric == 1)
543             {
544                 inKeyData.IsNumericFlag = true;
545             }
546
547             else if (inKeyStruct.IsNumeric == 0)
548             {
549                 inKeyData.IsNumericFlag = false;
550             }
551
552             if (inKeyStruct.IsHelpInfoAvailable == 1)
553             {
554                 inKeyData.IsHelpAvailable = true;
555             }
556
557             else if (inKeyStruct.IsHelpInfoAvailable == 0)
558             {
559                 inKeyData.IsHelpAvailable = false;
560             }
561
562             inKeyData.Text = ConvertSatTextInfoStruct(inKeyStruct.Text);
563             inKeyData.Duratn = inKeyStruct.Duration;
564             inKeyData.IcnId = ConvertSatIconIdentifierStruct(inKeyStruct.IconId);
565             return inKeyData;
566         }
567
568         internal static SatGetInputData ConvertSatGetInputStruct(SatGetInputStruct inputStruct)
569         {
570             SatGetInputData inputData = new SatGetInputData();
571             inputData.Id = inputStruct.CommandId;
572             inputData.Type = inputStruct.Type;
573             if (inputStruct.IsNumeric == 1)
574             {
575                 inputData.IsNumericFlag = true;
576             }
577
578             else if (inputStruct.IsNumeric == 0)
579             {
580                 inputData.IsNumericFlag = false;
581             }
582
583             if (inputStruct.IsHelpInfoAvailable == 1)
584             {
585                 inputData.IsHelpAvailable = true;
586             }
587
588             else if (inputStruct.IsHelpInfoAvailable == 0)
589             {
590                 inputData.IsHelpAvailable = false;
591             }
592
593             if (inputStruct.IsEchoInput == 1)
594             {
595                 inputData.IsEcho = true;
596             }
597
598             else if (inputStruct.IsEchoInput == 0)
599             {
600                 inputData.IsEcho = false;
601             }
602
603             inputData.Text = ConvertSatTextInfoStruct(inputStruct.Text);
604
605             SatResponseLengthInfo responseLength = new SatResponseLengthInfo();
606             responseLength.Min = inputStruct.RespLength.Min;
607             responseLength.Max = inputStruct.RespLength.Max;
608
609             inputData.RespLength = responseLength;
610             inputData.Default = ConvertSatTextInfoStruct(inputStruct.DefaultText);
611             inputData.IcnId = ConvertSatIconIdentifierStruct(inputStruct.IconId);
612             return inputData;
613         }
614
615         internal static SatRefreshData ConvertSatRefreshStruct(SatRefreshStruct refreshStruct)
616         {
617             SatRefreshData refreshData = new SatRefreshData();
618             refreshData.Id = refreshStruct.CommandId;
619             refreshData.Type = refreshStruct.AppType;
620             refreshData.Mode = refreshStruct.RefreshMode;
621             refreshData.Count = refreshStruct.FileCount;
622             List<SimFileId> fileId = new List<SimFileId>();
623             foreach(SimFileId id in refreshStruct.fileId)
624             {
625                 fileId.Add(id);
626             }
627             refreshData.IdList = fileId;
628             return refreshData;
629         }
630
631         internal static SatAddressData ConvertSatAddressStruct(SatAddressStruct addressStruct)
632         {
633             SatAddressData addressData = new SatAddressData();
634             addressData.Type = addressStruct.Ton;
635             addressData.NumId = addressStruct.Npi;
636             addressData.NumLen = addressStruct.DiallingNumLength;
637             addressData.Number = addressStruct.DiallingNumber;
638             return addressData;
639         }
640
641         internal static SatSmsTpduInfo ConvertSatSmsTpduStruct(SatSmsTpduStruct tpduStruct)
642         {
643             SatSmsTpduInfo tpduInfo = new SatSmsTpduInfo();
644             tpduInfo.Type = tpduStruct.TpduType;
645             tpduInfo.Length = tpduStruct.DataLength;
646             tpduInfo.Data = Encoding.ASCII.GetBytes(tpduStruct.Data);
647             return tpduInfo;
648         }
649
650         internal static SatSendSmsData ConvertSatSendSmsStruct(SatSendSmsStruct smsStruct)
651         {
652             SatSendSmsData smsData = new SatSendSmsData();
653             smsData.Id = smsStruct.CommandId;
654             if (smsStruct.IsPackingRequired == 1)
655             {
656                 smsData.IsPackRequired = true;
657             }
658
659             else if (smsStruct.IsPackingRequired == 0)
660             {
661                 smsData.IsPackRequired = false;
662             }
663
664             smsData.Addr = ConvertSatAddressStruct(smsStruct.Address);
665             smsData.Info = ConvertSatSmsTpduStruct(smsStruct.SmsTpdu);
666             return smsData;
667         }
668
669         internal static SatEventListData ConvertSatEventListStruct(SatEventListDataStruct listStruct)
670         {
671             SatEventListData listData = new SatEventListData();
672             if (listStruct.IsEventDownloadActive == 1)
673             {
674                 listData.IsDownloadActive = true;
675             }
676
677             else if (listStruct.IsEventDownloadActive == 0)
678             {
679                 listData.IsDownloadActive = false;
680             }
681
682             if (listStruct.IsMtCallEvent == 1)
683             {
684                 listData.IsCallEvent = true;
685             }
686
687             else if (listStruct.IsMtCallEvent == 0)
688             {
689                 listData.IsCallEvent = false;
690             }
691
692             if (listStruct.IsCallConnected == 1)
693             {
694                 listData.IsConnected = true;
695             }
696
697             else if (listStruct.IsCallConnected == 0)
698             {
699                 listData.IsConnected = false;
700             }
701
702             if (listStruct.IsCallDisconnected == 1)
703             {
704                 listData.IsDisconnected = true;
705             }
706
707             else if (listStruct.IsCallDisconnected == 0)
708             {
709                 listData.IsDisconnected = false;
710             }
711
712             if (listStruct.IsLocationStatus == 1)
713             {
714                 listData.IsStatus = true;
715             }
716
717             else if (listStruct.IsLocationStatus == 0)
718             {
719                 listData.IsStatus = false;
720             }
721
722             if (listStruct.IsUserActivity == 1)
723             {
724                 listData.IsUsrActivity = true;
725             }
726
727             else if (listStruct.IsUserActivity == 0)
728             {
729                 listData.IsUsrActivity = false;
730             }
731
732             if (listStruct.IsIdleScreenAvailable == 1)
733             {
734                 listData.IsIdleScreen = true;
735             }
736
737             else if (listStruct.IsIdleScreenAvailable == 0)
738             {
739                 listData.IsIdleScreen = false;
740             }
741
742             if (listStruct.IsCardReaderStatus == 1)
743             {
744                 listData.IsReaderStatus = true;
745             }
746
747             else if (listStruct.IsCardReaderStatus == 0)
748             {
749                 listData.IsReaderStatus = false;
750             }
751
752             if (listStruct.IsLanguageSelection == 1)
753             {
754                 listData.IsLanguageSelect = true;
755             }
756
757             else if (listStruct.IsLanguageSelection == 0)
758             {
759                 listData.IsLanguageSelect = false;
760             }
761
762             if (listStruct.IsBrowserTermination == 1)
763             {
764                 listData.IsBrowserTerminate = true;
765             }
766
767             else if (listStruct.IsBrowserTermination == 0)
768             {
769                 listData.IsBrowserTerminate = false;
770             }
771
772             if (listStruct.IsDataAvailable == 1)
773             {
774                 listData.IsDataPresent = true;
775             }
776
777             else if (listStruct.IsDataAvailable == 0)
778             {
779                 listData.IsDataPresent = false;
780             }
781
782             if (listStruct.IsChannelStatus == 1)
783             {
784                 listData.IsCnlStatus = true;
785             }
786
787             else if (listStruct.IsChannelStatus == 0)
788             {
789                 listData.IsCnlStatus = false;
790             }
791
792             return listData;
793         }
794
795         internal static SatSendDtmfData ConvertSatSendDtmfStruct(SatSendDtmfDataStruct dtmfStruct)
796         {
797             SatSendDtmfData dtmfData = new SatSendDtmfData();
798             dtmfData.Id = dtmfStruct.CommandId;
799             if (dtmfStruct.IsHiddenMode == 1)
800             {
801                 dtmfData.IsHidden = true;
802             }
803
804             else if (dtmfStruct.IsHiddenMode == 0)
805             {
806                 dtmfData.IsHidden = false;
807             }
808
809             dtmfData.Dtmf = ConvertSatTextInfoStruct(dtmfStruct.DtmfString);
810             return dtmfData;
811         }
812
813         internal static SatCallCtrlData ConvertSatCallCtrlIndCallSsDataStruct(SatCallCtrlIndCallSsDataStruct dataStruct)
814         {
815             SatCallCtrlData data = new SatCallCtrlData();
816             data.Addr = ConvertSatTextInfoStruct(dataStruct.Address);
817             data.SubAddr = ConvertSatTextInfoStruct(dataStruct.SubAddress);
818             data.RepeatIndicator = dataStruct.BcRepeatIndicator;
819             data.Ccparam1 = ConvertSatTextInfoStruct(dataStruct.Ccp1);
820             data.Ccparam2 = ConvertSatTextInfoStruct(dataStruct.Ccp2);
821             return data;
822         }
823
824         internal static SatCallCtrlConfirmData ConvertSatCallCtrlIndDataStruct(SatCallCtrlIndDataStruct dataStruct)
825         {
826             SatCallCtrlConfirmData data = new SatCallCtrlConfirmData();
827             data.Type = dataStruct.CallCtrlCnfType;
828             data.Result = dataStruct.CallCtrlResult;
829             data.Data = ConvertSatTextInfoStruct(dataStruct.DisplayData);
830             if (dataStruct.IsUserInfoDispEnabled == 1)
831             {
832                 data.IsUserInfoEnabled = true;
833             }
834
835             else if (dataStruct.IsUserInfoDispEnabled == 0)
836             {
837                 data.IsUserInfoEnabled = false;
838             }
839
840             if (dataStruct.CallCtrlCnfType == SatCallType.MoVoice)
841             {
842                 data.CallData = ConvertSatCallCtrlIndCallSsDataStruct(dataStruct.CallCtrlIndData.CallCtrlCnfCallData);
843             }
844
845             else if (dataStruct.CallCtrlCnfType == SatCallType.Ss)
846             {
847                 data.SsData = ConvertSatCallCtrlIndCallSsDataStruct(dataStruct.CallCtrlIndData.CallCtrlCnfSsData);
848             }
849
850             else if (dataStruct.CallCtrlCnfType == SatCallType.Ussd)
851             {
852                 data.Ussd = ConvertSatTextInfoStruct(dataStruct.CallCtrlIndData.CallCtrlCnfUssdData.UssdString);
853             }
854
855             return data;
856         }
857
858         internal static SatDataCodingScheme ConvertSatDataCodingSchemeStruct(SatDataCodingSchemeStruct dataStruct)
859         {
860             SatDataCodingScheme codingScheme = new SatDataCodingScheme();
861             if (dataStruct.IsCompressedFormat == 1)
862             {
863                 codingScheme.IsCompressed = true;
864             }
865
866             else if (dataStruct.IsCompressedFormat == 0)
867             {
868                 codingScheme.IsCompressed = false;
869             }
870
871             codingScheme.Alphabet = dataStruct.AlphabetFormat;
872             codingScheme.Msg = dataStruct.MsgClass;
873             codingScheme.Dcs = dataStruct.RawDcs;
874             return codingScheme;
875         }
876
877         internal static SatTextTypeInfo ConvertSatTextTypeInfoStruct(SatTextTypeInfoStruct infoStruct)
878         {
879             SatTextTypeInfo info = new SatTextTypeInfo();
880             if (infoStruct.IsDigitOnly == 1)
881             {
882                 info.IsDigit = true;
883             }
884
885             else if (infoStruct.IsDigitOnly == 0)
886             {
887                 info.IsDigit = false;
888             }
889
890             info.CodingScheme = ConvertSatDataCodingSchemeStruct(infoStruct.Dcs);
891             info.StringLen = infoStruct.StringLength;
892             info.Text = infoStruct.TextString;
893             return info;
894         }
895
896         internal static SatMoSmsCtrlData ConvertSatMoSmsCtrlDataStruct(SatMoSmsCtrlDataStruct dataStruct)
897         {
898             SatMoSmsCtrlData data = new SatMoSmsCtrlData();
899             data.Result = dataStruct.Result;
900             if (dataStruct.IsUserInfoDisplayEnabled == 1)
901             {
902                 data.IsUserInfo = true;
903             }
904
905             else if (dataStruct.IsUserInfoDisplayEnabled == 0)
906             {
907                 data.IsUserInfo = false;
908             }
909
910             data.Data = ConvertSatTextTypeInfoStruct(dataStruct.DisplayData);
911             data.RpAddr = ConvertSatTextTypeInfoStruct(dataStruct.RpDestAddr);
912             data.TpAddr = ConvertSatTextTypeInfoStruct(dataStruct.TpDestAddr);
913             return data;
914         }
915
916         internal static SatSetupCallData ConvertSatSetupCallDataStruct(SatSetupCallDataStruct dataStruct)
917         {
918             SatSetupCallData callData = new SatSetupCallData();
919             callData.Id = dataStruct.CommandId;
920             callData.Type = dataStruct.CallType;
921             callData.Text = ConvertSatTextInfoStruct(dataStruct.DisplayText);
922             callData.Number = ConvertSatTextInfoStruct(dataStruct.CallNumber);
923             callData.Duratn = dataStruct.Duration;
924             callData.IcnId = ConvertSatIconIdentifierStruct(dataStruct.IconId);
925             return callData;
926         }
927
928         internal static SatSendSsData ConvertSatSendSsDataStruct(SatSendSsDataStruct dataStruct)
929         {
930             SatSendSsData ssData = new SatSendSsData();
931             ssData.Id = dataStruct.CommandId;
932             ssData.NumType = dataStruct.Ton;
933             ssData.Identity = dataStruct.Npi;
934             ssData.StringLen = dataStruct.StringLength;
935             ssData.Ss = dataStruct.SsString;
936             return ssData;
937         }
938
939         internal static SatSetupUssdData ConvertSatSetupUssdDataStruct(SatSetupUssdDataStruct ussdStruct)
940         {
941             SatSetupUssdData ussdData = new SatSetupUssdData();
942             ussdData.Id = ussdStruct.CommandId;
943             ussdData.Dcs = ussdStruct.RawDcs;
944             ussdData.StringLen = ussdStruct.UssdStringLength;
945             ussdData.Ussd = ussdStruct.UssdString;
946             return ussdData;
947         }
948     }
949 }