upnpframework/upnpcommonui/inc/upnpadvfindlist.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpframework/upnpcommonui/inc/upnpadvfindlist.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,323 @@
+/*
+* 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:  List for data of settings dialog
+*
+*/
+
+
+#ifndef UPNPADVANCEDFINDLIST_H
+#define UPNPADVANCEDFINDLIST_H
+
+// INCLUDES
+// System
+#include <aknsettingitemlist.h> 
+#include <AknProgressDialog.h>
+
+// upnpframework / avcontroller api
+#include "upnpavbrowsingsessionobserver.h"
+
+// commonui internal
+#include "upnpcommonui.h"
+
+
+const TInt KMaxNameLength = 256;
+const TInt KGranularityOfArrays = 8;
+const TInt KSizeOfTBufC16 = 32;
+
+// FORWARD DECLARATIONS
+class MUPnPAVController;
+class MUPnPAVBrowsingSession;
+class CAdvancedFindResultWindow;
+class CUPnPAdvancedFindDialog;
+class CUPnPCommonUI;
+
+/**
+*  Settings list class declaration
+*  @since Series 60 3.1
+*/
+NONSHARABLE_CLASS( CUPnPAdvancedFindList ) : public CAknSettingItemList,
+                              public MUPnPAVBrowsingSessionObserver,
+                              public MProgressDialogCallback
+    {
+    public:  // Constructors and destructor
+        
+       /**
+        * Two-phased constructor.
+        */
+        static CUPnPAdvancedFindList* NewL( 
+                                MUPnPAVController& aAVControl,
+                                MUPnPAVBrowsingSession& aBrowsingSession,
+                                CUPnPAdvancedFindDialog& aParent,
+                                CUPnPCommonUI& aCommonUI );
+        
+       /**
+        * Destructor.
+        */
+        virtual ~CUPnPAdvancedFindList();
+
+    public: // Functions from base classes
+
+       /**
+        * From CAknSettingItemList, this launches the setting page.
+        * @since Series 60 Series3.1
+        * @param aIndex, index of selected list item
+        * @param aCalledFromMenu, indicates if editing is called trough menu 
+        *                         or from keyboard
+        * @return none
+        */
+        void EditItemL ( TInt aIndex, TBool aCalledFromMenu );
+        
+        /** 
+         * Launch up CAknSettingItemList
+         * @since Series 60 3.1
+         * @param none
+         * @return error code
+         */
+        TInt MakeQueryL( );
+        
+    public: //From MProgressDialogCallback
+        
+        /**
+         * Callback method Get's called when a dialog is dismissed
+         * @since Series 60 3.1
+         * @param aButtonId the reason when the dialog is dismissed
+         * @return none
+         */
+        void DialogDismissedL( TInt aButtonId );
+
+    public: //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
+                            );
+
+         /**
+         * Returns processed search results received from a Media Server.
+         *
+         * @since Series 60 3.1
+         * @param TInt aError status information
+         * @param aTotalCount TInt total number of objects
+         * @param RPointerArray of CUpnpObject objects
+         * @return None
+         */
+         void SearchResponseL( 
+                         TInt aStatus,
+                         const RPointerArray<CUpnpObject>& aResultArray );
+
+        /**
+         * Returns search capabilities of the requested Media Server.
+         *
+         * @since Series 60 3.1
+         * @param TInt aError status information
+         * @param HBufC8& the search capabilities string
+         * @return None
+         */
+        void SearchCapabilitiesResponse( TInt /*aError*/,
+                         const TDesC8& /*aSearchCapabilities*/ ){};
+
+        /**
+         * Notifies that the create container operation is complete.
+         *
+         * @since Series 60 3.1
+         * @param aError 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 aError status information
+         * @return None
+         */
+        void DeleteObjectResponse( TInt /*aError*/ ){};
+
+        /**
+         * 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 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 MediaServerDisappearedL( TUPnPDeviceDisconnectedReason aReason );
+        
+        /**
+         * Notifies that a local media server has been on sharing
+         *
+         * @since Series 60 3.1
+         * @param aReason reason code
+         * @return None
+         */      
+        void ReserveLocalMSServicesCompleted( TInt /*aError*/ ){};
+
+    public: //business logic
+        
+        /**
+         * Check if the setting page is open 
+         *
+         * @since Series 60 3.1
+         * @param none
+         * @return TBool ETrue if the setting is open
+         */ 
+        TBool IsSettingPageOpen() const;
+        
+    protected:  // Functions from base classes
+        
+        /**
+         * Handles a change to the control's resources
+         *
+         * @since Series 60 3.1
+         * @param aType a message UID value.
+         * @return None
+         */  
+        void HandleResourceChange( TInt aType ); 
+
+    private:
+        
+        /**
+        * C++ default constructor.
+        */
+        CUPnPAdvancedFindList( MUPnPAVController& aAVControl, 
+                               MUPnPAVBrowsingSession& aBrowsingSession,
+                               CUPnPAdvancedFindDialog& aParent,
+                               CUPnPCommonUI& aCommonUI );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+        
+        /**
+        * From CAknSettingItemList, Framework method to create a setting item.
+        * @since Series 60 Series3.1
+        * @param aIdentifier,  list item id to be created
+        * @return CAknSettingItem, pointer to list item
+        */        
+        CAknSettingItem* CreateSettingItemL( TInt aIdentifier );
+        
+        /**
+        * Get search criteria
+        * @since Series 60 Series3.1
+        * @param none
+        * @return search criteria
+        */
+        HBufC8* BuildSearchCriteriaL() const;
+        
+    private:    // Data
+
+        //time variable for date from item
+        TTime iDateFrom;
+        //time variable for date Until item
+        TTime iDateUntil;
+        //time variable for initial date from item
+        TTime iDateInitial;
+
+        // Boolean flag telling if Search response received
+        TBool iSearchResponseReceived;
+                        
+        // text for artist selection item
+        TBuf<KMaxNameLength> iArtistText;
+        // text for album selection item
+        TBuf<KMaxNameLength> iAlbumText;
+        // text for Genre selection item
+        TBuf<KMaxNameLength> iGenreText;
+        
+        TBuf<KMaxNameLength> iFileName;
+        
+        //chosen media type
+        TInt iMediatype;
+
+          // wait note dialog
+        CAknWaitDialog*                         iWaitNoteDialog;
+        
+        
+        MUPnPAVController&                      iAVControl;
+                
+        //observer for browse results
+        MUPnPAVBrowsingSessionObserver*         iBrowseObserver;       
+
+        //Array for search result
+        RPointerArray<CUpnpObject>              iResultArray;
+        
+        CAdvancedFindResultWindow*              iFindResultWindow; //not owned
+        CUPnPCommonUI&                          iCommonUI;
+        CUPnPAdvancedFindDialog&                iAdvancedFindDialog;
+        
+        MUPnPAVBrowsingSession&                 iBrowseSession;
+        
+        CUPnPCommonUI::TUPnPAction              iAction;
+        
+        TInt iExitCode;
+        
+        // iShowingErrorNote tells if we are showing the error note. 
+        // During the error note is shown, we cannot destroy our parent dialog
+        // because then the continuation after error note fails (crashes)
+        TBool iShowingErrorNote;
+        
+        TBool                                   iClose;
+        TBool                                   iSettingPageOpen;
+        
+        TUPnPDeviceDisconnectedReason           iCloseReason;
+        
+    };
+#endif      // UPNPADVANCEDFINDLIST_H
+            
+// End of File