videofeeds/vcnsuiengine/inc/vcxnseventrouter.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnseventrouter.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,191 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+
+
+#ifndef VCXNSEVENTROUTER_H
+#define VCXNSEVENTROUTER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <mpxmessage2.h>
+#include "CIptvUtil.h" 
+
+#include "MIptvVodContentClientObserver.h"
+#include "MIptvServiceManagementClientObserver.h"
+
+// FORWARD DECLARATIONS
+class CVcxNsUiEngine;
+class CVcxNsContent;
+
+// CLASS DECLARATION
+
+/**
+ *  CVcxNsEventRouter
+ * 
+ *  @lib vcxnsuiengine
+ */
+class CVcxNsEventRouter : public CBase,
+                          public MIptvServiceManagementClientObserver,
+                          public MIptvVodContentClientObserver
+    {
+public:
+
+    /**
+    * Messages from EPG manager are handled here. Messages are defined in CIptvUtil.h
+    * @since            Engine 1.1
+    * @param aMsg       Message 
+    * @param aInfo      Info 
+    * @param aServiceId Service id.
+    */
+    void HandleEpgManagerMsgL( TInt aMsg, TInt aInfo, TIptvServiceId aServiceId );   
+
+    /**
+     * Dummy implementation
+     */
+    void AddServiceResp( TRespStatus /*aRespStatus*/ ) { ; }
+    
+    /**
+     * Dummy implementation
+     */
+    void UpdateServiceResp( TRespStatus /*aRespStatus*/ ) { ; }
+    
+    /**
+     * Dummy implementation
+     */
+    void DeleteServiceResp( TRespStatus /*aRespStatus*/ ) { ; }
+
+    /**
+     * Dummy implementation
+     */
+    void GetServicesResp( TRespStatus /*aRespStatus*/, CDesC8ArraySeg* /*aServicesArray*/ ) { ; }
+
+    /**
+     * Dummy implementation
+     */
+    void GetUsedIapResp( TUint32 ,const TDesC&, CIptvNetworkSelection::TConnectionPermission , TBool, CIptvNetworkSelection::TRespStatus ) { ; }
+
+    /**
+     * Dummy implementation
+     */
+    void ServerShutdownResp( TRespStatus /*aRespStatus*/ ) { ; }
+
+    /**
+     * @param aEvent Event
+     */
+    void HandleSmEvent( CIptvSmEvent& aEvent );
+
+    /**
+     * Handles collection messages ui update relevant part
+     * @param aMsg Message
+     * @param aErr Error code
+     */
+    void HandleCollectionMessageL( CMPXMessage* aMsg, TInt aErr );
+    
+    virtual ~CVcxNsEventRouter();
+
+    /**
+     * Constructor
+     * @param aUiEngine Ui engine
+     */
+    static CVcxNsEventRouter* NewL( CVcxNsUiEngine& aUiEngine );
+
+    /**
+     * Shows or hides the popup about epg update.
+     */
+    void UpdateInfoPopupL();
+    
+    /**
+     * Epg update failed.
+     * Do the required processing.
+     * 
+     * @param aError Error code
+     * @param aServiceId Service id.
+     */
+    void HandleEpgUpdateFailedL( TInt aError, TIptvServiceId aServiceId ); 
+
+    /**
+     * Notify to providers that the download has
+     * failed and error note needs to be shown.
+     *
+     * @param aError Error code.
+     * @param aContent Details of the content which download has failed.
+     */
+    void HandleDlErrorL( TIptvDlError aError, CVcxNsContent& aContent );
+
+private:
+
+    /**
+     * Constructor
+     * @param aUiEngine Ui engine
+     */
+    CVcxNsEventRouter( CVcxNsUiEngine& aUiEngine );
+    
+    /**
+     * Update the active view by current application state.
+     */
+    void UpdateActiveView();
+    
+    /**
+     * Remove service's data.
+     *
+     * @param aServiceId The service id, that's data is to be removed
+     */
+    void RemoveServiceData( TUint32 aServiceId );
+    
+    /**
+     * Epg update finished successfully,
+     * Do the required processing.
+     * 
+     * @param aServiceId Service id.
+     */
+    void HandleEpgUpdateSucceededL( TIptvServiceId aServiceId );
+    
+    /**
+     * Check, is category count changed so that the application 
+     * state should be changed, and change it.
+     * Note that this removes old service data.
+     * 
+     * @param aServiceId Service id.
+     */
+    void CheckAppStateL( TIptvServiceId aServiceId );
+    
+    /**
+     * CVcxNsUiEngine ref.
+     */
+    CVcxNsUiEngine& iUiEngine;
+    
+    /**
+     * Service that is being updated.
+     */
+    TUint32 iUpdatedService;
+    
+    /**
+     * Total count of thubnails in the service that is being updated
+     */
+    TInt iThumbnailCount;
+    
+    /**
+     * Count of thubnails that has already been downloaded in the updated service.
+     */
+    TInt iThumbnailsDownloaded;
+
+    };
+
+#endif // VCXNSEVENTROUTER_H