diff -r 41a7f70b3818 -r 5266b1f337bd phoneengine/phonemodel/src/cpeexternaldatahandler.cpp --- a/phoneengine/phonemodel/src/cpeexternaldatahandler.cpp Tue Aug 31 15:14:29 2010 +0300 +++ b/phoneengine/phonemodel/src/cpeexternaldatahandler.cpp Wed Sep 01 12:30:10 2010 +0100 @@ -18,7 +18,6 @@ // INCLUDE FILES -#include "penetworkhandler.h" #include "cpeexternaldatahandler.h" #include "mpephonemodelinternal.h" #include @@ -32,6 +31,10 @@ #include #include + +// CONSTANTS +const TInt KPrefixLength = 10; + CPEExternalDataHandler* CPEExternalDataHandler::NewL( MPEPhoneModelInternal& aModel ) { CPEExternalDataHandler* self = new ( ELeave ) CPEExternalDataHandler( *aModel.DataStore() ); @@ -61,13 +64,14 @@ delete iTelephonyVariationRepository; delete iTelephonySettingsRepository; delete iProfileSettings; - delete iNetworkRegistrationStatus; + delete iNetworkRegistrationStatus; + delete iLoudspeakerVolumeSetting; + delete iEarVolumeSetting; delete iCallDurationDisplay; delete iAudioOutputPreferenceMonitor; delete iAccessorySettingsRepository; delete iAccessoryModeMonitor; delete iCoreApplicationRepository; - delete iNetworkHandler; } // ----------------------------------------------------------------------------- @@ -81,23 +85,19 @@ TEFLOGSTRING( KTAOBJECT, "PE CPEExternalDataHandler::BaseConstructL" ); // Instantiate monitor objects - iAudioOutputPreferenceMonitor = CPEAudioOutputPreferenceMonitor::NewL( aModel ); - iCallDurationDisplay = CPECallDurationDisplaySettingMonitor::NewL(); + iAudioOutputPreferenceMonitor = CPEAudioOutputPreferenceMonitor::NewL( aModel ); + iCallDurationDisplay = CPECallDurationDisplaySettingMonitor::NewL(); + iEarVolumeSetting = CPEIncallEarVolumeSettingMonitor::NewL( aModel ); + iLoudspeakerVolumeSetting = CPEIncallLoudspeakerVolumeSettingMonitor::NewL( aModel ); + iNetworkRegistrationStatus = CPENetworkRegistrationStatusMonitor::NewL( aModel ); iProfileSettings = CPEProfileSettingMonitor::NewL( aModel ); - - iNetworkHandler = new PeNetworkHandler(aModel); - //TODO - /* - iNetworkRegistrationStatus = CPENetworkRegistrationStatusMonitor::NewL( aModel ); iAccessoryModeMonitor = CPEAccessoryModeMonitor::NewL(); // Instantiate repository objects for later use - iAccessorySettingsRepository = CRepository::NewL( KCRUidAccessorySettings );*/ - //iTelephonySettingsRepository = CRepository::NewL( KCRUidTelephonySettings ); + iAccessorySettingsRepository = CRepository::NewL( KCRUidAccessorySettings ); + iTelephonySettingsRepository = CRepository::NewL( KCRUidTelephonySettings ); iTelephonyVariationRepository = CRepository::NewL( KCRUidTelVariation ); iCoreApplicationRepository = CRepository::NewL( KCRUidCoreApplicationUIs ); - - TEFLOGSTRING( KTAOBJECT, "PE CPEExternalDataHandler::BaseConstructL 2" ); } // ----------------------------------------------------------------------------- @@ -112,37 +112,106 @@ { TInt errorCode( KErrNotFound ); - //TODO - - if ( EPETelephonyVariationFlags == aSetting ) - { - errorCode = iTelephonyVariationRepository->Get( KTelVariationFlags, aValue ); - TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPETelephonyVariationFlags, error code: %d", errorCode ); - } - else if ( EPEAudioOutputPreference == aSetting ) - { - errorCode = iAudioOutputPreferenceMonitor->Get( aValue ); - TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAudioOutputPreference, error code: %d", errorCode ); - } - else if ( EPECallDurationDisplaySetting == aSetting ) + // Process Common id + switch ( aSetting ) { - errorCode = iCallDurationDisplay->Get( aValue ); - TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPECallDurationDisplaySetting, error code: %d", errorCode ); - } - else if ( EPENetworkConnectionAllowedSetting == aSetting ) - { - // Fetches setting that indicates if network connection is allowed, - // i.e. is the phone in off-line mode. - errorCode = iCoreApplicationRepository + case EPEAutomaticAnswerHeadsetSetting: + { + errorCode = GetAutomaticAnswer( KSettingsHeadsetAutomaticAnswer, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAutomaticAnswerHeadsetSetting, error code: %d",errorCode ); + break; + } + case EPEAutomaticAnswerLoopsetSetting: + { + errorCode = GetAutomaticAnswer( KSettingsLoopsetAutomaticAnswer, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAutomaticAnswerLoopsetSetting, error code: %d", errorCode ); + break; + } + case EPEAutomaticAnswerCarkitSetting: + { + errorCode = GetAutomaticAnswer( KSettingsCarKitAutomaticAnswer, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAutomaticAnswerCarkitSetting, error code: %d", errorCode ); + break; + } + case EPEAutomaticAnswerMusicStandSetting: + { + errorCode = GetAutomaticAnswer( KSettingsMusicStandAutomaticAnswer, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAutomaticAnswerMusicStandSetting, error code: %d", errorCode ); + break; + } + case EPEAutomaticAnswerWirelessCarkitSetting: + { + errorCode = GetAutomaticAnswer( KSettingsWirelessCarkitAutomaticAnswer, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAutomaticAnswerWirelessCarkitSetting, error code: %d", errorCode ); + break; + } + case EPEAudioOutputPreference: + { + errorCode = iAudioOutputPreferenceMonitor->Get( aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAudioOutputPreference, error code: %d", errorCode ); + break; + } + case EPECallDurationDisplaySetting: + { + errorCode = iCallDurationDisplay->Get( aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPECallDurationDisplaySetting, error code: %d", errorCode ); + break; + } + case EPEDialPrefixChangeSetting: + { + errorCode = iTelephonySettingsRepository->Get( KSettingsDialPrefixChangeMode, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEDialPrefixChangeSetting, error code: %d", errorCode ); + break; + } + case EPEIncallEarVolumeSetting: + { + errorCode = iEarVolumeSetting->Get( aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEIncallEarVolumeSetting, error code: %d", errorCode ); + break; + } + case EPEIncallLoudspeakerVolumeSetting: + { + errorCode = iLoudspeakerVolumeSetting->Get( aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEIncallLoudspeakerVolumeSetting, error code: %d", errorCode ); + break; + } + case EPENetworkRegistrationStatus: + { + errorCode = iNetworkRegistrationStatus->Get( aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPENetworkRegistrationStatus, error code: %d", errorCode ); + break; + } + case EPETelephonyVariationFlags: + { + errorCode = iTelephonyVariationRepository->Get( KTelVariationFlags, aValue ); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPETelephonyVariationFlags, error code: %d", errorCode ); + break; + } + case EPEAccessoryMode: + { + errorCode = KErrNone; + aValue = iAccessoryModeMonitor->AccessoryMode(); + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPEAccessoryMode, error code: %d", errorCode ); + break; + } + case EPENetworkConnectionAllowedSetting: + { + // Fetches setting that indicates if network connection is allowed, + // i.e. is the phone in off-line mode. This method is used while + // attempting an emergency call, so no memory may be consumed. + errorCode = iCoreApplicationRepository ->Get( KCoreAppUIsNetworkConnectionAllowed, aValue ); - } - else - { - errorCode = KErrNone; - aValue = 0; + TEFLOGSTRING2( KTAINT, "CPEGsmExternalDataHandler::Get EPENetworkConnectionAllowedSetting, error code: %d",errorCode ); + break; + } + default: + { + TEFLOGSTRING2( KTAERROR, + "PE CPEEXTERNALDATAHANDLER::GET UNKNOWN SETTING ID ! %d", aSetting ); + break; + } } - // Process Common id return errorCode; } @@ -153,13 +222,35 @@ // ----------------------------------------------------------------------------- // TInt CPEExternalDataHandler::GetText( - const TPEExternalDataId /*aSetting*/, + const TPEExternalDataId aSetting, TDesC& aValue ) const { TInt errorCode( KErrNotFound ); - //TODO - aValue = KNullDesC; - errorCode = KErrNone; + + // Process Common id + switch ( aSetting ) + { + case EPEDialPrefixTextSetting: + { + TBuf prefixTextSetting; + + errorCode = iTelephonySettingsRepository->Get( + KSettingsDialPrefixText, + prefixTextSetting ); + + aValue = prefixTextSetting; + + TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::GetText EPEDialPrefixTextSetting, error code: %d", errorCode ); + break; + } + default: + { + TEFLOGSTRING2( KTAERROR, + "PE CPEEXTERNALDATAHANDLER::GETTEXT UNKNOWN SETTING ID ! %d", aSetting ); + break; + } + } + return errorCode; } @@ -169,14 +260,15 @@ // ----------------------------------------------------------------------------- // TInt CPEExternalDataHandler::GetAutomaticAnswer( - TUint32 /*aSetting*/, + TUint32 aSetting, TInt& aValue ) const { TInt errorCode( KErrNotFound ); TEFLOGSTRING( KTAINT, "CPEExternalDataHandler::GetAutomaticAnswer" ); - errorCode = KErrNone; - aValue = 0; + + errorCode = iAccessorySettingsRepository->Get( aSetting, aValue ); + return errorCode; } @@ -193,6 +285,16 @@ switch ( aSetting ) { + case EPEIncallEarVolumeSetting: + { + errorCode = iEarVolumeSetting->Set( aValue ); + break; + } + case EPEIncallLoudspeakerVolumeSetting: + { + errorCode = iLoudspeakerVolumeSetting->Set( aValue ); + break; + } case EPEEmergencyCallInfo: { errorCode = RProperty::Set( KPSUidCtsyEmergencyCallInfo,