diff -r 000000000000 -r ff3acec5bc43 mpxplugins/viewplugins/inc/mpxupnpbrowsedialog.h --- /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 +#include +#include +#include +#include + +// 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