tsrc/musenginestub/inc/musengmceoutsession.h
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
--- a/tsrc/musenginestub/inc/musengmceoutsession.h	Tue Aug 31 15:12:07 2010 +0300
+++ b/tsrc/musenginestub/inc/musengmceoutsession.h	Wed Sep 01 12:31:01 2010 +0100
@@ -23,6 +23,10 @@
 #include "musengmcesession.h"
 
 
+// FORWARD DECLARATIONS
+class CSIPProfile;
+class CMusSipProfileHandler;
+class MMusEngOutSessionObserver;
 
 // CLASS DECLARATION
 /**
@@ -30,29 +34,160 @@
 * CMusEngLiveSession and CMusEngClipSession.
 *
 * @lib musengine.lib
+* @since S60 v3.2
 */
 class CMusEngMceOutSession : public CMusEngMceSession
     {
-    
+
     public:
 
         /**
         * Destructor
+        *
+        * @since S60 v3.2
         */
         ~CMusEngMceOutSession();
 
 
+    public: // NEW API FUNCTIONS
+
+        /**
+        * Sends invite to specified address
+        * @leave KErrAlreadyExists if session establishment is already
+        *        in progress
+        *
+        * @since S60 v3.2
+        */
+        IMPORT_C void InviteL( const TDesC& aRecipient );
+
+        /**
+        * Cancels Invite.
+        * @pre Invite is sent.
+        * @since S60 v3.2
+        */
+        IMPORT_C void CancelInviteL( );
+
+
+    public: // VIRTUAL API
+
+        /**
+        * Resumes previously paused session. Exact behavior depends on
+        * exact session type.
+        *
+        * @since S60 v3.2
+        */
+        IMPORT_C virtual void PlayL() = 0;
+
+        /**
+        * Pauses session. Exact behavior depends on exact session type.
+        *
+        * @since S60 v3.2
+        */
+        IMPORT_C virtual void PauseL() = 0;
+
+
+    protected: // Must be implemented in derived class
+
+        /**
+        *
+        * @since S60 v3.2
+        */
+        virtual void CompleteSessionStructureL() = 0;
+
+
+    protected: // helper function inherited from CMusEngMceSession
+
+        /**
+        * Function handling MCE session termination.
+        *
+        * @since S60 v3.2
+        */
+        //void HandleTermination( TMceTransactionDataContainer* aContainer );
+
+
     protected:
 
         /**
         * Constructor
+        *
+        * @since S60 v3.2
         */
-        CMusEngMceOutSession( const TRect& aRect );
+        CMusEngMceOutSession( const TRect& aRect, TUint aSipProfileId = 0 );
 
         /**
         * Second-phase constructor
+        *
+        * @since S60 v3.2
         */
         void ConstructL();
 
+
+    protected: // HELPERS
+
+        #if (defined (__WINS__) || defined(__WINSCW__))
+        /**
+        *
+        * @since S60 v3.2
+        */
+        void SipProfileChanged();
+        #endif
+
+
+    private:
+
+        /**
+        *
+        * @since S60 v3.2
+        */
+        void CreateMceSessionStructureL();
+
+        /**
+        *
+        * @since S60 v3.2
+        */
+        MMusEngOutSessionObserver* OutSessionObserver();
+
+        /**
+        * Parses, validates and creates new recipient address
+        * out of given address.
+        * @return Parsed recipient URI. Ownership is transferred.
+        * @since S60 v3.2
+        */
+        HBufC8* ParseRecipientUriL(  const TDesC& aRecipient  );
+
+
+    protected: // DATA
+
+        /**
+        * Repository id of SipProfile
+        *
+        * @since S60 v3.2
+        */
+        TUint iSipProfileId;
+
+        /**
+        * Owned by iSipProfileHandler
+        *
+        * @since S60 v3.2
+        */
+        //CSIPProfile* iSipProfile;
+
+        /**
+        * Callback pointer to interface
+        *
+        * @since S60 v3.2
+        */
+        //CMusSipProfileHandler* iSipProfileHandler;
+
+
+    public: // DATA
+
+        /**
+        *
+        * @since S60 v3.2
+        */
+        HBufC8* iRecipient;
+        TBool iInvited;
+
     };
 #endif //MUSHENGMCESESSION_H