diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/mmccsubcontroller/src/mccsubthreadclientbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommscontroller/mmccsubcontroller/src/mccsubthreadclientbase.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,313 @@ +/* +* Copyright (c) 2004-2008 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: Mcc Subthread client baseclass +* +*/ + + + + +// INCLUDE FILES +#include "mccsubthreadclientbase.h" +#include "mccrtpmanager.h" +#include "mccsubcontrollerlogs.h" +#include "mccsymstreambase.h" + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::~CMccSubThreadClientBase +// Destructor +// ----------------------------------------------------------------------------- +CMccSubThreadClientBase::~CMccSubThreadClientBase() + { + iDatasink = NULL; + iDatasource = NULL; + iObserver = NULL; + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::GetCodecL +// Returns the used codec +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::CodecInformationL( TUint32 aStreamId, + TMccCodecInfo& aCodec ) + { + __SUBCONTROLLER_INT1( "CMccSubThreadClientBase::GetCodecL streamId", aStreamId ) + + __ASSERT_ALWAYS( iStreams.Count(), User::Leave( KErrNotFound ) ); + + const TInt index = FindStreamL( aStreamId ); + iStreams[index]->GetCodecL( aCodec ); + + __SUBCONTROLLER( "CMccSubThreadClientBase::GetCodecL exit" ) + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SendMediaSignalL +// Default implementation of the signal sending +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::SendMediaSignalL( const TMccEvent& /*aEvent*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SetCodecInformationL +// Sets the codec information for this stream +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::SetCodecInformationL( TUint32 aStreamId, + const TMccCodecInfo& aCodecInfo, + const TDesC8& aFmtp ) + { + __SUBCONTROLLER_INT1( "CMccSubThreadClientBase::SetCodecInformationL streamId", + aStreamId ) + __SUBCONTROLLER_INT1( "CMccSubThreadClientBase::SetCodecInformationL streamCount", + iStreams.Count() ) + + __ASSERT_ALWAYS( iStreams.Count(), User::Leave( KErrNotFound ) ); + + const TInt index = FindStreamL( aStreamId ); + iStreams[ index ]->LoadCodecL( aCodecInfo, aFmtp ); + iStreams[ index ]->SetMMFPriority( aCodecInfo.iPriority ); + + __SUBCONTROLLER( "CMccSubThreadClientBase::SetCodecInformationL, exit" ) + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SetRemoteAddressL +// Sets the remote address of uplink stream +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::SetRemoteAddressL( TInetAddr /*aRemAddr*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SetRemoteRtcpAddrL +// Sets the remote address of uplink stream +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::SetRemoteRtcpAddrL( TInetAddr /*aRemAddr*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::InitializeLinkL +// Creates the RTP session in the subthread, STEP #1 +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::InitializeLinkL( TRequestStatus& /*aStatus*/, + TInt /*aIapId*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::CreateSessionL +// Creates the RTP session in the subthread, STEP #2 +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::CreateRtpSessionL( TUint /*aPort*/, + TBool /*aEnableRTCP*/, + TInt /*aIpTos*/, + CMccRtpMediaClock& /*aClock*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SetLinkId +// Creates the RTP session in the subthread +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::SetLinkId( TUint32 aLinkId ) + { + iLinkId = aLinkId; + if ( iRtpmanager ) + { + iRtpmanager->SetLinkId( aLinkId ); + } + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::GetLinkIndex +// Creates the RTP session in the subthread +// ----------------------------------------------------------------------------- +// +TUint32 CMccSubThreadClientBase::GetLinkId() const + { + return iLinkId; + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::MccSessionId +// ----------------------------------------------------------------------------- +// +TUint32 CMccSubThreadClientBase::MccSessionId() const + { + return iSessionId; + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::CloseL +// Closes all links +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::CloseL() + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::StreamsExistsL +// ----------------------------------------------------------------------------- +TBool CMccSubThreadClientBase::StreamsExistsL() + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::StartInactivityTimer +// Starts inactivity timer for a stream +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::StartInactivityTimerL( const TUint32 /*aStreamId*/, + TUint32 /*aTimeoutTime*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::StopInactivityTimer +// Stops inactivity timer for a stream +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::StopInactivityTimerL( const TUint32 /*aStreamId*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::GetSupportedBitratesL +// Gets the supported bitrates from the codec of the specified stream +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::GetSupportedBitratesL( const TUint32 /*aStreamId*/, + RArray& /*aBitrates*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SendRTCPReceiverReportL +// Sends a RTCP receiver report +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::SendRTCPReceiverReportL( const TUint32 /*aStreamId*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SendRTCPSenderReportL +// Sends a RTCP sender report +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::SendRTCPSenderReportL( const TUint32 /*aStreamId*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SendRTCPDataL +// Sends Non-RTCP data +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::SendRTCPDataL( const TUint32 /*aStreamId*/, + const TDesC8& /*aData*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::GetFmtpAttrL +// Fetches the FMTP attribute of the current codec +// ----------------------------------------------------------------------------- +// +void CMccSubThreadClientBase::GetFmtpAttrL( const TUint32 /*aStreamId*/, TDes8& /*aFmtp*/ ) + { + User::Leave( KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::SetPrioritySettingsL +// Sets priority +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::SetPrioritySettingsL( TUint32 aStreamId, + const TMMFPrioritySettings& aPrioritySet ) + { + __SUBCONTROLLER_INT1( "CMccSubThreadClientBase::SetPrioritySettingsL, streamId", + aStreamId ) + + __ASSERT_ALWAYS( iStreams.Count(), User::Leave( KErrNotFound ) ); + + const TInt index = FindStreamL( aStreamId ); + iStreams[ index ]->SetMMFPriority( aPrioritySet ); + + __SUBCONTROLLER( "CMccSubThreadClientBase::SetPrioritySettingsL, exit" ) + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::GetSSRCL +// ----------------------------------------------------------------------------- +void CMccSubThreadClientBase::GetSSRCL( const TUint32 /*aStreamId*/, TUint32& /*aSSRCValue*/ ) + { + User::Leave( KErrNotSupported ); + } + + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::FindStreamL +// Finds a streams index from the stream array +// ----------------------------------------------------------------------------- +// +TInt CMccSubThreadClientBase::FindStreamL( TUint32 aStreamId ) + { + const TInt index = FindStream( aStreamId ); + User::LeaveIfError( index ); + return index; + } + +// ----------------------------------------------------------------------------- +// CMccSubThreadClientBase::FindStream +// Finds a streams index from the stream array +// ----------------------------------------------------------------------------- +// +TInt CMccSubThreadClientBase::FindStream( TUint32 aStreamId ) + { + __SUBCONTROLLER_INT1( "CMccSubThreadClientBase::FindStream, streamId", aStreamId ) + + const TInt strmCount = iStreams.Count(); + for( TInt k = 0; k < strmCount; k++ ) + { + if( aStreamId == iStreams[k]->MccStreamId() ) + { + return k; + } + } + + return KErrNotFound; + } + +// ========================== OTHER EXPORTED FUNCTIONS ========================= + +// End of File