diff -r c84cf270c54f -r 92ab7f8d0eab phoneengine/phonemodel/src/cpephonemodel.cpp --- a/phoneengine/phonemodel/src/cpephonemodel.cpp Tue Feb 02 00:10:04 2010 +0200 +++ b/phoneengine/phonemodel/src/cpephonemodel.cpp Fri Mar 19 09:28:42 2010 +0200 @@ -39,6 +39,10 @@ #include #include #include +// <-- QT PHONE START --> +#include "phoneservices.h" +#include "parserrecognizer.h" +// <-- QT PHONE END --> // CONSTANTS const TInt KDriveProfile ( 6 ); @@ -159,6 +163,10 @@ { delete iIdleStatusMonitor; } +// <-- QT PHONE START --> + delete iPhoneServices; + delete iParserRecognizer; +// <-- QT PHONE END --> }// ~CPEPhoneModel // ----------------------------------------------------------------------------- @@ -229,6 +237,10 @@ return MESSAGE("EPEMessageClientDial"); case MPEPhoneModel::EPEMessageClientDialEmergency: return MESSAGE("EPEMessageClientDialEmergency"); +// <-- QT PHONE START --> + case MPEPhoneModel::EPEMessageDialServiceCall: + return MESSAGE("EPEMessageDialServiceCall"); +// <-- QT PHONE END --> case MPEPhoneModel::EPEMessageContinueEmergencyCallInitialization: return MESSAGE("EPEMessageContinueEmergencyCallInitialization"); case MPEPhoneModel::EPEMessageContinueDTMFSending: @@ -580,15 +592,15 @@ case MEngineMonitor::EPEMessageCallBarred: return MESSAGE("EPEMessageCallBarred"); case MEngineMonitor::EPEMessageIncCallIsForw: - return MESSAGE("EPEMessageIncCallIsForw"); + return MESSAGE("EPEMessageIncCallIsForw"); case MEngineMonitor::EPEMessageIncCallForwToC: - return MESSAGE("EPEMessageIncCallForwToC"); + return MESSAGE("EPEMessageIncCallForwToC"); case MEngineMonitor::EPEMessageOutCallForwToC: - return MESSAGE("EPEMessageOutCallForwToC"); + return MESSAGE("EPEMessageOutCallForwToC"); case MEngineMonitor::EPEMessageForwardUnconditionalModeActive: - return MESSAGE( "EPEMessageForwardUnconditionalModeActive" ); + return MESSAGE( "EPEMessageForwardUnconditionalModeActive" ); case MEngineMonitor::EPEMessageForwardConditionallyModeActive: - return MESSAGE( "EPEMessageForwardConditionallyModeActive" ); + return MESSAGE( "EPEMessageForwardConditionallyModeActive" ); case MEngineMonitor::EPEMessageDroppedConferenceMember: return MESSAGE("EPEMessageDroppedConferenceMember"); case MEngineMonitor::EPEMessageGoingOneToOne: @@ -709,7 +721,7 @@ errorCode = iMessageHandler->HandleTerminateAllConnections( ); break; case MPEPhoneModel::EPEMessageDial: - //Make a dial request + //Make a dial request errorCode = iMessageHandler->HandleDialCall( EFalse ); break; case MPEPhoneModel::EPEMessageReleaseAll: //Make HangUp requests to all calls @@ -833,20 +845,24 @@ case MPEPhoneModel::EPEMessageDisableService: iMessageHandler->HandleDisableService(); break; - +// <-- QT PHONE START --> + case MPEPhoneModel::EPEMessageDialServiceCall: //Make Dial request + errorCode = iMessageHandler->HandleDialCall( EFalse ); + break; +// <-- QT PHONE END --> default: errorCode = ECCPErrorNotFound; break; } if( errorCode ) - { - TPEErrorInfo errorInfo; - errorInfo.iErrorCode = errorCode; - errorInfo.iCallId = KPECallIdNotUsed; - errorInfo.iErrorType = EPECcp; - iEngineMonitor.HandleError( errorInfo ); - } + { + TPEErrorInfo errorInfo; + errorInfo.iErrorCode = errorCode; + errorInfo.iCallId = KPECallIdNotUsed; + errorInfo.iErrorType = EPECcp; + iEngineMonitor.HandleError( errorInfo ); + } }// HandleMessage // ----------------------------------------------------------------------------- @@ -936,8 +952,8 @@ } if ( message == MEngineMonitor::EPEMessageChangedCallDuration ) - { - TInt callTimerSetting( EFalse ); + { + TInt callTimerSetting( EFalse ); // safe to ignore error code here, duration display equals to zero == off if it fails iExternalDataHandler->Get( EPECallDurationDisplaySetting, callTimerSetting ); // Message EPEMessageChangedCallDuration send supressed, if duration display is OFF @@ -945,7 +961,7 @@ { message = KPEDontSendMessage; } - } + } //MessageHandler may return error code if ( errorCode != ECCPErrorNone && errorCode != KPEDontSendMessage ) @@ -960,22 +976,22 @@ messageName2.Ptr( ), aCallId ); #endif TPEErrorInfo errorInfo; - errorInfo.iErrorCode = errorCode; - errorInfo.iCallId = aCallId; + errorInfo.iErrorCode = errorCode; + errorInfo.iCallId = aCallId; errorInfo.iErrorType = EPECcp; iEngineMonitor.HandleError( errorInfo ); } else if ( message == MEngineMonitor::EPEMessageCallHandlingError ) - { + { TEFLOGSTRING2( KTAERROR, "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=EPEMessageCallHandlingError, CallId=%d" , aCallId ); - TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo(); - errorInfo.iCallId = aCallId; - errorInfo.iErrorType = EPECcp; + TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo(); + errorInfo.iCallId = aCallId; + errorInfo.iErrorType = EPECcp; iEngineMonitor.HandleError( errorInfo ); - } + } else if ( message == MEngineMonitor::EPEMessageServiceHandlingError ) { TEFLOGSTRING( @@ -985,7 +1001,7 @@ errorInfo.iCallId = aCallId; errorInfo.iErrorType = EPECch; iEngineMonitor.HandleError( errorInfo ); - } + } else if ( message != KPEDontSendMessage && errorCode != KPEDontSendMessage ) { // Map message for PhoneApplication, since it doesn't use @@ -1015,6 +1031,15 @@ static_cast( message ), aCallId ); } + +// <-- QT PHONE START --> + if( iParserRecognizer ) + { + iParserRecognizer->sendMessage( aMessage, aCallId ); + } +// <-- QT PHONE END --> + + }// SendMessage( 2 params ) // ----------------------------------------------------------------------------- @@ -1199,7 +1224,7 @@ break; case MEngineMonitor::EPEMessageRemotePartyInfoChanged: - iMessageHandler->HandleRemotePartyInfoChanged( aCallId ); + iMessageHandler->HandleRemotePartyInfoChanged( ); break; default: @@ -1385,23 +1410,47 @@ case CPEPhoneModel::EPEContactHandlingPhaseTwo: { TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 15.1" ); +// <-- QT PHONE START --> // Start Idle State monitor to finalize ContactHandling contruction - iIdleStatusMonitor = CPEIdleStatusMonitor::NewL (*this ); + //iIdleStatusMonitor = CPEIdleStatusMonitor::NewL (*this ); + static_cast< CPEContactHandlingProxy* >( iContactHandling )-> + CreateSecondPhaseL( *this, iFsSession ); TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 15.2" ); - + // This should be set after the last case + +// continueStepping = EFalse; +// <-- QT PHONE END --> break; } case CPEPhoneModel::EPEMediatorCommandHandler: { TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.1" ); // Start Mediator command listener +// <-- QT PHONE START --> iMediatorCommunicationHandler = CPERemotePartyInfoMediator::NewL( *this ); - // This should be set after the last case - continueStepping = EFalse; break; } + case CPEPhoneModel::EPEPhoneServices: + { + TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.1" ); + __ASSERT_DEBUG( iMessageHandler, Panic( EPEPanicNullPointer ) ); + __ASSERT_DEBUG( iEngineInfo, Panic( EPEPanicNullPointer ) ); + iPhoneServices = new PhoneServices (*iMessageHandler, *iEngineInfo); + TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.2" ); + break; + } + + case CPEPhoneModel::EPEParserRecognizer: + { + TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 17.1" ); + iParserRecognizer = new ParserRecognizer; + TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 17.2" ); + continueStepping = EFalse; + break; + } +// <-- QT PHONE END --> default: { Panic( EPEPanicIndexOutOfRange );