mmfenh/enhancedmediaclient/Client/src/Components/ClientProgDLSource/ClientProgDLSource.h
--- 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