multimediacommscontroller/tsrc/rtpsourcesinkstub/src/MccRtpDataSink_STUB.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/tsrc/rtpsourcesinkstub/src/MccRtpDataSink_STUB.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,414 @@
+/*
+* Copyright (c) 2002-2004 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:    RTP Datasink
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <mmf/common/mmfcontroller.h> 
+#include "rtpheader.h"
+#include "mccrtpdatasink.h"
+#include "mmccevents.h"
+#include "mccinternaldef.h"
+#include "mccrtpdefs.h"
+#include "mmccinterfacedef.h"
+
+// MACROS
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES  
+
+// CONSTANTS
+
+// MACROS
+#define MCC_RTPSINK_ENDPOINT_ID MCC_ENDPOINT_ID( static_cast<MDataSink*>( this ) )
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::CMccRtpDataSink
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CMccRtpDataSink::CMccRtpDataSink() :
+    CMccDataSink( KMccRtpSinkUid ),
+    MMccRtpInterface(), iRtpStreamId( KNullId )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::NewSinkL
+// Static constructor.
+// -----------------------------------------------------------------------------
+//
+MDataSink* CMccRtpDataSink::NewSinkL( TUid /*aImplementationUid*/, 
+                                      const TDesC8& /*aInitData*/ )
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::NewSinkL()" )
+       
+    CMccRtpDataSink* self = new ( ELeave ) CMccRtpDataSink();
+    return static_cast<MDataSink*>( self ); 
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::ConstructSinkL
+// class MDataSink inherited 2nd phase construction
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::ConstructSinkL( const TDesC8& /*aInitData*/ )
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::ConstructSinkL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::~CMccRtpDataSink
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CMccRtpDataSink::~CMccRtpDataSink()
+    {
+    TRACE_RTP_SINK_PRINT2( "CMccRtpDataSink::~CMccRtpDataSink 0x%x", this )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SetCurrentUser
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::Mute( TBool aMuteOn, TUint8 aExceptionPt )
+    {
+    TRACE_RTP_SINK_PRINT3( "CMccRtpDataSink::Mute, STATE: %d, PT: %u", 
+        aMuteOn, aExceptionPt )
+    
+    iMuteOn = aMuteOn;
+    iExceptionPt = aExceptionPt;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SetCurrentUser
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SetCurrentUser( MAsyncEventHandler* /*aEventHandler*/ )
+    {
+//    iEventHandler = aEventHandler;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkThreadLogon
+//
+// Method to 'logon' the data sink to the same thread that sink will be consuming
+// data in. Thread specific initialisation is done here.
+// -----------------------------------------------------------------------------
+//
+TInt CMccRtpDataSink::SinkThreadLogon( MAsyncEventHandler& /*aEventHandler*/ ) 
+    {
+    TRACE_RTP_SINK_PRINT ( "CMccRtpDataSink::SinkThreadLogon" )
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkThreadLogoff
+//
+// Method to 'logoff' the data sink from the same thread that sink consumes 
+// data in. Thread specific releasing of resources is done here.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SinkThreadLogoff() 
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SinkThreadLogoff" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SetSinkDataTypeCode
+// Sets the datatype code ( codec )
+// ----------------------------------------------------------------------------- 
+//
+TInt CMccRtpDataSink::SetSinkDataTypeCode( TFourCC /*aCodec*/, TMediaId /*aMedia*/ )
+    {
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkDataTypeCode
+// Returns the datatype code ( codec )
+// -----------------------------------------------------------------------------
+//
+TFourCC CMccRtpDataSink::SinkDataTypeCode( TMediaId aMediaId )
+    {
+    if ( KUidMediaTypeAudio == aMediaId.iMediaType )
+        {
+        return iCodecInfo.iFourCC;
+        }
+    else
+        {
+        // Initializes to KMMFFourCCCodeNULL so the caller cannot see
+        // if this sink really has some media type currently registered
+        return TFourCC();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::EmptyBufferL
+// NOT SUPPORTED. MDataSink pure virtual function must be implemented.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::EmptyBufferL( CMMFBuffer* /*aBuffer*/, 
+                                    MDataSource* /*aSupplier*/, 
+                                    TMediaId /*aMediaId*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::EmptyBufferL
+// Overload to class MDataSink pure virtual function implementation.
+// Take RTP packet in the buffer and send it.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::EmptyBufferL( CMMFBuffer* aBuffer,
+                                    MDataSource* aSupplier,
+                                    TMediaId /*aMediaId*/,
+                                    TRtpSendHeader& /*aHeaderInfo*/ )
+    {
+    __ASSERT_ALWAYS( aBuffer, User::Leave( KErrArgument ) );
+    __ASSERT_ALWAYS( aSupplier, User::Leave( KErrArgument ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::BufferFilledL
+// NOT SUPPORTED. MDataSink pure virtual function must be implemented.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::BufferFilledL( CMMFBuffer* /*aBuffer*/ )
+    {
+    User::Leave( KErrNotSupported );
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::CanCreateSinkBuffer
+// NOT SUPPORTED. MDataSink pure virtual function must be implemented.
+// -----------------------------------------------------------------------------
+//
+TBool CMccRtpDataSink::CanCreateSinkBuffer()
+    {
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::CreateSinkBufferL
+// NOT SUPPORTED. MDataSink pure virtual function must be implemented.
+// -----------------------------------------------------------------------------
+//
+CMMFBuffer* CMccRtpDataSink::CreateSinkBufferL( TMediaId /*aMediaId*/,
+                                                TBool& /*aReference*/ )
+    {
+    User::Leave( KErrNotSupported ); 
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkPrimeL
+// Prime the sink. 
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SinkPrimeL()
+    { 
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SinkPrimeL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkPlayL
+// Start the playout operation.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SinkPlayL()
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SinkPlayL IN" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkPauseL
+// Pauses the playout operation.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SinkPauseL()
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SinkPauseL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SinkStopL
+// Stop the playout operation. 
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SinkStopL()
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SinkStopL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SendMediaSignallingL()
+// Sends media level signalling
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SendMediaSignallingL( const TMccEvent& /*aEvent*/ )
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SendMediaSignallingL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::DoCreateStreamL
+// Creates a transmit stream.
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::DoCreateStreamL()
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::DoCreateStreamL" )
+    
+    iRtpStreamId = 1;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMccRtpDataSink::SinkCustomCommand()
+// 
+// ---------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SinkCustomCommand( TMMFMessage& /*aMessage*/ )
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SinkCustomCommand" )
+    }
+
+// ---------------------------------------------------------------------------
+// CMccRtpDataSink::SendRTCPData()
+// Sends Non-RTCP data
+// ---------------------------------------------------------------------------
+//    
+void CMccRtpDataSink::SendRTCPDataL( const TDesC8& /*aData*/ )
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::HandleBySsrc
+// -----------------------------------------------------------------------------
+//   
+TBool CMccRtpDataSink::HandleBySsrc( const TRtpSSRC& /*aSsrc*/ )
+    {
+    return ETrue;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::RtpStreamId
+// -----------------------------------------------------------------------------
+//    
+TRtpId CMccRtpDataSink::RtpStreamId()
+    {
+    return iRtpStreamId;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::DoCreateSrtpStreamL
+// -----------------------------------------------------------------------------
+// 
+void CMccRtpDataSink::DoCreateSrtpStreamL()
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::IsSink
+// -----------------------------------------------------------------------------
+//
+TBool CMccRtpDataSink::IsSink() const
+    {
+    return ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::IsSending
+// -----------------------------------------------------------------------------
+//        
+TBool CMccRtpDataSink::IsSending() const
+    {
+    return ETrue;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::AddUserL
+// -----------------------------------------------------------------------------
+//
+void CMccRtpDataSink::AddUserL( TUint32 /*aStreamId*/ )
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CMccRtpDataSink::SendStreamEventToClient()
+// -----------------------------------------------------------------------------
+//	
+void CMccRtpDataSink::SendStreamEventToClient( 
+    TMccEventType /*aEventType*/,
+    TInt /*aError*/ )
+    {
+    TRACE_RTP_SOURCE_PRINT( "CMccRtpDataSink::SendStreamEventToClient" )
+    }
+    
+// ---------------------------------------------------------------------------
+// CMccRtpDataSink::SetMediaClock
+// ---------------------------------------------------------------------------
+//    
+void CMccRtpDataSink::SetMediaClock( CMccRtpMediaClock& /*aRtpMediaClock*/ )
+    {
+    TRACE_RTP_SINK_PRINT( "CMccRtpDataSink::SetMediaClock" )
+    
+    //iRtpMediaClock = &aRtpMediaClock;   
+    }    
+    
+// ---------------------------------------------------------------------------
+// FROM SRTP API
+// This function is called by SRTP Stream initiated with 
+// MSRTPReKeyingObserver when a master key is stale and needs 
+// to be refreshed.  
+// ---------------------------------------------------------------------------
+//
+void CMccRtpDataSink::SRTPMasterKeyStaleEvent( const CSRTPStream& /*aStream*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// FROM SRTP API
+// This function is called by SRTP Stream initiated with 
+// CSRTPSession  when a master key is stale and
+// needs to be refreshed.  
+// ---------------------------------------------------------------------------
+void CMccRtpDataSink::SRTPMasterKeyStaleEvent(const CSRTPSession& /*aSession*/ )
+    {
+    } 
+    
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+//  End of File  
+