--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/inc/mpxupnpbrowsedialog.h Thu Dec 17 08:45:05 2009 +0200
@@ -0,0 +1,232 @@
+/*
+* 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: Implementation of UPnP players browse Dialog
+*
+*/
+
+
+#ifndef C_CMPXUPNPBROWSEDIALOG_H__
+#define C_CMPXUPNPBROWSEDIALOG_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <badesca.h>
+#include <AknDialog.h>
+#include <mpxplaybackobserver.h>
+#include <AknsItemID.h>
+
+// FORWARD DECLARATIONS
+class MMPXPlaybackUtility;
+class CAknPopupList;
+class CAknSinglePopupMenuStyleListBox;
+class CMPXPlayerManagerStub;
+class CAknIconArray;
+class MAknsSkinInstance;
+class CMPXMedia;
+class MMPXViewUtility;
+
+/**
+* Device selection dialog class of Common UI library
+*/
+class CMPXUPnPBrowseDialog: public CAknDialog, public MMPXPlaybackCallback,
+ public MMPXPlaybackObserver
+ {
+
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CMPXUPnPBrowseDialog* NewL(TInt aPlayerUid);
+
+ /**
+ * Destructor.
+ */
+ virtual ~CMPXUPnPBrowseDialog();
+
+ public: // Methods from MMPXPlaybackCallback
+
+ /**
+ * Handle playback property
+ *
+ * @param aProperty the property
+ * @param aValue the value of the property
+ * @param aError error code
+ */
+ void HandlePropertyL(TMPXPlaybackProperty aProperty,
+ TInt aValue,
+ TInt aError);
+
+ /**
+ * Method is called continously until aComplete=ETrue, signifying that
+ * it is done and there will be no more callbacks
+ * Only new items are passed each time
+ *
+ * @param aPlayer UID of the subplayer
+ * @param aSubPlayers a list of sub players
+ * @param aComplete ETrue no more sub players. EFalse more subplayer
+ * expected
+ * @param aError error code
+ */
+ void HandleSubPlayerNamesL(TUid aPlayer,
+ const MDesCArray* aSubPlayers,
+ TBool aComplete,
+ TInt aError);
+
+ /**
+ * Call back of media request
+ * Notes: The client is responsible for delete the object of aProperties
+ *
+ * @param aMedia media
+ * @param aError error code
+ */
+ void HandleMediaL( const CMPXMedia& aProperties,
+ TInt aError);
+
+ /**
+ * From MMPXPlaybackObserver
+ * Handle playback message
+ *
+ * @param aMessage playback message
+ * @param aErr system error code.
+ */
+ void HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError );
+
+ public: // New functions
+
+ /**
+ * Displays selection pop up
+ *
+ * @since Series 60 3.1
+ * @param aPlayerUid, selected player Uid
+ */
+ IMPORT_C TInt ExecuteLD(TInt aPlayerUid);
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CMPXUPnPBrowseDialog(TInt aPlayerUid);
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+
+ private: // New Functions
+
+ /**
+ * Loads a possibly skinned icon and adds it to icon array
+ * @since Series 60 3.0
+ * @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);
+
+ /**
+ * Loads listbox items
+ * @since Series 60 3.0
+ */
+ void LoadListItemsL(void);
+
+ /**
+ * Loads listbox items
+ * @since Series 60 3.0
+ */
+ void DisplaySubPlayersNamesL( const MDesCArray* aSubPlayers,
+ const TBool aComplete );
+
+ /**
+ * From CAknDialog, handles layout initialization
+ * @param const TDesC&, dialog title
+ */
+ void PreLayoutDynInitL();
+
+ /**
+ * Starts selection popup
+ *
+ * @since Series 60 3.1
+ * @param CUPnPDevice, selected device
+ */
+ TInt StartPopupL();
+
+ /**
+ * Creates a selection popup.
+ *
+ * @since Series 60 3.1
+ * @param const TDesC&, popup title
+ * @return None
+ */
+ void CreatePopupL();
+
+ /**
+ * Retrieves the name and other info of the currently
+ * used subplayer
+ */
+ void RetrieveCurrentlySelectSubplayerNameL();
+
+ /**
+ * Display an error note after the selected player was not valid
+ * @param aResourceId ID of the text to be displayed on the error note
+ */
+ void DisplayErrorNoteL( TInt aResourceId );
+
+ /**
+ * Displays the waiting text during retrieval of subplayer names
+ */
+ void DisplayWaitingTextL();
+
+ /**
+ * Handle playback message
+ *
+ * @param aMessage playback message
+ */
+ void DoHandlePlaybackMessageL(
+ const CMPXMessage& aMessage );
+
+ private:
+
+ CAknPopupList* iPopup;
+ CAknSinglePopupMenuStyleListBox* iListBox;
+ TInt iPlayerUid;
+ MMPXPlaybackUtility* iPlaybackUtility; // not owned
+ TInt iResourceOffset;
+ TInt iErrorResourceOffset;
+ CMPXPlayerManagerStub* iPlayerManagerStub;
+ HBufC* iCurrentlySelectedSubPlayerName;
+ TUid iCurrentlyUsedPlayer;
+
+ CDesCArrayFlat* iSubPlayersCachedArray;
+
+ // View utility.
+ MMPXViewUtility* iViewUtility;
+
+ // ETrue if PlayerUnavailable event was received
+ TBool iPlayerUnavailableError;
+ };
+
+#endif // C_CMPXUPNPBROWSEDIALOG_H__
+
+// End of file