diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/tsrc/componenttests/src/mccteststubs.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommscontroller/tsrc/componenttests/src/mccteststubs.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,442 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* 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: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +//******************************************************************************* +// Method : +// Purpose : Working as a stub for CMccInterface instantation tests +// Parameters : +// Return Value: +//******************************************************************************* +#include +#include +#include "mccteststubs.h" +#include "mmccnetworksettings.h" + +CMccInterfaceStub* CMccInterfaceStub::NewL() + { + CMccInterfaceStub* self = new (ELeave) CMccInterfaceStub(); + return self; + } + + +CMccInterfaceStub::CMccInterfaceStub() + { + + } + +CMccInterfaceStub::~CMccInterfaceStub() + { + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccEventReceived( const TMccEvent& aEvent ) + { + RDebug::Print( _L("CMccInterfaceStub::MccEventReceived") ); + RDebug::Print( _L("SESSID: %d, LINKID: %d, STREAMID: %d, ENDPOINTID: %d"), + aEvent.iSessionId, aEvent.iLinkId, aEvent.iStreamId, aEvent.iEndpointId ); + RDebug::Print( _L("CATEGORY: %d, EVENTTYPE: %d, ERRCODE: %d"), + aEvent.iEventCategory, aEvent.iEventType, aEvent.iErrorCode ); + + HandleEventReceival( aEvent ); + + if ( KMccEventCategoryDtmf == aEvent.iEventCategory + && KMccDtmfControl == aEvent.iEventType ) + { + const TMccDtmfEventData& dtmfEvent = + (*reinterpret_cast( + &aEvent.iEventData ))(); + + switch ( dtmfEvent.iDtmfEventType ) + { + case KMccDtmfManualStart: + RDebug::Print( _L("EMccDtmfManualStart") ); + break; + case KMccDtmfManualStop: + RDebug::Print( _L("EMccDtmfManualStop") ); + break; + case KMccDtmfManualAbort: + RDebug::Print( _L("EMccDtmfManualAbort") ); + break; + case KMccDtmfSequenceStart: + RDebug::Print( _L("EMccDtmfSequenceStart") ); + break; + case KMccDtmfSequenceStop: + RDebug::Print( _L("EMccDtmfSequenceStop") ); + break; + case KMccDtmfSequenceAbort: + RDebug::Print( _L("EMccDtmfSequenceAbort") ); + break; + case KMccDtmfStopInDtmfString: + RDebug::Print( _L("EMccDtmfStopInDtmfString") ); + break; + case KMccDtmfSendingComplete: + RDebug::Print( _L("KMccDtmfSendingComplete") ); + break; + default: + break; + } + } + + if ( KMccEventCategoryRtp == aEvent.iEventCategory + && KMccMediaQualityStatus == aEvent.iEventType ) + { + RDebug::Print( _L("CMccInterfaceStub::MccEventReceived JITTER STATUS RECV") ); + + const TMccRtpEventData& rtpEvent = + (*reinterpret_cast( + &aEvent.iEventData ))(); + + RDebug::Print( _L("jitter estimate: %u, packets received: %u, prev trans time: %u, triggered jitter level: %u"), + rtpEvent.iJitterEstimate, rtpEvent.iPacketsReceived, rtpEvent.iPrevTransTime, rtpEvent.iTriggeredJitterLevel ); + } + + if ( KMccLinkCreated == aEvent.iEventType ) + { + RDebug::Print( _L("KMccLinkCreated Event arrived succesfully!") ); + + TMccNetSettingsPackage package; + package.Copy( aEvent.iEventData ); + TBuf<50> localAddr; + TBuf<50> localPublicAddr; + TMccNetSettings netSettings = package(); + netSettings.iLocalAddress.Output( localAddr ); + netSettings.iLocalPublicAddress.Output( localPublicAddr ); + + RDebug::Print( _L("Local ADDR: %S, PORT: %d, Public ADDR: %S, PORT: %d,"), + &localAddr, netSettings.iLocalAddress.Port(), + &localPublicAddr, netSettings.iLocalPublicAddress.Port() ); + RDebug::Print( _L("Local RTCP PORT: %d, Public RTCP PORT: %d"), + netSettings.iLocalRtcpPort, netSettings.iLocalPublicRtcpPort ); + } + } + +void CMccInterfaceStub::MccMediaStarted( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaStarted") ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryStream, KMccStreamStarted, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + +void CMccInterfaceStub::MccMediaStopped( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaStopped") ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryStream, KMccStreamStopped, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccMediaPaused( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaPaused") ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryStream, KMccStreamPaused, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccMediaResumed( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaResumed") ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryStream, KMccStreamResumed, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccMediaPrepared( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaPrepared") ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryStream, KMccStreamPrepared, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccMediaInactive( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaInactive" ) ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryRtp, KMccInactivityEvent, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccMediaActive( TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccMediaActive") ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryRtp, KMccActivityEvent, KErrNone, KNullDesC8 ); + + HandleEventReceival( event ); + } + + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::MccCtrlError( TInt aError, + TUint32 aSessionId, + TUint32 aLinkId, + TUint32 aStreamId, + TUint32 aSinkSourceId ) + { + RDebug::Print( _L("CMccInterfaceStub::MccCtrlError, ERR: %d"), aError ); + RDebug::Print( _L("SESSID: %u, LINKID: %u, STREAMID: %u, SINKSOURCEID: %u"), + aSessionId, aLinkId, aStreamId, aSinkSourceId ); + + TMccEvent event = TMccEvent( aSessionId, aLinkId, aStreamId, aSinkSourceId, + KMccEventCategoryStream, KMccStreamError, aError, KNullDesC8 ); + + HandleEventReceival( event ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub:: +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::UnknownMediaReceived( TUint32 aSessionId, + TUint32 /*aLinkId*/, + TUint32 aStreamId, + TUint32 /*aSinkSourceId*/, + TUint8 aPayloadType ) + { + RDebug::Print( _L("CMccInterfaceStub::UnknownMediaReceived") ); + RDebug::Print( _L("SESSID: %u, STREAMID: %u, PT: %u"), + aSessionId, aStreamId, aPayloadType ); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub::WaitForEvent +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::WaitForEvent( TUint32 aSessionId, TUint32 aLinkId, + TUint32 aStreamId, TMccEventType aEventType ) + { + ClearEvent( iEventToWaitFor ); + iEventToWaitFor.iSessionId = aSessionId; + iEventToWaitFor.iLinkId = aLinkId; + iEventToWaitFor.iStreamId = aStreamId; + iEventToWaitFor.iEventType = aEventType; + + CActiveScheduler::Start(); + } + + +// --------------------------------------------------------------------------- +// CMccInterfaceStub::WaitForEvent +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::WaitForEvent( TUint32 aSessionId, TUint32 aLinkId, + TUint32 aStreamId, TUint32 aSinkSourceId, TMccEventType aEventType ) + { + ClearEvent( iEventToWaitFor ); + iEventToWaitFor.iSessionId = aSessionId; + iEventToWaitFor.iLinkId = aLinkId; + iEventToWaitFor.iStreamId = aStreamId; + iEventToWaitFor.iEndpointId = aSinkSourceId; + iEventToWaitFor.iEventType = aEventType; + + CActiveScheduler::Start(); + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub::WaitForEvent +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::WaitForEvent( TUint32 aSessionId, TUint32 aLinkId, + TUint32 aStreamId, TMccEventType aEventType, TMccDtmfEventType aDtmfEventType ) + { + ClearEvent( iEventToWaitFor ); + iEventToWaitFor.iSessionId = aSessionId; + iEventToWaitFor.iLinkId = aLinkId; + iEventToWaitFor.iStreamId = aStreamId; + iEventToWaitFor.iEventCategory = KMccEventCategoryDtmf; + iEventToWaitFor.iEventType = aEventType; + + TMccDtmfEventData dtmfEvent; + dtmfEvent.iDtmfEventType = aDtmfEventType; + iEventToWaitFor.iEventData = TMccDtmfEventDataPackage( dtmfEvent ); + + CActiveScheduler::Start(); + } + + +// --------------------------------------------------------------------------- +// CMccInterfaceStub::EventsAreEqual +// +// --------------------------------------------------------------------------- +// +TBool CMccInterfaceStub::EventsAreEqual( + const TMccEvent& aEvent1, const TMccEvent& aEvent2 ) const + { + TBool match( EFalse ); + match = ( aEvent1.iSessionId == aEvent2.iSessionId ); + + if ( match && aEvent1.iLinkId != 0 ) + { + match = ( aEvent1.iLinkId == aEvent2.iLinkId ); + } + + if ( match && aEvent1.iStreamId != 0 ) + { + match = ( aEvent1.iStreamId == aEvent2.iStreamId ); + } + + if ( match && aEvent1.iEndpointId != 0 ) + { + match = ( aEvent1.iEndpointId == aEvent2.iEndpointId ); + } + + if ( match && aEvent1.iEventCategory != 0 ) + { + match = ( aEvent1.iEventCategory == aEvent2.iEventCategory ); + } + + if ( match && aEvent1.iEventType != KMccEventNone ) + { + match = ( aEvent1.iEventType == aEvent2.iEventType ); + } + + if ( match && aEvent1.iEventData != KNullDesC8 ) + { + if ( KMccEventCategoryDtmf == aEvent1.iEventCategory ) + { + const TMccDtmfEventData& dtmfEvent1 = + (*reinterpret_cast + ( &aEvent1.iEventData ) )(); + + const TMccDtmfEventData& dtmfEvent2 = + (*reinterpret_cast + ( &aEvent1.iEventData ) )(); + + match = ( dtmfEvent1.iDtmfEventType == dtmfEvent2.iDtmfEventType ); + } + } + + return match; + } + +// --------------------------------------------------------------------------- +// CMccInterfaceStub::ClearEvent +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::ClearEvent( TMccEvent& aEvent ) + { + aEvent = TMccEvent(); + } + + +// --------------------------------------------------------------------------- +// CMccInterfaceStub::HandleEventReceival +// +// --------------------------------------------------------------------------- +// +void CMccInterfaceStub::HandleEventReceival( const TMccEvent& aEvent ) + { + if ( EventsAreEqual( iEventToWaitFor, aEvent ) ) + { + RDebug::Print( _L("CMccInterfaceStub::HandleEventReceival, STOP WAIT LOOP") ); + CActiveScheduler::Stop(); + } + else + { + // Eat event and continue to listen a new one + RDebug::Print( _L("CMccInterfaceStub::HandleEventReceival, UNEXPECTED EVENT") ); + } + }