diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpsharing/applicationengine/inc/upnpfilesharingengine.h --- a/upnpsharing/applicationengine/inc/upnpfilesharingengine.h Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,326 +0,0 @@ -/* -* Copyright (c) 2006-2007 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: file sharing engine class definition - * -*/ - - - - - -#ifndef __UPNPFILESHARINGENGINE_H__ -#define __UPNPFILESHARINGENGINE_H__ - - -// Include Files -#include // CBase -#include // TBuf -#include // for CDesCArray - -#include "upnpconnectionmonitorobserver.h" -#include "upnpcontentserverclient.h" -#include "upnpfilesharingengineobserver.h" - -// FORWARD DECLARATIONS -class CUpnpContentRequestAO; -class CUPnPFileSharingEngineAO; -class CUpnpContentShareAO; -class CUpnpProgressWatcher; -class CUPnPConnectionMonitor; - - -// CONSTANTS - - -// ENUMERATIONS - -enum THomeConnectMediaType - { - EImageAndVideo = 0, - EPlaylist, - EPhotoFile, - EVideoFile, - EMusicFile - }; - -enum THomeConnectSharingStates - { - ENoChange = -99, - EShareNone = 0, - EShareMany, - EShareAll - }; - -// CLASS DECLARATION - -/** - * File sharing engine class for UPnP Home Connect Application - * @lib upnpapplicationengine.lib - * @since S60 3.1 - */ -class CUPnPFileSharingEngine : public CBase, - public MUPnPConnectionMonitorObserver - { - -private: - - /** - * C++ default constructor. - */ - CUPnPFileSharingEngine(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - -public: // Constructors and destructor - - /** - * Two-phased constructor. - * @since S60 3.1 - */ - IMPORT_C static CUPnPFileSharingEngine* NewL(); - - /** - * Two-phased constructor. - * @since S60 3.1 - */ - IMPORT_C static CUPnPFileSharingEngine* NewLC(); - - /** - * Destructor. - * @since S60 3.1 - */ - IMPORT_C virtual ~CUPnPFileSharingEngine(); - -public: - - /** - * Sets observer for active object - * @since S60 3.1 - * @param aObserver, observer class - */ - IMPORT_C void SetObserver( MUPnPFileSharingEngineObserver* aObserver ); - - /** - * Return handle to MUPnPFileSharingEngineObserver interface - * @since S60 3.1 - */ - IMPORT_C MUPnPFileSharingEngineObserver* Observer(); - - /** - * Sets sharing state to on or off - * Asynchronous, callback to - * MUPnPFileSharingEngineObserver::HandleSharingStatus - * @since S60 3.1 - * @param aState ETrue to enable sharing, otherwise EFalse - */ - IMPORT_C void SetSharingStateL( TBool aState ); - - /** - * Gets file sharing state from local MediaServer - * @since S60 3.1 - * @return ETrue if sharing is ON otherwise EFalse - */ - IMPORT_C TBool SharingStateL(); - - /** - * Starts sharing process - * Asynchronous, callback to - * MUPnPFileSharingEngineObserver::HandleSharingDone and - * MUPnPFileSharingEngineObserver::HandleSharingProgress - * @since S60 3.1 - * @param aType, Type of media to share - */ - IMPORT_C void ShareMediaL( THomeConnectMediaType aType ); - - /** - * Updates shared objects - * Asynchronous, callback to - * MUPnPFileSharingEngineObserver::HandleSharingDone and - * MUPnPFileSharingEngineObserver::HandleSharingProgress - * @since S60 3.1 - * @param aType Type of media to refresh - */ - IMPORT_C void RefreshSharedMediaL( THomeConnectMediaType aType ); - - /** - * Gets the selected albums/playlist indexes - * Asynchronous, callback to - * MUPnPFileSharingEngineObserver::HandleSelectionIndexes - * @since S60 3.1 - * @param aType Type of media selected - */ - IMPORT_C void RequestSelectionIndexesL( - THomeConnectMediaType aType ) const; - - /** - * Gets the selected albums/playlist indexes - * @since S60 3.1 - * @param aMarkedItems The indexes of the selections user has made\ -relative to selections received from GetSelectionContentL - */ - IMPORT_C void GetSelectionIndexesL( - CArrayFix& aMarkedItems ) const; - - /** - * Sets the user selections - * @since S60 3.1 - * @param aType Type of media selected - * @param aMarkedItems The indexes of the selections user has made\ -relative to selections received from GetSelectionContentL - */ - IMPORT_C void SetSelectionIndexesL( - THomeConnectMediaType aType, - const CArrayFix& aMarkedItems ); - - /** - * Requests the album /playlist names - * Asynchronous, callback to - * MUPnPFileSharingEngineObserver::HandleSelectionContent - * @since S60 3.1 - * @param aType Type of the media requested - */ - IMPORT_C void RequestSelectionContentL( THomeConnectMediaType aType ); - - /** - * Gets the album /playlist names from upnpcontentserver once ready - * @since S60 3.1 - * @param aType Container type - * @param aArray Array containng the names for the UI - */ - IMPORT_C void GetSelectionContentL( CDesCArray& aArray ) const; - - /** - * Request information about sharing statuses / progress from the - * contentserver. The information is received via callback - * @since S60 3.1 - */ - IMPORT_C void RequestSharingProgressL(); - - /** - * Starts upload listener. Leave in case of error - * @since S60 3.1 - */ - IMPORT_C void StartUploadListenerL(); - - /** - * Stops upload listener. Leave in case of error - * @since S60 3.1 - */ - IMPORT_C void StopUploadListenerL(); - - /** - * Start or stop connection monitoring - * @since S60 3.1 - * @param aState ETrue = Start, EFalse = Stop - * @param aStatus TRequestStatus for async operation - */ - void SetConMonStateL( TBool aState, TRequestStatus& aStatus ); - - /** - * Set share file completed flag - * @since S60 3.2.3 - * @param aShareState set ETrue indicate imageandvideo or playlist shared completely, - * perhaps both of them shared completely. - * EFalse indicate imageandvideo or playlist shared incompletely, - * perhaps both of them shared completely. - */ - void SetShareFileComplete( TBool aShareState ) ; - -private: - - /** - * Helper function to copy TInts between arrays of CArrayFix& - * @since S60 3.1 - */ - void CopyTintArrayL( const CArrayFix& aSrc, - CArrayFix& aDst) const; - - /** - * Helper function to copy descriptors between arrays of CDesCArrays - * @since S60 3.1 - */ - void CopyCdescArrayL( const CDesCArray& aSrc, - CDesCArray& aDst ) const; - -private : // From MUPnPConnectionMonitorObserver - - /** - * Update the sharing state variable in case WLAN connection is lost - * From MUPnPConnectionMonitorObserver - * @since S60 3.1 - */ - void ConnectionLost(); - -private: // data - - /** - * Active object for asynchronous file sharing - */ - CUPnPFileSharingEngineAO* iAO; - - /** - * Active object for asynchronous get responce from content server - * Owned. - */ - CUpnpContentShareAO* iContentSharer; - - /** - * Active object class retrieving information about selections and - * content from upnpcontentserver - */ - CUpnpContentRequestAO* iContentRequestor; - - /** - * Cached image selections - */ - CArrayFixFlat* iImageSelections; - - /** - * Cached music selections - */ - CArrayFixFlat* iMusicSelections; - - /** - * Client side handle to upnpcontentserver - */ - RUpnpContentServerClient iContentServer; - - /** - * Observer for file sharing state - */ - MUPnPFileSharingEngineObserver* iObserver; - - /** - * Set share file completed flag. - */ - TBool iShareFileState; - - /** - * Connection monitor - */ - CUPnPConnectionMonitor* iConnMon; - - /** - * Active object handling querying progress - */ - CUpnpProgressWatcher* iProgress; - - }; - -#endif // __UPNPFILESHARINGENGINE_H__ -// End of file -