multimediacommscontroller/tsrc/stubs/src/mccmultiplexer_STUB.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/tsrc/stubs/src/mccmultiplexer_STUB.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,474 @@
+/*
+* Copyright (c) 2006 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:   
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "mccmultiplexer.h"
+#include "mccsinkitem.h"
+#include "mccinternaldef.h"
+#include "mccinternalevents.h"
+#include "mccmultiplexerlogs.h"
+#include "mccinternalevents.h"
+#include "mccrtpdatasource.h"
+
+// MACROS
+
+// LOCAL FUNCTION PROTOTYPES
+
+// LOCAL CONSTANTS
+
+// ============================= LOCAL FUNCTIONS ===============================
+        
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::NewL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMccMultiplexer* CMccMultiplexer::NewL( MDataSource* aSource )
+    {
+	CMccMultiplexer* self = new ( ELeave ) CMccMultiplexer;
+	CleanupStack::PushL( self );
+    self->ConstructL( aSource );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::~CMccMultiplexer
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMccMultiplexer::~CMccMultiplexer()
+    {
+    }
+  
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::MultiplexerSourceThreadLogon
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CMccMultiplexer::MultiplexerSourceThreadLogon( 
+    MAsyncEventHandler& aEventHandler, 
+    MDataSink& /*aSink*/, 
+    TBool /*aSinkIsDecoder*/, 
+    TUid /*aMediaType*/,
+    TBool /*aPassAllBuffersSink*/ )
+    {
+    return iSource->SourceThreadLogon( aEventHandler );
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourceThreadLogoff
+// -----------------------------------------------------------------------------
+//       
+EXPORT_C TInt CMccMultiplexer::MultiplexerSourceThreadLogoff( MDataSink* /*aSink*/ )
+    {
+    iSource->SourceThreadLogoff();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SetCurrentUserL
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C void CMccMultiplexer::SetCurrentUserL( MDataSink& /*aSink*/ )
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::RegClientForPayloadsL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMccMultiplexer::RegClientForPayloadsL( MDataSink& /*aConsumer*/, 
+        const RArray<TUint>& aPayloadTypes )
+    {
+    __MULTIPLEXER( "CMccMultiplexer::RegClientForPayloadsL" )
+    __ASSERT_ALWAYS( iSource, User::Leave( KErrNotReady ) );
+    __ASSERT_ALWAYS( KMccRtpSourceUid == iSource->DataSourceType(),
+        User::Leave( KErrNotSupported ) );
+    
+    //FindSinkItemL( &aConsumer )->RegisterPayloadTypesL( aPayloadTypes );
+    static_cast<CMccRtpDataSource*>( iSource )
+        ->RegisterPayloadTypesL( aPayloadTypes );
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::Streams
+// -----------------------------------------------------------------------------
+//
+TUint CMccMultiplexer::Streams( TUid /*aMediaType*/ ) const
+    {
+    return 1;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::FrameTimeInterval
+// -----------------------------------------------------------------------------
+//
+TTimeIntervalMicroSeconds CMccMultiplexer::FrameTimeInterval( 
+    TMediaId /*aMediaId*/ ) const
+    {
+    return TTimeIntervalMicroSeconds( 0 );
+    }  
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::DataSourceType
+// -----------------------------------------------------------------------------
+//
+TUid CMccMultiplexer::DataSourceType() const
+    {
+    return KMccMultiplexerUid;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::FillBufferL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::FillBufferL( 
+    CMMFBuffer* /*aBuffer*/, 
+    MDataSink* /*aConsumer*/, 
+    TMediaId /*aMediaId*/ )
+    {
+    }  
+        
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourceDataTypeCode
+// -----------------------------------------------------------------------------
+//
+TFourCC CMccMultiplexer::SourceDataTypeCode( 
+	TMediaId /*aMediaId*/ )
+    {
+    return TFourCC();
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SetSourceDataTypeCode
+// -----------------------------------------------------------------------------
+//
+TInt CMccMultiplexer::SetSourceDataTypeCode( 
+    TFourCC /*aSourceFourCC*/, 
+    TMediaId /*aMediaId*/ )
+    {
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourceThreadLogon
+// -----------------------------------------------------------------------------
+//
+TInt CMccMultiplexer::SourceThreadLogon( 
+    MAsyncEventHandler& /*aEventHandler*/ )
+    {
+    return KErrNotSupported;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::NegotiateSourceL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::NegotiateSourceL( MDataSink& aDataSink )
+    {
+    if ( KUidMmfAudioInput == iSource->DataSourceType() )
+        {
+        // Audio input need settings from real sink.
+        // This is just quick workaround, better way would be to route
+        // those requests through multiplexer to the sink
+        
+        __MULTIPLEXER( "CMccMultiplexer::NegotiateSourceL, negotiate (use sink)" )
+        
+        iSource->NegotiateSourceL( aDataSink );
+        }
+    else
+        {
+        __MULTIPLEXER( "CMccMultiplexer::NegotiateSourceL, negotiate (normal)" )
+        
+        iSource->NegotiateSourceL( *this );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourceThreadLogoff
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::SourceThreadLogoff()
+    {
+    // NOP
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourcePrimeL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::SourcePrimeL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourcePlayL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::SourcePlayL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourcePauseL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::SourcePauseL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SourceStopL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::SourceStopL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::DataBufferFilledL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::DataBufferFilledL( 
+    CMMFBuffer* /*aBuffer*/, 
+    const TRtpRecvHeader& /*aRtpHeader*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::ConfigurePayloadFormatL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::ConfigurePayloadFormatL( const TDesC8& /*aConfigParams*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::BufferFilledL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::BufferFilledL( CMMFBuffer* /*aBuffer*/ )
+	{
+	}
+	
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::Duration
+// -----------------------------------------------------------------------------
+//
+TTimeIntervalMicroSeconds CMccMultiplexer::Duration( 
+	TMediaId /*aMediaType*/ ) const
+    {
+    return TTimeIntervalMicroSeconds( 0 );
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::CanCreateSourceBuffer
+// -----------------------------------------------------------------------------
+//    
+TBool CMccMultiplexer::CanCreateSourceBuffer()
+    {
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::CreateSourceBufferL
+// -----------------------------------------------------------------------------
+//
+CMMFBuffer* CMccMultiplexer::CreateSourceBufferL( 
+    TMediaId /*aMediaId*/, 
+    TBool& /*aReference*/ )
+    {
+    User::Leave( KErrNotSupported );
+    return 0;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SuggestSourceBufferSize
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::SuggestSourceBufferSize( TUint aSuggestedBufferSize )
+    {
+    __MULTIPLEXER_INT1( "CMccMultiplexer::SuggestSourceBufferSize, SIZE: ",
+         aSuggestedBufferSize )
+    
+//    iSuggestedBufSize = aSuggestedBufferSize;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SendEventToClient
+// -----------------------------------------------------------------------------
+//
+TInt CMccMultiplexer::SendEventToClient( const TMMFEvent& /*aEvent*/ )
+    {
+    return KErrNone;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::CMccMultiplexer
+// -----------------------------------------------------------------------------
+//
+CMccMultiplexer::CMccMultiplexer()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::ConstructL( MDataSource* aSource )
+    {
+    __ASSERT_ALWAYS( aSource, User::Leave( KErrArgument ) );
+    
+    iSource = aSource;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::FindSinkItemL
+// -----------------------------------------------------------------------------
+//
+CMccSinkItem* CMccMultiplexer::FindSinkItemL( MDataSink* aSink )
+    {
+    TInt index = FindSinkItemIndex( aSink );
+    __ASSERT_ALWAYS( index != KErrNotFound, User::Leave( KErrNotFound ) );
+    
+    return iSinkItems[ index ];
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::FindSinkItemIndex
+// -----------------------------------------------------------------------------
+//
+TInt CMccMultiplexer::FindSinkItemIndex( MDataSink* /*aSink*/ )
+    {
+    /*for ( TInt i = 0; i < iSinkItems.Count(); i++ )
+        {
+        if ( iSinkItems[ i ]->Match( aSink ) )
+            {
+            return i;
+            }
+        }*/
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::IsPrimarySink
+// -----------------------------------------------------------------------------
+//    
+TBool CMccMultiplexer::IsPrimarySink( MDataSink* /*aSink*/ )
+    {
+    return ETrue;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::DoBufferFilledL
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::DoBufferFilledL( 
+    CMMFBuffer* /*aBuffer*/, 
+    const TRtpRecvHeader* /*aRtpHeader*/ )
+    {
+    }   
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::AddSinkL
+// -----------------------------------------------------------------------------
+//  
+void CMccMultiplexer::AddSinkL( 
+    MDataSink* /*aSink*/, 
+    TBool /*aSinkIsDecoder*/,
+    TUid /*aMediaType*/,
+    TBool /*aPassAllBuffersSink*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SetMultiplexerState
+// -----------------------------------------------------------------------------
+//    
+TBool CMccMultiplexer::SetMultiplexerState( TMccMultiplexerState /*aState*/ )
+    {
+    return EFalse;
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SendStreamEventToClient
+// -----------------------------------------------------------------------------
+//     
+void CMccMultiplexer::SendStreamEventToClient( TMccEventType& /*aEventType*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::UpdateSinkModes
+// -----------------------------------------------------------------------------
+//
+void CMccMultiplexer::UpdateSinkModes()
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::PassAllRequestsToSource
+// -----------------------------------------------------------------------------
+//   
+TBool CMccMultiplexer::PassAllRequestsToSource( CMccSinkItem& /*aItem*/ ) const
+    {
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::IsSupportedMediaType
+// -----------------------------------------------------------------------------
+//    
+TBool CMccMultiplexer::IsSupportedMediaType( TUid aMediaType ) const
+    {
+    return ( aMediaType == KUidMediaTypeVideo || 
+             aMediaType == KUidMediaTypeAudio );
+    }
+
+// -----------------------------------------------------------------------------
+// CMccMultiplexer::SendEventToAllClients
+// -----------------------------------------------------------------------------
+// 
+void CMccMultiplexer::SendEventToAllClients( const TMMFEvent& /*aEvent*/ )
+    {
+    /*for ( TInt i = 0; i < iSinkItems.Count(); i++ )
+        {
+        iSinkItems[ i ]->SendEventToClient( aEvent );
+        }*/
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// E32Dll.
+// DLL Entry point
+// Returns: KErrNone
+// -----------------------------------------------------------------------------
+//
+#ifndef EKA2
+EXPORT_C TInt E32Dll( TDllReason )
+    {
+    return KErrNone;
+    }
+#endif
+
+
+//  End of File 
+