diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/mmshengine/inc/musengmceoutsession.h --- a/mmsharing/mmshengine/inc/musengmceoutsession.h Thu Aug 19 09:51:39 2010 +0300 +++ b/mmsharing/mmshengine/inc/musengmceoutsession.h Tue Aug 31 15:12:07 2010 +0300 @@ -23,9 +23,8 @@ #include "musengmcesession.h" #include "musunittesting.h" - // FORWARD DECLARATIONS -class MMusEngOutSessionObserver; +class MLcUiProvider; class CMceStreamBundle; // CLASS DECLARATION @@ -46,54 +45,14 @@ */ ~CMusEngMceOutSession(); - - public: // NEW API FUNCTIONS - - /** - * Sends invite to specified address. Session establishment is done in - * pause mode meaning that no RTP will be sent to network as a - * consequence of established session. PlayL() can be called any time - * during session establishment or after that in order to allow - * RTP sending. - * @leave KErrAlreadyExists if session establishment is already - * in progress - */ - IMPORT_C void InviteL( const TDesC& aRecipient ); - - /** - * Cancels Invite. - * @pre Invite is sent - */ - IMPORT_C void CancelInviteL( ); + public: // From MLcSession + + const TDesC& RemoteDisplayName(); - /** - * If codecs supported by recipient are known e.g. because of OPTIONS - * query, they can be communicated to engine via this function - * @param aVideoCodecs Comma separated list of supported codecs - */ - IMPORT_C void SetSupportedVideoCodecListL( const TDesC& aVideoCodecs ); - - - public: // VIRTUAL API - - /** - * Resumes previously paused session. Exact behavior depends on - * exact session type. - */ - virtual void PlayL() = 0; - - /** - * Pauses session. Exact behavior depends on exact session type. - */ - virtual void PauseL() = 0; - - /** - * Tells whether session is paused or not - * @pre Call of InviteL has been completed - */ - virtual TBool IsPlayingL() = 0; - - + void EstablishLcSessionL(); + + void TerminateLcSessionL(); + protected: // Must be implemented in derived class /** @@ -103,6 +62,7 @@ virtual void CompleteSessionStructureL( CMceStreamBundle& aLocalBundle ) = 0; + virtual void AddDisplayL( CMceMediaStream& aStream ); protected: // May be overridden in derived classes @@ -115,7 +75,15 @@ */ virtual void EstablishSessionL(); + TBool IsH264Supported() const; + /** + * + */ + virtual void CreateMceSessionStructureL( TBool aForceSdpBandwidth = + EFalse ); + + protected: // helper function inherited from CMusEngMceSession /** @@ -129,7 +97,8 @@ * session. This function overrides function in base class and may * be further overridden. Function calls also overridden version. */ - void AdjustVideoCodecL( CMceVideoCodec& aVideoCodec ); + void AdjustVideoCodecL( CMceVideoCodec& aVideoCodec, + TMceSourceType aSourceType ); /** * Sets Multimediasharing specific audio codec settings like audio and @@ -145,60 +114,66 @@ /** * Constructor */ - CMusEngMceOutSession( const TRect& aRect, - MMusEngSessionObserver& aSessionObserver, - MMusEngOutSessionObserver& aOutSessionObserver ); + CMusEngMceOutSession(); /** * Second-phase constructor */ - void ConstructL( TUint aSipProfileId ); - - - private: + void ConstructL(); - /** - * - */ - void CreateMceSessionStructureL(); + + private: // from MMusSipProfileUser, overrides base class definition + + virtual void ProfileRegistered(); + - /** - * Add privacy sip header if call privacy is switched on else otherwise. - */ - void AddPrivacyHeaderL( CDesC8Array& aHeaders ); + private: + void DoInviteL( const TDesC& aRecipient = KNullDesC ); + + HBufC* ResolveRecipientLC(); + + static TInt AsyncBrakeCompleted( TAny* aPtr ); - protected: // DATA + static TInt RegistrationTimerExpired( TAny* aPtr ); - /** - * Callback reference to outsession observer interface. - */ - MMusEngOutSessionObserver& iOutSessionObserver; + static TInt InvitationResponseTimerExpired( TAny* aPtr ); + + void InitRecipientNotFoundHandling(); + + void HandleRecipientNotFound(); - /** - * ETrue if operator specific behavior is expected - */ - TBool iPrivate; + TBool DoSyncRetryL(); + + void SplitL( const TDesC& aDes, const TDesC& aChar, CDesCArray* aArray ); - /** - * ETrue if private number is turn on - */ - TBool iPrivateNumber; + HBufC* ReadDescPropertyL( TUint aKey ); + + TBool IgnoreErrorNote(); + HBufC* RemoteAddressL() const; + + void InputRecipientL( TDes& aRecipientAddress ); protected: // DATA - /** - * Recipient of session to be constructed - */ - HBufC8* iRecipient; - + HBufC* iRemoteDisplayName; + HBufC8* iRecipient; HBufC8* iVideoCodecList; - + TInt iTriedInvitations; + HBufC* iRemoteSipAddressProposal; + CDeltaTimer* iDeltaTimer; + TCallBack iAsyncBrakeCallBack; + TDeltaTimerEntry iAsyncBrakeEntry; + TCallBack iRegistrationCallBack; + TCallBack iInvitationResponseCallBack; + TDeltaTimerEntry iRegistrationEntry; + TDeltaTimerEntry iInvitationResponseEntry; + TBool iRegistrationPending; + TBool iAddressQueried; private: MUS_UNITTEST ( UT_CMusEngOutSession ) - }; #endif //MUSHENGMCESESSION_H