diff -r 000000000000 -r 1bce908db942 multimediacommsengine/tsrc/MCETestUI/MCETestUIEngine/src/CMCETestUIEngineAudioStream.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/tsrc/MCETestUI/MCETestUIEngine/src/CMCETestUIEngineAudioStream.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,344 @@ +/* +* Copyright (c) 2005 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "MCETestUIEngineConstants.h" +#include "CMCETestUIEngineAudioStream.h" +#include "CMCETestUIEngineCodec.h" +#include "CMCETestUIEngineSink.h" +#include "CMCETestUIEngineSource.h" + +#include "TMCETestUIEngineCmdBase.h" +#include "TMCETestUIEngineCmdEnableStream.h" +#include "TMCETestUIEngineCmdDisableStream.h" +#include "TMCETestUIEngineCmdDeleteAudioCodec.h" +#include "TMCETestUIEngineCmdRemoveStream.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineOutSession::NewL() +// ----------------------------------------------------------------------------- +// +CMCETestUIEngineAudioStream* CMCETestUIEngineAudioStream::NewL( + CMCETestUIEngine& aEngine, + CMceAudioStream& aAudioStream ) + { + CMCETestUIEngineAudioStream* self = + new( ELeave )CMCETestUIEngineAudioStream( aEngine, aAudioStream ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::CMCETestUIEngineAudioStream +// ----------------------------------------------------------------------------- +// +CMCETestUIEngineAudioStream::CMCETestUIEngineAudioStream( + CMCETestUIEngine& aEngine, + CMceAudioStream& aAudioStream ) + : iEngine( aEngine ), + iAudioStream( aAudioStream ), + iOneTimeRTCPFlag(1), + iDirection( CMCETestUIEngineAudioStream::ENotSpesified ) + { + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::ConstructL() +// ----------------------------------------------------------------------------- +// +void CMCETestUIEngineAudioStream::ConstructL() + { + SolveDirection(); + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::~CMCETestUIEngineAudioStream +// ----------------------------------------------------------------------------- +// +EXPORT_C CMCETestUIEngineAudioStream::~CMCETestUIEngineAudioStream() + { + iCommands.ResetAndDestroy(); + iSources.ResetAndDestroy(); + iSinks.ResetAndDestroy(); + iCodecs.ResetAndDestroy(); + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::GetCommands +// ----------------------------------------------------------------------------- +// +const RPointerArray& + CMCETestUIEngineAudioStream::GetCommandsL() + { + iCommands.ResetAndDestroy(); + + if ( iAudioStream.IsEnabled() ) + { + iCommands.AppendL( new( ELeave )TMCETestUIEngineCmdDisableStream( + iEngine, *this ) ); + } + else + { + iCommands.AppendL( new( ELeave )TMCETestUIEngineCmdEnableStream( + iEngine, *this ) ); + } + iCommands.AppendL( new( ELeave )TMCETestUIEngineCmdAddCodec( + iEngine, *this ) ); + + iCommands.AppendL( new( ELeave )TMCETestUIEngineCmdRemoveStream( + iEngine, iAudioStream ) ); + + return iCommands; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::Direction +// ----------------------------------------------------------------------------- +// +EXPORT_C CMCETestUIEngineAudioStream::TDirection + CMCETestUIEngineAudioStream::Direction() const + { + return iDirection; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::TextualDirection +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC16& CMCETestUIEngineAudioStream::TextualDirection() const + { + switch ( Direction() ) + { + case CMCETestUIEngineAudioStream::EUpLink : + { + return KStreamDirectionUpLink; + break; + } + case CMCETestUIEngineAudioStream::EDownLink : + { + return KStreamDirectionDownLink; + break; + } + default: + { + break; + } + } + + return KStreamDirectionNotSpesified; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::StreamState +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC16& CMCETestUIEngineAudioStream::StreamState() + { + TInt state = iAudioStream.State(); + + switch( state ) + { + case CMceMediaStream::EUninitialized: + return KStreamUninitialized; + break; + case CMceMediaStream::EInitialized: + return KStreamInitialized; + break; + case CMceMediaStream::EBuffering: + return KStreamBuffering; + break; + case CMceMediaStream::EIdle: + return KStreamIdle; + break; + case CMceMediaStream::EStreaming: + return KStreamStreaming; + break; + case CMceMediaStream::EDisabled: + return KStreamDisabled; + break; + case CMceMediaStream::ENoResources: + return KStreamNoResources; + break; + case CMceMediaStream::ETranscodingRequired: + return KStreamTranscodingRequired; + break; + case CMceMediaStream::ETranscoding: + return KStreamTranscoding; + break; + default: + return KSessionStateUnknown; + break; + } + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::State +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC16& CMCETestUIEngineAudioStream::State() const + { + if ( iAudioStream.IsEnabled() ) + { + return KStreamStateEnabled; + } + return KStreamStateDisabled; + } + + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::AudioStream +// ----------------------------------------------------------------------------- +// +CMceAudioStream& CMCETestUIEngineAudioStream::AudioStream() + { + return iAudioStream; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::SolveDirection +// ----------------------------------------------------------------------------- +// +CMCETestUIEngineAudioStream::TDirection CMCETestUIEngineAudioStream::SolveDirection() + { + TBool isUpLink = EFalse; + TBool isDownLink = EFalse; + + if ( iAudioStream.Source() ) + { + if ( iAudioStream.Source()->Type() == KMceRTPSource ) + { + isDownLink = ETrue; + } + } + + const RPointerArray& sinks = iAudioStream.Sinks(); + for ( TInt i = 0; i < sinks.Count(); ++i ) + { + if ( sinks[i]->Type() == KMceRTPSink ) + { + isUpLink = ETrue; + } + } + + if ( isUpLink && isDownLink ) + { + iDirection = CMCETestUIEngineAudioStream::ENotSpesified; + } + else if ( isUpLink ) + { + iDirection = CMCETestUIEngineAudioStream::EUpLink; + } + else if ( isDownLink ) + { + iDirection = CMCETestUIEngineAudioStream::EDownLink; + } + else + { + iDirection = CMCETestUIEngineAudioStream::ENotSpesified; + } + + return iDirection; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::Sources +// ----------------------------------------------------------------------------- +// +EXPORT_C const RPointerArray& + CMCETestUIEngineAudioStream::SourcesL() + { + iSources.ResetAndDestroy(); + CMceMediaSource* source = iAudioStream.Source(); + + CMCETestUIEngineSource* engineSource = CMCETestUIEngineSource::NewL(iEngine,*source); + CleanupStack::PushL(engineSource); + iSources.Append(engineSource); + CleanupStack::Pop(engineSource); + + return iSources; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::Sinks +// ----------------------------------------------------------------------------- +// +EXPORT_C const RPointerArray& + CMCETestUIEngineAudioStream::SinksL() + { + iSinks.ResetAndDestroy(); + const RPointerArray& sinks = iAudioStream.Sinks(); + + for ( TInt i = 0; i < sinks.Count(); ++i ) + { + CMceMediaSink* sink = sinks[i]; + CMCETestUIEngineSink* engineSink = + CMCETestUIEngineSink::NewL( iEngine, *sink ); + CleanupStack::PushL( engineSink ); + iSinks.AppendL( engineSink ); + CleanupStack::Pop( engineSink ); + } + return iSinks; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::Codecs +// ----------------------------------------------------------------------------- +// +EXPORT_C RPointerArray& + CMCETestUIEngineAudioStream::CodecsL() + { + iCodecs.ResetAndDestroy(); + const RPointerArray& codecs = iAudioStream.Codecs(); + + for ( TInt i = 0; i < codecs.Count(); ++i ) + { + CMceAudioCodec* codec = codecs[i]; + CMCETestUIEngineCodec* engineCodec = + CMCETestUIEngineCodec::NewL( iEngine, *codec ); + CleanupStack::PushL( engineCodec ); + iCodecs.AppendL( engineCodec ); + CleanupStack::Pop( engineCodec ); + } + return iCodecs; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngineAudioStream::CurrentCodecs +// ----------------------------------------------------------------------------- +// +EXPORT_C RPointerArray& + CMCETestUIEngineAudioStream::CurrentCodecs() + { + return iCodecs; + }