Release 4.0.0-preview1-00051
[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             Marshal.Copy(textStruct.DataString, textInfo.Data, 0, 501);
348             return textInfo;
349         }
350
351         internal static SatIconInfo ConvertSatIconInfoStruct(SatIconInfoStruct iconStruct)
352         {
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;
361             return iconInfo;
362         }
363
364         internal static SatIconIdInfo ConvertSatIconIdentifierStruct(SatIconIdentifierStruct idStruct)
365         {
366             SatIconIdInfo iconId = new SatIconIdInfo();
367             if (idStruct.IsPresent == 1)
368             {
369                 iconId.IsPresent = true;
370             }
371
372             else if (idStruct.IsPresent == 0)
373             {
374                 iconId.IsPresent = false;
375             }
376
377             iconId.Qualifier = idStruct.IconQualifier;
378             iconId.Id = idStruct.IconIdentifier;
379             iconId.Info = ConvertSatIconInfoStruct(idStruct.IconInfo);
380             return iconId;
381         }
382
383         internal static SatIconIdListInfo ConvertSatIconIdListStruct(SatIconIdentifierListStruct listStruct)
384         {
385             SatIconIdListInfo iconIdList = new SatIconIdListInfo();
386             if (listStruct.IsPresent == 1)
387             {
388                 iconIdList.IsPresent = true;
389             }
390
391             else if (listStruct.IsPresent == 0)
392             {
393                 iconIdList.IsPresent = false;
394             }
395
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)
401             {
402                 iconInfoList.Add(ConvertSatIconInfoStruct(info));
403             }
404
405             iconIdList.Info = iconInfoList;
406             return iconIdList;
407         }
408
409         internal static SatMainMenuInfo ConvertSatMainMenuInfoStruct(SatMainMenuInfoStruct infoStruct)
410         {
411             SatMainMenuInfo mainMenuInfo = new SatMainMenuInfo();
412             mainMenuInfo.Id = infoStruct.CommandId;
413             if (infoStruct.IsMainMenuPresent == 1)
414             {
415                 mainMenuInfo.IsPresent = true;
416             }
417
418             else if (infoStruct.IsMainMenuPresent == 0)
419             {
420                 mainMenuInfo.IsPresent = false;
421             }
422
423             mainMenuInfo.Title = infoStruct.Title;
424             List<SatMenuInfo> menuInfoList = new List<SatMenuInfo>();
425             foreach (SatMenuInfoStruct menu in infoStruct.MenuItem)
426             {
427                 SatMenuInfo menuInfo = new SatMenuInfo();
428                 menuInfo.Item = menu.Item;
429                 menuInfo.Id = menu.ItemId;
430                 menuInfoList.Add(menuInfo);
431             }
432
433             mainMenuInfo.Items = menuInfoList;
434             mainMenuInfo.Num = infoStruct.NumOfMenuItems;
435             if (infoStruct.IsMainMenuHelpInfo == 1)
436             {
437                 mainMenuInfo.IsHelpInfo = true;
438             }
439
440             else if (infoStruct.IsMainMenuHelpInfo == 0)
441             {
442                 mainMenuInfo.IsHelpInfo = false;
443             }
444
445             if (infoStruct.IsUpdatedMainMenu == 1)
446             {
447                 mainMenuInfo.IsUpdated = true;
448             }
449
450             else if (infoStruct.IsUpdatedMainMenu == 0)
451             {
452                 mainMenuInfo.IsUpdated = false;
453             }
454
455             mainMenuInfo.IcnId = ConvertSatIconIdentifierStruct(infoStruct.IconId);
456             mainMenuInfo.IdList = ConvertSatIconIdListStruct(infoStruct.IconIdList);
457             return mainMenuInfo;
458         }
459
460         internal static SatDisplayTextData ConvertSatDisplayTextStruct(SatDisplayTextStruct textStruct)
461         {
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)
467             {
468                 textData.IsPrtyHigh = true;
469             }
470
471             else if (textStruct.IsPriorityHigh == 0)
472             {
473                 textData.IsPrtyHigh = false;
474             }
475
476             if (textStruct.IsUserResponseRequired == 1)
477             {
478                 textData.IsRespRequired = true;
479             }
480
481             else if (textStruct.IsUserResponseRequired == 0)
482             {
483                 textData.IsRespRequired = false;
484             }
485
486             if (textStruct.IsImmediateResponse == 1)
487             {
488                 textData.IsImmediateResp = true;
489             }
490
491             else if (textStruct.IsImmediateResponse == 0)
492             {
493                 textData.IsImmediateResp = false;
494             }
495
496             textData.IcnId = ConvertSatIconIdentifierStruct(textStruct.IconId);
497             return textData;
498         }
499
500         internal static SatSelectItemData ConvertSatSelectItemStruct(SatSelectItemStruct itemStruct)
501         {
502             SatSelectItemData itemData = new SatSelectItemData();
503             itemData.Id = itemStruct.commandId;
504             if (itemStruct.IsHelpInfoAvailable == 1)
505             {
506                 itemData.IsHelpAvailable = true;
507             }
508
509             else if (itemStruct.IsHelpInfoAvailable == 0)
510             {
511                 itemData.IsHelpAvailable = false;
512             }
513
514             itemData.Text = ConvertSatTextInfoStruct(itemStruct.Text);
515             itemData.DefaultIndex = itemStruct.DefaultItemIndex;
516             itemData.ItemCount = itemStruct.MenuItemCount;
517
518             List<SatMenuItemInfo> items = new List<SatMenuItemInfo>();
519             foreach(SatMenuItemInfoStruct infoStruct in itemStruct.MenuItems)
520             {
521                 SatMenuItemInfo menuItem = new SatMenuItemInfo();
522                 menuItem.Id = infoStruct.ItemId;
523                 menuItem.Length = infoStruct.TextLength;
524                 menuItem.Txt = Encoding.ASCII.GetBytes(infoStruct.Text);
525                 items.Add(menuItem);
526             }
527
528             itemData.Items = items;
529             itemData.IcnId = ConvertSatIconIdentifierStruct(itemStruct.IconId);
530             itemData.IdList = ConvertSatIconIdListStruct(itemStruct.IconIdList);
531             return itemData;
532         }
533
534         internal static SatGetInKeyData ConvertSatGetInKeyStruct(SatGetInKeyStruct inKeyStruct)
535         {
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)
541             {
542                 inKeyData.IsNumericFlag = true;
543             }
544
545             else if (inKeyStruct.IsNumeric == 0)
546             {
547                 inKeyData.IsNumericFlag = false;
548             }
549
550             if (inKeyStruct.IsHelpInfoAvailable == 1)
551             {
552                 inKeyData.IsHelpAvailable = true;
553             }
554
555             else if (inKeyStruct.IsHelpInfoAvailable == 0)
556             {
557                 inKeyData.IsHelpAvailable = false;
558             }
559
560             inKeyData.Text = ConvertSatTextInfoStruct(inKeyStruct.Text);
561             inKeyData.Duratn = inKeyStruct.Duration;
562             inKeyData.IcnId = ConvertSatIconIdentifierStruct(inKeyStruct.IconId);
563             return inKeyData;
564         }
565
566         internal static SatGetInputData ConvertSatGetInputStruct(SatGetInputStruct inputStruct)
567         {
568             SatGetInputData inputData = new SatGetInputData();
569             inputData.Id = inputStruct.CommandId;
570             inputData.Type = inputStruct.Type;
571             if (inputStruct.IsNumeric == 1)
572             {
573                 inputData.IsNumericFlag = true;
574             }
575
576             else if (inputStruct.IsNumeric == 0)
577             {
578                 inputData.IsNumericFlag = false;
579             }
580
581             if (inputStruct.IsHelpInfoAvailable == 1)
582             {
583                 inputData.IsHelpAvailable = true;
584             }
585
586             else if (inputStruct.IsHelpInfoAvailable == 0)
587             {
588                 inputData.IsHelpAvailable = false;
589             }
590
591             if (inputStruct.IsEchoInput == 1)
592             {
593                 inputData.IsEcho = true;
594             }
595
596             else if (inputStruct.IsEchoInput == 0)
597             {
598                 inputData.IsEcho = false;
599             }
600
601             inputData.Text = ConvertSatTextInfoStruct(inputStruct.Text);
602
603             SatResponseLengthInfo responseLength = new SatResponseLengthInfo();
604             responseLength.Min = inputStruct.RespLength.Min;
605             responseLength.Max = inputStruct.RespLength.Max;
606
607             inputData.RespLength = responseLength;
608             inputData.Default = ConvertSatTextInfoStruct(inputStruct.DefaultText);
609             inputData.IcnId = ConvertSatIconIdentifierStruct(inputStruct.IconId);
610             return inputData;
611         }
612
613         internal static SatRefreshData ConvertSatRefreshStruct(SatRefreshStruct refreshStruct)
614         {
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)
622             {
623                 fileId.Add(id);
624             }
625             refreshData.IdList = fileId;
626             return refreshData;
627         }
628
629         internal static SatAddressData ConvertSatAddressStruct(SatAddressStruct addressStruct)
630         {
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;
636             return addressData;
637         }
638
639         internal static SatSmsTpduInfo ConvertSatSmsTpduStruct(SatSmsTpduStruct tpduStruct)
640         {
641             SatSmsTpduInfo tpduInfo = new SatSmsTpduInfo();
642             tpduInfo.Type = tpduStruct.TpduType;
643             tpduInfo.Length = tpduStruct.DataLength;
644             tpduInfo.Data = Encoding.ASCII.GetBytes(tpduStruct.Data);
645             return tpduInfo;
646         }
647
648         internal static SatSendSmsData ConvertSatSendSmsStruct(SatSendSmsStruct smsStruct)
649         {
650             SatSendSmsData smsData = new SatSendSmsData();
651             smsData.Id = smsStruct.CommandId;
652             if (smsStruct.IsPackingRequired == 1)
653             {
654                 smsData.IsPackRequired = true;
655             }
656
657             else if (smsStruct.IsPackingRequired == 0)
658             {
659                 smsData.IsPackRequired = false;
660             }
661
662             smsData.Addr = ConvertSatAddressStruct(smsStruct.Address);
663             smsData.Info = ConvertSatSmsTpduStruct(smsStruct.SmsTpdu);
664             return smsData;
665         }
666
667         internal static SatEventListData ConvertSatEventListStruct(SatEventListDataStruct listStruct)
668         {
669             SatEventListData listData = new SatEventListData();
670             if (listStruct.IsEventDownloadActive == 1)
671             {
672                 listData.IsDownloadActive = true;
673             }
674
675             else if (listStruct.IsEventDownloadActive == 0)
676             {
677                 listData.IsDownloadActive = false;
678             }
679
680             if (listStruct.IsMtCallEvent == 1)
681             {
682                 listData.IsCallEvent = true;
683             }
684
685             else if (listStruct.IsMtCallEvent == 0)
686             {
687                 listData.IsCallEvent = false;
688             }
689
690             if (listStruct.IsCallConnected == 1)
691             {
692                 listData.IsConnected = true;
693             }
694
695             else if (listStruct.IsCallConnected == 0)
696             {
697                 listData.IsConnected = false;
698             }
699
700             if (listStruct.IsCallDisconnected == 1)
701             {
702                 listData.IsDisconnected = true;
703             }
704
705             else if (listStruct.IsCallDisconnected == 0)
706             {
707                 listData.IsDisconnected = false;
708             }
709
710             if (listStruct.IsLocationStatus == 1)
711             {
712                 listData.IsStatus = true;
713             }
714
715             else if (listStruct.IsLocationStatus == 0)
716             {
717                 listData.IsStatus = false;
718             }
719
720             if (listStruct.IsUserActivity == 1)
721             {
722                 listData.IsUsrActivity = true;
723             }
724
725             else if (listStruct.IsUserActivity == 0)
726             {
727                 listData.IsUsrActivity = false;
728             }
729
730             if (listStruct.IsIdleScreenAvailable == 1)
731             {
732                 listData.IsIdleScreen = true;
733             }
734
735             else if (listStruct.IsIdleScreenAvailable == 0)
736             {
737                 listData.IsIdleScreen = false;
738             }
739
740             if (listStruct.IsCardReaderStatus == 1)
741             {
742                 listData.IsReaderStatus = true;
743             }
744
745             else if (listStruct.IsCardReaderStatus == 0)
746             {
747                 listData.IsReaderStatus = false;
748             }
749
750             if (listStruct.IsLanguageSelection == 1)
751             {
752                 listData.IsLanguageSelect = true;
753             }
754
755             else if (listStruct.IsLanguageSelection == 0)
756             {
757                 listData.IsLanguageSelect = false;
758             }
759
760             if (listStruct.IsBrowserTermination == 1)
761             {
762                 listData.IsBrowserTerminate = true;
763             }
764
765             else if (listStruct.IsBrowserTermination == 0)
766             {
767                 listData.IsBrowserTerminate = false;
768             }
769
770             if (listStruct.IsDataAvailable == 1)
771             {
772                 listData.IsDataPresent = true;
773             }
774
775             else if (listStruct.IsDataAvailable == 0)
776             {
777                 listData.IsDataPresent = false;
778             }
779
780             if (listStruct.IsChannelStatus == 1)
781             {
782                 listData.IsCnlStatus = true;
783             }
784
785             else if (listStruct.IsChannelStatus == 0)
786             {
787                 listData.IsCnlStatus = false;
788             }
789
790             return listData;
791         }
792
793         internal static SatSendDtmfData ConvertSatSendDtmfStruct(SatSendDtmfDataStruct dtmfStruct)
794         {
795             SatSendDtmfData dtmfData = new SatSendDtmfData();
796             dtmfData.Id = dtmfStruct.CommandId;
797             if (dtmfStruct.IsHiddenMode == 1)
798             {
799                 dtmfData.IsHidden = true;
800             }
801
802             else if (dtmfStruct.IsHiddenMode == 0)
803             {
804                 dtmfData.IsHidden = false;
805             }
806
807             dtmfData.Dtmf = ConvertSatTextInfoStruct(dtmfStruct.DtmfString);
808             return dtmfData;
809         }
810
811         internal static SatCallCtrlData ConvertSatCallCtrlIndCallSsDataStruct(SatCallCtrlIndCallSsDataStruct dataStruct)
812         {
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);
819             return data;
820         }
821
822         internal static SatCallCtrlConfirmData ConvertSatCallCtrlIndDataStruct(SatCallCtrlIndDataStruct dataStruct)
823         {
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)
829             {
830                 data.IsUserInfoEnabled = true;
831             }
832
833             else if (dataStruct.IsUserInfoDispEnabled == 0)
834             {
835                 data.IsUserInfoEnabled = false;
836             }
837
838             if (dataStruct.CallCtrlCnfType == SatCallType.MoVoice)
839             {
840                 data.CallData = ConvertSatCallCtrlIndCallSsDataStruct(dataStruct.CallCtrlIndData.CallCtrlCnfCallData);
841             }
842
843             else if (dataStruct.CallCtrlCnfType == SatCallType.Ss)
844             {
845                 data.SsData = ConvertSatCallCtrlIndCallSsDataStruct(dataStruct.CallCtrlIndData.CallCtrlCnfSsData);
846             }
847
848             else if (dataStruct.CallCtrlCnfType == SatCallType.Ussd)
849             {
850                 data.Ussd = ConvertSatTextInfoStruct(dataStruct.CallCtrlIndData.CallCtrlCnfUssdData.UssdString);
851             }
852
853             return data;
854         }
855
856         internal static SatDataCodingScheme ConvertSatDataCodingSchemeStruct(SatDataCodingSchemeStruct dataStruct)
857         {
858             SatDataCodingScheme codingScheme = new SatDataCodingScheme();
859             if (dataStruct.IsCompressedFormat == 1)
860             {
861                 codingScheme.IsCompressed = true;
862             }
863
864             else if (dataStruct.IsCompressedFormat == 0)
865             {
866                 codingScheme.IsCompressed = false;
867             }
868
869             codingScheme.Alphabet = dataStruct.AlphabetFormat;
870             codingScheme.Msg = dataStruct.MsgClass;
871             codingScheme.Dcs = dataStruct.RawDcs;
872             return codingScheme;
873         }
874
875         internal static SatTextTypeInfo ConvertSatTextTypeInfoStruct(SatTextTypeInfoStruct infoStruct)
876         {
877             SatTextTypeInfo info = new SatTextTypeInfo();
878             if (infoStruct.IsDigitOnly == 1)
879             {
880                 info.IsDigit = true;
881             }
882
883             else if (infoStruct.IsDigitOnly == 0)
884             {
885                 info.IsDigit = false;
886             }
887
888             info.CodingScheme = ConvertSatDataCodingSchemeStruct(infoStruct.Dcs);
889             info.StringLen = infoStruct.StringLength;
890             info.Text = infoStruct.TextString;
891             return info;
892         }
893
894         internal static SatMoSmsCtrlData ConvertSatMoSmsCtrlDataStruct(SatMoSmsCtrlDataStruct dataStruct)
895         {
896             SatMoSmsCtrlData data = new SatMoSmsCtrlData();
897             data.Result = dataStruct.Result;
898             if (dataStruct.IsUserInfoDisplayEnabled == 1)
899             {
900                 data.IsUserInfo = true;
901             }
902
903             else if (dataStruct.IsUserInfoDisplayEnabled == 0)
904             {
905                 data.IsUserInfo = false;
906             }
907
908             data.Data = ConvertSatTextTypeInfoStruct(dataStruct.DisplayData);
909             data.RpAddr = ConvertSatTextTypeInfoStruct(dataStruct.RpDestAddr);
910             data.TpAddr = ConvertSatTextTypeInfoStruct(dataStruct.TpDestAddr);
911             return data;
912         }
913
914         internal static SatSetupCallData ConvertSatSetupCallDataStruct(SatSetupCallDataStruct dataStruct)
915         {
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);
923             return callData;
924         }
925
926         internal static SatSendSsData ConvertSatSendSsDataStruct(SatSendSsDataStruct dataStruct)
927         {
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;
934             return ssData;
935         }
936
937         internal static SatSetupUssdData ConvertSatSetupUssdDataStruct(SatSetupUssdDataStruct ussdStruct)
938         {
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;
944             return ussdData;
945         }
946     }
947 }