internetradio2.0/uiinc/irhistorylistview.h
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/uiinc/irhistorylistview.h	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,336 @@
+/*
+* 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 for CIRHistoryListView
+*
+*/
+
+
+/* ---------------------------------------------------------------------------
+*  Version history:
+*  Template version:
+*  <ccm_history>
+*
+*  Ref:
+*  Implemented SongHistory changes for channelwise songs
+*
+*  </ccm_history>
+* ============================================================================
+*/
+
+#ifndef IRHISTORYLISTVIEW_H
+#define IRHISTORYLISTVIEW_H
+
+
+
+#include <e32cmn.h>
+
+//For Touch Toolbar for find in shop
+#include <akntoolbarobserver.h>
+#include <aknbutton.h>
+#ifdef MUSICSHOP_AVAILABLE
+#include <MusicStoreUidConstants.h> //For Find in Shop
+#include <mpxfindinmusicshopcommon.h> //For Find in Shop
+#endif
+#include "irbaseview.h"
+#include "IRHistoryListContainer.h"
+#include "UINotifyHandler.h"
+#include "irdialoglauncher.h"
+#include "IRActiveNetworkObserver.h"
+
+class CIRHistoryListContainer;
+class MSongHistoryUINotifyHandler; 
+class CIRSongHistoryEngine;
+class CIRDialogLauncher;
+class MIRActiveNetworkObserver;
+
+class CMPXFindInMShop; //For Find in Shop
+
+class CIRHistoryListView : public CIRBaseView,
+						   public MSongHistoryUINotifyHandler,
+						   public MAknToolbarObserver,
+						   public MIRActiveNetworkObserver
+    {
+    
+public: 
+
+    /**
+     * Static constructor NewLC().
+     */
+    static CIRHistoryListView* NewLC();
+    /**
+     * Static constructor NewL().
+     */
+    static CIRHistoryListView* NewL();
+
+    /**
+     * Destructor.
+     */
+    ~CIRHistoryListView();
+
+     //MSongHistoryUINotifyHandler functions
+	/**
+     * NextSongReceivedL()
+     * Adds the currently playing song to the history's array.
+     */
+
+	void NextSongReceivedL( const TDesC& aSongName, const TDesC& sArtistName,
+					 const TDesC& aChannelName, const TDesC& aChannelUrl );
+	
+    /**
+     * ChannelChangedL( ).
+     * Moves the currently playing channel to the top.
+     */
+	void ChannelChangedL( const TDesC& aSongName, const TDesC& sArtistName,
+					 const TDesC& aChannelName, const TDesC& aChannelUrl );
+	
+	/**
+     * RemoveSongEntry().
+     * Removes the oldest song from History array.
+     */	
+	TInt RemoveSongEntry( const TDesC& /*aSongName*/, const TDesC& /*aArtistName*/,
+					const TDesC& /*aChannelName*/, const TDesC& /*aChannelUrl*/ );
+	
+	/**
+     * RemoveChannelEntry().
+     * Not in use now!
+     */
+	TInt RemoveChannelEntry( const TDesC& aSongName, const TDesC& aArtistName,
+					const TDesC& aChannelName, const TDesC& aChannelUrl );
+	
+	/**
+     * NotifyDataChangeToUIError().
+     * Notification to UI of any error Conditions.
+     */
+  	void NotifyDataChangeToUIError(TInt /*aError*/);
+
+	/**
+     * ClearSongHistoryItemL().
+     * Clears the Song History List Array
+     */
+	void ClearSongHistoryItemL();
+	
+	 /**
+     * GetAllListL().
+     * Getting the stored List from the History Db.
+     */
+	void GetAllListL();
+
+	/**
+     * Id().
+     */
+	 TUid Id() const;
+
+	/**
+	 * From CAknView
+	 *
+	 * @see CAknView::HandleCommandL( TInt aCommand )
+	 */
+	void HandleCommandL( TInt aCommand );
+	
+	/**
+     * DynInitMenuPaneL()
+     * For Dynamic Handling of the Menu Pane
+     */
+	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
+	
+    /**
+     * HandleMetaDataReceived()
+     * Handling the Metadata Receving
+     */
+	void HandleMetaDataReceived( const CIRMetaData& aMetaData );
+	
+	/**
+     * For Touch Toolbar
+     * Handles the Dynamic changes on the toolBar
+     */
+	void DynInitToolbarL(TInt aResourceId, CAknToolbar* aToolbar );
+	/**
+     * OfferToolbarEventL()
+     * Handles any event on the Touch ToolBar
+     */
+    void OfferToolbarEventL( TInt aCommand );
+    /**
+     * For ConstructToolbarL();
+     * Constructs the Touch ToolBar
+     */
+  	void ConstructToolbarL();
+  	
+  	/**
+     * To Launch Find in Shop Option
+     * LaunchMusicShopL(); 
+     */
+    void LaunchMusicShopL();
+    
+    /**
+     * To Launch Find in Shop Option
+     * DoFindInMusicShopL() 
+     */
+    void DoFindInMusicShopL( const TDesC& aSongName, 
+                             const TDesC& aArtistName, 
+                             const TDesC& aAlbumName );
+    
+	/**
+	* To Launch Find in Shop Option when selected from the toolbar
+	* FindInShopOption() 
+	*/
+    void  FindInShopOptionL();
+
+    /**
+     * From CAknView
+     *
+     * @see CAknView::HandleForegroundEventL( TBool aForeground )
+     */
+   	void HandleForegroundEventL( TBool aForeground );
+  	
+   	/**
+   	* Get the FindInShop Instance is null or not.
+   	* GetFindInShopInstance() 
+   	*/
+   	TBool GetFindInShopInstance();
+ 	// from base class MIRSystemEventObserver
+    void HandleSystemEventL( TIRSystemEventType aEventType );
+    
+   	/**
+   	* Refreshes the view on synchronisation.
+   	* RefreshHistoryL() 
+   	*/
+    void RefreshHistoryL();
+    
+   	/**
+   	* Gets the History's engine instance.
+   	* HistoryEngineInstance() 
+   	*/
+    CIRSongHistoryEngine* HistoryEngineInstance() ;
+
+protected:  
+
+   
+    /**
+     * From CAknView
+     *
+     * @see CAknView::DoActivateL(const TVwsViewId& aPrevViewId, 
+     *    TUid aCustomMessageId, 
+     *    const TDesC8& aCustomMessage)
+     */
+    void DoActivateL( const TVwsViewId& aPrevViewId, 
+                      TUid              aCustomMessageId, 
+                      const TDesC8&      aCustomMessage );
+
+	/**
+     * From CAknView
+     *
+     * @see CAknView::DoDeactivate()
+     */
+	void DoDeactivate();
+
+	/**
+	 * From CAknView
+	 *
+	 * @see CAknView::HandleStatusPaneSizeChange()
+	 */
+	void HandleStatusPaneSizeChange();	
+	
+	
+private: 
+
+    /**
+     * 2nd phase constructor
+     */
+    void ConstructL();
+
+	/**
+     * C++ default constructor.
+     */
+    CIRHistoryListView();
+    
+
+public:
+			//from MIRActiveNetworkObserver
+	/**
+	 * Notifies all observers whose network request is active
+	 * to reissue the request  
+	 * NotifyActiveNetworkObserversL()
+	 */	
+	 void NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent);
+	 
+	 /**
+	 * Notifies all observers whose network request is active
+	 * to reset the pending request status  
+	 * ResetPendingRequests()
+	 */	
+	 void ResetPendingRequests(TBool aValue);
+
+
+private:    // Data
+
+	/** 
+	 * Container for this view. 
+	 */
+	CIRHistoryListContainer* iContainer;
+	
+    /**
+     * View Id of the previous view.  
+     */
+    TVwsViewId iPrevViewId;
+    
+    /**
+     * RPointerArray of CIRSongHistoryInfo  
+     */
+    RPointerArray<CIRSongHistoryInfo> iHistoryDataArr;
+    
+    /**
+     * Pointer to CIRSongHistoryEngine 
+     */
+    CIRSongHistoryEngine* iHistoryEngine;  
+	
+        
+    /**
+     * For Find in Music Shop
+     *
+     */
+    CMPXFindInMShop* iMPXFindInShop; //For Find in Shop
+    
+    /*
+	 * iRequestPending
+	 * Checks whether an active request is pending
+	 */
+	TBool iRequestPending;
+	 /*
+	 * iAddToFav
+	 * Checks whether request is for adding to favorites
+	 */
+	TBool iAddToFav;
+  
+    /* iListenRequest
+	 * Checks whether request is for listen
+	 */
+	TBool iListenRequest;
+  
+	/*
+	 * iCallRequestPending
+	 * Indicates whether delayed activation of command is required (Call Handling)
+	 */
+	TBool iCallRequestPending;
+	/*
+	 * iCommand
+	 * Command to be executed (view activation) after Preset downloads
+	 */
+	TInt iCommand;
+    
+                          
+    };
+
+#endif      // IRHISTORYLISTVIEW_H
+            
+