cellular/telephonysettings/src/PSetUtility.cpp
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
equal deleted inserted replaced
-1:000000000000 0:ff3b6d0fd310
       
     1 /*
       
     2 * Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Utility class to switch between ETEL internal enumerations and
       
    15 *                codes defined in the GSM standard.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include "PSetUtility.h"
       
    22 #include <RSSSettings.h>
       
    23 #include "PhoneSettingsLogger.h"
       
    24 
       
    25 // ============================ MEMBER FUNCTIONS ===============================
       
    26 
       
    27 // ---------------------------------------------------------------------------
       
    28 // 
       
    29 // Translates given basic service code from code used in GSM standards to 
       
    30 // ETEL internal code.
       
    31 // ---------------------------------------------------------------------------
       
    32 //
       
    33 RMobilePhone::TMobileService PSetUtility::ChangeToEtelInternal( const TBasicServiceGroups& aBsc )
       
    34     {
       
    35     switch ( aBsc )
       
    36         {        
       
    37         case EAllTeleAndBearer:
       
    38             return RMobilePhone::EAllServices;
       
    39         case EAllTele:
       
    40             return RMobilePhone::EAllTele;
       
    41         case ETelephony:
       
    42             return RMobilePhone::ETelephony;
       
    43         case EAllDataTele:
       
    44             return RMobilePhone::EAllDataTele;
       
    45         case EFax:
       
    46             return RMobilePhone::EFaxService;
       
    47         case ESms:
       
    48             return RMobilePhone::EShortMessageService;
       
    49         case EAllDataExSms:
       
    50             return RMobilePhone::EAllDataExSms;
       
    51         case EAllTeleExcSms:
       
    52             return RMobilePhone::EAllTeleExcSms;
       
    53         case EAllPlmnTele:
       
    54             return RMobilePhone::EAllPlmnTele;
       
    55         case EPlmnTele1:
       
    56             return RMobilePhone::EPlmnTele1;
       
    57         case EPlmnTele2:
       
    58             return RMobilePhone::EPlmnTele2;
       
    59         case EPlmnTele3:
       
    60             return RMobilePhone::EPlmnTele3;
       
    61         case EPlmnTele4:
       
    62             return RMobilePhone::EPlmnTele4;
       
    63         case EPlmnTele5:
       
    64             return RMobilePhone::EPlmnTele5;
       
    65         case EPlmnTele6:
       
    66             return RMobilePhone::EPlmnTele6;
       
    67         case EPlmnTele7:
       
    68             return RMobilePhone::EPlmnTele7;
       
    69         case EPlmnTele8:
       
    70             return RMobilePhone::EPlmnTele8;
       
    71         case EPlmnTele9:
       
    72             return RMobilePhone::EPlmnTele9;
       
    73         case EPlmnTeleA:
       
    74             return RMobilePhone::EPlmnTeleA;
       
    75         case EPlmnTeleB:
       
    76             return RMobilePhone::EPlmnTeleB;
       
    77         case EPlmnTeleC:
       
    78             return RMobilePhone::EPlmnTeleC;
       
    79         case EPlmnTeleD:
       
    80             return RMobilePhone::EPlmnTeleD;
       
    81         case EPlmnTeleE:
       
    82             return RMobilePhone::EPlmnTeleE;
       
    83         case EPlmnTeleF:
       
    84             return RMobilePhone::EPlmnTeleF;
       
    85         case EAllBearer:
       
    86             return RMobilePhone::EAllBearer;
       
    87         case EAllAsync:
       
    88             return RMobilePhone::EAllAsync;
       
    89         case EAllSync:
       
    90             return RMobilePhone::EAllSync;
       
    91         case ESyncData:
       
    92             return RMobilePhone::ESyncData;
       
    93         case EAsyncData:
       
    94             return RMobilePhone::EAsyncData;
       
    95         case EPacketData:
       
    96             return RMobilePhone::EPacketDataService;
       
    97         case EPadAccess:
       
    98             return RMobilePhone::EPadAccess;
       
    99         case EAllPlmnBearer:
       
   100             return RMobilePhone::EAllPlmnBearer;
       
   101         case EPlmnBearerServ1:
       
   102             return RMobilePhone::EPlmnBearerServ1;
       
   103         case EPlmnBearerServ2:
       
   104             return RMobilePhone::EPlmnBearerServ2;
       
   105         case EPlmnBearerServ3:
       
   106             return RMobilePhone::EPlmnBearerServ3;
       
   107         case EPlmnBearerServ4:
       
   108             return RMobilePhone::EPlmnBearerServ4;
       
   109         case EPlmnBearerServ5:
       
   110             return RMobilePhone::EPlmnBearerServ5;
       
   111         case EPlmnBearerServ6:
       
   112             return RMobilePhone::EPlmnBearerServ6;
       
   113         case EPlmnBearerServ7:
       
   114             return RMobilePhone::EPlmnBearerServ7;
       
   115         case EPlmnBearerServ8:
       
   116             return RMobilePhone::EPlmnBearerServ8;
       
   117         case EPlmnBearerServ9:
       
   118             return RMobilePhone::EPlmnBearerServ9;
       
   119         case EPlmnBearerServA:
       
   120             return RMobilePhone::EPlmnBearerServA;
       
   121         case EPlmnBearerServB:
       
   122             return RMobilePhone::EPlmnBearerServB;
       
   123         case EPlmnBearerServC:
       
   124             return RMobilePhone::EPlmnBearerServC;
       
   125         case EPlmnBearerServD:
       
   126             return RMobilePhone::EPlmnBearerServD;
       
   127         case EPlmnBearerServE:
       
   128             return RMobilePhone::EPlmnBearerServE;
       
   129         case EPlmnBearerServF:
       
   130             return RMobilePhone::EPlmnBearerServF;
       
   131         case EAltTele:
       
   132             return RMobilePhone::EAuxVoiceService;
       
   133         case EUnknown:
       
   134         default:
       
   135             return RMobilePhone::EServiceUnspecified;
       
   136         }
       
   137     }
       
   138 
       
   139 // ---------------------------------------------------------------------------
       
   140 // 
       
   141 // Translates given basic service code from ETEL internal code to 
       
   142 // the ones used in GSM standards.
       
   143 // ---------------------------------------------------------------------------
       
   144 //
       
   145 TBasicServiceGroups PSetUtility::ChangeToGSM( const RMobilePhone::TMobileService& aBsc )
       
   146     {
       
   147     switch ( aBsc )
       
   148         {               
       
   149         case RMobilePhone::EAllServices:
       
   150             return EAllTeleAndBearer;
       
   151         case RMobilePhone::EAllTele:
       
   152             return EAllTele;
       
   153         case RMobilePhone::EVoiceService:
       
   154         case RMobilePhone::ETelephony:
       
   155             return ETelephony;
       
   156         case RMobilePhone::EAllDataTele:
       
   157             return EAllDataTele;
       
   158         case RMobilePhone::EFaxService:
       
   159             return EFax;
       
   160         case RMobilePhone::EShortMessageService:
       
   161             return ESms;
       
   162         case RMobilePhone::EAllDataExSms:
       
   163             return EAllDataExSms;
       
   164         case RMobilePhone::EAllTeleExcSms:
       
   165             return EAllTeleExcSms;
       
   166         case RMobilePhone::EAllPlmnTele:
       
   167             return EAllPlmnTele;
       
   168         case RMobilePhone::EPlmnTele1:
       
   169             return EPlmnTele1;
       
   170         case RMobilePhone::EPlmnTele2:
       
   171             return EPlmnTele2;
       
   172         case RMobilePhone::EPlmnTele3:
       
   173             return EPlmnTele3;
       
   174         case RMobilePhone::EPlmnTele4:
       
   175             return EPlmnTele4;
       
   176         case RMobilePhone::EPlmnTele5:
       
   177             return EPlmnTele5;
       
   178         case RMobilePhone::EPlmnTele6:
       
   179             return EPlmnTele6;
       
   180         case RMobilePhone::EPlmnTele7:
       
   181             return EPlmnTele7;
       
   182         case RMobilePhone::EPlmnTele8:
       
   183             return EPlmnTele8;
       
   184         case RMobilePhone::EPlmnTele9:
       
   185             return EPlmnTele9;
       
   186         case RMobilePhone::EPlmnTeleA:
       
   187             return EPlmnTeleA;
       
   188         case RMobilePhone::EPlmnTeleB:
       
   189             return EPlmnTeleB;
       
   190         case RMobilePhone::EPlmnTeleC:
       
   191             return EPlmnTeleC;
       
   192         case RMobilePhone::EPlmnTeleD:
       
   193             return EPlmnTeleD;
       
   194         case RMobilePhone::EPlmnTeleE:
       
   195             return EPlmnTeleE;
       
   196         case RMobilePhone::EPlmnTeleF:
       
   197             return EPlmnTeleF;
       
   198         case RMobilePhone::EAllBearer:
       
   199             return EAllBearer;
       
   200         case RMobilePhone::ECircuitDataService:
       
   201         case RMobilePhone::EAllAsync:
       
   202             return EAllAsync;
       
   203         case RMobilePhone::EAllSync:
       
   204             return EAllSync;
       
   205         case RMobilePhone::ESyncData:
       
   206             return ESyncData;        
       
   207         case RMobilePhone::EAsyncData:
       
   208             return EAsyncData;
       
   209         case RMobilePhone::EPacketDataService:
       
   210         case RMobilePhone::EPacketData:
       
   211             return EPacketData;
       
   212         case RMobilePhone::EPadAccess:
       
   213             return EPadAccess;
       
   214         case RMobilePhone::EAllPlmnBearer:
       
   215             return EAllPlmnBearer;
       
   216         case RMobilePhone::EPlmnBearerServ1:
       
   217             return EPlmnBearerServ1;
       
   218         case RMobilePhone::EPlmnBearerServ2:
       
   219             return EPlmnBearerServ2;
       
   220         case RMobilePhone::EPlmnBearerServ3:
       
   221             return EPlmnBearerServ3;
       
   222         case RMobilePhone::EPlmnBearerServ4:
       
   223             return EPlmnBearerServ4;
       
   224         case RMobilePhone::EPlmnBearerServ5:
       
   225             return EPlmnBearerServ5;
       
   226         case RMobilePhone::EPlmnBearerServ6:
       
   227             return EPlmnBearerServ6;
       
   228         case RMobilePhone::EPlmnBearerServ7:
       
   229             return EPlmnBearerServ7;
       
   230         case RMobilePhone::EPlmnBearerServ8:
       
   231             return EPlmnBearerServ8;
       
   232         case RMobilePhone::EPlmnBearerServ9:
       
   233             return EPlmnBearerServ9;
       
   234         case RMobilePhone::EPlmnBearerServA:
       
   235             return EPlmnBearerServA;
       
   236         case RMobilePhone::EPlmnBearerServB:
       
   237             return EPlmnBearerServB;
       
   238         case RMobilePhone::EPlmnBearerServC:
       
   239             return EPlmnBearerServC;
       
   240         case RMobilePhone::EPlmnBearerServD:
       
   241             return EPlmnBearerServD;
       
   242         case RMobilePhone::EPlmnBearerServE:
       
   243             return EPlmnBearerServE;
       
   244         case RMobilePhone::EPlmnBearerServF:
       
   245             return EPlmnBearerServF;
       
   246         case RMobilePhone::EAuxVoiceService:
       
   247         case RMobilePhone::EAltTele:
       
   248             return EAltTele;
       
   249         case RMobilePhone::EServiceUnspecified:
       
   250         default:
       
   251             return EUnknown;
       
   252         }
       
   253     }
       
   254 
       
   255 // ---------------------------------------------------------------------------
       
   256 // Returns change information status, status is provided as TDivertingStatus,
       
   257 // not as TSY's MAdvGsmLineForwarding enumeration.
       
   258 // 
       
   259 // ---------------------------------------------------------------------------
       
   260 //
       
   261 TDivertingStatus PSetUtility::GetChangeInfoStatus( 
       
   262     RMobilePhone::TMobilePhoneServiceAction& aAction )
       
   263     {
       
   264     switch ( aAction )
       
   265         {
       
   266         /*****************************************************
       
   267         *    Series 60 Customer / ETel
       
   268         *    Series 60  ETel API
       
   269         *****************************************************/
       
   270         case RMobilePhone::EServiceActionActivate:
       
   271         case RMobilePhone::EServiceActionRegister:
       
   272             return EDivertingStatusActive;
       
   273         case RMobilePhone::EServiceActionDeactivate:
       
   274             return EDivertingStatusInactive;
       
   275         case RMobilePhone::EServiceActionErase:
       
   276             return EDivertingStatusNotRegistered;
       
   277         default:
       
   278             return EDivertingStatusUnknown;
       
   279         }
       
   280     }
       
   281 
       
   282 // ---------------------------------------------------------------------------
       
   283 // 
       
   284 // Returns divert reason, reason is provided as TSY's TCallForwardingReasonGet.
       
   285 // 
       
   286 // ---------------------------------------------------------------------------
       
   287 //
       
   288 RMobilePhone::TMobilePhoneCFCondition PSetUtility::GetDivertReason(
       
   289   TCallDivertingCondition aCondition )
       
   290     {
       
   291     switch ( aCondition )
       
   292         {
       
   293         /*****************************************************
       
   294         *    Series 60 Customer / ETel
       
   295         *    Series 60  ETel API
       
   296         *****************************************************/
       
   297         case EDivertConditionAllConditionalCases:
       
   298             return RMobilePhone::ECallForwardingAllConditionalCases;
       
   299         case EDivertConditionAllCalls:
       
   300             return RMobilePhone::ECallForwardingAllCases;
       
   301         case EDivertConditionUnconditional:
       
   302             return RMobilePhone::ECallForwardingUnconditional;
       
   303         case EDivertConditionBusy:
       
   304            return RMobilePhone::ECallForwardingBusy;
       
   305         case EDivertConditionNoReply:
       
   306             return RMobilePhone::ECallForwardingNoReply;
       
   307         case EDivertConditionNotReachable:
       
   308            return RMobilePhone::ECallForwardingNotReachable;
       
   309         default:
       
   310             return RMobilePhone::ECallForwardingUnspecified;
       
   311         }
       
   312     }
       
   313 
       
   314 // ---------------------------------------------------------------------------
       
   315 // Verify that ALS is really used.
       
   316 // ---------------------------------------------------------------------------
       
   317 //
       
   318 RMobilePhone::TMobileService PSetUtility::VerifyAltLineUseL()
       
   319     {
       
   320     __PHSLOGSTRING("[PHS]--> PSetUtility::VerifyAltLineUseL");
       
   321     RSSSettings* ssSettings = new (ELeave) RSSSettings;
       
   322     CleanupStack::PushL( ssSettings );
       
   323     TInt usedLine;
       
   324     User::LeaveIfError( ssSettings->Open() );
       
   325     User::LeaveIfError( ssSettings->Get( ESSSettingsAls, usedLine ) );
       
   326     __PHSLOGSTRING1("[PHS]    PSetUtility::VerifyAltLineUseL: usedLine: %d", usedLine );
       
   327 
       
   328     if ( usedLine == ESSSettingsAlsNotSupported )
       
   329         {
       
   330         User::Leave( KErrNotSupported );
       
   331         }
       
   332     ssSettings->Close();
       
   333     CleanupStack::PopAndDestroy();
       
   334     /*****************************************************
       
   335     *    Series 60 Customer / ETel
       
   336     *    Series 60  ETel API
       
   337     *****************************************************/
       
   338     __PHSLOGSTRING("[PHS] <--PSetUtility::VerifyAltLineUseL");
       
   339 
       
   340     return RMobilePhone::EAuxVoiceService;
       
   341     }
       
   342     
       
   343 //  End of File