diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpframework/upnpcommonui/inc/upnpbrowsedialog.h --- a/upnpframework/upnpcommonui/inc/upnpbrowsedialog.h Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,674 +0,0 @@ -/* -* Copyright (c) 2005-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: Header file for the UPnPSelectionDialog class implementation -* -*/ - - -#ifndef __UPNP_BROWSE_DIALOG_H__ -#define __UPNP_BROWSE_DIALOG_H__ - -// INCLUDES -// System -#include - -// upnpframework / avcontroller api -#include "upnpavbrowsingsessionobserver.h" -#include "upnpavrenderingsessionobserver.h" - -// commonui internal -#include "upnpdeviceobserver.h" - -// FORWARD DECLARATIONS -class CUPnPMusicAdapter; -class CUPnPLocalPlayer; -class CUPnPBrowseCacheItem; -class CAknIconArray; -class CUPnPCommonUI; -class CUpnpImagePlayer; -class CUPnPBrowsePlaylistFiller; -class CUPnPPeriodic; - -/** -* Browse dialog class of Common UI library -*/ -class CUPnPBrowseDialog : public CAknDialog, - public MUPnPAVBrowsingSessionObserver, - public MProgressDialogCallback, - public MUPnPDeviceObserver - - { - - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - IMPORT_C static CUPnPBrowseDialog* NewL( - TInt aMenuResource, - MUPnPAVController& aAVControl, - const CUpnpAVDevice& aDevice, - CUPnPCommonUI& aCommonUI ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CUPnPBrowseDialog(); - - public: // Methods from MUPnPAVBrowsingSessionObserver - - /** - * Returns a browse result received from a Media Server. - * - * @since Series 60 3.1 - * @param aBrowseResponse browse response xml document - * @param aError system wide error code - * @param aMatches number of returned items - * @param aTotalCount total number of objects on container - * @param aUpdateId update id number - * @return None - */ - void BrowseResponse( - const TDesC8& aBrowseResponse, - TInt aError, - TInt aMatches, - TInt aTotalCount, - const TDesC8& aUpdateId - ); - - /** - * Returns a search result received from a Media Server. - * - * @param aSearchResponse search response xml document - * @param aError system wide error code - * @param aMatches number of returned items - * @param aTotalCount total number of resulted items - * @param aUpdateId update id number - * @return None - */ - void SearchResponse( - const TDesC8& /*aSearchResponse*/, - TInt /*aError*/, - TInt /*aMatches*/, - TInt /*aTotalCount*/, - const TDesC8& /*aUpdateId*/ - ){}; - - /** - * Notifies that the create container operation is complete. - * - * @since Series 60 3.1 - * @param TInt, status information - * @param aObjectId (const TDesC8&) object ID of the new container - */ - void CreateContainerResponse( TInt /*aError*/, - const TDesC8& /*aObjectId = KNullDesC8*/ ){}; - - /** - * Notifies that the requested UPnP Object deletion is complete. - * - * @since Series 60 3.1 - * @param TInt, status information - * @return None - */ - void DeleteObjectResponse( TInt /*aError*/ ){}; - - /** - * Returns search capabilities of the requested Media Server. - * - * @since Series 60 3.1 - * @param TInt, status information - * @param HBufC8&, the search capabilities string - * @return None - */ - void SearchCapabilitiesResponse( TInt /*aError*/, - const TDesC8& /*aSearchCapabilities*/ ){}; - - - /** - * Notifies that the Media Server we have a session with has - * disappeared. Session is now unusable and must be closed. - * - * @since Series 60 3.1 - * @param aReason reason code - * @return None - */ - void MediaServerDisappeared( TUPnPDeviceDisconnectedReason aReason ); - - /** - * Notifies that the Local Media Server has been put on sharing state - * - * @since Series 60 3.1 - * @param aReason reason code - * @return None - */ - void ReserveLocalMSServicesCompleted( TInt /*aError*/ ){}; - - protected: // from CoeControl - - /** - * Gets the control's help context. - * @param TCoeHelpContext, context of desired help - * @return none - */ - void GetHelpContext(TCoeHelpContext& aContext) const; - - public: // From MProgressDialogCallback - - /** - * Callback function for progress bar. - * - * @since Series 60 3.1 - * @param aButtonId, id of the button pressed - * @return None - */ - void DialogDismissedL( TInt aButtonId ); - - public: // New functions - - /** - * Sends the browse request to UPnP AV Controller. When result set - * arrives, UPnP AV Controller will call the "BrowseResponse" call - * back method. - * - * @param TInt index of the iBrowseArray object, if -1 is given, - * the root container will be browsed. - * @return None - */ - void SendBrowseRequestL( TInt aIndex ); - - /** - * Callback method for the iImageControlTimer. - * - * @since Series 60 3.1 - * @param aDlg current dialog which to be called - * @return Tint - */ - static TInt ImageControlTimerCallbackL(TAny* aDlg); - - - protected: // Functions from base classes - - /** - * From CAknDialog, handles menu commands - * @param aCommandId, command to be handled - * @return none - */ - void ProcessCommandL( TInt aCommandId ); - - /** - * From CAknDialog, handles key events. - * @param TKeyEvent, Event to handled. - * @param TEventCode, Type of the key event. - * @return TKeyResponse, response code (EKeyWasConsumed, - * EKeyWasNotConsumed). - */ - TKeyResponse OfferKeyEventL (const TKeyEvent &aKeyEvent, - TEventCode aType); - - /** - * From CAknDialog, handles layout initialization - */ - void PreLayoutDynInitL(); - - /** - * Menu observer interface. From MEikMenuObserver - * @since Series 60 3.1 - * @param aResourceId resource ID identifying the menu pane to - * initialise. - * @param aMenuPane The in-memory representation of the menu pane - * @return none - */ - void DynInitMenuPaneL (TInt aResourceId, CEikMenuPane *aMenuPane); - - /** - * From CAknDialog, handles focus changes of the dialog - * @param aButtonId, pressed button id - * @return True if ready to close dialog, False otherwise - */ - TBool OkToExitL( TInt aButtonId ); - - /** - * From CoeControl - */ - void HandleResourceChange(TInt aType); - - - public: // Methods from MUPnPDeviceObserver - - /** - * Notifies that the target renderer disappeared - * - * @since Series 60 3.1 - * @param aError exit reason - * @return None - */ - void DeviceDisappeared( TInt aError ); - - private: // New Functions - - /** - * Loads a possibly skinned icon and adds it to icon array - * @since Series 60 3.1 - * @param CAknIconArray, array of icons - * @param MAknsSkinInstance, skin instance - * @param TDesC, reference to icon file - * @param TAknsItemID, skinned icon id - * @param TInt, bitmap id - * @param TInt, bitmap mask id - */ - void AppendIconToArrayL( CAknIconArray* aArray, - MAknsSkinInstance* aSkin, - const TDesC& aMbmFile, - const TAknsItemID& aID, - TInt aBitmapId, - TInt aMaskId); - - /** - * Marks one item - * @since Series 60 3.1 - * @param aItemIndex (TInt) index of item that should be marked - * @return None - */ - void MarkItemL( TInt aItemIndex ); - - /** - * Unmarks one item - * @since Series 60 3.1 - * @param aItemIndex (TInt) index of item that should be unmarked - * @return None - */ - void UnmarkItem( TInt aItemIndex ); - - /** - * Marks all items. Does not mark any containers. - * @since Series 60 3.1 - * @return None - */ - void MarkAllItemsL(); - - /** - * Unmarks all items - * @since Series 60 3.1 - * @return None - */ - void UnmarkAllItems(); - - /** - * Unmarks one item - * @since Series 60 3.1 - * @param aItemIndex (TInt) index of item that should be unmarked - * @return None - */ - void UnMarkItemL( TInt aItemIndex ); - - /** - * Plays music file - * @since Series 60 3.1 - * @param none - * @return none - */ - void PlayL(TBool aLocal); - - /** - * Show image, video and music on external media renderer - * @since Series 60 3.1 - * @param none - * @return none - */ - void ShowPlayExtL(); - - /** - * Displays wait note - * @since Series 60 3.1 - * @param TInt, note resource - */ - void DisplayWaitNoteL( TInt aResource ); - - - /** - * Dismisses wait note - * @since Series 60 3.2.3 - */ - void DismissWaitNoteL(); - - /** - * Called when target device responds to browse query - * @since Series 60 3.1 - * @param TInt, query status - * @param aTotalCount TInt total number of objects - * @param RPointerArray&, returned item array - * @return None - */ - void BrowseResponseL( - TInt aError, - TInt aTotalCount, - const RPointerArray& aResultArray ); - - - - - /** - * updates selected items array - * @since Series 60 3.1 - * @param None - * @return None - */ - void SelectedArrayCheckL(void); - - /** - * updates command button area - * @since Series 60 3.23 - * @param aMark use for two states, item marked or no marked - * @param aTempCounter is the number of the current item in the list. - * @return None - */ - void UpdateCommandButtonAreaL( TBool aMark, TInt aTempCounter ); - - /** - * updates command button area - * @since Series 60 3.23 - * @param aMark use for two states, item marked or no marked - * @param aTempCounter is the number of the current item in the list. - * @return None - */ - void UpdateCommandButtonArea( TBool aMark, TInt aTempCounter ); - - private: - - /** - * C++ default constructor. - */ - CUPnPBrowseDialog( MUPnPAVController& aAVControl, - CUPnPCommonUI& aCommonUI, - const CUpnpAVDevice& aDevice ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( TInt aMenuResource ); - - /** - * Loads listbox items - * @since Series 60 3.1 - * @return none - */ - void LoadListItemsL( void ); - - /** - * Delete old list items - * @since Series 60 3.1 - * @return none - */ - void DeleteListItemsL( void ); - - /** - * Clears dialog title - * @since Series 60 3.1 - * @return none - */ - void ClearTitleL(); - - /** - * Updates navi pane text - * @since Series 60 3.1 - * @return none - */ - void UpdateNaviPaneTextL(); - - /** - * Check if the container with the specified container Id exists - * @since Series 60 3.1 - * @param aCheckContainerId the container Id to be checked - * @return the found result - */ - TInt CacheCheck( const TDesC8& aCheckContainerId ); - - /** - * Update the cache if any new container is found - * @since Series 60 3.1 - * @param aContainerId the container Id to be checked - * @param aNewItem check if the container is new or not - * @return the found result - */ - void CacheItemUpdateL( const TDesC8& aContainerId, TBool aNewItem ); - - /** - * Send dummy browse response - * @since Series 60 3.1 - * @param aCacheIndex the index in the cache array - * - * @return none - */ - void SendDummyBrowseResponseL( TInt aCacheIndex ); - - /** - * Starts ImageControl - * @since Series 60 3.1 - * @param None - * @return none - */ - void StartImageControlL(); - - /** - * Stops ImageControl - * @since Series 60 3.1 - * @param None - * @return None - */ - void StopImageControlL(); - - /** - * Updates softkeys - * @since Series 60 3.1 - * @param aResourceId (TInt) softkey resource - * @return None - */ - void UpdateSoftkeysL( TInt aResourceId ); - - /** - * Starts imageControl timer - * @since Series 60 3.1 - * @param None - * @return None - */ - void StartImageControlTimer( void ); - - /** - * Shows current image - * @since Series 60 3.1 - * @param aShowImage (TBool) shows current image and draws showing - * icon - * @return None - */ - void ShowCurrentImageL( TBool aShowImage ); - - /** - * Shows current video - * @since Series 60 3.1 - * @param none - * @return none - */ - void ShowVideoDialogExtL( ); - - /** - * Handel copy - * @since Series 60 3.1 - * @param None - * - * @return none - */ - void HandleCopyL(); - - /** - * Create a playlist filler representing current music selection - * for starting music playback - * @since Series 60 3.1 - * @param none - * - * @return CUPnPPlayListFiller filler instance - */ - CUPnPPlayListFiller* CreateFillerLC(); - - /** - * Handle different errors returned from other dialogs - * @since Series 60 3.1 - * @param exiting reason - * @return none - */ - void HandleErrorL( TInt aError ); - - /** - * Check if any audio item is marked - * @since Series 60 3.1 - * @param None - * @return ETrue if at least one audio item is marked - */ - TBool IsAudioItemMarked( void ); - - private: // Data - - //listbox - CEikColumnListBox* iListBox; //not owned - //browse result array - RPointerArray iResultArray; //item inside not owned - //navi pane - CAknNavigationDecorator* iNaviDecorator; //owned - // navi pane - CAknNavigationControlContainer* iNaviPane; //not owned - //AV controller - MUPnPAVBrowsingSession* iBrowseSession; //owned - - CUPnPCommonUI& iCommonUI; //not owned - - MUPnPAVController& iAVControl; //not owned - //parent container - RPointerArray iParentId; //owned - // parent name - RPointerArray iParentName; //owned - //common UI - - //wait dialog - CAknWaitDialog* iWaitNoteDialog; //owned - //temporary browse result array - RPointerArray iTempArray; // items inside not owned - //browse direction - TInt iBrowseFlag; - - // stores selected item index - TInt iSelectedItem; - - //exit timer - TBool iFirstResultArray; - TInt iCurrentItem; - TBool iAllObjectsReceived; - - TInt iPrevHighlighteditem; - TInt iUppermostItem; - TInt iBrowseDirection; - - TBool iDummyBrowseResponse; - HBufC8* iCurrentFolderId; //owned - TBool iBrowseRequestSent; - - RPointerArray iBrowseCacheItems; //owned - - CPeriodic* iPeriodic; //owned - - //Array for selected items - RPointerArray iSelectedItemsArray; //owned - //Flag to tell if the image control view is active - TBool iImageControlActive; - //ImageControl periodic timer - CUPnPPeriodic* iImageControlTimer; //owned - - CUpnpImagePlayer* iImagePlayer; //owned - - CUPnPLocalPlayer* iLocalPlayer; //owned - - CUpnpAVDevice* iTargetDevice; //owned - - const CUpnpAVDevice& iSourceDevice; //not owned - - // title pane - CAknTitlePane* iTitlePane; //not owned - - //Flag to tell if shift and Ok was pressed the same time - TBool iShiftAndOkPressed; - - TInt iLastImageItemIndex; - - TInt iChildDialogOpen; - - //flag to either media server disappears or media renderer disappear - TBool iMSDisappear; - - TInt iTotalCount; - - CUPnPCommonUI::TUPnPAction iAction; - - TInt iCopyIndex; - - TBool iRoot; - - TBool iIsMusicItem; - - TBool iAllObjectsReceviedInOneBrowse; - - TInt iNumObjectReceviedInOnBrowse; - - /** - * for music playing, this is to prevent user to pop up renderer - * selection and select renderer multiple times - */ - TBool iMusicPlay; - - TInt iError; - - // is PreLayoutDynInitL done. Used when exiting dialog - TBool iDlgPreLayoutDone; - - // Flag to tell if the the Hash (#) key is Holding down - TBool iHashKeyFlag; - - // Flag to tell if need repeat browse request to get all objects - // which an original browse request desired - TBool iNeedRepeatRequest; - - // Flag to tell if the browse request is original browse request. - TBool iOriginalBrowseRequest; - - // Current number of objects receved from original browse request - TInt iCurrentRecevedObjectIndex; - - // Count of objects which an original browse request desired - TInt iNeedRecevedObjectCount; - - // Server return count of objects in first browse request - TInt iServerReturnObjectCount; - - // If wait note is cancel before the browse dialog is displayed, - // set a value for leave. - TInt iErrorForCancel; - - // Flag to tell if the copying is onging, ETrue: Ongoing - TBool iCopying; - - // Flag to tell if the application should be closed, ETrue: should be closed - TBool iApplicationClose; - }; - -#endif // __UPNP_BROWSE_DIALOG_H__ - -// End of file