diff -r 000000000000 -r 96612d01cf9f videofeeds/livetvutils/inc/IptvLiveDataStructures.h --- /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 CleanupResetAndDestroy + { + public: + inline static void PushL( T& aRef ); + private: + static void ResetAndDestroy( TAny *aPtr ); + }; + +template + inline void CleanupResetAndDestroyPushL( T& aRef ); + +template +inline void CleanupResetAndDestroy::PushL( T& aRef ) + { + CleanupStack::PushL( TCleanupItem( &ResetAndDestroy, &aRef ) ); + } + +template +void CleanupResetAndDestroy::ResetAndDestroy( TAny *aPtr ) + { + ( static_cast( aPtr ) )->ResetAndDestroy(); + } + +template +inline void CleanupResetAndDestroyPushL( T& aRef ) + { + CleanupResetAndDestroy::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