videofeeds/livetvutils/inc/IptvLiveDataStructures.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/livetvutils/inc/IptvLiveDataStructures.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2006 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:    Common data structures shared by IP protocol livetv*
+*/
+
+
+
+
+#ifndef __IPTV_SMARTVISION_DATA_STRUCTURES
+#define __IPTV_SMARTVISION_DATA_STRUCTURES
+enum TIptvSmartVisionServiceType
+    {
+    ELiveTv = 0,
+    EVod,
+    EServiceDiscovery
+    };
+    
+struct SIptvSmartVisionServiceDiscovery
+	{
+	TBuf8<255> iAddress;
+	TIptvSmartVisionServiceType iServiceType;
+	};
+
+/**
+ * This enum identifies different kind of messages
+ * in message queue that UI listens to
+ */
+enum TIptvQueueMsg
+	{
+	EEPGUpdateCompleted,   /**< LiveTV metadata update finished, possibly with error */
+	EEPGUpdateStarted,	   /**< LiveTV metadata update started */
+	EChannelDataModified,  /**< LiveTV channel object has been changed */
+	EChannelIconDownloaded,
+	EIapUp,                /**< Internet access point is up in CR engine */
+	EIapDown,              /**< Internet access point is down in CR engine */
+	EStartingConnection,
+	EBothAudioVideoExists,
+	EAudioOnly,            /**< LiveTV stream contains only audio, no video */
+	EVideoOnly,            /**< LiveTV stream contains only video, no audio */
+	ENoAudioOrVideo,       /**< LiveTV stream contains both audio and video */
+	EAuthenticationFailed, /**< RTSP server said 401 to common recording engine */
+	EScheduleCompleted,
+	ECRROPSDPReady,         /**< Common recording engine has SDP file ready for ROP */
+	EConnectionError	    /**< Unable to open connection in RTP engine & CR engine */
+	} ;
+/**
+ * This structure is sent over message queue where
+ * ui sits listening
+ */
+struct SIptvQueueEntry
+	{
+	TIptvQueueMsg iMsg ;        /**< Identifies the message */
+	TUint iServiceId ;          /**< Service provider that this message is about */
+	TInt64 iModifiedChannelId ; /**< In case of EChannelDataModified the channel id */
+	TInt iErr ;                 /**< May be used to pass error value related to message */
+	};
+
+/**
+ * This structure is used when downloading channel icons
+ */
+struct SIptvChannelIconEntry
+	{
+	TUint32 iServiceId ;          /**< Service provider that this message is about */
+	TInt64 iChannelId ; 
+	TBuf8<256> iLogoPath;
+	};
+
+/**  
+* Version of CleanupXxxxPushL() that can be used to 'ResetAndDestroy'
+* the supplied object if the clean-up stack unwinds.
+*/
+
+template <class T>
+class CleanupResetAndDestroy
+    {
+    public:
+        inline static void PushL( T& aRef );
+    private:
+        static void ResetAndDestroy( TAny *aPtr );
+    };
+    
+template <class T>
+    inline void CleanupResetAndDestroyPushL( T& aRef );
+
+template <class T>
+inline void CleanupResetAndDestroy<T>::PushL( T& aRef )
+     {
+     CleanupStack::PushL( TCleanupItem( &ResetAndDestroy, &aRef ) );
+     }
+
+template <class T>
+void CleanupResetAndDestroy<T>::ResetAndDestroy( TAny *aPtr )
+    {
+    ( static_cast<T*>( aPtr ) )->ResetAndDestroy();
+    }
+    
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef )
+    {
+    CleanupResetAndDestroy<T>::PushL( aRef );
+    }
+    
+/**
+ * Name of the queue that is used in creating and opening the queue
+ */
+_LIT(KIptvUiMsgQueueName, "IPTV_MSG_Q_UI") ; 
+
+_LIT(KIptvUiEPGMsgQueueName, "IPTV_EPG_MSG_QUEUE" );
+
+#endif //__IPTV_SMARTVISION_DATA_STRUCTURES