mmsharing/mmshengine/inc/musengclipsession.h
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
--- a/mmsharing/mmshengine/inc/musengclipsession.h	Tue Feb 02 00:09:07 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +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 MUSHENGCLIPSESSION_H
-#define MUSHENGCLIPSESSION_H
-
-// USER
-#include "musengmceoutsession.h"
-#include "musunittesting.h"
-
-
-class MMusEngClipSessionObserver;
-class CMusEngLiveSession;
-class CMceFileSource;
-class CMceAudioStream;
-class CMceVideoStream;
-class CMceAudioCodec;
-
-
-class CMusEngClipSession : public CMusEngMceOutSession
-    {
-    MUS_UNITTEST( UT_CMusEngClipSession )
-    
-    public:
-
-        /**
-        *
-        */
-        IMPORT_C static CMusEngClipSession* NewL( 
-                                const TRect& aRect,
-                                MMusEngSessionObserver& aSessionObserver,
-                                MMusEngOutSessionObserver& aOutSessionObserver,
-                                MMusEngClipSessionObserver& aClipSessionObserver,
-                                TUint aSipProfileId = 0 );
-                                                  
-        /**
-        *
-        */
-        ~CMusEngClipSession();
-
-
-    public: // new API
-        
-        /**
-        * Sets file to be shared during session.
-        * @pre File cannot be DRM protected
-        * @post InviteL can be called
-        * @leave One of the system wide error codes
-        * @param aFileName Name of the file to be shared
-        */
-        IMPORT_C void SetClipL( const TDesC& aFileName );
-        
-        /**
-        * Starts or stops fast forwarding the clip. Clip is left paused after
-        * stopping the fast forwarding.
-        * @pre Session is ongoing
-        * @param aUseFFWD ETrue to start FFWD, EFalse to stop it.
-        */
-        IMPORT_C void FastForwardL( TBool aUseFFWD );
-
-        /**
-        * Starts or stops fast rewinding the clip. Clip is left paused after
-        * stopping the fast rewinding.
-        * @pre Session is ongoing
-        * @param aUseFRWD ETrue to start FRWD, EFalse to stop it.
-        */
-        IMPORT_C void FastRewindL( TBool aUseFRWD );
-
-        /**
-        * Returns current position as time interval.
-        */
-        IMPORT_C TTimeIntervalSeconds PositionL();
-
-        /**
-        * Returns duration of current clip as time interval
-        */
-        IMPORT_C TTimeIntervalSeconds DurationL();
-
-        /**
-        *
-        */
-        IMPORT_C void SetPositionL (const TTimeIntervalSeconds &aPosition);
-
-        /**
-        * Starts transcoding of file. After the transcoding is complete,
-        * file to be shared is changed into the transcoded file.
-        * @pre MMusEngClipSessionObserver::TranscodingNeeded is called
-        * @param aFileName Name of the transcoding output file.
-        */
-        IMPORT_C void TranscodeL( const TFileName& aFileName );
-
-        /**
-        * Cancels transcoding of file. 
-        * @pre TranscodeL has been called succesfully and transcoding 
-        *      is not completed
-        */
-        IMPORT_C void CancelTranscodeL();
-
-
-    public: // implementation of virtual API from CMusEngMceOutSession
-
-        /**
-        * Resumes previously paused session. 
-        * Continues showing file on display, resumes clip's audio, continues
-        * playing file and enables streaming to network.
-        * @leave KErrNotReady if called during FFWD or FRWD
-        */
-        IMPORT_C void PlayL();
-
-        /**
-        * Pauses session.
-        * Holds display, mutes clip's audio, pauses file and 
-        * disables all streaming to network.
-        * @leave KErrNotReady if called during FFWD or FRWD
-        */
-        IMPORT_C void PauseL();
-
-        /**
-        * Tells whether session is paused or not
-        */
-        IMPORT_C TBool IsPlayingL();
-
-
-    protected: // implementation of virtual helper from CMusEngMceOutSession
-
-        /**
-        * @param aLocalBundle All local streams are supposed to be added to
-        *        this bundle
-        */
-        void CompleteSessionStructureL( CMceStreamBundle& aLocalBundle );        
-
-
-    protected: // overrides function from CMusEngMceOutSession
-    
-        /**
-        * Checks that there is no need for transcoding before calling
-        * overridden base class variant of this function.
-        */
-        void EstablishSessionL();
-        
-    
-    private: // from MMceStreamObserver, 
-             // overrides the function in CMusEngMceSession
-
-        /**
-        * The state of the stream has changed.
-        *
-        * @param aStream, the stream that has changed.
-        */
-        void StreamStateChanged( CMceMediaStream& aStream );
-        
-        /**
-        * The state of the source has changed.
-        * @param aStream, the stream that uses the source.
-        * @param aSource, the source that has changed.
-        */
-        void StreamStateChanged( CMceMediaStream& aStream,
-                                 CMceMediaSource& aSource );
-
-    private:
-
-        /**
-        *
-        */
-        CMusEngClipSession( MMusEngSessionObserver& aSessionObserver,
-                            MMusEngOutSessionObserver& aOutSessionObserver,
-                            MMusEngClipSessionObserver& aClipSessionObserver,
-                            const TRect& aRect );
-
-        /**
-        * @leave KErrPermissionDenied if file is DRM protected
-        */
-        void ConstructL( TUint aSipProfileId );
-
-
-    private: // HELPERS
-
-        /**
-        *
-        */
-        TBool IsProtectedFileL( const TDesC& aClipFile );
-        
-        void AddAmrCodecL( CMceAudioStream& aAudioStream );
-        
-        void AddVideoCodecL( CMceVideoStream& aVideoStream );
-        
-        TBool HasClipEnded();
-
-        /**
-        * Returns current position as microseconds.
-        * @param aActualPosition ETrue if actual position is wanted, EFalse
-        *   if buffering time is taken in count.
-        */
-        TTimeIntervalMicroSeconds PositionMicroSecondsL( TBool aActualPosition = EFalse );
-
-        /**
-        * Constructs audio stream structure during session completion and adds
-        * it to session.
-        * @param aLocalBundle All local streams are supposed to be added to
-        *        this bundle
-        * @pre iSession != NULL
-        */
-        void ConstructAudioStructureL( CMceStreamBundle& aLocalBundle );
-        
-        void DetermineBufferingPeriod( CMceMediaStream& aStream );
-
-        TTimeIntervalMicroSeconds GetVideoSinkRelativeFilePos( 
-            const TTimeIntervalMicroSeconds& aActualPosition,
-            const TTimeIntervalMicroSeconds& aDuration );
-            
-        TBool IsH264Supported() const;
-
-    private: // Data
-    
-        /**
-        * Reference to live session observer interface.
-        */
-        MMusEngClipSessionObserver& iClipSessionObserver;
-        
-        TFileName iFileName;
-        
-        TBool iTranscodingOngoing;
-        
-        TTime iFFWDStartTime;
-        TTime iFRWDStartTime;
-        
-        TTime iBufferingStartedTime;
-        TTimeIntervalMicroSeconds iBufferingPeriod;
-        
-        TTimeIntervalMicroSeconds iDelayFileEndingPos; 
-        TTimeIntervalMicroSeconds iPreviousPos;
-        TBool iClipEnded;
-        
-        TFileName iTranscodingDestFileName;
-        TBool iRewindedToBeginning;
-        
-    };
-
-#endif
-