diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyutils/etel3rdpartyapi/src/TelephonyFuncSupplServices.cpp --- a/telephonyutils/etel3rdpartyapi/src/TelephonyFuncSupplServices.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyutils/etel3rdpartyapi/src/TelephonyFuncSupplServices.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,282 +1,282 @@ -/* -* Copyright (c) 2009 Sony Ericsson Mobile Communications AB -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Sony Ericsson Mobile Communications AB - initial contribution. -* Nokia Corporation - additional changes. -* -* Contributors: -* -* Description: -* Code for CTelephonyFunctions class, used by CTelephony class. -* -*/ - - -/** - @file -*/ - -#include -#include "TelephonyFunctions.h" -#include "TelephonyActSupplServices.h" - -TInt CTelephonyFunctions::GetCFSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallForwardingCondition aCondition, TDes8& aDes,const CTelephony::TServiceGroup aServiceGroup) -/** -Initiate async request to interrogate the call forwarding status for a specified service group and condition. -*/ - { - if(IsRequestPending(EGetCFSupplServicesStatus)!=EFalse) - { - return KErrInUse; - } - else - { - SetRequestPending(CTelephonyFunctions::EGetCFSupplServicesStatus, ETrue); - } - - if(IsFlightModeOn()) - { - return KErrAccessDenied; - } - - iReqStatusTable[EGetCFSupplServicesStatus] = &aRequestStatus; - - if(!iGetCFSupplementaryServiceStatus) - { - iGetCFSupplementaryServiceStatus = CGetSupplementaryServiceStatusAct::NewL(this); - } - - return iGetCFSupplementaryServiceStatus->GetCFSupplementaryServiceStatus(aCondition, aDes, aServiceGroup); - } - -EXPORT_C void CTelephony::GetCallBarringStatus(TRequestStatus& aRequestStatus, const TCallBarringCondition aCondition, TDes8& aDes, const TServiceGroup aServiceGroup) const -/** -Interrogate the current status of the call barring services. - -Specify the condition for enquiry via the aCondition argument. -Upon successful completion the status information is returned via the aSSInfo argument. -Support is available only for the voice line. - -This functionality is not available when the phone is in "flight" mode. - -@param aRequestStatus Returns the result code after the asynchronous call completes. Pass CTelephony::CancelAsync() CTelephony::EGetCallBarringStatusCancel to cancel. - -@param aCondition Call barring condition to be interrogated. -@param aDes Contains a CTelephony::TCallBarringSupplServicesV1Pckg, a packaged version of the CTelephony::TCallBarringSupplServicesV1 class which is filled on completion. -@param aServiceGroup Service group to be interrogated. - -@capability ReadDeviceData -@capability NetworkServices -*/ - { - TRequestStatus* reqStatusPtr = &aRequestStatus; - - __ASSERT_ALWAYS(aRequestStatus != KRequestPending, - User::Panic(KTelephonyCategory, KTelephonyPanicIllegalReuse) ); - - aRequestStatus = KRequestPending; - TInt rc=KErrInUse; - - TRAPD(leaveCode, rc=iTelephonyFunctions->GetCBSupplementaryServiceStatusL(aRequestStatus, aCondition, aDes, aServiceGroup)); - - if(leaveCode != KErrNone) - { - iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCBSupplServicesStatus, EFalse); - User::RequestComplete(reqStatusPtr, leaveCode); - } - else if (rc != KErrNone) - { - if(rc != KErrInUse) //this means request already pending, so do not reset - { - iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCBSupplServicesStatus, EFalse); - } - User::RequestComplete(reqStatusPtr, rc); - } - } - -TInt CTelephonyFunctions::GetCBSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallBarringCondition aCondition, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup) -/** -Initiate async request to interrogate the call barring status for a specified service group and condition. -*/ - { - if(IsRequestPending(EGetCBSupplServicesStatus)!=EFalse) - { - return KErrInUse; - } - else - { - SetRequestPending(CTelephonyFunctions::EGetCBSupplServicesStatus, ETrue); - } - - if(IsFlightModeOn()) - { - return KErrAccessDenied; - } - - iReqStatusTable[EGetCBSupplServicesStatus] = &aRequestStatus; - - if(!iGetCBSupplementaryServiceStatus) - { - iGetCBSupplementaryServiceStatus = CGetSupplementaryServiceStatusAct::NewL(this); - } - - return iGetCBSupplementaryServiceStatus->GetCBSupplementaryServiceStatus(aCondition, aDes, aServiceGroup); - } - -EXPORT_C void CTelephony::GetCallWaitingStatus(TRequestStatus& aRequestStatus, TDes8& aDes, const TServiceGroup aServiceGroup) const -/** -Interrogate the current status of the call waiting services. - -Upon successful completion the status information is returned via the aSSInfo argument. -Support is available only for the voice line. - -This functionality is not available when the phone is in "flight" mode. - -@param aRequestStatus Returns the result code after the asynchronous call completes. Pass CCTelephony::ancelAsync() CTelephony::EGetCallWaitingStatusCancel to cancel. -@param aDes Contains a CTelephony::TCallWaitingSupplServicesV1Pckg, a packaged version of the CTelephony::TCallWaitingSupplServicesV1 class which is filled on completion. -@param aServiceGroup Service group to be interrogated. - -@capability ReadDeviceData -@capability NetworkServices -*/ - { - TRequestStatus* reqStatusPtr = &aRequestStatus; - - __ASSERT_ALWAYS(aRequestStatus != KRequestPending, - User::Panic(KTelephonyCategory, KTelephonyPanicIllegalReuse) ); - - aRequestStatus = KRequestPending; - TInt rc=KErrInUse; - - TRAPD(leaveCode, rc=iTelephonyFunctions->GetCWSupplementaryServiceStatusL(aRequestStatus, aDes, aServiceGroup)); - - if(leaveCode != KErrNone) - { - iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCWSupplServicesStatus, EFalse); - User::RequestComplete(reqStatusPtr, leaveCode); - } - else if (rc != KErrNone) - { - if(rc != KErrInUse) //this means request already pending, so do not reset - { - iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCWSupplServicesStatus, EFalse); - } - User::RequestComplete(reqStatusPtr, rc); - } - } - -TInt CTelephonyFunctions::GetCWSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup) -/** -Initiate async request to interrogate the call waiting status for a specified service group. -*/ - { - if(IsRequestPending(EGetCWSupplServicesStatus)!=EFalse) - { - return KErrInUse; - } - else - { - SetRequestPending(CTelephonyFunctions::EGetCWSupplServicesStatus, ETrue); - } - - if(IsFlightModeOn()) - { - return KErrAccessDenied; - } - - iReqStatusTable[EGetCWSupplServicesStatus] = &aRequestStatus; - - if(!iGetCWSupplementaryServiceStatus) - { - iGetCWSupplementaryServiceStatus = CGetSupplementaryServiceStatusAct::NewL(this); - } - - return iGetCWSupplementaryServiceStatus->GetCWSupplementaryServiceStatus(aDes, aServiceGroup); - } - -EXPORT_C CTelephony::TIdentityServiceV1::TIdentityServiceV1() -/** -Default constructor. -*/ - { - iVersionId=KEtelISVV1; - } - -EXPORT_C void CTelephony::GetIdentityServiceStatus(TRequestStatus& aRequestStatus, const CTelephony::TIdentityService& aService, TDes8& aStatus) const -/** -Interrogate the current status of the identity services. - -Specify the service for enquiry via the aService argument. -Upon successful completion the service status is returned via the aStatus argument. - -This functionality is not available when the phone is in "flight" mode. - -Note: This information is only available on GSM/WCDMA networks. - -@param aRequestStatus Returns the result code after the asynchronous call completes. Pass CTelephony::CancelAsync() CTelephony::EGetIdentityServiceStatusCancel to cancel. -@param aService -@param aStatus Contains a CTelephony::TIdentityServiceV1Pckg, a packaged version of the CTelephony::TIdentityServiceV1 class which is filled on completion. - -@capability None -*/ - { - TRequestStatus* reqStatusPtr = &aRequestStatus; - - __ASSERT_ALWAYS(aRequestStatus != KRequestPending, - User::Panic(KTelephonyCategory, KTelephonyPanicIllegalReuse) ); - - aRequestStatus = KRequestPending; - TInt rc=KErrInUse; - - TRAPD(leaveCode, rc=iTelephonyFunctions->GetIdentityServiceStatusL(aRequestStatus, aService, aStatus)); - - if(leaveCode != KErrNone) - { - iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetIdentityServiceStatus, EFalse); - User::RequestComplete(reqStatusPtr, leaveCode); - } - else if (rc != KErrNone) - { - if(rc != KErrInUse) //this means request already pending, so do not reset - { - iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetIdentityServiceStatus, EFalse); - } - User::RequestComplete(reqStatusPtr, rc); - } - } - -TInt CTelephonyFunctions::GetIdentityServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TIdentityService& aService, TDes8& aStatus) -/** -Initiate async request to retrieve the identity service status. -*/ - { - if(IsRequestPending(EGetIdentityServiceStatus)!=EFalse) - { - return KErrInUse; - } - else - { - SetRequestPending(CTelephonyFunctions::EGetIdentityServiceStatus, ETrue); - } - - if(IsFlightModeOn()) - { - return KErrAccessDenied; - } - - iReqStatusTable[EGetIdentityServiceStatus] = &aRequestStatus; - - if(!iGetIdentityServiceStatus) - iGetIdentityServiceStatus = CGetIdentityServiceStatusAct::NewL(this); - - iGetIdentityServiceStatus->GetIdentityServiceStatus(aService, aStatus); - - return KErrNone; - } - +/* +* Copyright (c) 2009 Sony Ericsson Mobile Communications AB +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Sony Ericsson Mobile Communications AB - initial contribution. +* Nokia Corporation - additional changes. +* +* Contributors: +* +* Description: +* Code for CTelephonyFunctions class, used by CTelephony class. +* +*/ + + +/** + @file +*/ + +#include +#include "TelephonyFunctions.h" +#include "TelephonyActSupplServices.h" + +TInt CTelephonyFunctions::GetCFSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallForwardingCondition aCondition, TDes8& aDes,const CTelephony::TServiceGroup aServiceGroup) +/** +Initiate async request to interrogate the call forwarding status for a specified service group and condition. +*/ + { + if(IsRequestPending(EGetCFSupplServicesStatus)!=EFalse) + { + return KErrInUse; + } + else + { + SetRequestPending(CTelephonyFunctions::EGetCFSupplServicesStatus, ETrue); + } + + if(IsFlightModeOn()) + { + return KErrAccessDenied; + } + + iReqStatusTable[EGetCFSupplServicesStatus] = &aRequestStatus; + + if(!iGetCFSupplementaryServiceStatus) + { + iGetCFSupplementaryServiceStatus = CGetSupplementaryServiceStatusAct::NewL(this); + } + + return iGetCFSupplementaryServiceStatus->GetCFSupplementaryServiceStatus(aCondition, aDes, aServiceGroup); + } + +EXPORT_C void CTelephony::GetCallBarringStatus(TRequestStatus& aRequestStatus, const TCallBarringCondition aCondition, TDes8& aDes, const TServiceGroup aServiceGroup) const +/** +Interrogate the current status of the call barring services. + +Specify the condition for enquiry via the aCondition argument. +Upon successful completion the status information is returned via the aSSInfo argument. +Support is available only for the voice line. + +This functionality is not available when the phone is in "flight" mode. + +@param aRequestStatus Returns the result code after the asynchronous call completes. Pass CTelephony::CancelAsync() CTelephony::EGetCallBarringStatusCancel to cancel. + +@param aCondition Call barring condition to be interrogated. +@param aDes Contains a CTelephony::TCallBarringSupplServicesV1Pckg, a packaged version of the CTelephony::TCallBarringSupplServicesV1 class which is filled on completion. +@param aServiceGroup Service group to be interrogated. + +@capability ReadDeviceData +@capability NetworkServices +*/ + { + TRequestStatus* reqStatusPtr = &aRequestStatus; + + __ASSERT_ALWAYS(aRequestStatus != KRequestPending, + User::Panic(KTelephonyCategory, KTelephonyPanicIllegalReuse) ); + + aRequestStatus = KRequestPending; + TInt rc=KErrInUse; + + TRAPD(leaveCode, rc=iTelephonyFunctions->GetCBSupplementaryServiceStatusL(aRequestStatus, aCondition, aDes, aServiceGroup)); + + if(leaveCode != KErrNone) + { + iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCBSupplServicesStatus, EFalse); + User::RequestComplete(reqStatusPtr, leaveCode); + } + else if (rc != KErrNone) + { + if(rc != KErrInUse) //this means request already pending, so do not reset + { + iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCBSupplServicesStatus, EFalse); + } + User::RequestComplete(reqStatusPtr, rc); + } + } + +TInt CTelephonyFunctions::GetCBSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallBarringCondition aCondition, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup) +/** +Initiate async request to interrogate the call barring status for a specified service group and condition. +*/ + { + if(IsRequestPending(EGetCBSupplServicesStatus)!=EFalse) + { + return KErrInUse; + } + else + { + SetRequestPending(CTelephonyFunctions::EGetCBSupplServicesStatus, ETrue); + } + + if(IsFlightModeOn()) + { + return KErrAccessDenied; + } + + iReqStatusTable[EGetCBSupplServicesStatus] = &aRequestStatus; + + if(!iGetCBSupplementaryServiceStatus) + { + iGetCBSupplementaryServiceStatus = CGetSupplementaryServiceStatusAct::NewL(this); + } + + return iGetCBSupplementaryServiceStatus->GetCBSupplementaryServiceStatus(aCondition, aDes, aServiceGroup); + } + +EXPORT_C void CTelephony::GetCallWaitingStatus(TRequestStatus& aRequestStatus, TDes8& aDes, const TServiceGroup aServiceGroup) const +/** +Interrogate the current status of the call waiting services. + +Upon successful completion the status information is returned via the aSSInfo argument. +Support is available only for the voice line. + +This functionality is not available when the phone is in "flight" mode. + +@param aRequestStatus Returns the result code after the asynchronous call completes. Pass CCTelephony::ancelAsync() CTelephony::EGetCallWaitingStatusCancel to cancel. +@param aDes Contains a CTelephony::TCallWaitingSupplServicesV1Pckg, a packaged version of the CTelephony::TCallWaitingSupplServicesV1 class which is filled on completion. +@param aServiceGroup Service group to be interrogated. + +@capability ReadDeviceData +@capability NetworkServices +*/ + { + TRequestStatus* reqStatusPtr = &aRequestStatus; + + __ASSERT_ALWAYS(aRequestStatus != KRequestPending, + User::Panic(KTelephonyCategory, KTelephonyPanicIllegalReuse) ); + + aRequestStatus = KRequestPending; + TInt rc=KErrInUse; + + TRAPD(leaveCode, rc=iTelephonyFunctions->GetCWSupplementaryServiceStatusL(aRequestStatus, aDes, aServiceGroup)); + + if(leaveCode != KErrNone) + { + iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCWSupplServicesStatus, EFalse); + User::RequestComplete(reqStatusPtr, leaveCode); + } + else if (rc != KErrNone) + { + if(rc != KErrInUse) //this means request already pending, so do not reset + { + iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetCWSupplServicesStatus, EFalse); + } + User::RequestComplete(reqStatusPtr, rc); + } + } + +TInt CTelephonyFunctions::GetCWSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup) +/** +Initiate async request to interrogate the call waiting status for a specified service group. +*/ + { + if(IsRequestPending(EGetCWSupplServicesStatus)!=EFalse) + { + return KErrInUse; + } + else + { + SetRequestPending(CTelephonyFunctions::EGetCWSupplServicesStatus, ETrue); + } + + if(IsFlightModeOn()) + { + return KErrAccessDenied; + } + + iReqStatusTable[EGetCWSupplServicesStatus] = &aRequestStatus; + + if(!iGetCWSupplementaryServiceStatus) + { + iGetCWSupplementaryServiceStatus = CGetSupplementaryServiceStatusAct::NewL(this); + } + + return iGetCWSupplementaryServiceStatus->GetCWSupplementaryServiceStatus(aDes, aServiceGroup); + } + +EXPORT_C CTelephony::TIdentityServiceV1::TIdentityServiceV1() +/** +Default constructor. +*/ + { + iVersionId=KEtelISVV1; + } + +EXPORT_C void CTelephony::GetIdentityServiceStatus(TRequestStatus& aRequestStatus, const CTelephony::TIdentityService& aService, TDes8& aStatus) const +/** +Interrogate the current status of the identity services. + +Specify the service for enquiry via the aService argument. +Upon successful completion the service status is returned via the aStatus argument. + +This functionality is not available when the phone is in "flight" mode. + +Note: This information is only available on GSM/WCDMA networks. + +@param aRequestStatus Returns the result code after the asynchronous call completes. Pass CTelephony::CancelAsync() CTelephony::EGetIdentityServiceStatusCancel to cancel. +@param aService +@param aStatus Contains a CTelephony::TIdentityServiceV1Pckg, a packaged version of the CTelephony::TIdentityServiceV1 class which is filled on completion. + +@capability None +*/ + { + TRequestStatus* reqStatusPtr = &aRequestStatus; + + __ASSERT_ALWAYS(aRequestStatus != KRequestPending, + User::Panic(KTelephonyCategory, KTelephonyPanicIllegalReuse) ); + + aRequestStatus = KRequestPending; + TInt rc=KErrInUse; + + TRAPD(leaveCode, rc=iTelephonyFunctions->GetIdentityServiceStatusL(aRequestStatus, aService, aStatus)); + + if(leaveCode != KErrNone) + { + iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetIdentityServiceStatus, EFalse); + User::RequestComplete(reqStatusPtr, leaveCode); + } + else if (rc != KErrNone) + { + if(rc != KErrInUse) //this means request already pending, so do not reset + { + iTelephonyFunctions->SetRequestPending(CTelephonyFunctions::EGetIdentityServiceStatus, EFalse); + } + User::RequestComplete(reqStatusPtr, rc); + } + } + +TInt CTelephonyFunctions::GetIdentityServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TIdentityService& aService, TDes8& aStatus) +/** +Initiate async request to retrieve the identity service status. +*/ + { + if(IsRequestPending(EGetIdentityServiceStatus)!=EFalse) + { + return KErrInUse; + } + else + { + SetRequestPending(CTelephonyFunctions::EGetIdentityServiceStatus, ETrue); + } + + if(IsFlightModeOn()) + { + return KErrAccessDenied; + } + + iReqStatusTable[EGetIdentityServiceStatus] = &aRequestStatus; + + if(!iGetIdentityServiceStatus) + iGetIdentityServiceStatus = CGetIdentityServiceStatusAct::NewL(this); + + iGetIdentityServiceStatus->GetIdentityServiceStatus(aService, aStatus); + + return KErrNone; + } +