diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/mceclientstub/inc/mcemediastream.h --- a/mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/mceclientstub/inc/mcemediastream.h Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,316 +0,0 @@ -/* -* 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: -* -*/ - - -#ifndef CMCEMEDIASTREAM_H -#define CMCEMEDIASTREAM_H - -// INCLUDES -#include - -// DATA TYPES -typedef TUint TMceMediaType; - -// FORWARD DECLARATIONS -class CMceComMediaStream; -class TMceFactory; -class TMceMediaStreamFactory; -class RWriteStream; -class RReadStream; -class CDesC8Array; -class CMceSession; -class TMceIds; -class TMceEvent; -class TMceMediaId; -class CMceManager; -class CMceSession; -class CMceMediaSource; -class CMceMediaSink; -class MMceComSerializationContext; -class MDesC8Array; - -// CLASS DECLARATION - -/** -* Base class for MCE media streams. -* -* MCE Media stream represents stream of data negotiated between two terminals. -* Streams may transfer any data. -* -* Enabling or disabling of a stream is not a local operation, but it requires -* always signalling. Thus, these operation require always to be completed by -* calling CMceSession::UpdateL() function. -* -* @lib mceclient.lib -*/ -class CMceMediaStream : public CBase - { - public: // Stream states - - enum TState - { - EUninitialized, // Stream is created - EInitialized, // Stream is initialized - EBuffering, // Stream is buffering - EIdle, // Stream is not receiving RTP - EStreaming, // Stream is streaming - EDisabled, // Stream is explicitly disabled - ENoResources, // Stream has no needed resources to stream - ETranscodingRequired, // Stream requires non-realtime transcoding - ETranscoding // Stream is transcoding in non-realtime - }; - - public: // Destructor - - /** - * Destructor. - */ - IMPORT_C ~CMceMediaStream(); - - public: // Functions - - /** - * Gets the state of the stream. - * @return the current state of the stream - */ - IMPORT_C CMceMediaStream::TState State() const; - - /** - * Returns the type of the stream. - * @return The type of the stream. - */ - IMPORT_C TMceMediaType Type() const; - - /** - * Configures media stream by updating SDP media lines. - * In order to get complete update, whole session must be - * updated causing sending of re-invite. - * @param aMediaSDPLines, application specific SDP media lines for - * the stream. Ownership is transferred. - */ - IMPORT_C void SetMediaAttributeLinesL( CDesC8Array* aMediaSDPLines ); - - /** - * Gets attribute lines of the media. - * @return array of media attribute lines, owneship is transferred. - */ - IMPORT_C MDesC8Array* MediaAttributeLinesL(); - - /** - * Sets local media port - * @param aLocalMediaPort, local port for the media - */ - IMPORT_C void SetLocalMediaPortL(TUint aLocalMediaPort); - - /** - * Gets the local media port. - * @return Local port used for media. - */ - IMPORT_C TUint LocalMediaPort() const; - - /** - * Gets the session this stream belongs to, if exists. The - * ownership is not transfered. - * @return Session object - */ - IMPORT_C CMceSession* Session() const; - - - public: // Local stream control - - /** - * Enables streaming explicitly. - */ - virtual void EnableL(); - - /** - * Disables streaming explicitly. - */ - virtual void DisableL(); - - /** - * Returns the state of the stream. - * @return ETrue if enabled, EFalse if disabled. - */ - IMPORT_C TBool IsEnabled() const; - - - public: // Source and sink functions - - /** - * Adds source to the stream. CMceMediaStream can only - * have one source at a time. Ownership of passed source is transferred. - * However, the same source can be also passed to other streams resulting - * that streams share ownership of the source. Passing NULL source will - * remove source from stream. - * In some cases the source might contain a codec. The codec is derived - * to the stream when such source is added to the stream. - * Derived codec will get automatically highest preference. - * @param aSource source to be added to the stream; ownership is - * transferred - */ - IMPORT_C void SetSourceL( CMceMediaSource* aSource ); - - /** - * Adds sink to the stream. CMceMediaStream can have - * many sinks at a time. Ownership of passed sink is transferred. - * However, the same sink can be also passed to other streams resulting - * that streams share ownership of the sink. - * @param aSink sink to be added to the stream; ownership is transferred - */ - IMPORT_C void AddSinkL( CMceMediaSink* aSink ); - - /** - * Gets source of the stream. Returns NULL if source is not set. - * @return source of the stream; ownership is not transferred - */ - IMPORT_C CMceMediaSource* Source() const; - - /** - * Gets array of sinks of the stream. - * @return array of sinks - */ - IMPORT_C const RPointerArray& Sinks() const; - - /** - * Removes sink from the stream. - * @post aSink cannot be used anymore and contents of - * previously returned sink array (CMceMediaStream::Sinks()) - * are not anymore valid - * @param aSink sink to be removed from the stream - */ - IMPORT_C void RemoveSinkL( CMceMediaSink& aSink ); - - public: // Binding opposite way stream - - /** - * Binds opposite direction stream to this stream. - * @param aStream another stream to be bind to the stream; - * ownership is transferred - */ - IMPORT_C void BindL( CMceMediaStream* aStream ); - - /** - * Gets opposite direction stream of this stream. - * @return opposite direction stream - */ - IMPORT_C CMceMediaStream& BoundStreamL() const; - - /** - * Checks if opposite direction stream is set. - * @return ETrue if opposite direction stream is set; - * otherwise EFalse - */ - IMPORT_C TBool BoundStream() const; - - - public: //internal - - /** - * Checks if this is binder (biding owner) - * @return ETrue if this is binder (biding owner) - */ - TBool Binder() const; - - /** - * Initializes - * @param aParent the parent - */ - virtual void InitializeL( CMceSession& aParent ); - - /** - * Initializes - * @param aManager the manager. Ownership is NOT transferred - */ - virtual void InitializeL( CMceManager* aManager ); - - protected: - - /** - * C++ default constructor. - */ - CMceMediaStream(); - - private: - - /** - * Handles event - * @param aEvent the event - * @return status, if event was consumed or not or object needs update - */ - TInt HandleEvent( TMceEvent& aEvent ); - - /** - * one-way bind - * @param aStream another stream to be bind to the stream. - */ - void DoBindL( CMceMediaStream* aStream ); - - /** - * Deletes sink - * @param aIndex index of sink in the array - */ - void DeleteSink( TInt aIndex ); - - /** - * Deletes source - */ - void DeleteSource(); - - - protected: // NOT owned data - - /** - * session - */ - CMceSession* iSession; - - protected: // owned data - - - /** - * linked stream. Owned if iLinkOwner is ETrue - */ - CMceMediaStream* iLinkedStream; - - public: // stub data - - /** - * source - */ - CMceMediaSource* iSource; - - /** - * sinks - */ - RPointerArray iSinks; - - TState iState; - - TMceMediaType iType; - - TBool iLinkOwner; - - TBool iIsEnabled; - - TUint iLocalMediaPort; - - CDesC8Array* iMediaSDPLines; - }; - - -#endif