upnpframework/upnpcommonui/inc/upnpadvfindresultwindow.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpframework/upnpcommonui/inc/upnpadvfindresultwindow.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,381 @@
+/*
+* 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:  Implements CAdvancedFindResultWindow class
+*
+*/
+
+
+#ifndef ADVANCEDFINDRESULTWINDOW_H
+#define ADVANCEDFINDRESULTWINDOW_H
+
+// INCLUDES
+#include <aknnavide.h> 
+#include <akntitle.h> //for status pane
+#include <AknIconArray.h>
+#include <AknDialog.h>
+#include "upnpdeviceobserver.h"
+#include "upnpcommonui.h"
+
+// FORWARD DECLARATIONS
+class CUPnPCommonUI;
+class MUPnPAVController;
+class CUpnpImagePlayer;
+class CUPnPMusicAdapter;
+class CUPnPLocalPlayer;
+class CUPnPPeriodic;
+
+// DATA TYPES
+
+// CLASS DECLARATION
+
+/**
+* CAdvancedFindResultWindow dialog class
+* @since Series 60 3.1
+*/
+NONSHARABLE_CLASS( CAdvancedFindResultWindow ) : 
+                                              public CAknDialog,
+                                              public MUPnPDeviceObserver
+    {
+    public: // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CAdvancedFindResultWindow* NewL(
+                                    TInt aMenuResource, 
+                                    RPointerArray<CUpnpObject>& aResultArray,
+                                    MUPnPAVController& aAVControl,
+                                    MUPnPAVBrowsingSession& aBrowseSession,
+                                    CUPnPCommonUI& aCommonUI );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CAdvancedFindResultWindow();
+    
+    public: //from MUPnPDeviceObserver
+         
+         /**
+          * This is called when the WLAN or a media server to be browsing 
+          * has disappeard
+          * To close itself
+          * @since Series 60 3.1
+          * @param aError exit reason
+          * @return none
+          */
+         void DeviceDisappeared( TInt aError );
+    
+    public:  //new functions
+    
+        /**
+        * Close the browse dialog itself
+        * @since Series 60 3.1
+        * @param aError exit reason
+        * @return None
+        */
+        void DismissItselfL( TInt aError );
+        
+        /**
+         * Callback method for the iImageControlTimer.
+         *
+         * @since Series 60 3.2.3
+         * @param aDlg current dialog which to be called
+         * @return Tint
+         */
+        static TInt ImageControlTimerCallbackL(TAny* aDlg);
+        
+    protected:  // New functions
+        
+        /**
+          * To load list items when the dialog is initialized
+          * @since Series 60 3.1
+          * @param none
+          * @return none
+          */
+        void LoadListItemsL();
+
+        /**
+        * 2nd constructor
+        */
+        void ConstructL( TInt aMenuResource, 
+                         RPointerArray<CUpnpObject>& aResultArray );
+                         
+        /**
+        * Modifies navigation pane text
+        * @since Series 60 3.1       
+        */
+        void SetNaviPaneTextL();
+
+        /**
+        * 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 );
+ 
+        /**
+         * Mark or unmark a menu item
+         * @since Series 60 3.1
+         * @param aItem a menu item to be marked
+         * @param aMark a menu item should be marked or not
+         * @return none
+         */                                     
+        void MarkUnmarkL(TInt aItem, TBool aMark);
+        
+        /**
+         * Play a seleted item
+         * @since Series 60 3.1
+         * @param aLocal if the selected item is a local or remote
+         * @return none
+         */
+        void PlayL( TBool aLocal );
+        
+        /**
+         * Show or play an item on remote renderer
+         * @since Series 60 3.1
+         * @param none
+         * @return none
+         */
+        void ShowPlayExtL();
+        
+        /**
+         * Show or play an item on local renderer
+         * @since Series 60 3.1
+         * @param none
+         * @return none
+         */
+        
+        void ShowPlayLocalL();
+        
+        /**
+        * 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 );
+        
+    protected:  // Functions from base classes
+        
+        /**
+        * From CAknSelectionListDialog, handles layout initialization
+        * @since Series 60 3.1
+        */
+        void PreLayoutDynInitL();
+        
+        /**
+        * From CAknDialog, handles menu commands
+        * @since Series 60 3.1
+        * @param aCommandId, command to be handled
+        * @return none
+        */
+        void ProcessCommandL( TInt aCommandId );
+        
+        /**
+        * From CAknSelectionListDialog, handles key events.
+        * @since Series 60 3.1
+        * @param TKeyEvent, Event to handled.
+        * @param TEventCode, Type of the key event. 
+        * @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
+        */
+        TKeyResponse OfferKeyEventL( const TKeyEvent &aKeyEvent, 
+                                     TEventCode aType );
+        
+        /**
+        * From CAknSelectionListDialog, handles focus changes of the dialog
+        * @since Series 60 3.1
+        * @param TInt, pressed button id
+        * @return TBool, ETrue if ready to close dialog, EFalse otherwise
+        */
+        TBool OkToExitL( TInt aButtonId );
+        
+        /**
+        * 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); 
+    
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CAdvancedFindResultWindow( MUPnPAVController& aAVControl,
+                                   MUPnPAVBrowsingSession& aBrowseSession,
+                                   CUPnPCommonUI& aCommonUI );
+       
+        /**
+        * From CoeControl
+        * @param TCoeHelpContext, context of desired help
+        * @return none
+        */
+        void GetHelpContext(TCoeHelpContext& aContext) const;
+              
+        /**
+         * Show a video on a remote renderer
+         * @since Series 60 3.1
+         * @param none 
+         * @return none
+         */
+        void ShowVideoExtL();
+        
+        /**
+         * Show an image on a remote renderer
+         * @since Series 60 3.1
+         * @param none 
+         * @return void
+         */
+        void ShowImageExtL();
+        
+        /**
+         * Shows current image
+         * @since Series 60 3.2.3
+         * @param aShowImage (TBool) shows current image and draws showing 
+         *  icon
+         * @return None
+         */
+         void ShowCurrentImageL( TBool aShowImage );
+         
+         /**
+          * Starts imageControl timer
+          * @since Series 60 3.2.3
+          * @param None
+          * @return None
+          */
+          void StartImageControlTimer();
+           
+           /**
+           * Stops ImageControl
+           * @since Series 60 3.2.3
+           * @param None
+           * @return None
+           */
+           void StopImageControlL();
+        
+        /**
+         * Handle different errors returned from other dialogs
+         * @since Series 60 3.1
+         * @param exiting reason
+         * @return none
+         */
+        void HandleErrorL( TInt aError );
+        
+        /**
+        * Handel copy
+        * @since Series 60 3.1
+        * @param none
+        *                     
+        * @return none
+        */
+        void HandleCopyL();
+        
+        /**
+        * Updates softkeys 
+        * @since Series 60 3.2
+        * @param aResourceId (TInt) softkey resource
+        * @return None
+        */
+        void UpdateSoftkeysL( TInt aResourceId );      
+        
+        /**
+        * 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
+        
+        //used for CUpnpFileTransferEngine only
+        MUPnPAVBrowsingSession&                      iBrowseSession; 
+        // find results (NOT OWNED)
+        RPointerArray<CUpnpObject>                   iResultArray;
+        // dialog control item (NOT OWNED)
+        CAknDoubleGraphicStyleListBox*               iListBox;
+        // navi pane decorator
+        CAknNavigationDecorator*                     iNaviDecorator;
+        // navipane member (NOT OWNED)
+        CAknNavigationControlContainer*              iNaviPane;
+        // title pane (NOT OWNED)
+        CAknTitlePane*                               iTitlePane;
+        
+        MUPnPAVController&                           iAVControl;
+        
+        // pointer to device selection
+        CUPnPCommonUI&                               iCommonUI;
+        
+        //ImageControl periodic timer (own)
+        CUPnPPeriodic*                               iImageControlTimer;
+        
+        CUpnpImagePlayer*                            iImagePlayer;
+        
+        CUPnPLocalPlayer*                            iLocalPlayer;
+        
+        CUpnpAVDevice*                               iTargetDevice;
+
+        // the media server device (NOT OWNED)        
+        const CUpnpAVDevice*                         iSourceDevice;
+        
+        TInt                                         iChildDialogOpen;
+        
+        //flag to either media server disappears or media renderer disappear
+        TBool                                        iMSDisappear;
+        
+        CUPnPCommonUI::TUPnPAction                   iAction;
+        
+        TInt                                         iCopyIndex;
+        
+        TBool                                        iIsMusicItem;
+        
+        /**
+         * for music playing, this is to prevent user to pop up renderer
+         * selection and select renderer multiple times
+         */
+        TBool                                       iMusicPlay;
+        
+        // Flag to tell if the image control view is active
+        TBool                                       iImageControlActive;
+        
+        // The Index of last show image
+        TInt                                        iLastImageItemIndex;
+        // Flag to tell if the the Hash (#) key is Holding down
+        TBool                                       iHashKeyFlag;
+    };
+#endif
+// End of File