multimediacommscontroller/tsrc/componenttests/src/mccteststubs.cpp
changeset 0 1bce908db942
--- /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 <e32base.h>
+#include <e32debug.h>
+#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<const TMccDtmfEventDataPackage*>( 
+                &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<const TMccRtpEventDataPackage*>( 
+            &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<const TMccDtmfEventDataPackage*>
+            ( &aEvent1.iEventData ) )();
+            
+            const TMccDtmfEventData& dtmfEvent2 = 
+            (*reinterpret_cast<const TMccDtmfEventDataPackage*>
+            ( &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") );
+        }
+    }