mmfenh/enhancedmediaclient/Client/src/Components/ClientProgDLSource/ClientProgDLSource.h
changeset 16 43d09473c595
parent 14 80975da52420
child 22 128eb6a32b84
--- a/mmfenh/enhancedmediaclient/Client/src/Components/ClientProgDLSource/ClientProgDLSource.h	Mon May 03 12:59:52 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,383 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Definition of the ClientProgDLSource class.
-*
-*/
-
-
-#ifndef C_CCLIENTAUDIOPROGDLSOURCE_H
-#define C_CCLIENTAUDIOPROGDLSOURCE_H
-
-#include <e32base.h>
-#include <ProgDLSource.h>
-#include <downloadmgrclient.h>
-#include <mmfcontrollerframework.h>
-#include <MultimediaDataSource.h>
-
-#include "SourceBase.h"
-#include "TransferRateMonitor.h"
-#include "ProgDLSourceCustomCommands.h"
-#include "EventAO.h"
-#include "DownloadGateway.h"
-
-
-class MCustomCommand;
-
-namespace multimedia
-    {
-    
-    class CEventNotifier;
-
-    class MTransferRateMonitor;
-    
-    /**
-    *  Implements the ClientSide Source for the ProgDL Source.
-    *  Provides functionality to the Clients to query attributes
-    *  from the ServerSide source
-    *  @lib EnhancedMediaClient.lib
-    *  @since S60 v3.2
-    */    
-    class CClientProgDLSource : public CSourceBase,
-                                public MProgDLSource,
-                                public MDownloadGatewayObserver,
-                                public MTransferRateObserver,
-                                public MSourceStateObserver
-        {
-        public:
-            /**
-            * Function to Create the Object.
-            */
-            CClientProgDLSource();
-            /**
-            * Destructor.
-            */
-            ~CClientProgDLSource();
-            /**
-            * Post Contructor. This is to Support the new type of Construction
-            * of the Object. Notice there is no Two phased Constructor in this class
-            */
-            TInt PostConstructor();
-            
-            /**
-            * Associates the DownloadGateway with the Progressive Download Source.
-            * This Gateway class sends all the Browser Events to the Source.
-            */
-            TInt SetDownloadGateway(CDownloadGateway* aDownloadGateway);
-            
-            // From MControl begins
-            /**
-            * From MControl.
-            * Adds the Observer to this Object
-            * @since S60 v3.2
-            * @param aObserver Client which set the Observer.             
-            */            
-            TInt AddObserver( MControlObserver& aObserver );
-            /**
-            * From MControl.
-            * Removes the Observer to this Object
-            * @since S60 v3.2
-            * @param aObserver Client which set the Observer.             
-            */            
-            TInt RemoveObserver( MControlObserver& aObserver );
-            /**
-            * From MControl.
-            * Returns the Type of this Object.
-            * request and that it is now outstanding 
-            * @since S60 v3.2
-            */            
-            TUid Type();
-            /**
-            * From MControl.
-            * Returns the Control Type of this Object.
-            *
-            * @since S60 v3.2
-            */            
-            TControlType ControlType();
-            // From MControl ends
-            
-            // From MSourceControl begins
-            /**
-            * From MSourceControl.
-            * Returns the Size in Bytes of the Source.
-            * Since this is ProgDL Source, the size represents
-            * the file size which will be passed by the Client
-            *  to the Source
-            * @since S60 v3.2
-            * @param aSize Size returned by the Source.             
-            */            
-            TInt GetSize( TUint& aSize );
-            /**
-            * From MSourceControl.
-            * Returns the Mime Type of the Data for which
-            * the Source is initialized.
-            * @since S60 v3.2
-            * @param aMimeType MimeType returned by the Source.             
-            */            
-            TInt GetMimeType( TDes8& aMimeType );
-            /**
-            * From MSourceControl.
-            * Closes the Source.
-            *
-            * @since S60 v3.2
-            */            
-            TInt Close();
-            // From MSourceControl ends
-            
-            // From MProgDLSource begins
-            /**
-            * From MProgDLSource.
-            * Opens the Source with the FileName and TransactionID
-            * Here it connects to the Browser and attaches to the 
-            * download corresponding to the TransactionID
-            *
-            * @since S60 v3.2
-            * @param aFileName      FileName to be Opened by the Source
-            * @param aDLTxId        TransactionID to connect to the Browser
-            */            
-            TInt Open( const TDesC& aFileName,TInt32 aDLTxId );
-            /**
-            * From MProgDLSource.
-            * Moves the Finished Download to the new Location. This is done
-            * by calling the browser which is invoked through the Gateway.
-            *
-            * @since S60 v3.2
-            * @param aFileName      FileName to be Opened by the Source
-            */            
-            TInt MoveFile(const TDesC& aDestFileName );
-            /**
-            * From MProgDLSource.
-            * Cancels the Ongoing Download
-            *
-            * @since S60 v3.2
-            */            
-            TInt CancelDownload();
-            /**
-            * From MProgDLSource.
-            * Resumes the Paused download
-            *
-            * @since S60 v3.2
-            */            
-            TInt ResumeDownload();
-            /**
-            * From MProgDLSource.
-            * Gets the Current FileSize from the Browser which is getting 
-            * Downloaded
-            *
-            * @since S60 v3.2
-            * @param aSize  Size of the File already downloaded
-            */            
-            TInt GetCurrentFileSize( TUint& aSize );
-            /**
-            * From MProgDLSource.
-            * Gets the Expected FileSize from the Browser which is getting 
-            * Downloaded
-            *
-            * @since S60 v3.2
-            * @param aSize  Final Size of the File
-            */            
-            TInt GetExpectedFileSize( TUint& aSize );
-            /**
-            * From MProgDLSource.
-            * Return the Current Download Status of the Download
-            *
-            * @since S60 v3.2
-            */            
-            TDownloadStatus GetDownloadStatus();
-            /**
-            * From MProgDLSource.
-            * Queries if the Download is Complete from the Gateway
-            *
-            * @since S60 v3.2
-            * @param aBool      Download Complete Status
-            */            
-            TInt IsDownloadComplete(TBool& aBool);
-            /**
-            * From MProgDLSource.
-            * Gets the Percentage of the File already Downloaded
-            *
-            * @since S60 v3.2
-            * @param aPercent   Percentage of the File downloaded
-            */            
-            TInt GetPercentageDownloaded(TUint& aPercent);
-            /**
-            * From MProgDLSource.
-            * Gets the Percentage of the File Buffered before Playback starts.
-            * This query is to the ServerSide Source which is in Buffering State
-            *   
-            * @since S60 v3.2
-            * @param aPercent      Percentage of Data Buffered before Playback starts.
-            */            
-            TInt GetPercentageBuffered(TUint& aPercent);            
-            /**
-            * From MProgDLSource.
-            * This is the DownloadRate that tells you how fast data is downloaded
-            * by the Download Manager
-            *
-            * @since S60 v3.2
-            * @param aRate  Rate at which Data is Downloaded.
-            */            
-            TInt GetDownloadingRate(TUint& aRate);
-            /**
-            * From MProgDLSource.
-            * Returns the BitRate of the Data played from the Source
-            *
-            * @since S60 v3.2
-            * @param aRate  BitRate of the Data Played from the Source
-            */            
-            TInt GetBitRate(TUint& aRate); 
-            /**
-            * From MProgDLSource.
-            * Returns the FileName associated with the Download.
-            * This value is set by the Client when it calls Open().
-            *
-            * @since S60 v3.2
-            * @param aFileName  FileName to be Opened by the Source
-            */            
-            TInt FileName(TPtr& aFileName);
-            // From MProgDLSource ends
-            
-            // From MDownloadGatewayObserver
-            /**
-            * From MDownloadGatewayObserver.
-            * The Gateway Observer sends event which it receives from the
-            * Download Manager.
-            *
-            * @since S60 v3.2
-            * @param aStatus  Current Download Status
-            */            
-            void Event(TDownloadStatus aStatus);
-            /**
-            * From MDownloadGatewayObserver.
-            * Notifies the Client that the Move of the File Complete
-            * with an ErrorCode returned.
-            *
-            * @since S60 v3.2
-            * @param aError  Move Complete with this ErrorCode.
-            */            
-            void MoveFileComplete(TInt aError);
-            // MDownloadGatewayObserver Ends
-            
-            
-            // From CSourceBase begins
-            /**
-            * From CSourceBase.
-            * Callback from the StreamControl when the Source is Created
-            *
-            * @since S60 v3.2
-            * @param aCustomCommand    Custom Command handle to send message to the Source             
-            * @param aSourceHandle     Handle Identifying the Source             
-            */            
-            void ServerSourceCreated( MCustomCommand& aCustomCommand,
-                                    TMMFMessageDestination& aSourceHandle );
-            /**
-            * From CSourceBase.
-            * Callback from the StreamControl when the ServerSource is Deleted
-            *
-            * @since S60 v3.2
-            */            
-            void ServerSourceDeleted();
-            /**
-            * From CSourceBase.
-            * Returns the Content Protection information to the Stream Control
-            * Currently returns KErrNotSupported 
-            * @since S60 v3.2
-            */            
-            TBool IsEncrypted();
-            /**
-            * From CSourceBase.
-            * Returns the SourceUID
-            *
-            * @since S60 v3.2
-            */            
-            TUid GetSourceUid();
-            /**
-            * From CSourceBase.
-            * Returns the Header Data passed when the Client calls Open
-            *  Currently return KErrNotSupported
-            * @since S60 v3.2
-            */            
-            TInt GetHeaderData(TPtr& aPtr);
-            // From CSourceBase ends
-            
-            //MTransferRateObserver begins
-            /**
-            * From MTransferRateObserver.
-            * Callback from the TransferRate Monitor that the Rate Changed
-            * @since S60 v3.2
-            */            
-            void TransferRateChanged();
-            /**
-            * From MTransferRateObserver
-            * Method from the Transfer Rate Monitor to query CurrentFile Size.
-            * @since S60 v3.2
-            * @param aCurrentSize Current File Size returned to the Caller             
-            */            
-            TInt GetCurrentSize( TUint& aCurrentSize );
-            // MTransferRateObserver ends
-            
-            // MSourceStateObserver begins
-            /**
-            * From MSourceStateObserver.
-            * Callback from the Active Object that the Source State changed.
-            * @since S60 v3.2
-            */            
-            void SourceStateChanged();    
-            // MSourceStateObserver ends		
-            
-        private:
-            // Variable to determine if the ServerSource exists
-            TBool iServerSourceExists;
-
-            // FileSize from the Client
-            TUint iSourceSize;
-            // Current Size from the Browser
-            TInt iCurrentSize;
-            // Destination File Name            
-            TFileName iDestFileName;
-
-            // Handle to send messages to the Server Side Source
-            MCustomCommand* iCustomCommand;
-            // Handle Identifying the Server Side Source
-            TMMFMessageDestination iSourceHandle;
-            
-            // Current State of the Source
-            TPckgBuf<CMultimediaDataSource::TState> iStatePckg;
-            // Observer monitoring the State change event
-            CEventAO* iStateEvent;
-            // Current State of the Source
-            CMultimediaDataSource::TState iSourceState;
-            // Event Notifier to notify Clients
-            CEventNotifier* iEventNotifier;
-            // Storing the Download Complete Status
-            TBool isDownloadComplete;
-            // Storing the Download Paused status
-            TBool isDownloadPaused;
-            // Storing the DownloadID/Transaction ID
-            TInt32 iDownloadId;
-            // FileName passed to Open the Source
-            HBufC* iFileName;
-            // Gateway Attached to this Source to talk to Browser
-            CDownloadGateway* iDownloadGateway;
-            // Transfer Rate monitor
-            CTransferRateMonitor* iMonitor;
-            // Current Size of the File in Bytes.
-            TUint iCurrentBytes;
-            // Is the Playback in Progressive Mode
-            TBool iProgressiveMode;
-        };
-    } // namespace multimedia
-
-#endif // CLIENTAUDIOPROGDLSOURCE_H
-
-// End of file