# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268401380 -7200 # Node ID ce5ada96ab308b4e2375ea43369555439baae3ae # Parent 7d91903f795fb95eaf275a9d7022a1deee1e7409 Revision: 201007 Kit: 201008 diff -r 7d91903f795f -r ce5ada96ab30 filedetails/filedetailsdialog/src/MPFileDetailsDialog.cpp --- a/filedetails/filedetailsdialog/src/MPFileDetailsDialog.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/filedetails/filedetailsdialog/src/MPFileDetailsDialog.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 18 % +// Version : %version: 19 % // INCLUDE FILES #include @@ -154,7 +154,7 @@ { iPopupList->CancelPopup(); } - + delete iPopupList; // cause removal from control stack delete iListBox; delete iGenres; UnLoadResources(); @@ -514,7 +514,6 @@ if ( err && iPopupList ) { iPopupList->CancelPopup(); - iPopupList = NULL; } delete this; diff -r 7d91903f795f -r ce5ada96ab30 group/bld.inf --- a/group/bld.inf Fri Feb 19 22:52:52 2010 +0200 +++ b/group/bld.inf Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 30 % +// Version : %version: 31 % #include @@ -37,21 +37,6 @@ #include "../videocollection/group/bld.inf" /** - * Homescreen plugins: suite configuration - */ -#include "../homescreenplugins/videosuiteconf/group/bld.inf" - -/** - * Homescreen plugins: action handler - */ -#include "../homescreenplugins/videoahlplugin/group/bld.inf" - -/** - * Homescreen plugins: content harvester plugin - */ -#include "../homescreenplugins/videochplugin/group/bld.inf" - -/** * Mediasettings */ #include "../mediasettings/group/bld.inf" diff -r 7d91903f795f -r ce5ada96ab30 inc/IptvDebug.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/IptvDebug.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,306 @@ +/* +* Copyright (c) 2004-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: Helper class for serial or file tracing of Video Center.* +*/ + + + + +#ifndef IPTVDEBUG_H +#define IPTVDEBUG_H + +#include + +// Define logging level here + +// Minimum log output +#define IPTV_HIGH_LEVEL_TRACES + +// Medium log output +#define IPTV_MIDDLE_LEVEL_TRACES + +// Maximum log output +#define IPTV_LOW_LEVEL_TRACES + + +/* +----------------------------------------------------------------------------- + + LOGGING MACROs + + USE THESE MACROS IN YOUR CODE + + Usage: + + Example: IPTVLOGSTRING_HIGH_LEVEL ("Test"); + Example: IPTVLOGSTRING2_HIGH_LEVEL ("Test %d", aValue); + Example: IPTVLOGSTRING3_HIGH_LEVEL ("Test %d %d", aValue1, aValue2); + Example: IPTVLOGSTRING4_HIGH_LEVEL ("Test %d %d %d", aValue1, aValue2, aValue3); + + Example: IPTV_LOG_STR_DESC_HIGH_LEVEL (own_desc); + Example: IPTV_LOG_STR_DESC2_HIGH_LEVEL (own_desc, aValue)); + Example: IPTV_LOG_STR_DESC3_HIGH_LEVEL (own_desc, aValue, aValue2); + Example: IPTV_LOG_STR_DESC4_HIGH_LEVEL (own_desc, aValue, aValue2, aValue3); + +----------------------------------------------------------------------------- +*/ + + +#ifdef IPTV_HIGH_LEVEL_TRACES + +#define IPTVLOGTEXT_HIGH_LEVEL(AAAA) IPTV_LOGTEXT(AAAA) +#define IPTVLOGSTRING_HIGH_LEVEL(AAAA) IPTV_LOGSTRING(AAAA) +#define IPTVLOGSTRING2_HIGH_LEVEL(AAAA,BBBB) IPTV_LOGSTRING2(AAAA,BBBB) +#define IPTVLOGSTRING3_HIGH_LEVEL(AAAA,BBBB,CCCC) IPTV_LOGSTRING3(AAAA,BBBB,CCCC) +#define IPTVLOGSTRING4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOGSTRING4(AAAA,BBBB,CCCC,DDDD) + +#define IPTV_LOG_STR_DESC_HIGH_LEVEL(AAAA) IPTV_LOG_STR_DESC(AAAA) +#define IPTV_LOG_STR_DESC2_HIGH_LEVEL(AAAA,BBBB) IPTV_LOG_STR_DESC2(AAAA,BBBB) +#define IPTV_LOG_STR_DESC3_HIGH_LEVEL(AAAA,BBBB,CCCC) IPTV_LOG_STR_DESC3(AAAA,BBBB,CCCC) +#define IPTV_LOG_STR_DESC4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOG_STR_DESC4(AAAA,BBBB,CCCC,DDDD) + +#else + +#define IPTVLOGTEXT_HIGH_LEVEL(AAAA) +#define IPTVLOGSTRING_HIGH_LEVEL(AAAA) +#define IPTVLOGSTRING2_HIGH_LEVEL(AAAA,BBBB) +#define IPTVLOGSTRING3_HIGH_LEVEL(AAAA,BBBB,CCCC) +#define IPTVLOGSTRING4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD) + +#define IPTV_LOG_STR_DESC_HIGH_LEVEL(AAAA) +#define IPTV_LOG_STR_DESC2_HIGH_LEVEL(AAAA,BBBB) +#define IPTV_LOG_STR_DESC3_HIGH_LEVEL(AAAA,BBBB,CCCC) +#define IPTV_LOG_STR_DESC4_HIGH_LEVEL(AAAA,BBBB,CCCC,DDDD) + +#endif + + +#ifdef IPTV_MIDDLE_LEVEL_TRACES +#define TFLOGTEXT_MIDDLE_LEVEL(AAAA) IPTV_LOGTEXT(AAAA) +#define IPTVLOGSTRING_MIDDLE_LEVEL(AAAA) IPTV_LOGSTRING(AAAA) +#define IPTVLOGSTRING2_MIDDLE_LEVEL(AAAA,BBBB) IPTV_LOGSTRING2(AAAA,BBBB) +#define IPTVLOGSTRING3_MIDDLE_LEVEL(AAAA,BBBB,CCCC) IPTV_LOGSTRING3(AAAA,BBBB,CCCC) +#define IPTVLOGSTRING4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOGSTRING4(AAAA,BBBB,CCCC,DDDD) + +#define IPTV_LOG_STR_DESC_MIDDLE_LEVEL(AAAA) IPTV_LOG_STR_DESC(AAAA) +#define IPTV_LOG_STR_DESC2_MIDDLE_LEVEL(AAAA,BBBB) IPTV_LOG_STR_DESC2(AAAA,BBBB) +#define IPTV_LOG_STR_DESC3_MIDDLE_LEVEL(AAAA,BBBB,CCCC) IPTV_LOG_STR_DESC3(AAAA,BBBB,CCCC) +#define IPTV_LOG_STR_DESC4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOG_STR_DESC4(AAAA,BBBB,CCCC,DDDD) + +#else + +#define TFLOGTEXT_MIDDLE_LEVEL(AAAA) +#define IPTVLOGSTRING_MIDDLE_LEVEL(AAAA) +#define IPTVLOGSTRING2_MIDDLE_LEVEL(AAAA,BBBB) +#define IPTVLOGSTRING3_MIDDLE_LEVEL(AAAA,BBBB,CCCC) +#define IPTVLOGSTRING4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD) + +#define IPTV_LOG_STR_DESC_MIDDLE_LEVEL(AAAA) +#define IPTV_LOG_STR_DESC2_MIDDLE_LEVEL(AAAA,BBBB) +#define IPTV_LOG_STR_DESC3_MIDDLE_LEVEL(AAAA,BBBB,CCCC) +#define IPTV_LOG_STR_DESC4_MIDDLE_LEVEL(AAAA,BBBB,CCCC,DDDD) + +#endif + + +#ifdef IPTV_LOW_LEVEL_TRACES + +#define IPTVLOGTEXT_LOW_LEVEL(AAAA) IPTV_LOGTEXT(AAAA) +#define IPTVLOGSTRING_LOW_LEVEL(AAAA) IPTV_LOGSTRING(AAAA) +#define IPTVLOGSTRING2_LOW_LEVEL(AAAA,BBBB) IPTV_LOGSTRING2(AAAA,BBBB) +#define IPTVLOGSTRING3_LOW_LEVEL(AAAA,BBBB,CCCC) IPTV_LOGSTRING3(AAAA,BBBB,CCCC) +#define IPTVLOGSTRING4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOGSTRING4(AAAA,BBBB,CCCC,DDDD) + +#define IPTV_LOG_STR_DESC_LOW_LEVEL(AAAA) IPTV_LOG_STR_DESC(AAAA) +#define IPTV_LOG_STR_DESC2_LOW_LEVEL(AAAA,BBBB) IPTV_LOG_STR_DESC2(AAAA,BBBB) +#define IPTV_LOG_STR_DESC3_LOW_LEVEL(AAAA,BBBB,CCCC) IPTV_LOG_STR_DESC3(AAAA,BBBB,CCCC) +#define IPTV_LOG_STR_DESC4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD) IPTV_LOG_STR_DESC4(AAAA,BBBB,CCCC,DDDD) + +#else + +#define IPTVLOGTEXT_LOW_LEVEL(AAAA) +#define IPTVLOGSTRING_LOW_LEVEL(AAAA) +#define IPTVLOGSTRING2_LOW_LEVEL(AAAA,BBBB) +#define IPTVLOGSTRING3_LOW_LEVEL(AAAA,BBBB,CCCC) +#define IPTVLOGSTRING4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD) + +#define IPTV_LOG_STR_DESC_LOW_LEVEL(AAAA) +#define IPTV_LOG_STR_DESC2_LOW_LEVEL(AAAA,BBBB) +#define IPTV_LOG_STR_DESC3_LOW_LEVEL(AAAA,BBBB,CCCC) +#define IPTV_LOG_STR_DESC4_LOW_LEVEL(AAAA,BBBB,CCCC,DDDD) + +#endif + + +/* +----------------------------------------------------------------------------- + + LOG SELECTION + +----------------------------------------------------------------------------- +*/ + + +// 0 = No logging, +// 1 = Flogger, +// 2 = RDebug + + +#ifndef _DEBUG + +// UREL BUILD: +#define IPTV_LOGGING_METHOD 0 // No logging in UREL builds + +#else // urel + + +#ifdef __WINSCW__ + +// WINSCW BUILD: +#define IPTV_LOGGING_METHOD 2 // RDebug is default with emulator + +#else + +// ARMV5 BUILD: +#define IPTV_LOGGING_METHOD 1 // Flogger is default with target device + +#endif + + +#endif // _DEBUG + + +/* +----------------------------------------------------------------------------- + + LOG SETTINGS + +----------------------------------------------------------------------------- +*/ + +#if IPTV_LOGGING_METHOD == 1 // Flogger + +#include +_LIT(KIPTVLogFolder,"IPTV"); +_LIT(KIPTVLogFile,"IPTVLOG.TXT"); + +#elif IPTV_LOGGING_METHOD == 2 // RDebug + +#include + +#endif + + + + + +#if IPTV_LOGGING_METHOD == 1 // Flogger + + +#define IPTV_LOGTEXT(AAA) RFileLogger::Write(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend, AAA) + +#define IPTV_LOG_STR_DESC(AAA) RFileLogger::Write(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend, AAA) +#define IPTV_LOG_STR_DESC2(AAA,BBB) /*lint -e{717}*/ do { RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue(AAA()),BBB); } while ( EFalse ) +#define IPTV_LOG_STR_DESC3(AAA,BBB,CCC) /*lint -e{717}*/ do { RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue(AAA()),BBB,CCC); } while ( EFalse ) +#define IPTV_LOG_STR_DESC4(AAA,BBB,CCC,DDD) /*lint -e{717}*/ do { RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue(AAA()),BBB,CCC,DDD); } while ( EFalse ) + +#define IPTV_LOGSTRING(AAA) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::Write(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,tempIPTVLogDes()); } while ( EFalse ) +#define IPTV_LOGSTRING2(AAA,BBB) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue(tempIPTVLogDes()),BBB); } while ( EFalse ) +#define IPTV_LOGSTRING3(AAA,BBB,CCC) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue(tempIPTVLogDes()),BBB,CCC); } while ( EFalse ) +#define IPTV_LOGSTRING4(AAA,BBB,CCC,DDD) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RFileLogger::WriteFormat(KIPTVLogFolder(),KIPTVLogFile(),EFileLoggingModeAppend,TRefByValue(tempIPTVLogDes()),BBB,CCC,DDD); } while ( EFalse ) + +// Time stamp +_LIT(KIptvLogTimeFormatString, "IPTV TIMESTAMP: %H:%T:%S:%*C3"); +#define IPTV_LOGSTRING_TIMESTAMP { \ + TTime logTime; \ + logTime.HomeTime(); \ + TBuf<256> logBuffer; \ + logTime.FormatL(logBuffer, KIptvLogTimeFormatString); \ + RFileLogger::Write(KIPTVLogFolder(), KIPTVLogFile(), EFileLoggingModeAppend, logBuffer); \ + } + +// Memory stamp +_LIT(KIptvLogMemoryStampString, "IPTV MEMORYSTAMP: %d KB"); +#define IPTV_LOGSTRING_MEMORYSTAMP { \ + User::CompressAllHeaps(); \ + TMemoryInfoV1Buf logMemory; \ + UserHal::MemoryInfo(logMemory); \ + TInt logMemoryInt = (TInt)(logMemory().iFreeRamInBytes); \ + TBuf<256> logMemoryStr; \ + logMemoryStr.Format(KIptvLogMemoryStampString, (logMemoryInt / 1024) ); \ + RFileLogger::Write(KIPTVLogFolder(), KIPTVLogFile(), EFileLoggingModeAppend, logMemoryStr); \ + } + + +#elif IPTV_LOGGING_METHOD == 2 // RDebug + + +#define IPTV_LOGTEXT(AAA) RDebug::Print(AAA) + +#define IPTV_LOG_STR_DESC(AAA) RDebug::Print(AAA) +#define IPTV_LOG_STR_DESC2(AAA,BBB) /*lint -e{717}*/ do { RDebug::Print(AAA, BBB); } while ( EFalse ) +#define IPTV_LOG_STR_DESC3(AAA,BBB,CCC) /*lint -e{717}*/ do { RDebug::Print(AAA, BBB, CCC); } while ( EFalse ) +#define IPTV_LOG_STR_DESC4(AAA,BBB,CCC,DDD) /*lint -e{717}*/ do { RDebug::Print(AAA, BBB, CCC, DDD); } while ( EFalse ) + +#define IPTV_LOGSTRING(AAA) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes); } while ( EFalse ) +#define IPTV_LOGSTRING2(AAA,BBB) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes, BBB); } while ( EFalse ) +#define IPTV_LOGSTRING3(AAA,BBB,CCC) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes, BBB, CCC); } while ( EFalse ) +#define IPTV_LOGSTRING4(AAA,BBB,CCC,DDD) /*lint -e{717}*/ do { _LIT(tempIPTVLogDes,AAA); RDebug::Print(tempIPTVLogDes, BBB, CCC, DDD); } while ( EFalse ) + +// Time stamp +_LIT(KIptvLogTimeFormatString, "IPTV TIMESTAMP: %H:%T:%S:%*C3"); +#define IPTV_LOGSTRING_TIMESTAMP { \ + TTime logTime; \ + logTime.HomeTime(); \ + TBuf<256> logBuffer; \ + logTime.FormatL(logBuffer, KIptvLogTimeFormatString); \ + RDebug::Print(logBuffer); \ + } + +// Memory stamp +_LIT(KIptvLogMemoryStampString, "IPTV MEMORYSTAMP: %d KB"); +#define IPTV_LOGSTRING_MEMORYSTAMP { \ + User::CompressAllHeaps(); \ + TMemoryInfoV1Buf logMemory; \ + UserHal::MemoryInfo(logMemory); \ + TInt logMemoryInt = (TInt)(logMemory().iFreeRamInBytes); \ + TBuf<256> logMemoryStr; \ + logMemoryStr.Format(KIptvLogMemoryStampString, (logMemoryInt / 1024) ); \ + RDebug::Print(logMemoryStr); \ + } + + +#else // TF_LOGGING_METHOD == 0 or invalid + + +#define IPTV_LOGSTRING(AAA) +#define IPTV_LOGSTRING2(AAA,BBB) +#define IPTV_LOGSTRING3(AAA,BBB,CCC) +#define IPTV_LOGSTRING4(AAA,BBB,CCC,DDD) + +#define IPTV_LOGTEXT(AAA) + +#define IPTV_LOG_STR_DESC(AAA) +#define IPTV_LOG_STR_DESC2(AAA,BBB) +#define IPTV_LOG_STR_DESC3(AAA,BBB,CCC) +#define IPTV_LOG_STR_DESC4(AAA,BBB,CCC,DDD) + +#define IPTV_LOGSTRING_TIMESTAMP +#define IPTV_LOGSTRING_MEMORYSTAMP + + +#endif // TF_LOGGING_METHOD + + +#endif // IPTVDEBUG_H diff -r 7d91903f795f -r ce5ada96ab30 inc/mpxvideoplayercustomviewmsgconsts.h --- a/inc/mpxvideoplayercustomviewmsgconsts.h Fri Feb 19 22:52:52 2010 +0200 +++ b/inc/mpxvideoplayercustomviewmsgconsts.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 2 % +// Version : %version: da1mmcf#3 % #ifndef __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__ #define __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__ @@ -29,4 +29,7 @@ const TInt KVcxCustomViewMessagePtr = 0x200211F9; +const TInt KMpxVideoPlaybackPdlReloading = 0x20024339; + + #endif // __MPXVIDEOPLAYERCUSTOMVIEWMSGCONSTS_H__ diff -r 7d91903f795f -r ce5ada96ab30 layers.sysdef.xml --- a/layers.sysdef.xml Fri Feb 19 22:52:52 2010 +0200 +++ b/layers.sysdef.xml Fri Mar 12 15:43:00 2010 +0200 @@ -18,7 +18,7 @@ - + @@ -29,17 +29,6 @@ - - - - - - - - - - - diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/group/bld.inf --- a/mediasettings/group/bld.inf Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/group/bld.inf Fri Mar 12 15:43:00 2010 +0200 @@ -15,14 +15,12 @@ */ -// Version : %version: 9 % +// Version : %version: 10 % #include #include "../videoplayersettingsengine/group/bld.inf" #include "../mediasettingsengine/group/bld.inf" -#include "../feedsettingsplugin/group/bld.inf" -#include "../feedsettingsviews/group/bld.inf" #include "../mpsettbase/group/bld.inf" #include "../mediasettingsapp/group/bld.inf" #include "../gsvideoplugin/group/bld.inf" diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/gsvideoplugin/group/gsvideoplugin.mmp --- a/mediasettings/gsvideoplugin/group/gsvideoplugin.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/gsvideoplugin/group/gsvideoplugin.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 4 % +// Version : %version: 5 % @@ -49,12 +49,7 @@ SOURCE MPSettingsVideoSettingItemList.cpp SOURCE MPSettingsVideoContainer.cpp SOURCE MPSettingsStreamingContainer.cpp -SOURCE MPSettingsProxySettingItemList.cpp -SOURCE MPSettingsProxyContainer.cpp -SOURCE MPSettingsProxyView.cpp -SOURCE MPSettingsNetworkSettingItemList.cpp -SOURCE MPSettingsNetworkContainer.cpp -SOURCE MPSettingsNetworkView.cpp +SOURCE MPSettingsStreamingSettingItemList.cpp SOURCE MPSettingsSliderSettingItem.cpp SOURCE MPSettingsUDPPortSettingItem.cpp SOURCE MPSettingsAdvancedBwContainer.cpp @@ -78,7 +73,6 @@ USERINCLUDE ../../videoplayersettingsengine/inc USERINCLUDE ../../mediasettingsengine/inc USERINCLUDE ../../mediasettingsengine/data -USERINCLUDE ../../feedsettingsviews/inc //System include paths @@ -117,8 +111,6 @@ LIBRARY commsdat.lib LIBRARY gsframework.lib // For base classes LIBRARY centralrepository.lib -LIBRARY pbkeng.lib -LIBRARY pbkview.lib LIBRARY aknskinsrv.lib // for enhanced skinning LIBRARY aknskins.lib // for enhanced skinning LIBRARY egul.lib @@ -145,13 +137,10 @@ LIBRARY eikdlg.lib // eikon dialogs LIBRARY flogger.lib // For GSLogger -LIBRARY sisregistryclient.lib - -LIBRARY vcxnssettingsview.lib SOURCEPATH ../data DOCUMENT 10275068.rss -SOURCEPATH ../../mediasettingsapp/data +SOURCEPATH ../../mediasettingsapp/data DOCUMENT MediaSettings.rss diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/gsvideoplugin/inc/GSMediaPlayerStreamingView.h --- a/mediasettings/gsvideoplugin/inc/GSMediaPlayerStreamingView.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/gsvideoplugin/inc/GSMediaPlayerStreamingView.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 3 % +// Version : %version: 4 % @@ -39,7 +39,6 @@ * @since 3.1 */ class CGSMediaPlayerStreamingView : public CAknView, - public MEikListBoxObserver, public MGSTabbedView { public: // Constructors and destructor @@ -131,15 +130,7 @@ */ void CreateContainerL(); - protected: // from MEikListBoxObserver - - /** - * Handles listbox events. - * @param aListBox Listbox where the event occurred. - * @param aEventType Event type. - */ - void HandleListBoxEventL(CEikListBox* aListBox, - TListBoxEvent aEventType); + protected: /** * Called at the end of DoActivateL. @@ -151,20 +142,14 @@ /** * C++ default constructor. */ - CGSMediaPlayerStreamingView(CMPSettingsModelForROP* aModel, CArrayPtrFlat* aTabViewArray); + CGSMediaPlayerStreamingView( CMPSettingsModelForROP* aModel, + CArrayPtrFlat* aTabViewArray); /** * Symbian OS 2nd phase constructor. * @since 2.1 */ void ConstructL( CArrayPtrFlat* aTabViewArray ); - - private: // New - - /** - * Handles listbox selection. - */ - virtual void HandleListBoxSelectionL(); private: // Data diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/gsvideoplugin/inc/GSVideoPlugin.h --- a/mediasettings/gsvideoplugin/inc/GSVideoPlugin.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/gsvideoplugin/inc/GSVideoPlugin.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 6 % +// Version : %version: 7 % @@ -113,7 +113,13 @@ */ void SetCurrentItem( TInt aIndex ); - + /** + * Checks if video contrast item should be visible. + * + * @return ETrue if video contrast is supported + */ + TBool VideoContrastIsSupportedL(); + public: // From CGSPluginInterface - See CGSPluginInterface header file. /** @@ -230,15 +236,19 @@ CArrayFix* iViewIds; CMPSettingsMainView* iMainView; - CGSTabHelper* iTabHelper; CMPSettingsModelForROP* iModel; CMPSettingsBaseContainer* iContainer; RImplInfoPtrArray iImplInfoArray; TBool iConstructAsGsPlugin; CArrayPtrFlat* iViewArray; TVwsViewId iPrevViewId; // Previous view. + + /** + * Video view availability status. + */ + TBool iVideoViewAvailable; -}; + }; #endif //CGSVIDEOPLUGIN_H diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/gsvideoplugin/src/GSMediaPlayerStreamingView.cpp --- a/mediasettings/gsvideoplugin/src/GSMediaPlayerStreamingView.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/gsvideoplugin/src/GSMediaPlayerStreamingView.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 8 % +// Version : %version: 10 % @@ -41,11 +41,6 @@ class CMPSettingsModelForROP; -// CONSTANTS - -const TInt KMPSettProxyViewListItemId = 0; -const TInt KMPSettNetworkViewListItemId = 1; - // ================= MEMBER FUNCTIONS ======================= // ----------------------------------------------------------------------------- @@ -54,7 +49,9 @@ // might leave. // ----------------------------------------------------------------------------- // -CGSMediaPlayerStreamingView::CGSMediaPlayerStreamingView(CMPSettingsModelForROP* aModel, CArrayPtrFlat* /* aTabViewArray */ ) +CGSMediaPlayerStreamingView::CGSMediaPlayerStreamingView( + CMPSettingsModelForROP* aModel, + CArrayPtrFlat* /* aTabViewArray */ ) : iModel( aModel) { MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CGSMediaPlayerStreamingView()"); @@ -67,10 +64,13 @@ // void CGSMediaPlayerStreamingView::ConstructL(CArrayPtrFlat* aTabViewArray) { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::ConstructL()"); - iTabHelper = CGSTabHelper::NewL(); - aTabViewArray->AppendL(this); - BaseConstructL(R_GS_MPSETT_STREAMING_VIEW); + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::ConstructL()"); + if ( aTabViewArray ) + { + iTabHelper = CGSTabHelper::NewL(); + aTabViewArray->AppendL(this); + } + BaseConstructL( R_GS_MPSETT_STREAMING_VIEW ); } // ----------------------------------------------------------------------------- @@ -78,15 +78,17 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -CGSMediaPlayerStreamingView* CGSMediaPlayerStreamingView::NewLC(CMPSettingsModelForROP* aModel, CArrayPtrFlat* aTabViewArray) +CGSMediaPlayerStreamingView* CGSMediaPlayerStreamingView::NewLC( + CMPSettingsModelForROP* aModel, + CArrayPtrFlat* aTabViewArray ) { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewLC()"); - CGSMediaPlayerStreamingView* self = new(ELeave) CGSMediaPlayerStreamingView(aModel,aTabViewArray); - - CleanupStack::PushL(self); - self->ConstructL( aTabViewArray ); + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewLC()"); + CGSMediaPlayerStreamingView* self = new(ELeave) CGSMediaPlayerStreamingView(aModel,aTabViewArray); - return self; + CleanupStack::PushL(self); + self->ConstructL( aTabViewArray ); + + return self; } // --------------------------------------------------------- @@ -96,14 +98,14 @@ // CGSMediaPlayerStreamingView::~CGSMediaPlayerStreamingView() { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::~CGSMediaPlayerStreamingView()"); - if ( iContainer ) + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::~CGSMediaPlayerStreamingView()"); + if ( iContainer ) { AppUi()->RemoveFromStack( iContainer ); delete iContainer; } - delete iTabHelper; - } + delete iTabHelper; +} // --------------------------------------------------------- // TUid CGSMediaPlayerStreamingView::Id @@ -111,8 +113,8 @@ // TUid CGSMediaPlayerStreamingView::Id() const { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Id()"); - return KMPSettStreamingViewId; + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Id()"); + return KMPSettStreamingViewId; } // --------------------------------------------------------- @@ -121,30 +123,43 @@ // void CGSMediaPlayerStreamingView::HandleCommandL(TInt aCommand) { - MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::HandleCommandL(%d)"),aCommand); - CGSVideoPlugin* parent = - static_cast ( - AppUi()->View( KGSVideoPluginUid ) ); + MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::HandleCommandL(%d)"),aCommand); + CGSVideoPlugin* parent = + static_cast ( + AppUi()->View( KGSVideoPluginUid ) ); - switch (aCommand) + switch (aCommand) { - case EMPSettCmdOpen: - HandleListBoxSelectionL(); - break; - case EAknSoftkeyBack: - parent->SetCurrentItem(EGSMediaSettingsStreamingIndex); - parent->ResetSelectedItemIndex(); - AppUi()->ActivateLocalViewL(KGSVideoPluginUid); - break; - case EMPSettCmdHelp: - if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() ); - } - break; - default: - AppUi()->HandleCommandL(aCommand); - break; + case EMPSettCmdOpen: + break; + case EAknSoftkeyBack: + { + if ( iTabHelper ) + { + parent->SetCurrentItem(EGSMediaSettingsStreamingIndex); + parent->ResetSelectedItemIndex(); + AppUi()->ActivateLocalViewL(KGSVideoPluginUid); + } + else + { + // If there's no TabHelper, we have just streaming view and + // should exit MediaSettings. + AppUi()->ActivateLocalViewL( KGSAppsPluginUid ); + } + } + break; + case EMPSettCmdAdvancedSett: + AppUi()->ActivateLocalViewL( KMPSettAdvancedBwViewId ); + break; + case EMPSettCmdHelp: + if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) + { + HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() ); + } + break; + default: + AppUi()->HandleCommandL(aCommand); + break; } } @@ -153,35 +168,35 @@ // Activate this view // --------------------------------------------------------------------------- // -void CGSMediaPlayerStreamingView::DoActivateL( const TVwsViewId& /* aPrevViewId */, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) +void CGSMediaPlayerStreamingView::DoActivateL( + const TVwsViewId& /* aPrevViewId */, + TUid /*aCustomMessageId*/, + const TDesC8& /*aCustomMessage*/ ) { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoActivateL()"); - if( iContainer ) + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoActivateL()"); + if( iContainer ) { AppUi()->RemoveFromViewStack( *this, iContainer ); delete iContainer; iContainer = NULL; } - CreateContainerL(); - AppUi()->AddToViewStackL( *this, iContainer ); - - CGSVideoPlugin* parent = - static_cast ( - AppUi()->View( KGSVideoPluginUid ) ); - - if( parent ) + CreateContainerL(); + AppUi()->AddToViewStackL( *this, iContainer ); + + CGSVideoPlugin* parent = + static_cast ( + AppUi()->View( KGSVideoPluginUid ) ); + + if( parent && iTabHelper ) { iTabHelper->CreateTabGroupL( Id(), - static_cast *> (parent->TabbedViews() ) ); + static_cast *> (parent->TabbedViews() ) ); } - iContainer->SetRect( ClientRect() ); - iContainer->ActivateL(); - - DynInitContainerL(); - + iContainer->SetRect( ClientRect() ); + iContainer->ActivateL(); + + DynInitContainerL(); } // --------------------------------------------------------------------------- @@ -191,21 +206,23 @@ // void CGSMediaPlayerStreamingView::DoDeactivate() { - - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoDeactivate()"); - if ( iContainer ) + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DoDeactivate()"); + if ( iContainer ) { - CEikTextListBox* listbox = iContainer->ListBox(); - if (listbox) + CEikTextListBox* listbox = iContainer->ListBox(); + if (listbox) { iCurrentItem = listbox->CurrentItemIndex(); iTopItemIndex = listbox->TopItemIndex(); } - - AppUi()->RemoveFromStack( iContainer ); - delete iContainer; - iContainer = NULL; - iTabHelper->RemoveTabGroup(); + + AppUi()->RemoveFromStack( iContainer ); + delete iContainer; + iContainer = NULL; + if ( iTabHelper ) + { + iTabHelper->RemoveTabGroup(); + } } } @@ -216,8 +233,8 @@ // CMPSettingsBaseContainer* CGSMediaPlayerStreamingView::Container() { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Container()"); - return static_cast ( iContainer ); + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::Container()"); + return static_cast ( iContainer ); } // --------------------------------------------------------------------------- @@ -225,14 +242,15 @@ // Before showing a options menu // --------------------------------------------------------------------------- // -void CGSMediaPlayerStreamingView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane) +void CGSMediaPlayerStreamingView::DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane) { - MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::DynInitMenuPaneL(0x%X)"),aResourceId); - if (aResourceId == R_MPSETT_APP_MENU) + MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::DynInitMenuPaneL(0x%X)"),aResourceId); + if ( aResourceId == R_MPSETT_APP_MENU ) { - // Help should be displayed only if the feature is supported according - // to Feature Manager - if (!FeatureManager::FeatureSupported(KFeatureIdHelp)) + // Help should be displayed only if the feature is supported according + // to Feature Manager + if (!FeatureManager::FeatureSupported(KFeatureIdHelp)) { aMenuPane->SetItemDimmed(EMPSettCmdHelp, ETrue); } @@ -245,8 +263,8 @@ // --------------------------------------------------------------------------- void CGSMediaPlayerStreamingView::NewContainerL() { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewContainerL()"); - iContainer = new (ELeave) CMPSettingsStreamingContainer(iModel); + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::NewContainerL()"); + iContainer = new (ELeave) CMPSettingsStreamingContainer(iModel); } // ----------------------------------------------------------------------------- @@ -256,31 +274,12 @@ // void CGSMediaPlayerStreamingView::HandleClientRectChange() { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::HandleClientRectChange()"); - if ( iContainer ) + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::HandleClientRectChange()"); + if ( iContainer ) { iContainer->SetRect( ClientRect() ); } } - -// --------------------------------------------------------------------------- -// CGSMediaPlayerStreamingView::HandleListBoxEventL -// --------------------------------------------------------------------------- - -void CGSMediaPlayerStreamingView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType) - { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::HandleListBoxEventL()"); - switch (aEventType) - { - case EEventEnterKeyPressed: - case EEventItemSingleClicked: - case EEventItemDoubleClicked: - HandleListBoxSelectionL(); - break; - default: - break; - } - } // --------------------------------------------------------------------------- // CGSMediaPlayerStreamingView::DynInitContainerL @@ -288,48 +287,16 @@ // void CGSMediaPlayerStreamingView::DynInitContainerL() { - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DynInitContainerL()"); - CEikTextListBox* listbox = iContainer->ListBox(); - - listbox->SetListBoxObserver(this); - listbox->SetTopItemIndex(iTopItemIndex); + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::DynInitContainerL()"); + CEikTextListBox* listbox = iContainer->ListBox(); - if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems()) // magic - { - listbox->SetCurrentItemIndexAndDraw(iCurrentItem); - } - } + listbox->SetTopItemIndex(iTopItemIndex); -// --------------------------------------------------------------------------- -// CGSMediaPlayerStreamingView::HandleListBoxSelectionL() -// Handles listbox selection. -// --------------------------------------------------------------------------- -// -void CGSMediaPlayerStreamingView::HandleListBoxSelectionL() - { - iCurrentItem = iContainer->ListBox()->CurrentItemIndex(); - iTopItemIndex = iContainer->ListBox()->TopItemIndex(); - MPX_DEBUG3(_L("#MS# CGSMediaPlayerStreamingView::HandleListBoxSelectionL() iCurrentItem(%d) iTopItemIndex(%d)"),iCurrentItem,iTopItemIndex); - - switch (iCurrentItem) - { - case KMPSettProxyViewListItemId: - if (!FeatureManager::FeatureSupported(KFeatureIdProtocolCdma)) - { - // If KFeatureIdProtocolCdma is not supported then show the - // Proxy view. Otherwise, fall through to show Network view because - // only Network setting is available. - AppUi()->ActivateLocalViewL(KMPSettProxyViewId); - break; - } - case KMPSettNetworkViewListItemId: - AppUi()->ActivateLocalViewL(KMPSettNetworkViewId); - break; - default: - break; - } + if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems()) // magic + { + listbox->SetCurrentItemIndexAndDraw(iCurrentItem); + } } - // --------------------------------------------------------------------------- // CGSMediaPlayerStreamingView::CreateContainerL() @@ -338,22 +305,21 @@ // void CGSMediaPlayerStreamingView::CreateContainerL() { - - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateContainerL()"); - NewContainerL(); - __ASSERT_DEBUG( - iContainer, User::Panic( KGSDoActivateError, EGSViewPanicNullPtr ) ); - iContainer->SetMopParent( this ); + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateContainerL()"); + NewContainerL(); + __ASSERT_DEBUG( + iContainer, User::Panic( KGSDoActivateError, EGSViewPanicNullPtr ) ); + iContainer->SetMopParent( this ); - //TRAPD( error, iContainer->ConstructL() ); - TRAPD( error, iContainer->ConstructL( ClientRect() ) ); + //TRAPD( error, iContainer->ConstructL() ); + TRAPD( error, iContainer->ConstructL( ClientRect() ) ); - if ( error ) - { - delete iContainer; - iContainer = NULL; - User::Leave( error ); - } + if ( error ) + { + delete iContainer; + iContainer = NULL; + User::Leave( error ); + } } // --------------------------------------------------------------------------- @@ -363,29 +329,27 @@ // CGulIcon* CGSMediaPlayerStreamingView::CreateTabIconL() { - - MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateTabIconL()"); - CGulIcon* icon; - TFileName fileName; + MPX_FUNC("#MS# CGSMediaPlayerStreamingView::CreateTabIconL()"); + CGulIcon* icon; + TFileName fileName; - CGSVideoPlugin* parent = - static_cast ( - AppUi()->View( KGSVideoPluginUid ) ); - - if( parent ) + CGSVideoPlugin* parent = + static_cast ( + AppUi()->View( KGSVideoPluginUid ) ); + + if( parent ) { - parent->LocateFilePathL( fileName ); - } - - icon = AknsUtils::CreateGulIconL( - AknsUtils::SkinInstance(), - KAknsIIDDefault, - fileName, - EMbmMediasettingsQgn_prop_set_mp_stream_tab2, - EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask ); + parent->LocateFilePathL( fileName ); + } - return icon; + icon = AknsUtils::CreateGulIconL( + AknsUtils::SkinInstance(), + KAknsIIDDefault, + fileName, + EMbmMediasettingsQgn_prop_set_mp_stream_tab2, + EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask ); + return icon; } // --------------------------------------------------------------------------- @@ -394,8 +358,8 @@ // void CGSMediaPlayerStreamingView::SetCurrentItem(TInt aIndex) { - MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::SetCurrentItem(%d)"),aIndex); - iCurrentItem = aIndex; + MPX_DEBUG2(_L("#MS# CGSMediaPlayerStreamingView::SetCurrentItem(%d)"),aIndex); + iCurrentItem = aIndex; } // End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/gsvideoplugin/src/GSVideoPlugin.cpp --- a/mediasettings/gsvideoplugin/src/GSVideoPlugin.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/gsvideoplugin/src/GSVideoPlugin.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 8 % +// Version : %version: 10 % @@ -24,16 +24,14 @@ #include "GSVideoPlugin.h" #include "MPSettingsConstants.h" #include "MPSettingsMainView.h" -#include "MPSettingsProxyView.h" -#include "MPSettingsNetworkView.h" #include "MPSettingsPluginView.h" #include "MPSettingsAdvancedBwView.h" #include "MPSettingsMainContainer.h" +#include "MPSettingsStreamingContainer.h" #include "mediasettings.hrh" #include "gstabhelper.h" #include "GSMediaPlayerVideoView.h" #include "GSMediaPlayerStreamingView.h" -#include "feedsettingsview.h" #include "mpxlog.h" #include @@ -41,18 +39,20 @@ #include #include #include -#include #include //for StringLoader #include #include #include -#include //for KGSMainViewUid #include #include #include +#include +#include "MediaPlayerPrivateCRKeys.h" +#include "MediaPlayerVariant.hrh" + // CONSTANTS -const TInt KGSRopSettViewIdArrayGranularity = 3; +const TInt KGSRopSettViewIdArrayGranularity = 2; const TInt KGSRopSettTopItemIndex = 0; // ========================= MEMBER FUNCTIONS ================================ @@ -81,11 +81,6 @@ FeatureManager::UnInitializeLib(); iImplInfoArray.ResetAndDestroy(); - if ( iTabHelper ) - { - delete iTabHelper; - } - iResources.Close(); if ( iViewIds ) @@ -116,15 +111,20 @@ { MPX_FUNC("#MS# CGSVideoPlugin::ConstructL()"); FeatureManager::InitializeLibL(); - iViewArray = new (ELeave) CArrayPtrFlat( 3 ); + iVideoViewAvailable = VideoContrastIsSupportedL(); + if ( iVideoViewAvailable ) + { + iViewArray = new (ELeave) CArrayPtrFlat( KGSRopSettViewIdArrayGranularity ); + } TFileName fileName; LocateFilePathL( fileName, EFalse ); OpenLocalizedResourceFileL( fileName, iResources ); - - BaseConstructL(R_GS_MEDIASETTING_VIEW); - - iTabHelper = CGSTabHelper::NewL(); + + TInt ctorResource = ( iVideoViewAvailable ? R_GS_MEDIASETTING_VIEW : + R_GS_MPSETT_STREAMING_VIEW ); + + BaseConstructL( ctorResource ); } // --------------------------------------------------------------------------- @@ -196,7 +196,10 @@ } CreateContainerL(); AppUi()->AddToViewStackL( *this, iContainer ); - iContainer->ListBox()->SetListBoxObserver( this ) ; + if ( iVideoViewAvailable ) + { + iContainer->ListBox()->SetListBoxObserver( this ) ; + } ResetSelectedItemIndex(); } @@ -229,12 +232,14 @@ switch ( aCommand ) { case EMPSettCmdOpen: - HandleListBoxSelectionL(); break; case EAknSoftkeyBack: SetCurrentItem(EGSMediaSettingsVideoIndex); AppUi()->ActivateLocalViewL( KGSAppsPluginUid ); break; + case EMPSettCmdAdvancedSett: + AppUi()->ActivateLocalViewL( KMPSettAdvancedBwViewId ); + break; case EMPSettCmdHelp: { if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) @@ -291,9 +296,16 @@ void CGSVideoPlugin::NewContainerL() { MPX_FUNC("#MS# CGSVideoPlugin::NewContainerL()"); - iContainer = new( ELeave ) CMPSettingsMainContainer; + if ( iVideoViewAvailable ) + { + iContainer = new( ELeave ) CMPSettingsMainContainer; + } + else + { + iContainer = new( ELeave ) CMPSettingsStreamingContainer( iModel ); + } } - + // --------------------------------------------------------------------------- // CGSVideoPlugin::HandleListBoxSelectionL // @@ -322,7 +334,6 @@ streamingView = static_cast(AppUi()->View(iViewIds->At(i))); streamingView->SetCurrentItem(KGSRopSettTopItemIndex); } - // Third item of the list is "Video service selection" } AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem)); @@ -377,41 +388,35 @@ iModel = CMPSettingsModelForROP::NewL(); // Create vector which contains view id's for all setting folders. - iViewIds = new(ELeave) CArrayFixFlat(KGSRopSettViewIdArrayGranularity); - iViewIds->AppendL(KMPSettVideoViewId); - iViewIds->AppendL(KMPSettStreamingViewId); - iViewIds->AppendL(KMPSettFeedsViewId); + iViewIds = new(ELeave) CArrayFixFlat( KGSRopSettViewIdArrayGranularity ); + if ( iVideoViewAvailable ) + { + iViewIds->AppendL( KMPSettVideoViewId ); + } + iViewIds->AppendL( KMPSettStreamingViewId ); + CAknView* view; - view = CMPSettingsMainView::NewLC(iViewIds,iModel,iConstructAsGsPlugin); - AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - - // iMainView is not owned, i.e. it is not deleted in the destructor -> - // main view cannot be directly creted to iMainView, as it's against the coding - // conventions to place class' pointers to cleanup stack => static_cast. - iMainView = static_cast(view); - - view = CGSMediaPlayerVideoView::NewLC(iModel,iViewArray); - AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view + if ( iVideoViewAvailable ) + { + view = CMPSettingsMainView::NewLC(iViewIds,iModel,iConstructAsGsPlugin); + AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi + CleanupStack::Pop(); // view + // iMainView is not owned, i.e. it is not deleted in the destructor -> + // main view cannot be directly creted to iMainView, as it's against the coding + // conventions to place class' pointers to cleanup stack => static_cast. + iMainView = static_cast(view); + + view = CGSMediaPlayerVideoView::NewLC(iModel,iViewArray); + AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi + CleanupStack::Pop(); // view + } + view = CGSMediaPlayerStreamingView::NewLC(iModel,iViewArray); AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi CleanupStack::Pop(); // view - view = CVcxNsSettingsView::NewLC( iViewArray ); - AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - - view = CMPSettingsProxyView::NewLC(iModel,iConstructAsGsPlugin); - AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - - view = CMPSettingsNetworkView::NewLC(iModel,iConstructAsGsPlugin); - AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - view = CMPSettingsAdvancedBwView::NewLC(iModel,iConstructAsGsPlugin); AppUi()->AddViewL(view); // transfer ownership to CAknViewAppUi CleanupStack::Pop(); // view @@ -537,7 +542,6 @@ void CGSVideoPlugin::LocateFilePathL( TFileName& aFileName, TBool aBitmapFile ) { _LIT( KGSResourceFileName, "mediasettings.rsc" ); - //_LIT( KGSIconFileName, "mediasettings.mbm"); _LIT( KGSIconFileName, "mediasettings.mif"); TParse parse; @@ -592,4 +596,18 @@ MPX_DEBUG3(_L("#MS# CGSVideoPlugin::LocateFilePathL(%d,%S)"),aBitmapFile,&aFileName); } +// ----------------------------------------------------------------------------- +// CGSVideoPlugin::VideoContrastIsSupportedL +// ----------------------------------------------------------------------------- +// +TBool CGSVideoPlugin::VideoContrastIsSupportedL() + { + TInt flags; + CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures ); + repository->Get( KMPLocalVariation, flags ); + delete repository; + + return ( flags & KMediaPlayerVideoContrast ); + } + //End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/data/MediaSettings.rss --- a/mediasettings/mediasettingsapp/data/MediaSettings.rss Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/data/MediaSettings.rss Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 15 % +// Version : %version: 16 % @@ -367,11 +367,8 @@ LBUF { txt = "1\t"qtn_mp_settings_streaming; - }, - LBUF - { - txt = "2\t"qtn_iptv_service_selection_setting; } + }; } @@ -480,7 +477,7 @@ // RESOURCE AVKON_VIEW r_gs_mpsett_streaming_view { - menubar = r_mpsett_app_and_open_menubar; + menubar = r_mpsett_app_and_adv_sett_menubar; cba=r_mediasetting_softkeys_options_back_open; } @@ -493,71 +490,7 @@ // RESOURCE AVKON_VIEW r_mpsett_streaming_view { - menubar = r_mpsett_app_and_open_menubar; - cba = R_AVKON_SOFTKEYS_SELECTION_LIST; - } - -//---------------------------------------------------- -// -// r_mpsett_streaming_lbx_resource -// Streaming view's listbox resource. -// -//---------------------------------------------------- -// -RESOURCE LISTBOX r_mpsett_streaming_lbx_resource - { - array_id = r_mpsett_streaming_lbx; - flags = EEikListBoxMultipleSelection; - } - -//---------------------------------------------------- -// -// r_mpsett_streaming_lbx -// Streaming view's listbox. -// -//---------------------------------------------------- -// -RESOURCE ARRAY r_mpsett_streaming_lbx - { - items = - { -#ifndef __PROTOCOL_CDMA - LBUF - { - txt = " \t"qtn_mp_setting_stream_proxy; - }, -#endif - LBUF - { - txt = " \t"qtn_mp_setting_stream_net; - } - }; - } - -// * Feeds view * - -//---------------------------------------------------- -// -// r_mpsett_feeds_view_title -// Video view's title. -// -//---------------------------------------------------- -//- -RESOURCE TITLE_PANE r_mpsett_feeds_view_title - { - txt = qtn_iptv_service_selection_title; - } - -//---------------------------------------------------- -// -// r_mpsett_video_view -// Video view's Options menu and cba. -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_mpsett_feeds_view - { - menubar = r_mpsett_feeds_menubar; + menubar = r_mpsett_app_and_adv_sett_menubar; cba = R_AVKON_SOFTKEYS_SELECTION_LIST; } @@ -575,19 +508,6 @@ txt = qtn_mp_sett_stream_title_proxy; } -//---------------------------------------------------- -// -// r_mpsett_proxy_view -// Proxy view's Options menu and cba. -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_mpsett_proxy_view - { - menubar = r_mpsett_app_and_change_menubar; - cba = R_AVKON_SOFTKEYS_SELECTION_LIST; - } - // * NETWORK view * //---------------------------------------------------- @@ -602,19 +522,6 @@ txt = qtn_mp_sett_stream_title_net; } -//---------------------------------------------------- -// -// r_mpsett_network_view -// Network view's Options menu and cba. -// -//---------------------------------------------------- -// -RESOURCE AVKON_VIEW r_mpsett_network_view - { - menubar = r_mpsett_app_and_adv_sett_menubar; - cba = R_AVKON_SOFTKEYS_SELECTION_LIST; - } - // * ADVANCED bw view * //---------------------------------------------------- @@ -664,33 +571,6 @@ identifier = EMPSettVideoContrastSettingId; name = qtn_mp_setting_video_contrast; setting_page_resource = r_mpsett_video_contrast_setting_page; - }, - AVKON_SETTING_ITEM - { - identifier = EVcSettingsViewParentControlItem; - name = qtn_iptv_setting_parental_control; - setting_page_resource = r_vcsettingsview_settingview_parentcontrol_page; - associated_resource = r_vcsettingsview_settingview_parentcontrol_texts; - }, - AVKON_SETTING_ITEM - { - identifier = EVcSettingsViewMemoryItem; - setting_page_resource = r_vcsettingsview_settingview_memory_page; - name = qtn_iptv_memory_setting; - associated_resource = r_vcsettingsview_settingview_memory_texts; - }, - AVKON_SETTING_ITEM - { - identifier = EVcSettingsViewThumbnails; - setting_page_resource = r_vcsettingsview_settingview_thumbnails_page; - name = qtn_iptv_setting_thumbnails; - associated_resource = r_vcsettingsview_settingview_thumbnails_texts; - }, - AVKON_SETTING_ITEM - { - identifier = EVcSettingsviewIadUpdateItem; - name = qtn_vcx_setting_version_number; - setting_page_resource = r_vcsettingsview_settingview_iadupdate_page; } }; } @@ -715,190 +595,6 @@ //---------------------------------------------------- // -// r_vcsettingsview_settingview_iadupdate_page -// Setting page resource for Video version. -// -//---------------------------------------------------- -// -RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_iadupdate_page - { - label = qtn_vcx_setting_version_number; - type = EEikCtEdwin; - editor_resource_id = r_vcsettingsview_settingview_iadupdate_editor; - } - -RESOURCE EDWIN r_vcsettingsview_settingview_iadupdate_editor - { - maxlength = 20; - } - - -RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_thumbnails_page - { - type = EAknCtPopupSettingList; - editor_resource_id = r_vcsettingsview_settingview_thumbnails_editor; - } - -RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_thumbnails_editor - { - } - -RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_thumbnails_texts - { - setting_texts_resource = r_vcsettingsview_settingview_thumbnails_textspage_list; - popped_up_texts_resource = r_vcsettingsview_settingview_thumbnails_textsitem_array; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_thumbnails_textspage_list - { - items = - { - AVKON_ENUMERATED_TEXT { value = 0; text = qtn_iptv_setting_off; }, - AVKON_ENUMERATED_TEXT { value = 1; text = qtn_iptv_setting_on; } - }; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_thumbnails_textsitem_array - { - items = - { - LBUF { txt = qtn_iptv_setting_off; }, - LBUF { txt = qtn_iptv_setting_on; } - }; - } - -RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_parentcontrol_page - { - type = EAknCtPopupSettingList; - editor_resource_id = r_vcsettingsview_settingview_parentcontrol_editor; - } - -RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_parentcontrol_editor - { - } - -RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_parentcontrol_texts - { - setting_texts_resource = r_vcsettingsview_settingview_parentcontrol_textspage_list; - popped_up_texts_resource = r_vcsettingsview_settingview_parentcontrol_textsitem_array; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_parentcontrol_textspage_list - { - items = - { - AVKON_ENUMERATED_TEXT { value = 0; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 1; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 2; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 3; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 4; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 5; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 6; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 7; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 8; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 9; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 10; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 11; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 12; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 13; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 14; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 15; text = ""; } - }; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_parentcontrol_textsitem_array - { - items = - { - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; }, - LBUF { txt = ""; } - }; - } - -RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_memory_page - { - type = EAknCtPopupSettingList; - editor_resource_id = r_vcsettingsview_settingview_memory_editor; - } - -RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_memory_editor - { - } - -RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_memory_texts - { - setting_texts_resource = r_vcsettingsview_settingview_memory_textspage_list; - popped_up_texts_resource = r_vcsettingsview_settingview_memory_textsitem_array; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_memory_textspage_list - { - items = - { - AVKON_ENUMERATED_TEXT { value = 0; text = qtn_iptv_setting_phone_memory; }, - AVKON_ENUMERATED_TEXT { value = 1; text = qtn_iptv_setting_memory_card; } - }; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_memory_textsitem_array - { - items = - { - LBUF { txt = qtn_iptv_setting_phone_memory; }, - LBUF { txt = qtn_iptv_setting_memory_card; } - }; - } - -RESOURCE AVKON_SETTING_PAGE r_vcsettingsview_settingview_setting_subset_page - { - type = EAknCtPopupSettingList; - editor_resource_id = r_vcsettingsview_settingview_setting_subset_editor; - } - -RESOURCE POPUP_SETTING_LIST r_vcsettingsview_settingview_setting_subset_editor - { - } - -RESOURCE AVKON_POPUP_SETTING_TEXTS r_vcsettingsview_settingview_setting_subset_texts - { - setting_texts_resource = r_vcsettingsview_settingview_setting_subset_textspage_list; - popped_up_texts_resource = r_vcsettingsview_settingview_setting_subset_textsitem_array; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_setting_subset_textspage_list - { - items = - { - AVKON_ENUMERATED_TEXT { value = 0; text = ""; }, - AVKON_ENUMERATED_TEXT { value = 1; text = ""; } - }; - } - -RESOURCE ARRAY r_vcsettingsview_settingview_setting_subset_textsitem_array - { - items = - { - LBUF { txt = ""; }, - LBUF { txt = ""; } - }; - } - -//---------------------------------------------------- -// // r_mpsett_contrast_slider // Slider resource for Video contrast setting page. // @@ -956,19 +652,38 @@ { } -// ** PROXY setting item list ** +// ** STREAMING setting item list ** //---------------------------------------------------- // -// r_mpsett_proxy_setting_item_list +// r_mpsett_streaming_setting_item_list // Proxy setting list view's item list. // //---------------------------------------------------- // -RESOURCE AVKON_SETTING_ITEM_LIST r_mpsett_proxy_setting_item_list +RESOURCE AVKON_SETTING_ITEM_LIST r_mpsett_streaming_setting_item_list { items = { +#ifndef __PROTOCOL_CDMA + AVKON_SETTING_ITEM + { + identifier = EMPSettDefaultAPSettingId; + name = qtn_mp_setting_default_ap; + }, + AVKON_SETTING_ITEM + { + identifier = EMPSettMinUDPPortSettingId; + name = qtn_mp_setting_min_udp_port; + setting_page_resource = r_mpsett_min_udp_port_setting_page; + }, + AVKON_SETTING_ITEM + { + identifier = EMPSettMaxUDPPortSettingId; + name = qtn_mp_setting_max_udp_port; + setting_page_resource = r_mpsett_max_udp_port_setting_page; + }, +#endif AVKON_SETTING_ITEM { identifier = EMPSettProxyModeSettingId; @@ -1110,42 +825,6 @@ maxlength = 5; } - -// ** NETWORK setting item list ** - -//---------------------------------------------------- -// -// r_mpsett_network_setting_item_list -// Network setting list view's item list. -// -//---------------------------------------------------- -// -RESOURCE AVKON_SETTING_ITEM_LIST r_mpsett_network_setting_item_list - { - items = - { -#ifndef __PROTOCOL_CDMA - AVKON_SETTING_ITEM - { - identifier = EMPSettDefaultAPSettingId; - name = qtn_mp_setting_default_ap; - }, - AVKON_SETTING_ITEM - { - identifier = EMPSettMinUDPPortSettingId; - name = qtn_mp_setting_min_udp_port; - setting_page_resource = r_mpsett_min_udp_port_setting_page; - }, - AVKON_SETTING_ITEM - { - identifier = EMPSettMaxUDPPortSettingId; - name = qtn_mp_setting_max_udp_port; - setting_page_resource = r_mpsett_max_udp_port_setting_page; - } -#endif - }; - } - // * UDP PORT RANGE * //---------------------------------------------------- @@ -1528,12 +1207,10 @@ // *** PLUGIN VIEWS *** - // *** GSVideoPlugin *** //---------------------------------------------------- // // r_gs_mediasetting_view -// Telephony sub-menu view // //---------------------------------------------------- // @@ -1599,7 +1276,6 @@ buf = qtn_set_folder_media_player; } - // MSK Handling // ----------------------------------------------------------------------------- @@ -1638,82 +1314,6 @@ buf = qtn_msk_change; } -// ---------------------------------------------------------------------------- -// r_iptv_database_phone -// "Phone memory" -// ---------------------------------------------------------------------------- -// -RESOURCE TBUF r_iptv_setting_phone_memory - { - buf = qtn_iptv_setting_phone_memory; - } - -// ---------------------------------------------------------------------------- -// r_iptv_setting_mass_memory -// "Mass memory" -// ---------------------------------------------------------------------------- -// -RESOURCE TBUF r_iptv_setting_mass_memory - { - buf = qtn_iptv_setting_mass_memory; - } - -// ---------------------------------------------------------------------------- -// r_iptv_setting_memory_card -// "Memory card" -// ---------------------------------------------------------------------------- -// -RESOURCE TBUF r_iptv_setting_memory_card - { - buf = qtn_iptv_setting_memory_card; - } - -// ---------------------------------------------------------------------------- -// r_iptv_locked_memory_card -// "Locked memory card" -// ---------------------------------------------------------------------------- -// -RESOURCE TBUF r_iptv_locked_memory_card - { - buf = qtn_iptv_locked_memory_card; - } - -// ---------------------------------------------------------------------------- -// r_iptv_parental_control_off -// "Off" -// ---------------------------------------------------------------------------- -// -RESOURCE TBUF r_iptv_parental_control_off - { - buf = qtn_iptv_setting_off; - } - -// ---------------------------------------------------------------------------- -// r_iptv_parental_control_n_years -// "4 years" -// ---------------------------------------------------------------------------- -// -RESOURCE TBUF r_iptv_parental_control_n_years - { - buf = qtn_iptv_parental_control_n_years; - } - -#ifdef RD_MULTIPLE_DRIVE_ENABLERS -// -------------------------------------------------------------------------- -// Memory selection dialog -// -------------------------------------------------------------------------- -// -RESOURCE MEMORYSELECTIONDIALOG r_mtv_memory_selection_dialog - { - softkey_1 = text_softkey_select; - softkey_2 = text_softkey_cancel; - locations = - { - LOCATION { root_path = "C:\\"; } - }; - } -#endif - //---------------------------------------------------- // // r_mpsett_app_and_change_menubar diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/group/mediasettingsapp.mmp --- a/mediasettings/mediasettingsapp/group/mediasettingsapp.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/group/mediasettingsapp.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 5 % +// Version : %version: 6 % @@ -41,12 +41,7 @@ SOURCE MPSettingsVideoView.cpp SOURCE MPSettingsStreamingView.cpp SOURCE MPSettingsStreamingContainer.cpp -SOURCE MPSettingsProxySettingItemList.cpp -SOURCE MPSettingsProxyContainer.cpp -SOURCE MPSettingsProxyView.cpp -SOURCE MPSettingsNetworkSettingItemList.cpp -SOURCE MPSettingsNetworkContainer.cpp -SOURCE MPSettingsNetworkView.cpp +SOURCE MPSettingsStreamingSettingItemList.cpp SOURCE MPSettingsSliderSettingItem.cpp SOURCE MPSettingsUDPPortSettingItem.cpp SOURCE MPSettingsAdvancedBwContainer.cpp @@ -70,7 +65,6 @@ USERINCLUDE ../../mpsettbase/inc USERINCLUDE ../../videoplayersettingsengine/inc USERINCLUDE ../../mediasettingsengine/inc -USERINCLUDE ../../feedsettingsviews/inc APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE /epoc32/include/ecom @@ -96,10 +90,8 @@ LIBRARY mpsettbase.lib LIBRARY mpsettengine.lib LIBRARY flogger.lib -LIBRARY sisregistryclient.lib -LIBRARY vcxnssettingsengine.lib -LIBRARY commondialogs.lib -LIBRARY cmmanager.lib -LIBRARY vcxnssettingsview.lib +LIBRARY vcxnssettingsengine.lib +LIBRARY commondialogs.lib +LIBRARY cmmanager.lib // End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsAdvancedBwSettingItem.h --- a/mediasettings/mediasettingsapp/inc/MPSettingsAdvancedBwSettingItem.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsAdvancedBwSettingItem.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 3 % +// Version : %version: 4 % @@ -110,7 +110,6 @@ RArray& iValueArray; TInt& iValue; TInt iQueryRes; - CEikonEnv* iEnv; CArrayPtr* iEnumTextArray; }; diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsAppUi.h --- a/mediasettings/mediasettingsapp/inc/MPSettingsAppUi.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsAppUi.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 5 % +// Version : %version: 6 % @@ -115,7 +115,12 @@ */ void UpdateTabIndex(); - + /** + * Activates view. + * @param aViewId View Id + */ + void ActivateLocalViewL( TUid aViewId ); + private: /** @@ -157,19 +162,40 @@ */ void AddTabSettingsGroupL(); + /** + * Check whether or not the Contrast settings item should be drawn + * @return ETrue, if contrast item should be visible. + */ + TBool VideoContrastIsSupportedL(); + private: //Data + + /** + * Navi pane. Not own. + */ CAknNavigationControlContainer* iNaviPane; + + /** + * Tab group. Not own. + */ CAknTabGroup* iTabGroup; - CAknNavigationDecorator* iDecoratedTabGroup; // owned + + /** + * Decorated tab group. Own. + */ + CAknNavigationDecorator* iDecoratedTabGroup; CArrayFix* iViewIds; CMPSettingsMainView* iMainView; RImplInfoPtrArray iImplInfoArray; - CMPSettingsModel* iModel; - CMPSettingsModelForROP* iRopModel; - - TBool iConstructAsGsPlugin; + CMPSettingsModel* iModel; + CMPSettingsModelForROP* iRopModel; + + /** + * Video view availability status. + */ + TBool iVideoViewAvailable; }; #endif diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsConstants.h --- a/mediasettings/mediasettingsapp/inc/MPSettingsConstants.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsConstants.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 3 % +// Version : %version: 4 % @@ -37,7 +37,6 @@ const TUid KMPSettVideoViewId = {2}; const TUid KMPSettAudioViewId = {3}; const TUid KMPSettStreamingViewId = {4}; -const TUid KMPSettFeedsViewId = {5}; // UIDs for subviews const TUid KMPSettProxyViewId = {11}; diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsStreamingContainer.h --- a/mediasettings/mediasettingsapp/inc/MPSettingsStreamingContainer.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsStreamingContainer.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 2 % +// Version : %version: 3 % @@ -28,8 +28,9 @@ // FORWARD DECLARATIONS class CEikTextListBox; class CMPSettingsModelForROP; +class CMPSettingsStreamingSettingItemList; + // CLASS DECLARATION - /** * CMPSettingsStreamingContainer container control class. * @@ -56,8 +57,15 @@ * From CoeControl */ void GetHelpContext(TCoeHelpContext& aContext) const; - void FocusChanged(TDrawNow /*aDrawNow*/); + void FocusChanged(TDrawNow /*aDrawNow*/); + /** + * Edits current setting item. + * + * @param aMenuOption + */ + void EditCurrentItemFromMenuL(TBool aMenuOption); + protected: // Functions from base classes /** @@ -72,6 +80,12 @@ */ TInt TitleResourceId(); CMPSettingsModelForROP* iModel; + + /** + * Setting item list. + */ + CMPSettingsStreamingSettingItemList* iSettingList; + }; #endif diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsStreamingSettingItemList.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsStreamingSettingItemList.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,198 @@ +/* +* Copyright (c) 2002 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: Setting item list class for Streaming setting list view.* +*/ + + +// Version : %version: 2 % + + + + +#ifndef MPSETTINGSSTREAMINGSETTINGITEMLIST_H +#define MPSETTINGSSTREAMINGSETTINGITEMLIST_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CMPSettingsModelForROP; + +// CONSTANTS +const TInt KMaxApNameLength = 255; + +// CLASS DECLARATION + +/** +* CMPSettingsStreamingSettingItemList +* Setting item list class for Streaming setting list view. +* +*/ +class CMPSettingsStreamingSettingItemList : public CAknSettingItemList + { + public: // Constructors and destructor + + /** + * C++ default constructor. + */ + CMPSettingsStreamingSettingItemList(CMPSettingsModelForROP* aModel); + + /** + * 2nd-stage construction from resource id + */ + void ConstructFromResourceL(TInt aResourceId); + + /** + * From CCoeControl, 2nd-stage construction from constructed resource reader + */ + void ConstructFromResourceL(TResourceReader& aReader); + + /** + * Destructor. + */ + virtual ~CMPSettingsStreamingSettingItemList(); + + public: // Functions from base classes + + /** + * From CAknSettingItemList + */ + void EditItemL(TInt aIndex, TBool aCalledFromMenu); + + protected: // Functions from base classes + + /** + * From CAknSettingItemList + */ + CAknSettingItem* CreateSettingItemL(TInt aSettingId); + + private: //New + + /** + * Sets Proxy host and Proxy port item visibility according to Proxy mode. + */ + void SetItemVisibilityL(); + + /** + * Loads all setting values. + */ + void LoadAllL(); + + /** + * Loads a specific setting value. + * @param aSettingId ID of the setting to be loaded. + */ + void LoadSettingL(TInt aSettingId); + + /** + * Stores a specific setting value. + * @param aSettingId ID of the setting to be stored. + */ + void StoreSettingL(TInt aSettingId); + + /** + * Launches the platform dialog for the connection selection. + */ + void LaunchConnectionSelectionL(); + + /** + * Updates currently selected connection's name to setting item. + */ + void UpdateSelectedConnectionNameL(); + + /** + * Sets proxy mode to disabled. + */ + void CheckProxyDisableL(); + + private: // From MEikListBoxObserver + + /** + * Event handling section + */ + void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aListBoxEvent ); + + private: + + /** + * ROP model. Not own. + */ + CMPSettingsModelForROP* iModel; + + /** + * Proxy mode (on/off). + */ + TBool iProxyMode; + + /** + * Proxy host. Own. + */ + HBufC* iProxyHost; + + /** + * Pointer to Proxy host. + */ + TPtr iProxyHostPtr; + + /** + * Proxy port number. + */ + TInt iProxyPort; + + /** + * Connection timeout setting value. + */ + TInt iConnTimeout; + + /** + * Server timeout setting value. + */ + TInt iSrvTimeout; + + /** + * Access point id. + */ + TUint32 iDefaultAP; + + /** + * Minimum UDP port number. + */ + TInt iMinUDPPort; + + /** + * Maximum UDP port number. + */ + TInt iMaxUDPPort; + + /** + * Name of selected access point. Own. + */ + TBuf iSelectedApName; + + /** + * Connection setting item. Not own. + */ + CAknTextSettingItem* iSettingConnectionItem; + + /** + * Proxy mode item. Not own. + */ + CAknBinaryPopupSettingItem* iSettingProxyItem; + + }; + +#endif // MPSETTINGSSTREAMINGSETTINGITEMLIST_H + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsStreamingView.h --- a/mediasettings/mediasettingsapp/inc/MPSettingsStreamingView.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsStreamingView.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 2 % +// Version : %version: 3 % @@ -32,10 +32,8 @@ /** * CMPSettingsStreamingView view class. * -* @lib MediaSettings.app -* @since 2.0 */ -class CMPSettingsStreamingView : public CMPSettingsBaseView, public MEikListBoxObserver +class CMPSettingsStreamingView : public CMPSettingsBaseView { public: // Constructors and destructor @@ -63,14 +61,7 @@ protected: // from MEikListBoxObserver - /** - * Handles listbox events. - * @param aListBox Listbox where the event occurred. - * @param aEventType Event type. - */ - void HandleListBoxEventL(CEikListBox* aListBox, - TListBoxEvent aEventType); - + protected: // From CMPSettingsBaseView /** @@ -99,7 +90,6 @@ /** * Handles listbox selection. */ - virtual void HandleListBoxSelectionL(); CMPSettingsModelForROP* iModel; }; diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h --- a/mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/inc/MPSettingsVideoSettingItemList.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 6 % +// Version : %version: 7 % @@ -25,23 +25,8 @@ // INCLUDES #include -#include "videosettingsdrivemonitor.h" -#include "mvideosettingsdrivemonitorobserver.h" // CONSTANTS -// VideoCenter SIS package UID -const TUid KSisUid = { 0x200159B2 }; - -// formatting string for version number -_LIT( KVersionNumberFormat, "%d.%d(%d)" ); - -// Max length of the above version number string, whose format is -// major.minor(build). Header e32cmn.h states that their ranges are: -// 1. the major version number, ranging from 0 to 127, inclusive -// 2. the minor version number, ranging from 0 to 99 inclusive -// 3. the build number, ranging from 0 to 32767 inclusive. -// Which makes the total max length 3+1+2+1+5+1 = 13 -const TInt KMaxVersionNumberLength( 13 ); // When video contrast is not drawn, we know to shift the contents @@ -50,7 +35,6 @@ // FORWARD DECLARATIONS class CMPSettingsModelForROP; class CVcxNsSettingsEngine; -class TIptvDriveMonitorEvent; // CLASS DECLARATION @@ -61,8 +45,7 @@ * @lib MediaSettings.app * @since 2.0 */ -class CMPSettingsVideoSettingItemList : public CAknSettingItemList, - public MIptvDriveMonitorObserver +class CMPSettingsVideoSettingItemList : public CAknSettingItemList { public: // Constructors and destructor @@ -91,31 +74,7 @@ virtual ~CMPSettingsVideoSettingItemList(); public: - - /** - * Edits thumbnail setting item. - * - * @param itemIndex Setting list index. - * @param aCalledFromMenu ETrue if started from menu. - */ - void EditThumbnailItemL( TInt itemIndex, TBool aCalledFromMenu ); - - /** - * Edits parent control settting item. - * - * @param itemIndex Setting list index. - * @param aCalledFromMenu ETrue if started from menu. - */ - void EditParentControlItemL( TInt itemIndex, TBool aCalledFromMenu ); - - /** - * Edits preferred memory settting item. - * - * @param itemIndex Setting list index. - * @param aCalledFromMenu ETrue if started from menu. - */ - void EditPreferredMemoryItemL( TInt itemIndex, TBool aCalledFromMenu ); - + /** * Check if specified item is currently selected. * @@ -123,6 +82,11 @@ */ TBool IsCurrentItem( TInt aIndex ); + /** + * Check wheter or not the Contrast settings item shold be drawn + */ + TBool VideoContrastIsSupportedL(); + public: // Functions from base classes /** @@ -142,16 +106,6 @@ */ void LoadSettingsL(); - /** - * Finishes construction of listbox. Should be called after the - * listbox is otherwise fully constructed. - */ - void FinishConstructionL(); - - public: // From MIptvDriveMonitorObserver - - void HandleDriveMonitorEvent( TIptvDriveMonitorEvent& aEvent ); - protected: // Functions from base classes /** @@ -182,96 +136,6 @@ void LoadAllL(); /** - * Updates version number item to settings list. - */ - void UpdateVersionNumberTextL(); - - /** - * Updates text of "parent control" setting item. - */ - void UpdateParentControlTextL(); - - /** - * Fetch current parent control age and return corresponding index. - * - * @return Parent control age. - */ - TInt GetCurrentParentControl(); - - /** - * Convert and save parent control index as age. - * - * @param aParentControlIndex Index of parent control selection. - */ - void SetCurrentParentControl( TInt aParentControlIndex ); - - /** - * Updates text of "memory" setting item. - */ - void UpdateMemoryItemTextL(); - - /** - * Adds phone memory descriptor to arrays. - * - * @param aIndex index in enumeration list. - * @param aEnumeratedTextArray - * @param aPoppedUpTextArray - */ - void AddPhoneMemoryDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ); - - /** - * Adds memory card descriptor to arrays. - * - * @param aIndex index in enumeration list. - * @param aEnumeratedTextArray - * @param aPoppedUpTextArray - */ - void AddMemoryCardDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ); - /** - * Adds locked memory card descriptor to arrays. - * - * @param aIndex index in enumeration list. - * @param aEnumeratedTextArray - * @param aPoppedUpTextArray - */ - void AddLockedMemoryCardDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ); - - /** - * Adds hard disk descriptor to arrays. - * - * @param aIndex index in enumeration list. - * @param aEnumeratedTextArray - * @param aPoppedUpTextArray - */ - void AddHardDiskDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ); - - /** - * Adds descriptor to arrays. - * - * @param aIndex index in enumeration list. - * @param aText Descriptor to add. Ownership moves. - * @param aEnumeratedTextArray - * @param aPoppedUpTextArray - */ - void AddDesToArraysL( TInt aIndex, - HBufC* aText, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ); - - /** - * Check wheter or not the Contrast settings item shold be drawn - */ - TBool VideoContrastIsSupportedL(); - - /** * Event handling section, from MEikListBoxObserver. */ void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent); @@ -280,26 +144,6 @@ CMPSettingsModelForROP* iModel; CVcxNsSettingsEngine& iVideoSettingsEngine; // Video settings engine - CVideoSettingsDriveMonitor* iDriveMonitor; // Drive monitor - - TBuf< KMaxVersionNumberLength > iSettingVersionText; // version text - CAknTextSettingItem* iSettingIadUpdateItem; // IAD update setting item - - CAknEnumeratedTextPopupSettingItem* iSettingThumbnailsItem; // Thumbnail setting item - TInt iSettingThumbnails; // Selected thumbnail setting value - - CAknEnumeratedTextPopupSettingItem* iSettingParentControlItem; // Parent control setting item - TInt iParentControlIndex; // Selected parent control setting value - /** - * Is the phone's lock code entered succesfully, - * required for editing parent control settings. - */ - TBool iLockCodeAccepted; - - CAknEnumeratedTextPopupSettingItem* iSettingMemoryItem; // Memory setting item - TInt iSettingMemory; // Selected memory setting value - - CAknEnumeratedTextPopupSettingItem* iSettingServiceItem; // Service selection item TInt iSettingTemp; // Dummy setting placeholder for settings sublist items TInt iVideoContrast; diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwContainer.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwContainer.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwContainer.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 7 % +// Version : %version: 8 % @@ -94,7 +94,7 @@ // TInt CMPSettingsAdvancedBwContainer::TitleResourceId() { - return R_MPSETT_NETWORK_VIEW_TITLE; + return R_MPSETT_STREAMING_VIEW_TITLE; } // --------------------------------------------------------- diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwSettingItem.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwSettingItem.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwSettingItem.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 6 % +// Version : %version: 7 % @@ -49,8 +49,7 @@ CAknEnumeratedTextPopupSettingItem(aIdentifier, aListValue), iValueArray(aValueArray), iValue(aValue), - iQueryRes(aQueryRes), - iEnv(CEikonEnv::Static()) + iQueryRes(aQueryRes) { MPX_FUNC("#MS# CMPSettingsAdvancedBwSettingItem::CMPSettingsAdvancedBwSettingItem()"); } diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwView.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwView.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsAdvancedBwView.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 6 % +// Version : %version: 8 % @@ -41,8 +41,11 @@ // might leave. // ----------------------------------------------------------------------------- // -CMPSettingsAdvancedBwView::CMPSettingsAdvancedBwView(CMPSettingsModelForROP* aModel, TBool iConstructAsGsPlugin) - : iModel( aModel), iGsPlugin(iConstructAsGsPlugin) +CMPSettingsAdvancedBwView::CMPSettingsAdvancedBwView( + CMPSettingsModelForROP* aModel, + TBool iConstructAsGsPlugin ) + : iModel( aModel), + iGsPlugin(iConstructAsGsPlugin) { MPX_FUNC("#MS# CMPSettingsAdvancedBwView::CMPSettingsAdvancedBwView()"); } @@ -63,7 +66,9 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -CMPSettingsAdvancedBwView* CMPSettingsAdvancedBwView::NewLC(CMPSettingsModelForROP* aModel, TBool iConstructAsGsPlugin) +CMPSettingsAdvancedBwView* CMPSettingsAdvancedBwView::NewLC( + CMPSettingsModelForROP* aModel, + TBool iConstructAsGsPlugin ) { MPX_DEBUG2(_L("#MS# CMPSettingsAdvancedBwView::NewLC(%d)"),iConstructAsGsPlugin); CMPSettingsAdvancedBwView* self = new(ELeave) CMPSettingsAdvancedBwView(aModel,iConstructAsGsPlugin); @@ -107,13 +112,13 @@ static_cast(iContainer)->EditCurrentItemFromMenuL(); break; case EAknSoftkeyBack: - AppUi()->ActivateLocalViewL(KMPSettNetworkViewId); + AppUi()->ActivateLocalViewL( KMPSettStreamingViewId ); break; case EMPSettCmdHelp: if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { + { HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() ); - } + } break; default: AppUi()->HandleCommandL(aCommand); @@ -139,10 +144,10 @@ void CMPSettingsAdvancedBwView::SetNaviPaneL() { MPX_FUNC("#MS# CMPSettingsAdvancedBwView::SetNaviPaneL()"); - if (!iGsPlugin) + if (!iGsPlugin) { - iNaviPaneContext = NULL; - CMPSettingsBaseView::SetNaviPaneL(); + iNaviPaneContext = NULL; + CMPSettingsBaseView::SetNaviPaneL(); } CMPSettingsBaseView::SetMiddleSoftKeyLabelL(R_MEDIASETTING_MSK_CHANGE,EMPSettCmdChange); } diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsAppUi.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 9 % +// Version : %version: 11 % @@ -35,8 +35,6 @@ #include "MPSettingsMainView.h" #include "MPSettingsVideoView.h" #include "MPSettingsStreamingView.h" -#include "MPSettingsProxyView.h" -#include "MPSettingsNetworkView.h" #include "MPSettingsConstants.h" #include "MPSettingsPluginView.h" #include "MPSettingsAdvancedBwView.h" @@ -44,10 +42,13 @@ #include "mpsettingsmodel.h" #include "MPSettingsModelForROP.h" #include "mpxlog.h" -#include "feedsettingsview.h" + +#include +#include "MediaPlayerPrivateCRKeys.h" +#include "MediaPlayerVariant.hrh" // CONSTANTS -const TInt KMPSettViewIdArrayGranularity = 3; +const TInt KMPSettViewIdArrayGranularity = 2; // ================= MEMBER FUNCTIONS ======================= // @@ -58,7 +59,7 @@ // might leave. // ----------------------------------------------------------------------------- // -CMPSettingsAppUi::CMPSettingsAppUi() : iConstructAsGsPlugin(EFalse) +CMPSettingsAppUi::CMPSettingsAppUi() { MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::CMPSettingsAppUi()")); } @@ -77,8 +78,9 @@ // Sets up TLS, must be done before FeatureManager is used. FeatureManager::InitializeLibL(); - CMPSettingsDocument* doc = static_cast(static_cast - (CEikonEnv::Static()->AppUi())->Document()); + iVideoViewAvailable = VideoContrastIsSupportedL(); + + CMPSettingsDocument* doc = static_cast( Document() ); iModel = doc->SettingsModel(); iRopModel = static_cast(iModel); @@ -90,52 +92,46 @@ // Construct navipane tabs iDecoratedTabGroup = iNaviPane->CreateTabGroupL(this); - // Construct tabs - AddTabSettingsGroupL(); + // Construct tabs if we have multiple views + if ( iVideoViewAvailable ) + { + AddTabSettingsGroupL(); + } // Create vector which contains view id's for all setting folders. iViewIds = new(ELeave) CArrayFixFlat(KMPSettViewIdArrayGranularity); - iViewIds->AppendL(KMPSettVideoViewId); - iViewIds->AppendL(KMPSettStreamingViewId); - iViewIds->AppendL(KMPSettFeedsViewId); - - // * Create application views * + if ( iVideoViewAvailable ) + { + iViewIds->AppendL( KMPSettVideoViewId ); + } + iViewIds->AppendL( KMPSettStreamingViewId ); + // Create application views CAknView* view; - - view = CMPSettingsMainView::NewLC(iViewIds,iRopModel,iConstructAsGsPlugin); + view = CMPSettingsMainView::NewLC( iViewIds, iRopModel, EFalse ); AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view + CleanupStack::Pop(); // view // iMainView is not owned, i.e. it is not deleted in the destructor -> // main view cannot be directly creted to iMainView, as it's against the coding // conventions to place class' pointers to cleanup stack => static_cast. iMainView = static_cast(view); - view = CMPSettingsVideoView::NewLC(iRopModel); - AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - - view = CMPSettingsStreamingView::NewLC(iRopModel); - AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - - view = CVcxNsSettingsView::NewLC(); - AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view + if ( iVideoViewAvailable ) + { + view = CMPSettingsVideoView::NewLC(iRopModel); + AddViewL(view); // transfer ownership to CAknViewAppUi + CleanupStack::Pop(); // view + } - view = CMPSettingsProxyView::NewLC(iRopModel,iConstructAsGsPlugin); - AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - - view = CMPSettingsNetworkView::NewLC(iRopModel,iConstructAsGsPlugin); + CMPSettingsStreamingView* streamingView = CMPSettingsStreamingView::NewLC(iRopModel); + view = streamingView; AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view + CleanupStack::Pop(); // view - view = CMPSettingsAdvancedBwView::NewLC(iRopModel,iConstructAsGsPlugin); + view = CMPSettingsAdvancedBwView::NewLC( iRopModel, EFalse ); AddViewL(view); // transfer ownership to CAknViewAppUi - CleanupStack::Pop(); // view - + CleanupStack::Pop(); // view // Construct plug-in views (if any exists) CMPSettingsPluginView::ListImplementationsL(iImplInfoArray); @@ -164,7 +160,14 @@ User::LeaveIfError(iViewIds->Sort(sortKey)); } - SetDefaultViewL(*iMainView); + if ( iVideoViewAvailable && iMainView ) + { + SetDefaultViewL(*iMainView); + } + else if ( streamingView ) + { + SetDefaultViewL(*streamingView); + } } // ---------------------------------------------------- @@ -176,20 +179,15 @@ CMPSettingsAppUi::~CMPSettingsAppUi() { MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::~CMPSettingsAppUi()")); - if (iDecoratedTabGroup) - { - delete iDecoratedTabGroup; - } + + delete iDecoratedTabGroup; if (iDoorObserver) { iDoorObserver->NotifyExit(MApaEmbeddedDocObserver::EEmpty); } - if (iViewIds) - { - delete iViewIds; - } + delete iViewIds; iImplInfoArray.ResetAndDestroy(); FeatureManager::UnInitializeLib(); @@ -233,7 +231,6 @@ } } - // ---------------------------------------------------- // CMPSettingsAppUi::TabChangedL // MAknTabObserver callback for handling tab changed event. @@ -274,7 +271,10 @@ void CMPSettingsAppUi::UpdateTabIndex() { MPX_DEBUG1(_L("#MS# CMPSettingsAppUi::UpdateTabIndex()")); - iTabGroup->SetActiveTabByIndex(iMainView->ActiveFolder()); + if ( iTabGroup ) + { + iTabGroup->SetActiveTabByIndex( iMainView->ActiveFolder() ); + } } // ------------------------------------------------------------------------------ @@ -309,7 +309,6 @@ return iTabGroup->OfferKeyEventL(aKeyEvent, aType); } - // ---------------------------------------------------- // CMPSettingsAppUi::AddTabSettingsGroupL() // (Re)create tab group with skin support @@ -331,7 +330,7 @@ iTabGroup = static_cast (iDecoratedTabGroup->DecoratedControl()); - iTabGroup->SetTabFixedWidthL(KTabWidthWithThreeTabs); + iTabGroup->SetTabFixedWidthL(KTabWidthWithTwoTabs); HBufC* mbmpath = StringLoader::LoadLC(R_MPSETT_ICON_MBM_FILE); @@ -361,12 +360,6 @@ EMbmMediasettingsQgn_prop_set_mp_stream_tab2, EMbmMediasettingsQgn_prop_set_mp_stream_tab2_mask, EMPViewStreamTab); - - AddTabSettingsL(KAknsIIDQgnPropSetMpStreamTab3, - fileName, - EMbmMediasettingsQgn_prop_set_mp_video_tab3, - EMbmMediasettingsQgn_prop_set_mp_video_tab3_mask, - EMPViewFeedsTab); CleanupStack::PopAndDestroy(); // mbmpath @@ -411,4 +404,36 @@ CleanupStack::Pop(2); // bitmap, mask } +// ---------------------------------------------------- +// CMPSettingsAppUi::ActivateLocalViewL +// ---------------------------------------------------- +// +void CMPSettingsAppUi::ActivateLocalViewL( TUid aViewId ) + { + if ( !iVideoViewAvailable && + aViewId == KMPSettMainViewId ) + { + HandleCommandL( EEikCmdExit ); + } + else + { + CAknViewAppUi::ActivateLocalViewL( aViewId ); + } + } + +// ---------------------------------------------------- +// CMPSettingsAppUi::VideoContrastIsSupportedL +// ---------------------------------------------------- +// +TBool CMPSettingsAppUi::VideoContrastIsSupportedL() + { + TInt flags = 0; + + CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures ); + repository->Get( KMPLocalVariation, flags ); + delete repository; + + return ( flags & KMediaPlayerVideoContrast ); + } + // End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsMainContainer.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsMainContainer.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsMainContainer.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 9 % +// Version : %version: 10 % @@ -43,7 +43,7 @@ #include "mpxlog.h" // CONSTANTS -const TInt KIconArrayGranularity = 3; +const TInt KIconArrayGranularity = 2; // ============================ MEMBER FUNCTIONS =============================== @@ -226,13 +226,7 @@ EMbmMediasettingsQgn_prop_set_mp_stream_sub, EMbmMediasettingsQgn_prop_set_mp_stream_sub_mask ); - AppendIconToArrayL( - icons, - KAknsIIDQgnPropSetMpVideoSub, - fileName, - EMbmMediasettingsQgn_prop_set_service, - EMbmMediasettingsQgn_prop_set_service_mask ); - + CleanupStack::Pop(); // icons CleanupStack::PopAndDestroy(); // mbmpath diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 7 % +// Version : %version: 8 % @@ -107,14 +107,14 @@ HandleListBoxSelectionL(); break; case EAknSoftkeyBack: - if (iGsPlugin) - { + if ( iGsPlugin ) + { AppUi()->ActivateLocalViewL( KGSVideoPluginUid ); - } + } else - { + { AppUi()->HandleCommandL(EEikCmdExit); - } + } break; default: AppUi()->HandleCommandL(aCommand); @@ -210,7 +210,10 @@ view->SetCurrentItem(KMPSettTopItemIndex); } - AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem)); + if ( iCurrentItem < count ) + { + AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem)); + } } diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsStreamingContainer.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsStreamingContainer.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsStreamingContainer.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 7 % +// Version : %version: 8 % @@ -27,6 +27,7 @@ #include "MPSettingsApp.h" #include "MPSettingsStreamingContainer.h" +#include "MPSettingsStreamingSettingItemList.h" #include "MPSettingsConstants.h" #include "mpxlog.h" @@ -52,10 +53,8 @@ CMPSettingsStreamingContainer::~CMPSettingsStreamingContainer() { MPX_DEBUG1(_L("#MS# CMPSettingsStreamingContainer::~CMPSettingsStreamingContainer()")); - if (iListBox) - { - delete iListBox; - } + + delete iSettingList; } // --------------------------------------------------------- @@ -65,19 +64,13 @@ void CMPSettingsStreamingContainer::ConstructComponentControlsL() { MPX_FUNC("#MS# CMPSettingsStreamingContainer::ConstructComponentControlsL()"); - iListBox = new(ELeave) CAknSettingStyleListBox; - - iListBox->SetContainerWindowL(*this); // set's iListBox to be contained in this container + + iSettingList = new(ELeave) CMPSettingsStreamingSettingItemList( iModel ); + iSettingList->SetContainerWindowL( *this ); + iSettingList->ConstructFromResourceL( R_MPSETT_STREAMING_SETTING_ITEM_LIST ); - TResourceReader rReader; - iCoeEnv->Static()->CreateResourceReaderLC(rReader, R_MPSETT_STREAMING_LBX_RESOURCE); - iListBox->ConstructFromResourceL(rReader); // construct's iListBox from resource file - CleanupStack::PopAndDestroy(); // rReader - - iListBox->CreateScrollBarFrameL(ETrue); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); - - iComponentControl = iListBox; + iComponentControl = iSettingList; + iListBox = iSettingList->ListBox(); } // --------------------------------------------------------- @@ -105,7 +98,7 @@ // --------------------------------------------------------- // void CMPSettingsStreamingContainer::FocusChanged(TDrawNow /*aDrawNow*/) -{ + { if( iListBox) { iListBox->SetFocus( IsFocused() ); @@ -115,5 +108,16 @@ { iComponentControl->SetFocus( IsFocused() ); } -} + } + +// --------------------------------------------------------- +// CMPSettingsStreamingContainer::EditCurrentItemFromMenuL +// --------------------------------------------------------- +// +void CMPSettingsStreamingContainer::EditCurrentItemFromMenuL(TBool iMenuOption) + { + MPX_DEBUG2(_L("#MS# CMPSettingsProxyContainer::EditCurrentItemFromMenuL(%d)"),iMenuOption); + TInt index = iListBox->CurrentItemIndex(); + iSettingList->EditItemL(index, iMenuOption); + } // End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsStreamingSettingItemList.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/mediasettingsapp/src/MPSettingsStreamingSettingItemList.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,457 @@ +/* +* Copyright (c) 2002 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: +* +*/ + + +// Version : %version: 3 % + + + + +// INCLUDE FILES +#include +#include +#include + +#include +#include +#include + +#include "mediasettings.hrh" +#include "MPSettingsStreamingSettingItemList.h" +#include "MPSettingsUDPPortSettingItem.h" +#include "MPSettingsModelForROP.h" +#include "mpxlog.h" + +// CONSTANTS +const TInt KMPSettProxyHostListItemId = 4; +const TInt KMPSettProxyPortListItemId = 5; +const TInt KMPSettProxyHostMaxLength = 1000; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::CMPSettingsStreamingSettingItemList +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CMPSettingsStreamingSettingItemList::CMPSettingsStreamingSettingItemList( + CMPSettingsModelForROP* aModel ) + : iModel( aModel), + iProxyHostPtr(NULL, 0) + { + MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::CMPSettingsStreamingSettingItemList()")); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::ConstructFromResourceL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::ConstructFromResourceL(TInt aResourceId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::ConstructFromResourceL(0x%X)"),aResourceId); + TResourceReader reader; + iCoeEnv->CreateResourceReaderLC(reader, aResourceId); + ConstructFromResourceL(reader); + CleanupStack::PopAndDestroy(); // reader + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::ConstructFromResourceL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::ConstructFromResourceL(TResourceReader& aReader) + { + MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::ConstructFromResourceL()")); + LoadAllL(); + CAknSettingItemList::ConstructFromResourceL(aReader); + SetItemVisibilityL(); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::~CMPSettingsStreamingSettingItemList +// Destructor +// ----------------------------------------------------------------------------- +// +CMPSettingsStreamingSettingItemList::~CMPSettingsStreamingSettingItemList() + { + MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::~CMPSettingsStreamingSettingItemList()")); + + delete iProxyHost; + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::EditItemL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::EditItemL(TInt aIndex, TBool aCalledFromMenu) + { + MPX_DEBUG3(_L("#MS# CMPSettingsStreamingSettingItemList::EditItemL(%d,%d)"),aIndex,aCalledFromMenu); + CAknSettingItem* settingItem = SettingItemArray()->At(aIndex); + TInt identifier = settingItem->Identifier(); + + if ( identifier == EMPSettDefaultAPSettingId ) + { + LaunchConnectionSelectionL(); + } + else + { + // Call base call's method + CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu); + } + + // Store setting value to settings model + settingItem->StoreL(); + StoreSettingL(identifier); + + // Hide/unhide Proxy port & Proxy host settings according to Proxy mode. + if (identifier == EMPSettProxyModeSettingId || + identifier == EMPSettDefaultAPSettingId ) + { + SetItemVisibilityL(); + } + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::CreateSettingItemL +// ----------------------------------------------------------------------------- +// +CAknSettingItem* CMPSettingsStreamingSettingItemList::CreateSettingItemL(TInt aSettingId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::CreateSettingItemL(%d)"),aSettingId); + __ASSERT_DEBUG(iProxyHost, User::Leave(KErrAbort)); + + CAknSettingItem* settingItem = NULL; + + switch ( aSettingId ) + { + case EMPSettProxyModeSettingId: + iSettingProxyItem = new(ELeave) CAknBinaryPopupSettingItem( aSettingId, + iProxyMode ); + settingItem = iSettingProxyItem; + break; + + case EMPSettProxyHostSettingId: + { + settingItem = new(ELeave) CAknTextSettingItem(aSettingId, iProxyHostPtr); + settingItem->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed); + break; + } + + case EMPSettProxyPortSettingId: + settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aSettingId, iProxyPort); + break; + + case EMPSettDefaultAPSettingId: + iSettingConnectionItem = new (ELeave) CAknTextSettingItem( aSettingId, + iSelectedApName ); + settingItem = iSettingConnectionItem; + break; + + case EMPSettMinUDPPortSettingId: + settingItem = new(ELeave) CMPSettingsUDPPortSettingItem( aSettingId, + iMinUDPPort, + iMaxUDPPort); + break; + + case EMPSettMaxUDPPortSettingId: + settingItem = new(ELeave) CMPSettingsUDPPortSettingItem( aSettingId, + iMaxUDPPort, + iMinUDPPort); + break; + + default: + break; + } + + return settingItem; + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::SetItemVisibilityL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::SetItemVisibilityL() + { + MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::SetItemVisibilityL() iProxyMode(%d)"),iProxyMode); + SettingItemArray()->At(KMPSettProxyHostListItemId)->SetHidden( !iProxyMode ); + SettingItemArray()->At(KMPSettProxyPortListItemId)->SetHidden( !iProxyMode ); + + HandleChangeInItemArrayOrVisibilityL(); + + if ( ListBox() ) + { + // Scrollbar update is required for the case when items are set hidden + // while list is scrolled down. + ListBox()->UpdateScrollBarsL(); + } + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::LoadAllL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::LoadAllL() + { + MPX_DEBUG1(_L("#MS# CMPSettingsStreamingSettingItemList::LoadAllL()")); + iModel->LoadSettingsL(EConfigUser); + LoadSettingL(EMPSettProxyModeSettingId); + LoadSettingL(EMPSettProxyHostSettingId); + LoadSettingL(EMPSettProxyPortSettingId); + LoadSettingL(EMPSettDefaultAPSettingId); + LoadSettingL(EMPSettMinUDPPortSettingId); + LoadSettingL(EMPSettMaxUDPPortSettingId); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::LoadSettingL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::LoadSettingL(TInt aSettingId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::LoadSettingL(%d)"),aSettingId); + switch ( aSettingId ) + { + case EMPSettDefaultAPSettingId: + { + iModel->GetDefaultAp( iDefaultAP ); + + if ( iDefaultAP != 0 ) + { + UpdateSelectedConnectionNameL(); + } + } + break; + + case EMPSettConnTimeoutSettingId: + iModel->GetConnectionTimeout(iConnTimeout); + break; + + case EMPSettServerTimeoutSettingId: + iModel->GetServerTimeout(iSrvTimeout); + break; + + case EMPSettMinUDPPortSettingId: + iModel->GetMinUDPPort(iMinUDPPort); + break; + + case EMPSettMaxUDPPortSettingId: + iModel->GetMaxUDPPort(iMaxUDPPort); + break; + + case EMPSettProxyModeSettingId: + iModel->GetProxyMode(iProxyMode); + break; + + case EMPSettProxyHostSettingId: + { + if (!iProxyHost) + { + iProxyHost = HBufC::NewL(KMPSettProxyHostMaxLength); + iProxyHostPtr.Set(iProxyHost->Des()); + } + + iModel->GetProxyHostName(iProxyHostPtr); + break; + } + case EMPSettProxyPortSettingId: + iModel->GetProxyPort(iProxyPort); + break; + + default: + break; + } + } + +// ----------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::StoreSettingL +// ----------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::StoreSettingL(TInt aSettingId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsStreamingSettingItemList::StoreSettingL(%d)"),aSettingId); + switch (aSettingId) + { + case EMPSettDefaultAPSettingId: + iModel->SetDefaultAp(iDefaultAP); + break; + case EMPSettConnTimeoutSettingId: + iModel->SetConnectionTimeout(iConnTimeout); + break; + case EMPSettServerTimeoutSettingId: + iModel->SetServerTimeout(iSrvTimeout); + break; + case EMPSettMinUDPPortSettingId: + iModel->SetMinUDPPort(iMinUDPPort); + break; + case EMPSettMaxUDPPortSettingId: + iModel->SetMaxUDPPort(iMaxUDPPort); + break; + case EMPSettProxyModeSettingId: + iModel->SetProxyMode(iProxyMode); + break; + case EMPSettProxyHostSettingId: + iModel->SetProxyHostNameL(*iProxyHost); + break; + case EMPSettProxyPortSettingId: + iModel->SetProxyPort(iProxyPort); + break; + default: + break; + } + + iModel->StoreSettingsL(); + } + +// -------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::LaunchConnectionSelectionL() +// -------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::LaunchConnectionSelectionL() + { + MPX_FUNC("#MS# CMPSettingsStreamingSettingItemList::LaunchConnectionSelectionL()"); + + CCmApplicationSettingsUi* settingsUi = CCmApplicationSettingsUi::NewL(); + CleanupStack::PushL ( settingsUi ); + + TCmSettingSelection selection; + selection.iId = iDefaultAP; + selection.iResult = CMManager::EConnectionMethod; + + TUint listItems = CMManager::EShowConnectionMethods; + TBearerFilterArray filters; + + TBool retVal = settingsUi->RunApplicationSettingsL( selection, listItems, filters ); + if ( retVal ) + { + TBool iapChanged = EFalse; + + switch ( selection.iResult ) + { + case CMManager::EDestination: + break; + + case CMManager::EAlwaysAsk: + { + iDefaultAP = 0; // Set AP to "None" + } + break; + + case CMManager::EConnectionMethod: + { + if ( selection.iId != iDefaultAP) + { + iDefaultAP = selection.iId; + iapChanged = ETrue; + } + } + break; + + default: + break; + } + + if ( iapChanged ) + { + UpdateSelectedConnectionNameL( ); + + if ( iSettingConnectionItem ) + { + iSettingConnectionItem->LoadL ( ); + iSettingConnectionItem->UpdateListBoxTextL ( ); + } + + CheckProxyDisableL(); + + DrawDeferred(); + } + } + CleanupStack::PopAndDestroy ( settingsUi ); + } + +// -------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::CheckProxyDisableL() +// -------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::CheckProxyDisableL() + { + if ( iProxyMode && iSettingProxyItem ) + { + iSettingProxyItem->EditItemL( EFalse ); + + iSettingProxyItem->StoreL(); + StoreSettingL( EMPSettProxyModeSettingId ); + + iSettingProxyItem->LoadL(); + iSettingProxyItem->UpdateListBoxTextL(); + } + } + +// -------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::UpdateSelectedConnectionNameL +// -------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::UpdateSelectedConnectionNameL() + { + MPX_FUNC("#MS# CMPSettingsStreamingSettingItemList::UpdateSelectedConnectionNameL()"); + + RCmManagerExt cmManager; + RCmConnectionMethodExt connMethod; + + CleanupClosePushL( cmManager ); + CleanupClosePushL( connMethod ); + + cmManager.OpenL(); + + // This leaves if conn method is not found. + TRAPD( leave, connMethod = cmManager.ConnectionMethodL( iDefaultAP ) ); + if ( KErrNone == leave ) + { + HBufC* tmpBuf = + cmManager.GetConnectionMethodInfoStringL( iDefaultAP, CMManager::ECmName); + + if( tmpBuf ) + { + if ( tmpBuf->Length() < KMaxApNameLength ) + { + iSelectedApName = *tmpBuf; + } + delete tmpBuf; + } + } + + CleanupStack::PopAndDestroy( &connMethod ); + CleanupStack::PopAndDestroy( &cmManager ); + } + +// -------------------------------------------------------------------------- +// CMPSettingsStreamingSettingItemList::HandleListBoxEventL() +// -------------------------------------------------------------------------- +// +void CMPSettingsStreamingSettingItemList::HandleListBoxEventL( + CEikListBox* aListBox, + TListBoxEvent aListBoxEvent ) + { + if ( ( aListBoxEvent == EEventEnterKeyPressed ) || + ( aListBoxEvent == EEventItemSingleClicked ) || + ( aListBoxEvent == EEventItemDoubleClicked ) ) + { + CAknSettingItemList::HandleListBoxEventL( aListBox, aListBoxEvent ); + } + } + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsStreamingView.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsStreamingView.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsStreamingView.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 7 % +// Version : %version: 8 % @@ -26,6 +26,7 @@ #include #include // For HlpLauncher #include "mediasettings.hrh" +#include "MPSettingsAppUi.h" #include "MPSettingsNaviPaneController.h" #include "MPSettingsStreamingView.h" #include "MPSettingsStreamingContainer.h" @@ -34,10 +35,6 @@ class CMPSettingsModelForROP; -// CONSTANTS - -const TInt KMPSettProxyViewListItemId = 0; -const TInt KMPSettNetworkViewListItemId = 1; // ================= MEMBER FUNCTIONS ======================= @@ -47,10 +44,11 @@ // might leave. // ----------------------------------------------------------------------------- // -CMPSettingsStreamingView::CMPSettingsStreamingView(CMPSettingsModelForROP* aModel) : iModel( aModel) +CMPSettingsStreamingView::CMPSettingsStreamingView(CMPSettingsModelForROP* aModel) + : iModel( aModel) { - MPX_FUNC("#MS# CMPSettingsStreamingView::CMPSettingsStreamingView()"); - iNaviPaneContext = iNaviCntrl->MPTabGroup(); + MPX_FUNC("#MS# CMPSettingsStreamingView::CMPSettingsStreamingView()"); + iNaviPaneContext = iNaviCntrl->MPTabGroup(); } // --------------------------------------------------------- @@ -109,17 +107,29 @@ MPX_DEBUG2(_L("#MS# CMPSettingsStreamingView::HandleCommandL(%d)"),aCommand); switch (aCommand) { + case EMPSettCmdChange: + static_cast(iContainer)->EditCurrentItemFromMenuL(ETrue); + break; + case EMPMiddleSoftKeyChange: + static_cast(iContainer)->EditCurrentItemFromMenuL(EFalse); + break; + case EMPSettCmdAdvancedSett: + AppUi()->ActivateLocalViewL( KMPSettAdvancedBwViewId ); + break; case EMPSettCmdOpen: - HandleListBoxSelectionL(); break; case EAknSoftkeyBack: - AppUi()->ActivateLocalViewL(KMPSettMainViewId); + { + // If video view is empty, then exit Settings + CMPSettingsAppUi* appUi = static_cast(AppUi()); + appUi->ActivateLocalViewL( KMPSettMainViewId ); + } break; case EMPSettCmdHelp: if( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { + { HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), AppUi()->AppHelpContextL() ); - } + } break; default: AppUi()->HandleCommandL(aCommand); @@ -137,24 +147,6 @@ return new(ELeave) CMPSettingsStreamingContainer(iModel); } -// --------------------------------------------------------------------------- -// CMPSettingsStreamingView::HandleListBoxEventL -// --------------------------------------------------------------------------- - -void CMPSettingsStreamingView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType) - { - MPX_FUNC("#MS# CMPSettingsStreamingView::HandleListBoxEventL()"); - switch (aEventType) - { - case EEventEnterKeyPressed: - case EEventItemSingleClicked: - case EEventItemDoubleClicked: - HandleListBoxSelectionL(); - break; - default: - break; - } - } // --------------------------------------------------------------------------- // CMPSettingsStreamingView::DynInitContainerL @@ -165,7 +157,6 @@ MPX_FUNC("#MS# CMPSettingsStreamingView::DynInitContainerL()"); CEikTextListBox* listbox = iContainer->ListBox(); - listbox->SetListBoxObserver(this); listbox->SetTopItemIndex(iTopItemIndex); if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems()) // magic @@ -175,35 +166,6 @@ CMPSettingsBaseView::SetMiddleSoftKeyLabelL(R_MEDIASETTING_MSK_OPEN,EMPSettCmdOpen); } -// --------------------------------------------------------------------------- -// CMPSettingsStreamingView::HandleListBoxSelectionL() -// Handles listbox selection. -// --------------------------------------------------------------------------- -// -void CMPSettingsStreamingView::HandleListBoxSelectionL() - { - iCurrentItem = iContainer->ListBox()->CurrentItemIndex(); - iTopItemIndex = iContainer->ListBox()->TopItemIndex(); - MPX_DEBUG3(_L("#MS# CMPSettingsStreamingView::HandleListBoxSelectionL() iCurrentItem(%d) iTopItemIndex(%d)"),iCurrentItem,iTopItemIndex); - - switch (iCurrentItem) - { - case KMPSettProxyViewListItemId: - if (!FeatureManager::FeatureSupported(KFeatureIdProtocolCdma)) - { - // If KFeatureIdProtocolCdma is not supported then show the - // Proxy view. Otherwise, fall through to show Network view because - // only Network setting is available. - AppUi()->ActivateLocalViewL(KMPSettProxyViewId); - break; - } - case KMPSettNetworkViewListItemId: - AppUi()->ActivateLocalViewL(KMPSettNetworkViewId); - break; - default: - break; - } - } // End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsapp/src/MPSettingsVideoSettingItemList.cpp --- a/mediasettings/mediasettingsapp/src/MPSettingsVideoSettingItemList.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsapp/src/MPSettingsVideoSettingItemList.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 19 % +// Version : %version: 20 % @@ -24,10 +24,6 @@ #include #include #include -#include -#include -#include -#include #include #include #include @@ -44,14 +40,6 @@ #include "mpxlog.h" -const TInt KParentControlAdult( 18 ); -const TInt KParentControlMinAge( 4 ); -const TInt KParentControlIndexShift( 3 ); -const TInt KParentControlMaxIndex( 15 ); -const TInt KParentControlSelections( 16 ); -const TInt KParentControlOff( 0 ); - - // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -61,8 +49,11 @@ // ----------------------------------------------------------------------------- // CMPSettingsVideoSettingItemList::CMPSettingsVideoSettingItemList( - CMPSettingsModelForROP* aModel, CVcxNsSettingsEngine& aVideoSettingsEngine) : - iModel(aModel), iVideoSettingsEngine(aVideoSettingsEngine), iRockerKeysSupported(EFalse) + CMPSettingsModelForROP* aModel, + CVcxNsSettingsEngine& aVideoSettingsEngine) + : iModel( aModel ), + iVideoSettingsEngine(aVideoSettingsEngine), + iRockerKeysSupported( EFalse ) { CMPSettingsAppUi* AppUi = static_cast (CCoeEnv::Static()->AppUi()); @@ -85,7 +76,6 @@ CMPSettingsVideoSettingItemList::~CMPSettingsVideoSettingItemList() { MPX_DEBUG1(_L("#MS# CMPSettingsVideoSettingItemList::~CMPSettingsVideoSettingItemList()")); - delete iDriveMonitor; } // ----------------------------------------------------------------------------- @@ -110,31 +100,7 @@ CAknSettingItemList::EditItemL( itemIndex, aCalledFromMenu ); break; } - - case EVcSettingsViewParentControlItem: - { - EditParentControlItemL( itemIndex, aCalledFromMenu ); - break; - } - - case EVcSettingsViewMemoryItem: - { - EditPreferredMemoryItemL( itemIndex, aCalledFromMenu ); - break; - } - - case EVcSettingsViewThumbnails: - { - EditThumbnailItemL( itemIndex, aCalledFromMenu ); - break; - } - case EVcSettingsviewIadUpdateItem: - { - // Not editable - storeModifiedSetting = EFalse; - } - break; - + default: break; } @@ -160,140 +126,6 @@ } } -// ----------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::EditThumbnailItemL -// ----------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::EditThumbnailItemL( TInt itemIndex, TBool aCalledFromMenu ) - { - if ( aCalledFromMenu ) - { - CAknSettingItemList::EditItemL( itemIndex, aCalledFromMenu); - (*SettingItemArray())[itemIndex]->StoreL(); - } - else - { - if (iSettingThumbnails) - { - iSettingThumbnails = 0; - } - else - { - iSettingThumbnails = 1; - } - (*SettingItemArray())[itemIndex]->LoadL(); - (*SettingItemArray())[itemIndex]->UpdateListBoxTextL(); - } - - iVideoSettingsEngine.SetVideoOnDemandThumbnails( - iSettingThumbnails); - DrawDeferred(); - } - -// ----------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::EditParentControlItemL -// ----------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::EditParentControlItemL( - TInt itemIndex, - TBool aCalledFromMenu ) - { - if (!iLockCodeAccepted) - { - iLockCodeAccepted = iVideoSettingsEngine.CheckLockCodeL(); - } - if (iLockCodeAccepted) - { - // can edit setting - iParentControlIndex = GetCurrentParentControl(); - CAknSettingItemList::EditItemL( itemIndex, aCalledFromMenu ); - (*SettingItemArray())[itemIndex]->StoreL(); - } - - SetCurrentParentControl( iParentControlIndex ); - iParentControlIndex = GetCurrentParentControl(); - } - -// ----------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::EditPreferredMemoryItemL -// ----------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::EditPreferredMemoryItemL( - TInt itemIndex, - TBool -#ifndef RD_MULTIPLE_DRIVE_ENABLERS - aCalledFromMenu -#endif - ) - { - TInt drive; - iVideoSettingsEngine.GetUsedMemoryL(drive); - iSettingMemory = iDriveMonitor->ArrayPos(drive); - if (iSettingMemory == KErrNotFound) - { - iSettingMemory = 0; - } - -#ifndef RD_MULTIPLE_DRIVE_ENABLERS - const TInt KThree( 3 ); - if ( iDriveMonitor->iAvailableDrives.Count() < KThree && !aCalledFromMenu ) - { - if ( iSettingMemory == 1 ) - { - iSettingMemory = 0; - } - else - { - iSettingMemory = 1; - } - } - else - { - CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu ); - ( *SettingItemArray() )[aIndex]->StoreL(); - } -#else - - TBool driveSelected(EFalse); - - TDriveNumber selectedMem; - TInt includedMedias = 0; - - if (iDriveMonitor->PhoneMemoryDrive() != KErrNotFound) - { - includedMedias = AknCommonDialogsDynMem::EMemoryTypePhone; - } - - includedMedias |= AknCommonDialogsDynMem::EMemoryTypeMMCExternal - | AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; - - CAknMemorySelectionDialogMultiDrive* dlg = - CAknMemorySelectionDialogMultiDrive::NewL( - ECFDDialogTypeSelect, - R_MTV_MEMORY_SELECTION_DIALOG, EFalse, - includedMedias); - CleanupStack::PushL(dlg); - driveSelected = dlg->ExecuteL(selectedMem); - CleanupStack::PopAndDestroy(dlg); - - if (driveSelected) - { - iSettingMemory = iDriveMonitor->ArrayPos(selectedMem); - } - -#endif - - if ( iSettingMemory != KErrNotFound ) - { - (*SettingItemArray())[itemIndex]->LoadL(); - (*SettingItemArray())[itemIndex]->UpdateListBoxTextL(); - - iVideoSettingsEngine.SetUsedMemory( - iDriveMonitor->iAvailableDrives[iSettingMemory].iDrive ); - } - DrawDeferred(); - } - // -------------------------------------------------------------------------- // CMPSettingsVideoSettingItemList::HandleListBoxEventL() // -------------------------------------------------------------------------- @@ -356,8 +188,6 @@ LoadAllL(); CAknSettingItemList::LoadSettingsL(); - - FinishConstructionL(); } // ----------------------------------------------------------------------------- @@ -382,58 +212,6 @@ } break; } - case EVcSettingsViewParentControlItem: - { - iParentControlIndex = GetCurrentParentControl(); - - iSettingParentControlItem - = new (ELeave) CAknEnumeratedTextPopupSettingItem( - aSettingId, iParentControlIndex); - return iSettingParentControlItem; - } - - case EVcSettingsViewMemoryItem: - { - if (!iDriveMonitor) - { - iDriveMonitor = CVideoSettingsDriveMonitor::NewL(); - iDriveMonitor->RegisterObserverL(this); - } - - TInt drive; - iVideoSettingsEngine.GetUsedMemoryL(drive); - iSettingMemory = iDriveMonitor->ArrayPos(drive); - if (iSettingMemory == KErrNotFound) - { - iSettingMemory = 0; - } - - iSettingMemoryItem - = new (ELeave) CAknEnumeratedTextPopupSettingItem( - aSettingId, iSettingMemory); - - return iSettingMemoryItem; - } - - case EVcSettingsviewIadUpdateItem: - { - // Set text value to empty. The version number is displayed by - // changing the string of empty item in UpdateVersionNumberTextL(). - iSettingVersionText = KNullDesC(); - iSettingIadUpdateItem = new (ELeave) CAknTextSettingItem( - aSettingId, iSettingVersionText); - return iSettingIadUpdateItem; - } - - case EVcSettingsViewThumbnails: - { - iVideoSettingsEngine.GetVideoOnDemandThumbnails(iSettingThumbnails); - iSettingThumbnailsItem - = new (ELeave) CAknEnumeratedTextPopupSettingItem( - aSettingId, iSettingThumbnails); - return iSettingThumbnailsItem; - } - default: break; } @@ -491,403 +269,16 @@ } // -------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::FinishConstructionL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::FinishConstructionL() - { - UpdateMemoryItemTextL(); - UpdateVersionNumberTextL(); - UpdateParentControlTextL(); - } - -// -------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::UpdateVersionNumberTextL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::UpdateVersionNumberTextL() - { - Swi::RSisRegistrySession sisRegistrySession; - - if ( sisRegistrySession.Connect() == KErrNone ) - { - CleanupClosePushL( sisRegistrySession ); - - if ( sisRegistrySession.IsInstalledL( KSisUid ) ) - { - Swi::RSisRegistryEntry sisRegistryEntry; - TInt error = sisRegistryEntry.Open( sisRegistrySession, KSisUid ); - if ( error == KErrNone ) - { - CleanupClosePushL( sisRegistryEntry ); - TVersion vcVersion( sisRegistryEntry.VersionL() ); - CleanupStack::PopAndDestroy( &sisRegistryEntry ); - - HBufC* versionString = HBufC::NewLC( KMaxVersionNumberLength ); - TPtr versionPtr( versionString->Des() ); - versionPtr.Format( - KVersionNumberFormat, - vcVersion.iMajor, - vcVersion.iMinor, - vcVersion.iBuild ); - iSettingIadUpdateItem->SetEmptyItemTextL( *versionString ); - CleanupStack::PopAndDestroy( versionString ); - iSettingIadUpdateItem->UpdateListBoxTextL(); - } - } - CleanupStack::PopAndDestroy( &sisRegistrySession ); - } - } - -// -------------------------------------------------------------------------- -// Build dynamic listbox for parental control selection. -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::UpdateParentControlTextL() - { - // Set up the dynamic texts for this setting item. Choices are: - // - // 0: Parent control not in use. - // 1-15: Selected minimum age 4-18. - - CArrayPtrFlat* enumeratedTextArray = - new ( ELeave ) CArrayPtrFlat( - KParentControlSelections ); - CleanupStack::PushL( enumeratedTextArray ); - CArrayPtr* poppedUpTextArray = - new ( ELeave ) CArrayPtrFlat( KParentControlSelections ); - CleanupStack::PushL( poppedUpTextArray ); - - HBufC* parentControlStrOff1 = NULL; - HBufC* parentControlStrOff2 = NULL; - - parentControlStrOff1 = - StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_OFF ); - parentControlStrOff2 = - StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_OFF ); - - CAknEnumeratedText* enumeratedTextOff = - new ( ELeave ) CAknEnumeratedText( 0, parentControlStrOff1 ); - CleanupStack::PushL( enumeratedTextOff ); - enumeratedTextArray->AppendL( enumeratedTextOff ); - poppedUpTextArray->AppendL( parentControlStrOff2 ); - CleanupStack::Pop( enumeratedTextOff ); - CleanupStack::Pop( parentControlStrOff2 ); - CleanupStack::Pop( parentControlStrOff1 ); - - for ( TInt age = KParentControlMinAge; age <= KParentControlAdult; age++ ) - { - HBufC* parentControlStr1 = NULL; - HBufC* parentControlStr2 = NULL; - - parentControlStr1 = - StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_N_YEARS, age ); - parentControlStr2 = - StringLoader::LoadLC( R_IPTV_PARENTAL_CONTROL_N_YEARS, age ); - - CAknEnumeratedText* enumeratedText = - new ( ELeave ) CAknEnumeratedText( - age - KParentControlIndexShift, parentControlStr1 ); - CleanupStack::PushL( enumeratedText ); - enumeratedTextArray->AppendL( enumeratedText ); - poppedUpTextArray->AppendL( parentControlStr2 ); - CleanupStack::Pop( enumeratedText ); - - CleanupStack::Pop( parentControlStr2 ); - CleanupStack::Pop( parentControlStr1 ); - } - - CleanupStack::Pop( poppedUpTextArray ); - CleanupStack::Pop( enumeratedTextArray ); - - iSettingParentControlItem->SetEnumeratedTextArrays( - enumeratedTextArray, - poppedUpTextArray ); - iSettingParentControlItem->HandleTextArrayUpdateL(); - iSettingParentControlItem->UpdateListBoxTextL(); - } - - -// -------------------------------------------------------------------------- -// Fetch current parent control age and return corresponding index. -// -------------------------------------------------------------------------- -// -TInt CMPSettingsVideoSettingItemList::GetCurrentParentControl() - { - TInt parentControlAge( 0 ); - TInt parentControlIndex( 0 ); - - if ( !iVideoSettingsEngine.GetParentControl( parentControlAge ) ) - { - parentControlAge = KIptvCenRepParentControlKeyDefault; - } - - // Fix age as index. - if ( KParentControlAdult < parentControlAge ) - { - parentControlIndex = KParentControlMaxIndex; - } - else if ( KParentControlMinAge <= parentControlAge ) - { - parentControlIndex = parentControlAge - KParentControlIndexShift; - } - else - { - parentControlIndex = KParentControlOff; - } - - return parentControlIndex; - } - -// ----------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::HandleDriveMonitorEvent -// ----------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::HandleDriveMonitorEvent( - TIptvDriveMonitorEvent& /*aEvent*/ ) - { - TRAP_IGNORE( UpdateMemoryItemTextL() ); - } - -// -------------------------------------------------------------------------- -// CVcSettingsViewSettingsListbox::UpdateMemoryItemTextL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::UpdateMemoryItemTextL() - { - MPX_FUNC( - "CMPSettingsVideoSettingItemList::UpdateMemoryItemTextL() start"); - - if ( !iDriveMonitor ) - { - iDriveMonitor = CVideoSettingsDriveMonitor::NewL(); - iDriveMonitor->RegisterObserverL( this ); - } - - CArrayPtrFlat* enumeratedTextArray = - new ( ELeave ) CArrayPtrFlat( 2 ); - CleanupStack::PushL( enumeratedTextArray ); // 1-> - - CArrayPtr* poppedUpTextArray = - new ( ELeave ) CArrayPtrFlat( 2 ); - CleanupStack::PushL( poppedUpTextArray ); // 2-> - - TInt i; - TInt listIndex = 0; - for ( i = 0; i < iDriveMonitor->iAvailableDrives.Count(); i++ ) - { - if ( (iDriveMonitor->iAvailableDrives[i].iFlags & - TIptvDriveInfo::ERemovable) ) - { - /* - * MMC - */ - if ( (iDriveMonitor->iAvailableDrives[i].iFlags & - TIptvDriveInfo::EMediaNotPresent) ) - { - //removable media not present -> Memory card - MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: media not present, adding memory card to the list")); - - AddMemoryCardDesToArraysL( listIndex++, - *enumeratedTextArray, - *poppedUpTextArray ); - } - else - { - if ( (iDriveMonitor->iAvailableDrives[i].iFlags & - TIptvDriveInfo::ELocked) ) - { - //removable media present and locked -> Locked memory card - MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: Adding locked memory card to the list")); - - AddLockedMemoryCardDesToArraysL( listIndex++, - *enumeratedTextArray, - *poppedUpTextArray ); - } - else - { - //removable media present and not locked - if ( iDriveMonitor->iAvailableDrives[i].iVolumeName.Length() > 0 ) - { - //removable media present, not locked and name text exits-> Volume name - MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: adding volume name to the list")); - HBufC* volumeName = - HBufC::NewL( iDriveMonitor->iAvailableDrives[i].iVolumeName.Length() ); - CleanupStack::PushL( volumeName ); // 3-> - volumeName->Des() = iDriveMonitor->iAvailableDrives[i].iVolumeName; - AddDesToArraysL( listIndex++, - volumeName, - *enumeratedTextArray, - *poppedUpTextArray ); - CleanupStack::Pop( volumeName ); // <-3 - } - else - { - //removable media present, not locked and label text does not exit-> Memory card - MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: volume name not defined, adding memory card to the list") ); - AddMemoryCardDesToArraysL( listIndex++, - *enumeratedTextArray, - *poppedUpTextArray ); - } - } - } - } - else - { - /* - * Fixed drive - */ - if ( iDriveMonitor->iAvailableDrives[i].iDrive == - iDriveMonitor->PhoneMemoryDrive() ) - { - //2 = c-drive -> Phone Memory - MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: adding Phone memory to the list")); - AddPhoneMemoryDesToArraysL( listIndex++, - *enumeratedTextArray, - *poppedUpTextArray ); - } - else - { - //->Hard disk - MPX_DEBUG1(_L("CMPSettingsVideoSettingItemList:: adding Hard disk to the list")); - AddHardDiskDesToArraysL( listIndex++, - *enumeratedTextArray, - *poppedUpTextArray ); - } - } - } - - iSettingMemoryItem->SetEnumeratedTextArrays( - enumeratedTextArray, poppedUpTextArray ); - iSettingMemoryItem->HandleTextArrayUpdateL(); - iSettingMemoryItem->UpdateListBoxTextL(); - - CleanupStack::Pop( poppedUpTextArray ); // <-2 - CleanupStack::Pop( enumeratedTextArray ); // <-1 - - DrawDeferred(); - } - -// -------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::AddPhoneMemoryDesToArraysL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::AddPhoneMemoryDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ) - { - HBufC* phoneMemoryDes = StringLoader::LoadLC( R_IPTV_SETTING_PHONE_MEMORY ); // 1-> - AddDesToArraysL( aIndex, phoneMemoryDes, aEnumeratedTextArray, aPoppedUpTextArray ); - CleanupStack::Pop( phoneMemoryDes ); // <-1 - } - -// -------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::AddMemoryCardDesToArraysL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::AddMemoryCardDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ) - { - HBufC* memoryCardDes = StringLoader::LoadLC( R_IPTV_SETTING_MEMORY_CARD ); // 1-> - AddDesToArraysL( aIndex, memoryCardDes, aEnumeratedTextArray, aPoppedUpTextArray ); - CleanupStack::Pop( memoryCardDes ); // <-1 - } - -// -------------------------------------------------------------------------- -// CVcSettingsViewSettingsListbox::AddLockedMemoryCardDesToArraysL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::AddLockedMemoryCardDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ) - { - HBufC* lockedMemoryCardDes = StringLoader::LoadLC( R_IPTV_LOCKED_MEMORY_CARD ); // 1-> - AddDesToArraysL( aIndex, lockedMemoryCardDes, aEnumeratedTextArray, aPoppedUpTextArray); - CleanupStack::Pop( lockedMemoryCardDes ); // <-1 - } - -// -------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::AddHardDiskDesToArraysL() -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::AddHardDiskDesToArraysL( TInt aIndex, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ) - { - HBufC* hardDiskDes = StringLoader::LoadLC( R_IPTV_SETTING_MASS_MEMORY ); // 1-> - AddDesToArraysL( aIndex, hardDiskDes, aEnumeratedTextArray, aPoppedUpTextArray); - CleanupStack::Pop( hardDiskDes ); // <-1 - } - -// -------------------------------------------------------------------------- -// CMPSettingsVideoSettingItemList::AddDesToArraysL() -// NOTE: Codescanner whines about passing non const HBufC, -// but that's needed for CAknEnumeratedText construction. -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::AddDesToArraysL( TInt aIndex, HBufC* aText, - CArrayPtrFlat& aEnumeratedTextArray, - CArrayPtr& aPoppedUpTextArray ) - { - CAknEnumeratedText* enumeratedText = - new ( ELeave ) CAknEnumeratedText( aIndex, aText ); - CleanupStack::PushL( enumeratedText ); //1-> - aEnumeratedTextArray.AppendL( enumeratedText ); - CleanupStack::Pop( enumeratedText ); // <-1 - - HBufC* textCopy = HBufC::NewL( aText->Des().Length() ); - CleanupStack::PushL( textCopy ); // 1-> - textCopy->Des() = aText->Des(); - - aPoppedUpTextArray.AppendL( textCopy ); - CleanupStack::Pop( textCopy ); // <-1 - } - -// -------------------------------------------------------------------------- -// Convert and save parent control index as age. -// -------------------------------------------------------------------------- -// -void CMPSettingsVideoSettingItemList::SetCurrentParentControl( - TInt aParentControlIndex ) - { - TInt parentControlAge( 0 ); - - // Fix index as age. - if ( KParentControlMaxIndex < aParentControlIndex ) - { - parentControlAge = KParentControlAdult; - } - else if ( 1 <= aParentControlIndex ) - { - parentControlAge = aParentControlIndex + KParentControlIndexShift; - } - else - { - parentControlAge = 0; - } - - iVideoSettingsEngine.SetParentControl( parentControlAge ); - } - -// -------------------------------------------------------------------------- // Check if video contrast is supported. // -------------------------------------------------------------------------- // TBool CMPSettingsVideoSettingItemList::VideoContrastIsSupportedL() { - TInt flags; - - CRepository* repository = CRepository::NewL( KCRUidMediaPlayerFeatures ); - repository->Get( KMPLocalVariation, flags ); - delete repository; - - if ( flags & KMediaPlayerVideoContrast ) - { - return ETrue; - } + // As video contrast is only item in video settings list, + // we can assume here that contrast is supported, because + // it has been already checked in AppUi/GsPlugin level. + return ETrue; - return EFalse; } // End of File diff -r 7d91903f795f -r ce5ada96ab30 mediasettings/mediasettingsengine/src/MPSettingsModelForROP.cpp --- a/mediasettings/mediasettingsengine/src/MPSettingsModelForROP.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/mediasettings/mediasettingsengine/src/MPSettingsModelForROP.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 9 % +// Version : %version: 10 % @@ -1157,6 +1157,11 @@ { MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::WapIdFromIapIdL(%d)"),aIapId); + TUint32 wap = 0; +#ifdef __WINSCW__ + wap = aIapId; +#else + CMDBSession* db = CMDBSession::NewL( CMDBSession::LatestVersion() ); CleanupStack::PushL( db ); @@ -1169,16 +1174,17 @@ wapBearerRecord->iWAPIAP = aIapId; TBool found = wapBearerRecord->FindL( *db ); - if ( !found ) { User::Leave(KErrNotFound); } - TUint32 wap = static_cast( wapBearerRecord->iWAPAccessPointId ); + wap = static_cast( wapBearerRecord->iWAPAccessPointId ); CleanupStack::PopAndDestroy( wapBearerRecord ); CleanupStack::PopAndDestroy( db ); + +#endif MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::IapIdFromWapIdL() - return wap id: %d "), wap); return wap; @@ -1192,6 +1198,10 @@ { MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::IapIdFromWapIdL(%d)"),aWapId); + TUint32 iap = 0; +#ifdef __WINSCW__ + iap = aWapId; +#else CMDBSession* db = CMDBSession::NewL( CMDBSession::LatestVersion() ); CleanupStack::PushL( db ); @@ -1210,10 +1220,12 @@ User::Leave(KErrNotFound); } - TUint32 iap = static_cast( wapBearerRecord->iWAPIAP ); + iap = static_cast( wapBearerRecord->iWAPIAP ); CleanupStack::PopAndDestroy( wapBearerRecord ); CleanupStack::PopAndDestroy( db ); + +#endif MPX_DEBUG2(_L("#MS# CMPSettingsModelForROP::IapIdFromWapIdL() - return iap id: %d "), iap); return iap; diff -r 7d91903f795f -r ce5ada96ab30 tsrc/conf/ats_moduletests.txt --- a/tsrc/conf/ats_moduletests.txt Fri Feb 19 22:52:52 2010 +0200 +++ b/tsrc/conf/ats_moduletests.txt Fri Mar 12 15:43:00 2010 +0200 @@ -9,10 +9,3 @@ INC ..\..\mediasettings\mediasettingsengine\tsrc\mediasettingsenginetest\conf\atsconf.txt INC ..\..\mediasettings\videoplayersettingsengine\tsrc\vpsettingsenginetest\conf\atsconf.txt INC ..\..\videocollection\mpxmyvideoscollection\tsrc\mpxmvcolltest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXIapListTest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXServiceTest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXSettingsDatabaseTest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXProvisioningTest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXScheduledReminderTest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXServiceManagementApiTest\conf\atsconf.txt -INC ..\..\videofeeds\server\tsrc\VCXVodContentApiTest\conf\atsconf.txt diff -r 7d91903f795f -r ce5ada96ab30 tsrc/group/bld.inf --- a/tsrc/group/bld.inf Fri Feb 19 22:52:52 2010 +0200 +++ b/tsrc/group/bld.inf Fri Mar 12 15:43:00 2010 +0200 @@ -28,10 +28,8 @@ #include "../VCXTestCommon/group/bld.inf" #include "../VCXTestMyVideosCollectionClient/group/bld.inf" #include "../VCXTestUtilModule/group/bld.inf" -#include "../fusionmpxplayer_test/group/bld.inf" #include "../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/bld.inf" #include "../../videoplayer_plat/video_player_file_details_dialog_api/tsrc/group/bld.inf" #include "../../videoplayer_plat/videoplayer_startup_api/tsrc/group/bld.inf" #include "../../mediasettings/mediasettingsengine/tsrc/mediasettingsenginetest/group/bld.inf" #include "../../mediasettings/videoplayersettingsengine/tsrc/vpsettingsenginetest/group/bld.inf" -#include "../../videofeeds/server/tsrc/group/bld.inf" diff -r 7d91903f795f -r ce5ada96ab30 tsrc/testing/sis/fusion_engine_tests.pkg --- a/tsrc/testing/sis/fusion_engine_tests.pkg Fri Feb 19 22:52:52 2010 +0200 +++ b/tsrc/testing/sis/fusion_engine_tests.pkg Fri Mar 12 15:43:00 2010 +0200 @@ -51,50 +51,9 @@ "/epoc32/release/armv5/udeb/VCXTestEcgFileObserver.dll" - "!:/Sys/Bin/VCXTestEcgFileObserver.dll" "/epoc32/release/armv5/udeb/VCXTestMyVideosCollectionClient.dll" - "!:/Sys/Bin/VCXTestMyVideosCollectionClient.dll" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceUpdating.inc" - "c:/testframework/VCXServiceUpdating.inc" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceNames.inc" - "c:/testframework/VCXServiceNames.inc" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXConsts.inc" - "c:/testframework/VCXConsts.inc" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXErrors.inc" - "c:/testframework/VCXErrors.inc" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXDrives.inc" - "c:/testframework/VCXDrives.inc" - -; PROVISIONING & ZIP FILES -"/epoc32/release/armv5/udeb/VCXProvisioningTest.dll" - "!:/Sys/Bin/VCXProvisioningTest.dll" -"../../../videofeeds/server/tsrc/VCXProvisioningTest/conf/VCXProvisioningTest.cfg" - "c:/testframework/VCXProvisioningTest.cfg" -"../../../videofeeds/server/tsrc/VCXProvisioningTest/data/c/provisionzip/provision.zip" - "c:/testing/data/provisionzip/provision.zip" -"../../../videofeeds/server/tsrc/VCXProvisioningTest/data/c/verifyzip/verify.zip" - "c:/testing/data/verifyzip/verify.zip" - -; SERVICE MANAGEMENT API -"/epoc32/release/armv5/udeb/VCXServiceManagementApiTest.dll" - "!:/Sys/Bin/VCXServiceManagementApiTest.dll" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTest.inc" - "c:/testframework/VCXServiceManagementApiTest.inc" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestSync.cfg" - "c:/testframework/VCXServiceManagementApiTestSync.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestAsync.cfg" - "c:/testframework/VCXServiceManagementApiTestAsync.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestServiceCustom.cfg" - "c:/testframework/VCXServiceManagementApiTestServiceCustom.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestSyncErrorHandling.cfg" - "c:/testframework/VCXServiceManagementApiTestSyncErrorHandling.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestAsyncR3.cfg" - "c:/testframework/VCXServiceManagementApiTestAsyncR3.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestStressAsync.cfg" - "c:/testframework/VCXServiceManagementApiTestStressAsync.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestStressSync.cfg" - "c:/testframework/VCXServiceManagementApiTestStressSync.cfg" -"../../../videofeeds/server/tsrc/VCXServiceManagementApiTest/conf/VCXServiceManagementApiTestHelium.cfg" - "c:/testframework/VCXServiceManagementApiTestHelium.cfg" - -; VOD CONTENT API -"/epoc32/release/armv5/udeb/VCXVodContentApiTest.dll" - "!:/Sys/Bin/VCXVodContentApiTest.dll" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTest.inc" - "c:/testframework/VCXVodContentApiTest.inc" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTest.cfg" - "c:/testframework/VCXVodContentApiTest.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestCategoriesR3.cfg" - "c:/testframework/VCXVodContentApiTestCategoriesR3.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestDb.cfg" - "c:/testframework/VCXVodContentApiTestDb.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestErrors.cfg" - "c:/testframework/VCXVodContentApiTestErrors.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestInterference.cfg" - "c:/testframework/VCXVodContentApiTestInterference.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestMimeTypes.cfg" - "c:/testframework/VCXVodContentApiTestMimeTypes.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestParental.cfg" - "c:/testframework/VCXVodContentApiTestParental.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestSearch2R3.cfg" - "c:/testframework/VCXVodContentApiTestSearch2R3.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestSearchR3.cfg" - "c:/testframework/VCXVodContentApiTestSearchR3.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestSearchStressR3.cfg" - "c:/testframework/VCXVodContentApiTestSearchStressR3.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentModificationCheckTest.cfg" - "c:/testframework/VCXVodContentModificationCheckTest.cfg" -"../../../videofeeds/server/tsrc/VCXVodContentApiTest/conf/VCXVodContentApiTestHelium.cfg" - "c:/testframework/VCXVodContentApiTestHelium.cfg" - -; SCHEDULED REMINDER -"/epoc32/release/armv5/udeb/VCXScheduledReminderTest.dll" - "!:/Sys/Bin/VCXScheduledReminderTest.dll" -"../../../videofeeds/server/tsrc/VCXScheduledReminderTest/conf/VCXScheduledReminderTest.cfg" - "c:/testframework/VCXScheduledReminderTest.cfg" -"../../../videofeeds/server/tsrc/VCXScheduledReminderTest/conf/VCXScheduledReminderTest.inc" - "c:/testframework/VCXScheduledReminderTest.inc" +"../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXConsts.inc" - "c:/testframework/VCXConsts.inc" +"../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXErrors.inc" - "c:/testframework/VCXErrors.inc" +"../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXDrives.inc" - "c:/testframework/VCXDrives.inc" ; MEDIASETTINGSENGINE "/epoc32/release/armv5/udeb/mpxmediasettingsenginetest.dll" - "!:/Sys/Bin/mpxmediasettingsenginetest.dll" @@ -104,19 +63,7 @@ "/epoc32/release/armv5/udeb/vcxnssettingsenginetest.dll" - "!:/Sys/Bin/vcxnssettingsenginetest.dll" "../../../mediasettings/videoplayersettingsengine/tsrc/vpsettingsenginetest/conf/vcxnssettingsenginetest.cfg" - "c:/TestFramework/vcxnssettingsenginetest.cfg" -; VCXSETTINGSDATABASETEST -"/epoc32/release/armv5/udeb/VCXSettingsDatabaseTest.dll" - "!:/Sys/Bin/VCXSettingsDatabaseTest.dll" -"../../../videofeeds/server/tsrc/VCXSettingsDatabaseTest/conf/VCXSettingsDatabaseTest.cfg" - "c:/testframework/VCXSettingsDatabaseTest.cfg" - -; VCXIAPLISTTEST -"/epoc32/release/armv5/udeb/VCXIapListTest.dll" - "!:/Sys/Bin/VCXIapListTest.dll" -"../../../videofeeds/server/tsrc/VCXIapListTest/conf/VCXIapListTest.cfg" - "c:/testframework/VCXIapListTest.cfg" - -; VCXSERVICETEST -"/epoc32/release/armv5/udeb/VCXServiceTest.dll" - "!:/Sys/Bin/VCXServiceTest.dll" -"../../../videofeeds/server/tsrc/VCXServiceTest/conf/VCXServiceTest.cfg" - "c:/testframework/VCXServiceTest.cfg" - -; MY VIDEOS +; MY VIDEOS COLLECTION "/epoc32/release/armv5/udeb/VCXMyVideosCollectionPluginTest.dll" - "!:/Sys/Bin/VCXMyVideosCollectionPluginTest.dll" "/epoc32/release/armv5/udeb/MediatorEventVerifier.dll" - "!:/Sys/Bin/MediatorEventVerifier.dll" "../../../videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestAttributes.cfg" - "C:/TestFramework/VCXMyVideosCollectionPluginTestAttributes.cfg" diff -r 7d91903f795f -r ce5ada96ab30 tsrc/testing/sis/make_engine_test_sis.cmd --- a/tsrc/testing/sis/make_engine_test_sis.cmd Fri Feb 19 22:52:52 2010 +0200 +++ b/tsrc/testing/sis/make_engine_test_sis.cmd Fri Mar 12 15:43:00 2010 +0200 @@ -20,6 +20,8 @@ call \VideoApp_Domain\videoplayer\tsrc\testing\tools\tsrpkgtool.pl -a call popd +call del *.sisx + echo ---------------------------------------- echo VIDEOPLAYER - MEDIASETTINGSENGINETEST echo ---------------------------------------- @@ -54,94 +56,6 @@ call del VCXMyVideosCollectionPluginTest.sis echo ---------------------------------------- -echo VIDEOPLAYER - VCXPROVISIONINGTEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXProvisioningTest\group -call makesis VCXProvisioningTest.pkg VCXProvisioningTest.sis -call copy VCXProvisioningTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXProvisioningTest.sis VCXProvisioningTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXProvisioningTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXSCHEDULEDREMINDERTEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXScheduledReminderTest\group -call makesis VCXScheduledReminderTest.pkg VCXScheduledReminderTest.sis -call copy VCXScheduledReminderTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXScheduledReminderTest.sis VCXScheduledReminderTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXScheduledReminderTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXSCHEDULEDDOWNLOADTEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXScheduledDownloadTest\group -call makesis VCXScheduledDownloadTest.pkg VCXScheduledDownloadTest.sis -call copy VCXScheduledDownloadTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXScheduledDownloadTest.sis VCXScheduledDownloadTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXScheduledDownloadTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXSERVICEMANAGEMENTAPITEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXServiceManagementApiTest\group -call makesis VCXServiceManagementApiTest.pkg VCXServiceManagementApiTest.sis -call copy VCXServiceManagementApiTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXServiceManagementApiTest.sis VCXServiceManagementApiTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXServiceManagementApiTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXVODCONTENTAPITEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXVodContentApiTest\group -call makesis VCXVodContentApiTest.pkg VCXVodContentApiTest.sis -call copy VCXVodContentApiTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXVodContentApiTest.sis VCXVodContentApiTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXVodContentApiTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXSETTINGSDATABASETEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXSettingsDatabaseTest\group -call makesis VCXSettingsDatabaseTest.pkg VCXSettingsDatabaseTest.sis -call copy VCXSettingsDatabaseTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXSettingsDatabaseTest.sis VCXSettingsDatabaseTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXSettingsDatabaseTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXIAPLISTTEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXIapListTest\group -call makesis VCXIapListTest.pkg VCXIapListTest.sis -call copy VCXIapListTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXIapListTest.sis VCXIapListTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXIapListTest.sis - -echo ---------------------------------------- -echo VIDEOPLAYER - VCXSERVICETEST -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\videofeeds\server\tsrc\VCXServiceTest\group -call makesis VCXServiceTest.pkg VCXServiceTest.sis -call copy VCXServiceTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe VCXServiceTest.sis VCXServiceTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del VCXServiceTest.sis - -echo ---------------------------------------- echo VIDEOPLAYER - VIDEOPLAYER_STARTUP_API echo ---------------------------------------- @@ -153,17 +67,6 @@ call del VideoPlayerStartupApiTest.sis echo ---------------------------------------- -echo VIDEOPLAYER - MPX_FUSION_API -echo ---------------------------------------- - -call pushd \VideoApp_Domain\videoplayer\tsrc\fusionmpxplayer_test\group -call makesis FusionMpxPlayer_ApiTest.pkg FusionMpxPlayer_ApiTest.sis -call copy FusionMpxPlayer_ApiTest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis -call popd -call signsis.exe FusionMpxPlayer_ApiTest.sis FusionMpxPlayer_ApiTest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key -call del FusionMpxPlayer_ApiTest.sis - -echo ---------------------------------------- echo VIDEOPLAYER - UT_MPXVIDEOPLAYER echo ---------------------------------------- @@ -175,6 +78,17 @@ call del mpxvideoplayertest.sis echo ---------------------------------------- +echo VIDEOPLAYER - VIDEOHELIXTEST +echo ---------------------------------------- + +call pushd VideoApp_Domain\videoplayer\videoplayback\videohelix\tsrc\ut_videohelixtest\group +call makesis videohelixtest.pkg videohelixtest.sis +call copy videohelixtest.sis \VideoApp_Domain\videoplayer\tsrc\testing\sis +call popd +call signsis.exe videohelixtest.sis videohelixtest.sisx Nokia_RnDCert_02.der Nokia_RnDCert_02.key +call del videohelixtest.sis + +echo ---------------------------------------- echo VIDEOPLAYER_PLAT - FILE_DETAILS_DIALOG_API echo ---------------------------------------- diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/conf/hgmyvideos.confml Binary file videocollection/hgmyvideos/conf/hgmyvideos.confml has changed diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/conf/hgmyvideos_20021191.crml Binary file videocollection/hgmyvideos/conf/hgmyvideos_20021191.crml has changed diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/data/vcxhgmyvideos.rss --- a/videocollection/hgmyvideos/data/vcxhgmyvideos.rss Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/data/vcxhgmyvideos.rss Fri Mar 12 15:43:00 2010 +0200 @@ -170,6 +170,11 @@ #endif MENU_ITEM { + command = EVcxHgMyVideosCmdOpenSettings; + txt = qtn_vcx_options_settings; + }, + MENU_ITEM + { command = EVcxHgMyVideosCmdHelp; txt = qtn_options_help; }, @@ -283,6 +288,16 @@ // // ----------------------------------------------------------------------------- // +RESOURCE CBA_BUTTON r_vcxhgmyvideos_rsk_exit + { + id = EAknSoftkeyExit; + txt = text_softkey_exit; + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// RESOURCE CBA_BUTTON r_vcxhgmyvideos_msk_nothing { id = EVcxHgMyVideosCmdNothing; @@ -625,37 +640,37 @@ // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_my_videos_title { buf = qtn_iptv_my_videos_title; } +RESOURCE TBUF r_vcxhgmyvideos_my_videos_title { buf = qtn_vcx_title_suite; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_one_new_video { buf = qtn_vcx_hg_one_new_video; } +RESOURCE TBUF r_vcxhgmyvideos_one_new_video { buf = qtn_vcx_hg_list_one_new_video; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_n_new_videos { buf = qtn_vcx_hg_n_new_videos; } +RESOURCE TBUF r_vcxhgmyvideos_n_new_videos { buf = qtn_vcx_hg_list_n_new_videos; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_no_videos_in_category { buf = qtn_vcx_hg_no_videos_in_category; } +RESOURCE TBUF r_vcxhgmyvideos_no_videos_in_category { buf = qtn_vcx_hg_list_no_videos_in_category; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_one_video_in_category { buf = qtn_vcx_hg_one_video_in_category; } +RESOURCE TBUF r_vcxhgmyvideos_one_video_in_category { buf = qtn_vcx_hg_list_one_video_in_category; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_videos_in_category { buf = qtn_vcx_hg_videos_in_category; } +RESOURCE TBUF r_vcxhgmyvideos_videos_in_category { buf = qtn_vcx_hg_list_videos_in_category; } // ----------------------------------------------------------------------------- // @@ -680,13 +695,13 @@ // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_storage_captured_list { buf = qtn_vcx_hg_storage_captured_list; } +RESOURCE TBUF r_vcxhgmyvideos_storage_captured_list { buf = qtn_vcx_hg_list_storage_captured; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_storage_other_list { buf = qtn_iptv_storage_other_list; } +RESOURCE TBUF r_vcxhgmyvideos_storage_other_list { buf = qtn_vcx_hg_list_storage_other; } // ----------------------------------------------------------------------------- // @@ -858,11 +873,27 @@ // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_refreshing { buf = qtn_iptv_refreshing; } +RESOURCE TBUF r_vcxhgmyvideos_resume_not_possible + { buf = qtn_iptv_resume_not_possible; } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +RESOURCE TBUF r_vcxhgmyvideos_last_watched + { buf = qtn_vcx_hg_list_last_watched; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -RESOURCE TBUF r_vcxhgmyvideos_resume_not_possible - { buf = qtn_iptv_resume_not_possible; } +RESOURCE TBUF r_vcxhgmyvideos_ovi_store + { buf = qtn_vcx_hg_list_ovi_store; } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +RESOURCE TBUF r_vcxhgmyvideos_ovi_store_videos + { buf = qtn_vcx_hg_list_ovi_store_videos; } + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/group/bld.inf --- a/videocollection/hgmyvideos/group/bld.inf Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/group/bld.inf Fri Mar 12 15:43:00 2010 +0200 @@ -28,6 +28,9 @@ ../rom/hgmyvideos.iby CORE_APP_LAYER_IBY_EXPORT_PATH(hgmyvideos.iby) ../rom/hgmyvideosrsc.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(hgmyvideosrsc.iby) +// Generic configuration interface for component cenrep settings +../conf/hgmyvideos.confml APP_LAYER_CONFML(hgmyvideos.confml) +../conf/hgmyvideos_20021191.crml APP_LAYER_CRML(hgmyvideos_20021191.crml) PRJ_EXTENSIONS START EXTENSION s60/mifconv @@ -52,7 +55,12 @@ OPTION HEADERFILE vcxhgmyvideosicons.mbg OPTION SOURCEDIR ../icons OPTION SOURCES \ - -c8,1 qgn_prop_mtv_prog_clip.svg + -c8,1 qgn_prop_mtv_prog_clip.svg \ + -c8,1 qgn_prop_captured_thumbnail_video.svg \ + -c8,1 qgn_prop_download_thumbnail_video.svg \ + -c8,1 qgn_prop_ovi_thumbnail_video.svg \ + -c8,1 qgn_prop_recent_thumbnail_video.svg \ + -c8,1 qgn_prop_service_thumbnail_video.svg END PRJ_MMPFILES diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/group/vcxhgmyvideos.mmp --- a/videocollection/hgmyvideos/group/vcxhgmyvideos.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/group/vcxhgmyvideos.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: TB92_24.1.1 % +// Version : %version: e92_30 % #include #include @@ -53,15 +53,17 @@ SOURCE vcxhgmyvideosvideolist.cpp SOURCE vcxhgmyvideosvideocopier.cpp SOURCE vcxhgmyvideosupnpinterface.cpp -SOURCE vcxhgtelephonyclient.cpp #ifdef RD_VIDEO_AS_RINGING_TONE SOURCE vcxhgmyvideosaiwmenuhandler.cpp #endif +SOURCE vcxhgmyvideosthumbnailmanager.cpp +SOURCE CIptvResourceLoader.cpp +SOURCE CIptvDriveMonitor.cpp +SOURCE TIptvDriveInfo.cpp +SOURCE TIptvDriveMonitorEvent.cpp USERINCLUDE ../inc USERINCLUDE ../../../inc -USERINCLUDE ../../../videofeeds/utils/inc -USERINCLUDE ../../../videofeeds/viewmessageutility/inc APP_LAYER_SYSTEMINCLUDE @@ -84,36 +86,18 @@ LIBRARY egul.lib LIBRARY avkon.lib LIBRARY aknicon.lib -LIBRARY aknlayout.lib -LIBRARY aknlayout2.lib -LIBRARY aknlayout2scalable.lib LIBRARY bafl.lib // CDesCArray LIBRARY commonengine.lib // String loader LIBRARY flogger.lib // RFileLogger LIBRARY hlplch.lib // HlpLauncher LIBRARY efsrv.lib -LIBRARY mediaclientvideo.lib // S60 video player -LIBRARY ws32.lib // RBlankWindow -LIBRARY apmime.lib // TDataType -LIBRARY fbscli.lib // CFbsBitmap -LIBRARY bitgdi.lib // CFbsBitmapDevice +LIBRARY ws32.lib // RWsSession LIBRARY estor.lib -LIBRARY form.lib // CTextView -LIBRARY fepbase.lib // MCoeFepObserver -LIBRARY mediatorclient.lib LIBRARY aknskins.lib -LIBRARY aknskinsrv.lib -LIBRARY aknswallpaperutils.lib -LIBRARY charconv.lib // CnvUtfConverter -LIBRARY etel.lib // RTelServer -LIBRARY etelmm.lib // RMobilePhone -LIBRARY secui.lib // CSecurityHandler LIBRARY mpxcommon.lib // MPX LIBRARY mpxcollectionutility.lib // MPX -LIBRARY iptvutil.lib // Iptv Resource Loader LIBRARY commondialogs.lib // Memory selection dialog LIBRARY drmhelper.lib // DRM -LIBRARY featmgr.lib // Feature manager LIBRARY centralrepository.lib // Upnp LIBRARY thumbnailmanager.lib // CThumbnailManager LIBRARY caf.lib // CAF @@ -121,13 +105,12 @@ LIBRARY sendui.lib // For send video LIBRARY drmutility.lib // DRM LIBRARY playbackhelper.lib // Recognizer -LIBRARY mpxplaybackutility.lib // MPX playback utility -LIBRARY mpxviewutility.lib -LIBRARY mpfiledetailsdialog.lib -LIBRARY vcxviewmessageutility.lib // CVcxViewMessageUtility LIBRARY upnpcommand.lib LIBRARY ganes.lib // for HgList LIBRARY ecom.lib +LIBRARY apgrfx.lib // RApaLsSession #ifdef RD_VIDEO_AS_RINGING_TONE LIBRARY servicehandler.lib // AIW Service Handler -#endif \ No newline at end of file +#endif +LIBRARY platformenv.lib +LIBRARY fbscli.lib // CFbsBitmap diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/icons/qgn_prop_captured_thumbnail_video.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/icons/qgn_prop_captured_thumbnail_video.svg Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/icons/qgn_prop_download_thumbnail_video.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/icons/qgn_prop_download_thumbnail_video.svg Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/icons/qgn_prop_ovi_thumbnail_video.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/icons/qgn_prop_ovi_thumbnail_video.svg Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/icons/qgn_prop_recent_thumbnail_video.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/icons/qgn_prop_recent_thumbnail_video.svg Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/icons/qgn_prop_service_thumbnail_video.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/icons/qgn_prop_service_thumbnail_video.svg Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/CIptvDriveMonitor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/CIptvDriveMonitor.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,338 @@ +/* +* Copyright (c) 2010 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: Helper class for Video Center for drive operations/monitoring.* +*/ + + + + + +#ifndef CIPTVDRIVEMONITOR_H +#define CIPTVDRIVEMONITOR_H + +// INCLUDES +#include +#include +#include "TIptvDriveInfo.h" +#include "TIptvDriveMonitorEvent.h" +#include "MIptvDriveMonitorObserver.h" +#include "IptvDebug.h" + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** + * Helper class for Video Center for drive operations/monitoring. + * User can get available drives (through iAvailableDrives public member) + * and be notified when drives change (through MIptvDriveMonitorObserver interface). + */ +NONSHARABLE_CLASS ( CIptvDriveMonitor ) : public CActive + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CIptvDriveMonitor* NewL(); + + /** + * Two-phased constructor. Use this is owner object already has a file session open. + * + * @param aFileSession file session. + */ + static CIptvDriveMonitor* NewL( const RFs& aFileSession ); + + /** + * Destructor. + */ + virtual ~CIptvDriveMonitor(); + + public: + + /** + * Registers observer for drive events. + * iAvailableDrives is updated automatically if there are any + * observers registered, ie there is no need to call RefreshAvailableDrivesL + * when observing. + * Don't keep observers around if they do not need events. Observing should be used + * when user needs to know immedetially about memory card insertion/removed events, + * or drive locked/unlocked events. + * + * @param aObserver observer, ownership does not move. + */ + void RegisterObserverL( MIptvDriveMonitorObserver* aObserver ); + + /** + * Removes observer, ownership does not move. + * @param aObserver observer to be removed from observers list. + */ + void RemoveObserverL( MIptvDriveMonitorObserver* aObserver ); + + /** + * Updates iAvailableDrives member variable from File server. + * This is called in ConstructL() also. + */ + void RefreshAvailableDrivesL(); + + /** + * Returns the position index of aDrive in iAvailableDrives. + * + * @param aDrive drive to search. + * @return Position index of aDrive in iAvailableDrives. If not found, + * KErrNotFound is returned. + */ + TInt ArrayPos( TInt aDrive ); + + /** + * Returns the position index of aDrive in iAvailableDrives. If not + * found, leaves with KErrNotFound code. + * + * @param aDrive drive to search. + * @return Position index of aDrive in iAvailableDrives. + */ + TInt ArrayPosL( TInt aDrive ); + + /** + * Returns the default removable drive (= memory card drive) from iAvailableDrives + * array. Leaves with KErrNotFound if not found. + */ + TInt MemoryCardDriveL(); + + /** + * Returns the default removable drive (= memory card drive) from iAvailableDrives + * array. Returns KErrNotFound if not found. + * + * @return drive number, or KErrNotFound if not found. + */ + TInt MemoryCardDrive(); + + /** + * Returns the default mass memory drive if found from iAvailableDrives. + * Mass storege drive means the drive which is preferred for storing large + * files in the device, the drive itself can be anything, usually not c though. + * Leaves with KErrNotFound if not found. + * + * @return Drive number. + */ + TInt MassStorageDriveL(); + + /** + * Returns the default mass memory drive if found from iAvailableDrives. + * Mass storege drive means the drive which is preferred for storing large + * files in the device, the drive itself can be anything except c-drive. + * Returns KErrNotFound if not found. + * + * @return Drive number, or KErrNotFound if not found. + */ + TInt MassStorageDrive(); + + /** + * Returns the phone memory drive from iAvailableDrives array. + * Leaves with KErrNotFound if not found. + * + * @return Drive number. + */ + TInt PhoneMemoryDriveL(); + + /** + * Returns the PhoneMemory drive from iAvailableDrives array. + * Returns KErrNotFound if not found. + * + * @return Drive number, or KErrNotFound if not found. + */ + TInt PhoneMemoryDrive(); + + /** + * Returns the first fixed (= non removable) drive from iAvailableDrives array. + * Leaves with KErrNotFound if not found. + * + * @param aExcludeCDrive If ETrue, then C-drive is excluded. + * @return Drive number. + */ + TInt FixedDriveL( TBool aExcludeCDrive ); + + /** + * Returns the first fixed (= non removable) drive from iAvailableDrives array. + * Returns KErrNotFound if not found. + * + * @param aExcludeCDrive If ETrue, then C-drive is excluded. + * @return Drive number, or KErrNotFound if not found. + */ + TInt FixedDrive( TBool aExcludeCDrive ); + + /** + * @return ETrue if aDrive is the preferred mass storage drive for the large files. + */ + TBool IsMassStorageDriveL( TInt aDrive ); + + /** + * @return ETrue if aDrive is memory card type. + */ + TBool IsMemoryCardDriveL( TInt aDrive ); + + /** + * @return ETrue media is present in the drive. (Memory card is inserted and drive is not locked). + */ + TBool IsPresentL( TInt aDrive ); + + /** + * @return The system drive. Might not be in iAvailableDrives. + */ + TInt SystemDrive(); + + /** + * Finds out if memory card is inserted and not locked. + * + * @return Returns ETrue is memory card is inserted and usable (not locked), EFalse otherwise. + */ + TBool IsMmcInserted(); + + /** + * Gets the used memory from cenrep. If cenrep contains invalid drive or value is not found, + * chooses the preferred drive in the following order: 1. mass storage 2. memory card + * 3. EDriveC. If cenrep value was not usable, the chosen drive is written to cenrep. + * Leaves with system-wide error code if wasn't able to get the used memory. + * + * @param aUsedMemory The used memory drive is written here. + */ + void GetUsedMemoryL( TInt& aUsedMemory ); + + + protected: // Functions from base classes + + /** + * From CActive, RunL. + * Called when operation completes. + */ + void RunL(); + + /** + * From CActive, cancels request. + */ + void DoCancel(); + + /** + * From CActive, handles leaves from RunL. + */ + TInt RunError( TInt aError ); + + private: + + /** + * C++ default constructor. + */ + CIptvDriveMonitor(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * By default Symbian 2nd phase constructor is private. + * + * @param aFileSession + */ + void ConstructL( const RFs& aFileSession ); + + /** + * Sends event to observers. + * + * @param aEvent event to send. + * @param aDrive drive which caused the event. + */ + void SendEvent( TIptvDriveMonitorEvent::TEvent aEvent, TInt aDrive ); + + /** + * Compares iPreviousAvailableDrives and iAvailableDrives arrays and + * sends appropriate events if they differ. + */ + void CompareOldAndNewAvailableDrives(); + + /** + * Returns drive type as a descriptor. For debugging only. + * @param aType Drive type, see valid values from e32const.h TMediaType enum. + */ + const TDesC& DriveTypeDes( TInt aType ); + + /** + * Prints available drives. For debugging only. + */ + void PrintAvailableDrives(); + + public: + + /** + * Array of currently available drives. These are updated + * with RefreshAvailableDrivesL -method or from file + * server event. RefreshAvailableDrivesL is also called upon creation + * of this object. + * iAvailableDrives array contains drives which are available for mass + * storaging videos. If there is hard disk and memory card + * available(both e and f-drives), then c-drive is excluded from the array. + */ + RArray iAvailableDrives; + + + private: + + /** + * Used to detect if refresh had any effect. + */ + RArray iPreviousAvailableDrives; + + /** + * Array of observers. Pointers not owned. + */ + RArray iObservers; + + /** + * Session to file server. + */ + RFs iFs; + + /** + * ETrue if iFs is provided by the user of this class. + */ + TBool iIfsIsProvidedByUser; + + /** + * Default memory for storing large files. + */ + TInt iDefaultMassStorageDrive; + + /** + * Default memory card. + */ + TInt iDefaultMemoryCardDrive; + + /** + * System drive. + */ + TInt iSystemDrive; + + }; + +#endif // CIPTVDRIVEMONITOR_H + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/CIptvResourceLoader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/CIptvResourceLoader.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,102 @@ +/* +* Copyright (c) 2010 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 CIPTVRESOURCELOADER_H +#define CIPTVRESOURCELOADER_H + +// INCLUDES +#include + +class CCoeEnv; +class RFs; + +// CLASS DECLARATION +NONSHARABLE_CLASS ( CIptvResourceLoader ) : public CBase + { + public: + /** + * Two-phased constructor. + * @param + */ + static CIptvResourceLoader* NewL( CCoeEnv& aCoeEnv ); + + /** + * Destructor. + */ + virtual ~CIptvResourceLoader(); + + /** + * Add resource. + * + * @param aResourceFile Descriptor containing the resource file to be loaded + */ + void AddResourceL( const TDesC& aResourceFile ); + + private: // New functions + + /** + * C++ default constructor. + */ + CIptvResourceLoader( CCoeEnv& aCoeEnv ); + + /** + * By default Symbian 2nd phase constructor is private. + * @param + */ + void ConstructL(); + + /** + * Search resource file. + * + * @param aFile Buffer descriptor to the resource file + * @return System wide error code + */ + TInt SearchResourceFile( const TDesC& aFile ); + + /** + * Add resource file. + * + * @param aFile Buffer descriptor to the resource file + * @return System wide error code + */ + TInt AddResourceFile( const TDesC& aFile ); + + private: // Data members + + /** + * Resource file offset. + */ + TInt iOffset; + + /** + * Is resource added + */ + TBool iAdded; + + /** + * Reference to CCoeEnv. + */ + CCoeEnv& iCoeEnv; + + }; + +#endif // CIPTVRESOURCELOADER_H + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/MIptvDriveMonitorObserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/MIptvDriveMonitorObserver.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 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 __MIPTVDRIVEMONITOROBSERVER_H__ +#define __MIPTVDRIVEMONITOROBSERVER_H__ + +#include "TIptvDriveMonitorEvent.h" + +// CLASS DECLARATION + +/** +* Observer for CIptvDriveMonitor class. +*/ +class MIptvDriveMonitorObserver + { + + public: + /** + * Handles drive monitor event. + * + * @param aEvent Event. + */ + virtual void HandleDriveMonitorEvent( TIptvDriveMonitorEvent& aEvent ) = 0; + }; + +#endif diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/TIptvDriveInfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/TIptvDriveInfo.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2010 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: header file for TIptvDriveInfo class* +*/ + + + + + +#ifndef TIPTVDRIVEINFO_H +#define TIPTVDRIVEINFO_H + +// INCLUDES +#include + +const TInt KIptvDriveNameMaxLength = 256; + +// CLASS DECLARATION +/** +* Container class for storing drive info relevant for Video Center. +*/ +class TIptvDriveInfo + { + public: + + /* + * Attribute flags used in iFlags member. + */ + enum TDriveAttributes + { + /** + * Media can be removed from the drive, (E or F, depending on hw configuration). + * If not set (= 0) then the drive is fixed. + */ + ERemovable = 1 << 0, + + /** + * Default mass storage drive. + */ + EMassStorage = 1 << 1, + + /** + * Media is locked. + */ + ELocked = 1 << 2, + + /** + * Media is removed from the drive. + */ + EMediaNotPresent = 1 << 3 + }; + + /** + * Constructor, clears member variables to zero. + */ + TIptvDriveInfo(); + + /** + * Destructor. + */ + ~TIptvDriveInfo(); + + public: + + /** + * Drive ID number, 0 points to A:, 1 to B:, 2 to C: and so on. + */ + TInt iDrive; + + /** + * Drive char. + */ + TChar iDriveChar; + + /** + * Drive type, same as TDriveInfo::iType. + */ + TInt iType; + + /** + * Properties of the drive, see TDriveAttributes -enum for flag values. + */ + TUint32 iFlags; + + /** + * Volume name. Removable drive can contain different volumes (mmc cards). This name + * refers to removable item (card label), not the drive. + */ + TBuf iVolumeName; + }; + +#endif diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/TIptvDriveMonitorEvent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/TIptvDriveMonitorEvent.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,124 @@ +/* +* Copyright (c) 2010 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: Drive monitor event object* +*/ + + + + + +#ifndef TIPTVDRIVEMONITOREVENT_H +#define TIPTVDRIVEMONITOREVENT_H + +// INCLUDES +#include + +// CONSTANTS +_LIT( KIptvEmptyDes, "" ); + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** +* Used for sending events from CIptvDriveMonitor to client. +*/ +class TIptvDriveMonitorEvent + { + public: + + /** + * Events, used in iEvent member variable. + */ + enum TEvent + { + /** + * Value used at construction. + */ + ENone, + + /** + * Media was removed (typically memory card). + */ + EMediaRemoved, + + /** + * Media was inserted (typically memory card). + */ + EMediaInserted, + + /** + * Drive was locked. + */ + EDriveLocked, + + /** + * Drive was unlocked. + */ + EDriveUnlocked, + + /** + * Drive was mounted. + */ + EDriveMounted, + + /** + * Drive was dismounted. + */ + EDriveDismounted, + + /** + * Drive volume name was changed. + */ + EDriveVolumeNameChanged + }; + + public: // Constructors and destructor + + /** + * C++ default constructor. + */ + TIptvDriveMonitorEvent(); + + /** + * Returns event as a descriptor. Used for debugging purposes. + * + * @param aEvent Event as enum. + * @return Event as a descriptor. + */ + static const TDesC& EventDes( TEvent aEvent ); + + public: + + /** + * Identifies the event, see TEvent for values. + */ + TInt iEvent; + + /** + * The drive which caused the event (a = 0, b = 1, ... etc). + */ + TInt iDrive; + + }; + +#endif // TIPTVDRIVEMONITOREVENT_H + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideos.hrh --- a/videocollection/hgmyvideos/inc/vcxhgmyvideos.hrh Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideos.hrh Fri Mar 12 15:43:00 2010 +0200 @@ -51,7 +51,8 @@ EVcxHgMyVideosCmdSend, // Send video EVcxHgMyVideosCmdNothing, // Non-functional command EVcxHgMyVideosCmdStartMarking, // Sets marking mode on - EVcxHgMyVideosCmdStopMarking // Sets marking mode off + EVcxHgMyVideosCmdStopMarking, // Sets marking mode off + EVcxHgMyVideosCmdOpenSettings // Opens Settings application #ifdef RD_VIDEO_AS_RINGING_TONE ,EVcxHgMyVideosCmdAiwBase = 800 // Base number for AIW commands #endif diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelhandler.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelhandler.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelhandler.h Fri Mar 12 15:43:00 2010 +0200 @@ -23,10 +23,25 @@ // INCLUDE FILES #include "vcxhgmyvideoscategorymodelobserver.h" + +#include +#include + // FORWARD DECLARATIONS class CMPXMedia; class CVcxHgMyVideosModel; class CHgScroller; +class CMPXMedia; +class CMyVideosIndicator; +class CVcxHgMyVideosThumbnailManager; + +// ENUMERATIONS +enum TVcxHgMyVideosCategoryItemType + { + TVcxHgMyVideosCategoryItemTypeUndefined = 0, + TVcxHgMyVideosCategoryItemTypeUid, + TVcxHgMyVideosCategoryItemTypeUrl + }; // CLASS DECLARATION @@ -37,7 +52,8 @@ */ NONSHARABLE_CLASS( CVcxHgMyVideosCategoryModelHandler ) : public CBase, - public MVcxHgMyVideosCategoryModelObserver + public MVcxHgMyVideosCategoryModelObserver, + public MThumbnailManagerObserver { public: @@ -47,7 +63,7 @@ * @param aModel Application model * @param aScroller Hg list component. */ - CVcxHgMyVideosCategoryModelHandler( + static CVcxHgMyVideosCategoryModelHandler* NewL( CVcxHgMyVideosModel& aModel, CHgScroller& aScroller ); @@ -86,6 +102,41 @@ */ TInt ResolveCategoryId( TInt aScrollerIndex ); + /** + * Plays last watched videdo. + * + * @param Ganes scroller list index + * @return Index of category + */ + void PlayLastWatchedVidedoL(); + + /** + * Returns video indicator. + * + * @return Reference to video indicator. + */ + CMyVideosIndicator& VideoIndicatorL(); + + /** + * Handles "ExtraItem" list item selection. + * + * @param aCategoryId Selected category id + * @param aItemType On return, item type + * @param aUid On return, UID if selected item contains UID + * @param aUrl On return, URL string if selected item contains URL + */ + void HandleExtraItemSelectionL( TInt aCategoryId, + TVcxHgMyVideosCategoryItemType& aItemType, + TUid& aUid, + TDes& aUrl ); + + /** + * Create empty icon to be used as category list default icon + * + * @return empty icon + */ + CGulIcon* CreateEmptyHgListIconL(); + public: // From MVcxHgMyVideosCategoryModelObserver /** @@ -93,8 +144,10 @@ * Ownership of array is transferred. * * @param aCategoryList List of categories + * @param aIsPartial ETrue if list fetching continues, and KVcxMessageMyVideosListComplete + * message will arrive. EFalse if this is last event of list fetching. */ - void NewCategoryListL( CMPXMediaArray* aCategoryList ); + void NewCategoryListL( CMPXMediaArray* aCategoryList, TBool aIsPartial ); /** * Called when the list of categories has been modified. @@ -108,17 +161,69 @@ * @param aMpxItemId MPX Item Id of the modified item. */ void CategoryModifiedL( TMPXChangeEventType aEventType, - TMPXItemId& aMpxItemId ); + TMPXItemId& aMpxItemId ); + + /* + * Called when a single video item has been fetched. + * Ownership of video is transferred. + * + * @param aVideo Video item. + */ + void VideoFetchingCompletedL( CMPXMedia* aVideo ); + + /** + * Called when category list items have been fetched. + */ + void CategoryListFetchingCompletedL(); + + public: // From MThumbnailManagerObserver) + + /** + * Preview thumbnail generation or loading is complete. + * + * @param aThumbnail An object representing the resulting thumbnail. + * @param aId Request ID for the operation + */ + void ThumbnailPreviewReady( MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); + + /** + * Final thumbnail bitmap generation or loading is complete. + * + * @param aError Error code. + * @param aThumbnail An object representing the resulting thumbnail. + * @param aId Request ID for the operation. + */ + void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); private: + + /** + * C++ constructor + * + * @param aModel Application model + * @param aScroller Hg list component. + */ + CVcxHgMyVideosCategoryModelHandler( + CVcxHgMyVideosModel& aModel, + CHgScroller& aScroller ); /** * Loads name of category from resources. * - * @param aIndex Index of category. + * @param aCategoryId Index of category. * @return Name of category. */ - HBufC* GetCategoryNameLC( TInt aIndex ); + HBufC* GetCategoryNameLC( TInt aCategoryId ); + + /** + * Loads icon for category + * + * @param aCategoryId Id of category + * @return Category icon + */ + CGulIcon* GetCategoryIconL( TInt aCategoryId ); /** * Formats second row text for categories. @@ -127,7 +232,15 @@ * @return Second row text for category. */ HBufC* FormatCategorySecondRowLC( CMPXMedia& aMedia ); - + + /** + * Formats second row text for categories. + * + * @param aCategoryId Category id. + * @return Second row text for category. + */ + HBufC* FormatCategorySecondRowLC( TInt aCategoryId ); + /** * Translates MPX Item Id to index on UI list. * @@ -180,6 +293,51 @@ */ TInt ResolveCategoryArrayIndexById( TInt aCategoryId ); + /** + * @param aCategoryId Category id to be found + * @return CMPXMedia + */ + CMPXMedia* GetCategoryDataL( TInt aCategoryId ); + + /** + * Gets the last watched videos data from collection. + * Result is returned asynchronously to VideoFetchingCompletedL callback. + */ + void FetchLastWatchedL(); + + /** + * Gets the last watched videos icon from tbn server. + * Result is returned asynchronously to ThumbnailReady callback. + */ + void LoadLastWatchedIconL(); + + /** + * Set indicator for last watched item + */ + void SetLastWatchedIndicatorL(); + + /** + * Final thumbnail bitmap generation or loading is complete. + * @param aError Error code. + * @param aThumbnail An object representing the resulting thumbnail. + * @param aId Request ID for the operation. + */ + void ThumbnailReadyL( TInt aError, MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); + + /** + * Create hg list icon from file + * + * @param aFileName mif file name + * @param aBitmapId bitmap index in mif file + * @param aMaskId mask index in mif file + * @return Icon + */ + CGulIcon* CreateHgListIconL( + const TFileName& aFileName, + TInt aBitmapId, + TInt aMaskId ); + private: /** @@ -201,12 +359,33 @@ CMPXMediaArray* iCategoryList; /** + * Last watched media. + * Own. + */ + CMPXMedia* iLastWatched; + + /** * TArray containing category ID's. Each index * corresponds to the scroller list (eg. correct * category ID for the 1st item in scroller list can * be found from index 0). */ RArray iCategoryIdArray; + + /** + * CVcxHgMyVideosThumbnailManager instance, not own. + */ + CVcxHgMyVideosThumbnailManager& iTnManager; + + /** + * Request ID of ongoing thumbnail request, or KErrNotFound. + */ + TThumbnailRequestId iTnRequestId; + + /** + * Video indicator class instance. Own. + */ + CMyVideosIndicator* iVideoIndicator; }; #endif // VCXHGMYVIDEOSCATEGORYMODELHANDLER_H diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelobserver.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelobserver.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscategorymodelobserver.h Fri Mar 12 15:43:00 2010 +0200 @@ -28,6 +28,7 @@ // FORWARD DECLARATIONS class CMPXMediaArray; +class CMPXMedia; // CLASS DECLARATION @@ -45,8 +46,10 @@ * Ownership of array is transferred. * * @param aCategoryList List of categories + * @param aIsPartial ETrue if list fetching continues, and KVcxMessageMyVideosListComplete + * message will arrive. EFalse if this is last event of list fetching. */ - virtual void NewCategoryListL( CMPXMediaArray* aCategoryList ) = 0; + virtual void NewCategoryListL( CMPXMediaArray* aCategoryList, TBool aIsPartial ) = 0; /** * Called when the list of categories has been modified. @@ -60,7 +63,21 @@ * @param aMpxItemId MPX Item Id of the modified item. */ virtual void CategoryModifiedL( TMPXChangeEventType aEventType, - TMPXItemId& aMpxItemId ) = 0; + TMPXItemId& aMpxItemId ) = 0; + + /* + * Called when a single video item has been fetched. + * Ownership of video is transferred. + * + * @param aVideo Video item. + */ + virtual void VideoFetchingCompletedL( CMPXMedia* aVideo ) = 0; + + /** + * Called when category list items have been fetched. + */ + virtual void CategoryListFetchingCompletedL() = 0; + }; #endif // VCXHGMYVIDEOSCATEGORYMODELOBSERVER_H diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideoscenrepkeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscenrepkeys.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,72 @@ + +/* +* Copyright (c) 2010 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 VCXHGMYVIDEOSMAINVIEWCENREPKEYS_H +#define VCXHGMYVIDEOSMAINVIEWCENREPKEYS_H + + +enum TMyVideosListItemType + { + EMyVideosListItemTypeEmpty = 0, + EMyVideosListItemTypeLastWatched, + EMyVideosListItemTypeCapturedVideos, + EMyVideosListItemTypeOtherVideos, + EMyVideosListItemTypeExtra1, + EMyVideosListItemTypeExtra2, + EMyVideosListItemTypeExtra3 + }; + +// CONSTANTS + +// CenRep: UID +const TUid KMyVideosMainViewCenRepUid = { 0x20021191 }; + +// CenRep: Keys +const TInt KCRVideoPlayerItemLocation1 = 0x01; +const TInt KCRVideoPlayerItemLocation2 = 0x02; +const TInt KCRVideoPlayerItemLocation3 = 0x03; +const TInt KCRVideoPlayerItemLocation4 = 0x04; +const TInt KCRVideoPlayerItemLocation5 = 0x05; +const TInt KCRVideoPlayerItemLocation6 = 0x06; +const TInt KCRVideoPlayerItemLocation7 = 0x07; + +const TInt KCRVideoPlayerCapturedVideosIconPath = 0x0A; +const TInt KCRVideoPlayerOtherVideosIconPath = 0x0B; + +const TInt KCRVideoPlayerExtraItem1IconPath = 0x10; +const TInt KCRVideoPlayerExtraItem1Title = 0x11; +const TInt KCRVideoPlayerExtraItem1Text = 0x12; +const TInt KCRVideoPlayerExtraItem1Url = 0x13; +const TInt KCRVideoPlayerExtraItem1Uid = 0x14; + +const TInt KCRVideoPlayerExtraItem2IconPath = 0x20; +const TInt KCRVideoPlayerExtraItem2Title = 0x21; +const TInt KCRVideoPlayerExtraItem2Text = 0x22; +const TInt KCRVideoPlayerExtraItem2Url = 0x23; +const TInt KCRVideoPlayerExtraItem2Uid = 0x24; + +const TInt KCRVideoPlayerExtraItem3IconPath = 0x30; +const TInt KCRVideoPlayerExtraItem3Title = 0x31; +const TInt KCRVideoPlayerExtraItem3Text = 0x32; +const TInt KCRVideoPlayerExtraItem3Url = 0x33; +const TInt KCRVideoPlayerExtraItem3Uid = 0x34; + +#endif //VCXHGMYVIDEOSMAINVIEWCENREPKEYS_H + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideoscollectionclient.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideoscollectionclient.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideoscollectionclient.h Fri Mar 12 15:43:00 2010 +0200 @@ -171,30 +171,7 @@ * @param aMpxItemId MPX item id */ void PlayVideoL( TMPXItemId aMpxItemId ); - - /** - * Sets attribute value to MPX Collection. - * - * @param aMedia MPX Media object to change. - * @param aAttribute MPX attribute to change. - * @param aValue New value for attribute. - */ - void SetAttributeL( const CMPXMedia& aMedia, - const TMPXAttribute& aAttribute, - const TUint32 aValue ); - - void SetAttributeL( const CMPXMedia& aMedia, - const TMPXAttribute& aAttribute, - const TReal32 aValue ); - - /** - * Returns MPX Media object most recently requested with method call - * FetchMpxMediaByMpxIdL(). - * - * @return Latest MPX Media object or NULL. - */ - CMPXMedia* GetLatestFetchedMpxMediaL(); - + /** * Fetches MPX Media object based on MPX ID. Fetched MPX Media object * is returned through callback interface MVcxHgMyVideosVideoModelObserver. @@ -344,6 +321,14 @@ void HandleGetMediasByMpxIdRespL( CMPXMessage* aMessage, TInt aError ); /** + * Handles list complete message, called by HandleSingleCollectionMessageL(). + * + * @param aMessage collection message. + * @param aError system error code. + */ + void HandleMyVideosListCompleteL( CMPXMessage* aMessage, TInt aError ); + + /** * Handles response message when video details requested. * * @param aMessage collection message. @@ -396,12 +381,6 @@ */ TVcxHgMyVideosCollectionCommand iPendingCommand; - /** - * Variable for storing latest MPX Media object fetched separately. - * Own. - */ - CMPXMedia* iLatestMpxMedia; - #if defined(_DEBUG) && IPTV_LOGGING_METHOD != 0 private: /** @@ -409,6 +388,7 @@ */ void DebugPrintVideoListL( CMPXMediaArray* aVideoArray ); #endif // _DEBUG && IPTV_LOGGING_METHOD + }; #endif // VCXHGMYVIDEOSCOLLECTIONCLIENT_H diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h Fri Mar 12 15:43:00 2010 +0200 @@ -23,7 +23,7 @@ // INCLUDE FILES #include #include -#include "CIptvUtil.h" + #include class CVcxHgMyVideosVideoModelHandler; diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosmainview.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosmainview.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosmainview.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 14 % +// Version : %version: 17 % #ifndef VCXHGMYVIDEOSMAINVIEW_H #define VCXHGMYVIDEOSMAINVIEW_H @@ -152,6 +152,21 @@ */ void UpdateLayout(); + /** + * Launches external application. + * + * @param aAppUid Application UID + * @param aMsg Message to send + */ + void LaunchAppL( const TUid aAppUid, const TDesC& aMsg = KNullDesC() ); + + /** + * Launches standalone browser application. + * + * @param aUrl URL to open. + */ + void LaunchBrowserL( const TDesC& aUrl ); + private: // Constructors /** diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosmodel.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosmodel.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosmodel.h Fri Mar 12 15:43:00 2010 +0200 @@ -23,10 +23,7 @@ // INCLUDE FILES #include #include -#include #include -#include -#include #include "CIptvDriveMonitor.h" @@ -35,9 +32,7 @@ class CVcxHgMyVideosCollectionClient; class CVcxHgMyVideosDownloadClient; class CRepository; -class CIptvLastWatchedApi; -class CIptvLastWatchedData; - +class CVcxHgMyVideosThumbnailManager; // CONSTANTS @@ -52,7 +47,6 @@ * @lib vcxhgmyvideos.lib */ NONSHARABLE_CLASS( CVcxHgMyVideosModel ) : public CBase, - public MThumbnailManagerObserver, public MIptvDriveMonitorObserver { public: @@ -174,6 +168,14 @@ * @param aSortOrder New video list sort order. */ void SetVideolistSortOrderL( TVcxMyVideosSortingOrder aSortOrder ); + + /** + * Gets the last watched video id from CenRep. + * + * @param aId Video's mpx id (iId1). + * @return System wide error code + */ + TInt GetLastWatchedIdL( TInt& aId ); /** * Gets video list sort order (from CenRep). @@ -183,59 +185,29 @@ TVcxMyVideosSortingOrder VideolistSortOrderL(); /** - * Should be called when playback of video is stopping. Updates last - * play point of video to 'Last Watched' dat-file. - */ - void UpdateLastWatchedPlayPositionL( TUint32 aLastVideoPlayPoint ); - - /** - * Cancels the download completed soft notification. + * Gets the My Videos customization integer from CenRep. + * + * @param aKey CenRep key for the value to be fetched. + * @param aValue On return, fetched value. + * @return System wide error code */ - void ResetDownloadNotification(); - - /** - * Should be called when playback of video is starting. Updates 'Last - * Watched' information to Matrix and dat-file. - * - * @param aVideoInfo Information about played video. - * @param aMpxId1 MPX ID 1 of the played video. - * @param aAgeProfile Age profile of the video for parental control. - */ - void SetVideoAsLastWatchedL( TVideoPlayerCustomMessage& aVideoInfo, - TInt aMpxId1, - TUint32 aAgeProfile ); + TInt GetMyVideosCustomizationInt( const TInt& aKey, TInt& aValue ); /** - * Reads information about 'Last Watched' video clip from dat-file. + * Gets the My Videos customization string from CenRep. * - * @param aVideoInfo On return, information about last played video. - * @param aMpxId1 On return, MPX Item Id 1. - * @param aAgeProfile On return, the age profile of the video for - * parental control + * @param aKey CenRep key for the value to be fetched. + * @param aValue On return, fetched value. + * @return System wide error code */ - void GetLastWatchedDataL( TVideoPlayerCustomMessage& aVideoInfo, - TUint32& aMpxId1, - TUint32& aAgeProfile ); - - public: // From MThumbnailManagerObserver - + TInt GetMyVideosCustomizationString( const TInt& aKey, TDes& aValue ); /** - * Preview thumbnail generation or loading is complete. + * Returns reference to Thumbnail Manager. * - * @param aThumbnail An object representing the resulting thumbnail. - * @param aId Request ID for the operation + * @return Reference to Thumbnail Manager. */ - void ThumbnailPreviewReady( MThumbnailData& aThumbnail, TThumbnailRequestId aId ); - - /** - * Final thumbnail bitmap generation or loading is complete. - * - * @param aError Error code. - * @param aThumbnail An object representing the resulting thumbnail. - * @param aId Request ID for the operation. - */ - void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, TThumbnailRequestId aId ); - + CVcxHgMyVideosThumbnailManager& ThumbnailManager() const; + public: // from MIptvDriveMonitorObserver /** @@ -256,53 +228,11 @@ * Symbian 2nd phase constructor. */ void ConstructL(); - - /** - * If needed creates, and returns pointer to Last Watched API. - * - * @return Pointer to Last Watched API. - */ - CIptvLastWatchedApi* LastWatchedApiL(); /** - * If needed creates, and returns pointer to Last Watched Data. - * - * @return Pointer to Last Watched Data. - */ - CIptvLastWatchedData* LastWatchedDataL(); - - /** - * Copies data from one Video Player Custom message to another. - * - * @param aSource Source object. - * @param aTarget Target object. + * Initializes MyVideos customization CenRep session. */ - void CopyVideoPlayerCustomMessageL( TVideoPlayerCustomMessage& aSource, - TVideoPlayerCustomMessage& aTarget ); - - /** - * If needed creates, and returns pointer to Video Player Custom Message. - * - * @return Pointer to Video Player Custom Message. - */ - TVideoPlayerCustomMessage* VideoPlayerCustomMessageL(); - - /** - * Handles ThumbnailReady() call. - * - * @param aError Error code. - * @param aThumbnail An object representing the resulting thumbnail. - * @param aId Request ID for the operation. - */ - void HandleThumbnailReadyL( TInt aError, - MThumbnailData& aThumbnail, - TThumbnailRequestId aId ); - /** - * If needed creates, and returns pointer to Thumbnail Manager. - * - * @return Pointer to Thumbnail Manager. - */ - CThumbnailManager* ThumbnailManagerL(); + TInt InitMyVideosCenRepL(); private: @@ -346,44 +276,21 @@ CRepository* iCollectionCenRep; /** - * Pointer to 'Last Watched' API. - * Own. - */ - CIptvLastWatchedApi* iLastWatchedApi; - - /** - * Pointer to 'Last Watched' data object. - * Own. - */ - CIptvLastWatchedData* iLastWatchedData; - - /** - * Pointer to Video Player custom message. + * Session to My Videos customization CenRep. * Own. */ - TVideoPlayerCustomMessage* iVideoPlayerCustomMessage; - - /** - * S60 Thumbnail Manager. - * Own. - */ - CThumbnailManager* iTnManager; - - /** - * Request ID of ongoing thumbnail request, or KErrNotFound. - */ - TThumbnailRequestId iTnRequestId; - - /** - * Pointer to Mediator Event class. - * Own. - */ - CMediatorEventProvider* iMediatorEventProvider; + CRepository* iMyVideosCenRep; /** * Video list sort order. */ TVcxMyVideosSortingOrder iSortOrder; + + /** + * Thumbnail Manager. + * Own. + */ + CVcxHgMyVideosThumbnailManager* iTnManager; }; #endif // VCXHGMYVIDEOSMODEL_H diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosthumbnailmanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosthumbnailmanager.h Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,148 @@ +/* +* Copyright (c) 2010 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: CVcxHgMyVideosThumbnailManager class definition* +*/ + + +#ifndef VCXHGMYVIDEOSTHUMBNAILMANAGER_H +#define VCXHGMYVIDEOSTHUMBNAILMANAGER_H + +// INCLUDE FILES +#include +#include + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** + * + * @lib vcxhgmyvideos.lib + */ +NONSHARABLE_CLASS( CVcxHgMyVideosThumbnailManager ) : + public CBase, + public MThumbnailManagerObserver + { + public: + + /** + * Two-phased constructor. + * + * @return New object. + */ + static CVcxHgMyVideosThumbnailManager* NewL(); + + /** + * Two-phased constructor. + * + * @return New object. + */ + static CVcxHgMyVideosThumbnailManager* NewLC(); + + /** + * Destructor. + */ + virtual ~CVcxHgMyVideosThumbnailManager(); + + private: // From MThumbnailManagerObserver + + /** + * Preview thumbnail generation or loading is complete. + * + * @param aThumbnail An object representing the resulting thumbnail. + * @param aId Request ID for the operation + */ + void ThumbnailPreviewReady( MThumbnailData& aThumbnail, TThumbnailRequestId aId ); + + /** + * Final thumbnail bitmap generation or loading is complete. + * + * @param aError Error code. + * @param aThumbnail An object representing the resulting thumbnail. + * @param aId Request ID for the operation. + */ + void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, TThumbnailRequestId aId ); + + public: // New methods + /** + * Peeks if there is thumbnail and fetches it if it exist. + * No thumbnail creation is started when thumbnail does not exist. + * + * @param aSource + * @return TThumbnailRequestId. + */ + TThumbnailRequestId PeekL( CThumbnailObjectSource& aSource ); + + /** + * Gets thumbnail and creates it if it does not exist. + * + * @param aSource + * @return TThumbnailRequestId. + */ + TThumbnailRequestId GetL( CThumbnailObjectSource& aSource ); + + /** + * Cancels thumbnail request + * + * @param aRequestId + */ + void Cancel( TThumbnailRequestId aRequestId ); + + /** + * Adds observer. + * + * @param aObserver + */ + void AddObserverL( MThumbnailManagerObserver& aObserver ); + + /** + * Removes observer. + * + * @param aObserver + */ + void RemoveObserver( MThumbnailManagerObserver& aObserver ); + + private: + + /** + * Default constructor + */ + CVcxHgMyVideosThumbnailManager(); + + /** + * SessionL + * @return CThumbnailManager ref. + */ + CThumbnailManager& SessionL(); + + private: + + /** + * S60 Thumbnail Manager. + * Own. + */ + CThumbnailManager* iTnManager; + + /** + * Used for storing the observers. Pointers are not own. + */ + RPointerArray iTnObservers; + + /** + * Stores current thumbnail generation flags + */ + CThumbnailManager::TThumbnailFlags iCurrentFlags; + }; + +#endif // VCXHGMYVIDEOSTHUMBNAILMANAGER_H diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosvideodata.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodata.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodata.h Fri Mar 12 15:43:00 2010 +0200 @@ -40,10 +40,10 @@ enum TVideoDataState { EVideoDataStateNone = 0, + EVideoDataStateThumbnailPeekStarted, + EVideoDataStateThumbnailPeekFinished, EVideoDataStateThumbnailStarted, - EVideoDataStateThumbnailFinished, - EVideoDataStateDrmStarted, - EVideoDataStateDrmFinished + EVideoDataStateThumbnailFinished }; public: diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosvideodataupdater.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodataupdater.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideodataupdater.h Fri Mar 12 15:43:00 2010 +0200 @@ -94,12 +94,27 @@ /** * Called by video list implementation when new data is needed. - * Appends data item into buffer. + * Appends data item into buffer and flushes it to start fetching. * * @param aMPXItemId MPX item id of video data. */ void RequestDataL( TMPXItemId aMPXItemId ); - + + /** + * Called by video list implementation when new data is needed. + * Appends data item into buffer that needs to be flushed using + * FlushRequestBufferL() to start fetching. + * + * @param aMPXItemId MPX item id of video data. + */ + void AddToRequestBufferL( TMPXItemId aMPXItemId ); + + /** + * Called by video list implementation when new data is needed. + * Flushes fetch requests from buffer. + */ + void FlushRequestBufferL(); + /** * Called by video list implementation when data is not needed anymore. * Removes data item from buffer. @@ -175,9 +190,10 @@ TInt IndexByMPXItemId( TMPXItemId aMpxItemId ); /** - * Selects next index to be fetched. + * Selects next index to be fetched. + * @param aSelectForPeekOnly */ - void SelectNextIndexL(); + void SelectNextIndexL( TBool aSelectForPeekOnly ); /** * Removes item from fetch array. @@ -213,14 +229,7 @@ /** * Updates fetched video data to UI. */ - void UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& videoData ); - - /** - * If needed creates, and returns pointer to Thumbnail Manager. - * - * @return Pointer to Thumbnail Manager. - */ - CThumbnailManager* ThumbnailManagerL(); + void UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& aVideoData ); /** * Checks if list refreshing is needed. @@ -239,7 +248,22 @@ * Refreshes the ganes list. */ void RefreshScreen(); - + + /** + * Checks DRM properties + */ + void CheckDrmL( CVcxHgMyVideosVideoData& aVideoData ); + + /** + * Gets active request count + */ + void GetActiveRequestCount( TInt& aPeekRequests, TInt& aGetRequests ); + + /** + * Starts thumbnail fetch + */ + void StartThumbnailL( CVcxHgMyVideosVideoData& aItem, TBool aPeek ); + protected: /** @@ -265,13 +289,7 @@ * Not own. */ CVcxHgMyVideosVideoList& iVideoArray; - - /** - * S60 Thumbnail Manager. - * Own. - */ - CThumbnailManager* iTnEngine; - + /** * Used for indicating that list needs to be refreshed. * Own. diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosvideolistimpl.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideolistimpl.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideolistimpl.h Fri Mar 12 15:43:00 2010 +0200 @@ -34,7 +34,6 @@ class CAknWaitDialog; class CVcxHgMyVideosVideoCopier; class CVcxHgMyVideosUPnPInterface; -class CVcxHgTelephonyClient; class CHgScroller; class CSendUi; class CDRMHelper; @@ -375,14 +374,6 @@ void CloseDeleteWaitNote(); /** - * Checks parental control for a video, and asks lock code. - * - * @leave KErrPermissionDenied If not allowed to play. - * @param aAgeProfile Age profile for the video to be checked. - */ - void CheckParentalControlL( TUint32 aAgeProfile ); - - /** * Fetch SendUI messaging configuration from CenRep * * @return Messaging configuration from CenRep @@ -415,11 +406,6 @@ CVcxHgMyVideosVideoModelHandler* iVideoModel; /** - * Index of video currently in play. - */ - TInt iCurrentlyPlayedVideo; - - /** * Delete wait dialog. * Own. */ @@ -436,23 +422,6 @@ * Own. */ CVcxHgMyVideosUPnPInterface* iUPnP; - - /** - * Central repository access needed for parental control setting. - * Own. - */ - CRepository* iCenRep; - - /** - * Telephony client, used for asking lock code from user. - * Own. - */ - CVcxHgTelephonyClient* iTelephonyClient; - - /** - * Flag for marking mode. True when marking mode enabled. - */ - TBool iMultipleMarkingActive; /** * SendUI diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/inc/vcxhgmyvideosvideomodelhandler.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosvideomodelhandler.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideomodelhandler.h Fri Mar 12 15:43:00 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 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" @@ -37,7 +37,6 @@ class TVcxHgMyVideosVideoDetailsDialog; class CVcxHgMyVideosVideoList; class CHgScroller; -class TVideoPlayerCustomMessage; class CMyVideosIndicator; // CLASS DECLARATION @@ -169,22 +168,6 @@ * @param aMarkCommand Mark command. */ void HandleMarkCommandL( TInt aMarkCommand ); - - /** - * Returns last playback position of video, video identified by URI. - * - * @param aContentUri URL or path to video. - * @return Last playback position. - */ - TInt LastPlaybackPosition( const TDesC& aContentUri ); - - /** - * Stores last playback position of video, video identified by URI. - * - * @param aContentUri URL or path to video. - * @param aPosition Last playback position. - */ - void SetLastPlaybackPositionL( const TDesC& aContentUri, TInt aPosition ); /** * Returns video's name. @@ -248,26 +231,6 @@ * @param aIndex Video's index on UI list. */ void CancelDownloadL( TInt aIndex ); - - /** - * Returns Video Player custom message of a video. - * - * @param aFilteredIndex Video's index on filtered UI list. - * @param aVideoInfo On return, Video Player custom message with video information. - * @param aMpxId1 On return, MPX ID 1 of the video. - */ - TInt GetVideoPlayerCustomMessage( TInt aFilteredIndex, - TVideoPlayerCustomMessage& aVideoInfo, - TInt& aMpxId1 ); - - /** - * Returns Video Player custom message of a video. - * - * @param aMpxItemId MPX Item Id of the video. - * @param aVideoInfo On return, Video Player custom message with video information. - */ - TInt GetVideoPlayerCustomMessage( TMPXItemId& aMpxItemId, - TVideoPlayerCustomMessage& aVideoInfo ); /** * Returns age profile of a video. @@ -303,22 +266,6 @@ TBool FindVideoMpxIdL( const TDesC& aVideoPath, TMPXItemId& aMpxItemId ); /** - * Informative call about video being played. Method removes possible new - * indicator from video. - * - * @param aIndex Video's index on UI list. - */ - void ClearNewVideoIndicatorL( TInt aIndex ); - - /** - * Informative call about video being played. Method removes possible new - * indicator from video. - * - * @param aMpxItemId Video's MPX item Id. - */ - void ClearNewVideoIndicatorL( TMPXItemId& aMpxItemId ); - - /** * Gets data of currently highlighted video, and passes it to * TVcxHgMyVideosVideoDetailsDialog::ShowVideoDetailsDialogL(). */ @@ -531,6 +478,25 @@ */ void UpdateScrollbarTypeL( const TVcxMyVideosSortingOrder& aSortingOrder ); + /** + * Resets scroller items for refetch only + */ + void ResetScrollerItemsL(); + + /** + * Resets scroller buffer and items for refetch + * This is fastest way to reset scroller when item count is unchanged + */ + void ResetScrollerBufferAndItemsL(); + + /** + * Resizes scroller with refetch + * This is faster way to reset scroller than CHgScroller::Reset() and + * CHgScroller::ResizeL() calls combined + * @param aNewItemCount New item count + */ + void ResizeScrollerL( TInt aNewItemCount ); + private: /** diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/CIptvDriveMonitor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/CIptvDriveMonitor.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,828 @@ +/* +* Copyright (c) 2010 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: +* +*/ + + + + + +// INCLUDE FILES +#include "CIptvDriveMonitor.h" +#include "MIptvDriveMonitorObserver.h" +#include "TIptvDriveMonitorEvent.h" +#include +#ifdef RD_MULTIPLE_DRIVE_ENABLERS +#include +#endif +#include + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS +#if IPTV_LOGGING_METHOD != 0 +_LIT( KIptvMediaNotPresentDes, "EMediaNotPresent"); +_LIT( KIptvMediaUnknownDes, "EMediaUnknown"); +_LIT( KIptvMediaFloppyDes, "EMediaFloppy"); +_LIT( KIptvMediaHardDiskDes, "EMediaHardDisk"); +_LIT( KIptvMediaCdRomDes, "EMediaCdRom"); +_LIT( KIptvMediaRamDes, "EMediaRam"); +_LIT( KIptvMediaFlashDes, "EMediaFlash"); +_LIT( KIptvMediaRomDes, "EMediaRom"); +_LIT( KIptvMediaRemoteDes, "EMediaRemote"); +_LIT( KIptvMediaNANDFlashDes, "EMediaNANDFlash"); +#endif + +// MACROS + +// LOCAL CONSTANTS AND MACROS + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// ============================= LOCAL FUNCTIONS =============================== + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::CIptvDriveMonitor +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CIptvDriveMonitor::CIptvDriveMonitor() +: CActive( EPriorityStandard ) + { + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::CIptvDriveMonitor() start"); + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::CIptvDriveMonitor() exit"); + } + +// ----------------------------------------------------------------------------- +// CIptvEvents::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::ConstructL( const RFs& aFileSession ) + { + iFs = aFileSession; + iIfsIsProvidedByUser = ETrue; + + ConstructL(); + } + +// ----------------------------------------------------------------------------- +// CIptvEvents::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::ConstructL() + { + iObservers.Reset(); + iAvailableDrives.Reset(); + iPreviousAvailableDrives.Reset(); + + if ( !iIfsIsProvidedByUser ) + { + User::LeaveIfError( iFs.Connect() ); + } + + iSystemDrive = iFs.GetSystemDrive(); + TInt err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, iDefaultMassStorageDrive ); + if ( err != KErrNone ) + { + iDefaultMassStorageDrive = KErrNotFound; + } + err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, iDefaultMemoryCardDrive ); + if ( err != KErrNone ) + { + iDefaultMassStorageDrive = KErrNotFound; + } + + CActiveScheduler::Add( this ); + RefreshAvailableDrivesL(); + + IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: PhoneMemoryDrive() returns %d", + PhoneMemoryDrive()); + IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: MemoryCardDrive() returns %d", + MemoryCardDrive()); + IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: MassStorageDrive() returns %d", + MassStorageDrive()); + IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: FixedDrive(c-drive excluded) returns %d", + FixedDrive( ETrue )); + +#if IPTV_LOGGING_METHOD != 0 + PrintAvailableDrives(); +#endif + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CIptvDriveMonitor* CIptvDriveMonitor::NewL() + { + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL() start"); + + CIptvDriveMonitor* self = new( ELeave ) CIptvDriveMonitor(); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(self); + + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL() exit"); + + return self; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CIptvDriveMonitor* CIptvDriveMonitor::NewL( const RFs& aFileSession ) + { + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL(RFs&) start"); + + CIptvDriveMonitor* self = new( ELeave ) CIptvDriveMonitor(); + + CleanupStack::PushL( self ); + self->ConstructL( aFileSession ); + CleanupStack::Pop(self); + + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::NewL(RFs&) exit"); + + return self; + } + +// Destructor +CIptvDriveMonitor::~CIptvDriveMonitor() + { + iObservers.Close(); + iAvailableDrives.Close(); + iPreviousAvailableDrives.Close(); + Cancel(); + + if ( !iIfsIsProvidedByUser ) + { + iFs.Close(); + } + } + + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::RegisterObserverL +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::RegisterObserverL( MIptvDriveMonitorObserver* aObserver ) + { + iObservers.AppendL( aObserver ); + + if ( !IsActive() ) + { + iFs.NotifyChange( ENotifyDisk, iStatus ); + SetActive(); + } + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::RemoveObserverL +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::RemoveObserverL( MIptvDriveMonitorObserver* aObserver ) + { + TInt i; + for ( i = 0; i < iObservers.Count(); i++ ) + { + if ( aObserver == iObservers[i] ) + { + iObservers.Remove( i ); + iObservers.Compress(); + break; + } + } + + if ( iObservers.Count() == 0 ) + { + iFs.NotifyChangeCancel(); + } + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::RefreshAvailableDrivesL +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::RefreshAvailableDrivesL() + { + IPTVLOGSTRING_LOW_LEVEL("CIptvDriveMonitor::RefreshAvailableDrivesL() start"); + + TDriveList driveList; + User::LeaveIfError( iFs.DriveList( driveList ) ); + + iPreviousAvailableDrives.Reset(); + TInt i; + for ( i = 0; i < iAvailableDrives.Count(); i++ ) + { + iPreviousAvailableDrives.Append( iAvailableDrives[i] ); + } + + iAvailableDrives.Reset(); + + for ( i = 0; i < driveList.Length(); i++ ) + { + if ( driveList[i] != 0 ) + { + TDriveInfo driveInfo; + User::LeaveIfError( iFs.Drive( driveInfo, i ) ); + + IPTVLOGSTRING3_LOW_LEVEL("CIptvDriveMonitor:: drive[%d]: type = %S", + i, + &DriveTypeDes( driveInfo.iType )); + + IPTVLOGSTRING3_LOW_LEVEL( + "CIptvDriveMonitor:: MediaAtt flags = %x DriveAtt flags = %x", + driveInfo.iMediaAtt, + driveInfo.iDriveAtt ); + +#ifdef __WINSCW__ + // (2) c-drive is EMediaRam + // (3) d-drive is EMediaHardDisk + // (4) e-drive is EMediaHardDisk or EMediaNotPresent + // (25) z-drive is EMediaRom + if ( (driveInfo.iType == EMediaRam) || // c + ((driveInfo.iType == EMediaHardDisk) && i != EDriveD /* skip d */) || // e + (driveInfo.iType == EMediaNANDFlash) || // nothing + (driveInfo.iType == EMediaNotPresent) ) // e +#else + // (2) c-drive is EMediaNANDFlash + // (3) d-drive is EMediaRam + // (4) e-drive is EMediaHardDisk or EMediaNotPresent + // (5) f-drive is EMediaHardDisk or EMediaNotPresent + // (25) z-drive is EMediaRom + if ( (driveInfo.iType == EMediaHardDisk) || // e,f + (driveInfo.iType == EMediaNANDFlash) || // c + (driveInfo.iType == EMediaNotPresent) ) // e,f +#endif // __WINSCW__ + { + if ( !(driveInfo.iMediaAtt & KMediaAttWriteProtected) && + (driveInfo.iDriveAtt & KDriveAttLocal) ) + { + TIptvDriveInfo iptvDriveInfo; + TVolumeInfo volumeInfo; + TChar ch; + + iFs.DriveToChar( i, ch ); + + iptvDriveInfo.iDrive = i; + iptvDriveInfo.iDriveChar = ch; + iptvDriveInfo.iType = driveInfo.iType; + + TUint driveStatus; + TInt err = DriveInfo::GetDriveStatus( iFs, i, driveStatus ); + if ( err == KErrNone ) + { + if ( driveStatus & DriveInfo::EDriveRemovable ) + { + iptvDriveInfo.iFlags |= TIptvDriveInfo::ERemovable; + } + } + + TInt massStorageDrive; + err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, + massStorageDrive ); + if ( err == KErrNone ) + { + if ( i == massStorageDrive ) + { + iptvDriveInfo.iFlags |= TIptvDriveInfo::EMassStorage; + } + } + + if ( driveInfo.iMediaAtt & KMediaAttLocked ) + { + iptvDriveInfo.iFlags |= TIptvDriveInfo::ELocked; + } + if ( driveInfo.iType == EMediaNotPresent ) + { + iptvDriveInfo.iFlags |= TIptvDriveInfo::EMediaNotPresent; + } + + // When mass storage mode is activated while application is running, + // the only hint about that is the TVolumeInfo not being available. + // Therefore we mark drive as EMediaNotPresent if that structure + // is not available. + if ( iFs.Volume( volumeInfo, i ) != KErrNone ) + { + iptvDriveInfo.iFlags |= TIptvDriveInfo::EMediaNotPresent; + iptvDriveInfo.iVolumeName.Zero(); + } + else + { + iptvDriveInfo.iVolumeName = volumeInfo.iName; + } + + if ( iptvDriveInfo.iFlags & TIptvDriveInfo::EMediaNotPresent ) + { + iptvDriveInfo.iFlags |= TIptvDriveInfo::ERemovable; + } + + iAvailableDrives.AppendL( iptvDriveInfo ); + } + } + } + } // for + + // if e and f-drives are available, then c-drive is removed from the available drives list + if ( ArrayPos( EDriveE ) != KErrNotFound && + ArrayPos( EDriveF ) != KErrNotFound ) + { + TInt cDrivePos = ArrayPos( EDriveC ); + if ( cDrivePos != KErrNotFound ) + { + IPTVLOGSTRING_LOW_LEVEL( + "CIptvDriveMonitor:: e & f-drives available -> removing c from available drives"); + iAvailableDrives.Remove( cDrivePos ); + iAvailableDrives.Compress(); + } + } + + IPTVLOGSTRING_LOW_LEVEL("CIptvDriveMonitor::RefreshAvailableDrivesL() exit"); + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::ArrayPos +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::ArrayPos( TInt aDrive ) + { + TInt i; + for (i = 0; i < iAvailableDrives.Count(); i++ ) + { + if ( iAvailableDrives[i].iDrive == aDrive ) + { + return i; + } + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::ArrayPosL +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::ArrayPosL( TInt aDrive ) + { + TInt pos; + User::LeaveIfError( pos = ArrayPos( aDrive ) ); + return pos; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::MemoryCardDriveL +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::MemoryCardDriveL() + { + TInt drive; + User::LeaveIfError( drive = MemoryCardDrive() ); + return drive; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::MemoryCardDrive +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::MemoryCardDrive() + { + TInt i; + for ( i = 0; i < iAvailableDrives.Count(); i++ ) + { + if ( iAvailableDrives[i].iDrive == iDefaultMemoryCardDrive ) + { + return iAvailableDrives[i].iDrive; + } + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::MassStorageDriveL +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::MassStorageDriveL() + { + TInt drive; + User::LeaveIfError( drive = MassStorageDrive() ); + return drive; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::MassStorageDrive +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::MassStorageDrive() + { + TInt i; + for ( i = 0; i < iAvailableDrives.Count(); i++ ) + { + if ( iAvailableDrives[i].iDrive == iDefaultMassStorageDrive ) + { + return iAvailableDrives[i].iDrive; + } + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::PhoneMemoryDriveL +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::PhoneMemoryDriveL() + { + TInt drive; + User::LeaveIfError( drive = PhoneMemoryDrive() ); + return drive; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::PhoneMemoryDrive +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::PhoneMemoryDrive() + { + TInt i; + for ( i = 0; i < iAvailableDrives.Count(); i++ ) + { + if ( iAvailableDrives[i].iDrive == iSystemDrive ) + { + return iAvailableDrives[i].iDrive; + } + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::FixedDriveL +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::FixedDriveL( TBool aExcludeCDrive ) + { + TInt drive; + User::LeaveIfError( drive = FixedDrive( aExcludeCDrive ) ); + return drive; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::FixedDrive +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::FixedDrive( TBool aExcludeCDrive ) + { + TInt i; + for ( i = 0; i < iAvailableDrives.Count(); i++ ) + { + IPTVLOGSTRING2_LOW_LEVEL("CIptvDriveMonitor:: iAvailableDrives[%d]", i); + + if ( !(iAvailableDrives[i].iFlags & TIptvDriveInfo::ERemovable) ) + { + if ( iAvailableDrives[i].iDrive != EDriveC ) + { + IPTVLOGSTRING2_LOW_LEVEL("CIptvDriveMonitor:: FixedDrive() returning drive %d", iAvailableDrives[i].iDrive); + return iAvailableDrives[i].iDrive; + } + else + { + if ( !aExcludeCDrive ) + { + IPTVLOGSTRING2_LOW_LEVEL("CIptvDriveMonitor:: FixedDrive() returning drive %d", iAvailableDrives[i].iDrive); + return iAvailableDrives[i].iDrive; + } + } + } + } + IPTVLOGSTRING_LOW_LEVEL("CIptvDriveMonitor:: FixedDrive() fixed drive not found"); + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::IsMassStorageDriveL +// ----------------------------------------------------------------------------- +// +TBool CIptvDriveMonitor::IsMassStorageDriveL( TInt aDrive ) + { + if ( aDrive == iDefaultMassStorageDrive ) + { + return ETrue; + } + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::IsMemoryCardDriveL +// ----------------------------------------------------------------------------- +// +TBool CIptvDriveMonitor::IsMemoryCardDriveL( TInt aDrive ) + { + TInt pos = ArrayPosL( aDrive ); + if ( iAvailableDrives[pos].iFlags & TIptvDriveInfo::ERemovable ) + { + return ETrue; + } + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::IsPresentL() +// ----------------------------------------------------------------------------- +// +TBool CIptvDriveMonitor::IsPresentL( TInt aDrive ) + { + TInt pos = ArrayPosL( aDrive ); + TUint32 flags = iAvailableDrives[pos].iFlags; + if ( (flags & TIptvDriveInfo::ELocked) || (flags & TIptvDriveInfo::EMediaNotPresent) ) + { + return ETrue; + } + return EFalse; + } + + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::SystemDrive() +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::SystemDrive() + { + return iSystemDrive; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::IsMmcInserted() +// ----------------------------------------------------------------------------- +// +TBool CIptvDriveMonitor::IsMmcInserted() + { + TInt drive = MemoryCardDrive(); + + if ( drive == KErrNotFound ) + { + return EFalse; + } + + TInt arrayPos = ArrayPos( drive ); + + if ( arrayPos == KErrNotFound ) + { + return EFalse; + } + + TUint32 flags = iAvailableDrives[arrayPos].iFlags; + + if ( (flags & TIptvDriveInfo::ELocked) || (flags & TIptvDriveInfo::EMediaNotPresent) ) + { + return EFalse; + } + + return ETrue; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::RunL() +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::RunL() + { + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::RunL() start"); + + if ( iStatus == KErrNone ) + { + iFs.NotifyChange( ENotifyDisk, iStatus ); + + TRAPD( err, RefreshAvailableDrivesL() ); + if ( err != KErrNone ) + { + IPTVLOGSTRING2_HIGH_LEVEL("CIptvDriveMonitor:: RefreshAvailableDrivesL leaved with error code %d, ignoring", err); + } + CompareOldAndNewAvailableDrives(); + SetActive(); + } + else + { + iFs.NotifyChange( ENotifyDisk, iStatus ); + SetActive(); + } + + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::RunL() exit"); + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::DoCancel() +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::DoCancel() + { + iFs.NotifyChangeCancel( iStatus ); + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::RunError() +// ----------------------------------------------------------------------------- +// +TInt CIptvDriveMonitor::RunError( TInt /* aError */ ) + { + IPTVLOGSTRING_HIGH_LEVEL("CIptvDriveMonitor::RunL() leaved (should never happen)."); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::SendEvent() +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::SendEvent( TIptvDriveMonitorEvent::TEvent aEvent, + TInt aDrive ) + { + IPTVLOGSTRING4_HIGH_LEVEL("CIptvDriveMonitor:: Sending event: %S(%d), drive: %d", + &TIptvDriveMonitorEvent::EventDes( aEvent ), + aEvent, + aDrive ); + + TIptvDriveMonitorEvent event; + + for ( TInt i = 0; i < iObservers.Count(); i++ ) + { + event.iEvent = static_cast(aEvent); + event.iDrive = aDrive; + iObservers[i]->HandleDriveMonitorEvent( event ); + } + +#if IPTV_LOGGING_METHOD != 0 + PrintAvailableDrives(); +#endif + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::CompareOldAndNewAvailableDrives +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::CompareOldAndNewAvailableDrives() + { + // Run through old drives list to detect changes + TInt i; + for ( i = 0; i < iPreviousAvailableDrives.Count(); i++ ) + { + TInt pos = ArrayPos( iPreviousAvailableDrives[i].iDrive ); + if ( pos == KErrNotFound ) + { + // drive was dismounted + SendEvent( TIptvDriveMonitorEvent::EDriveDismounted, + iPreviousAvailableDrives[i].iDrive ); + } + else + { + // drive still present + if ( iPreviousAvailableDrives[i].iFlags != iAvailableDrives[pos].iFlags ) + { + // drive was changed + if ( (iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::EMediaNotPresent) && + !(iAvailableDrives[pos].iFlags & EMediaNotPresent) ) + { + SendEvent( TIptvDriveMonitorEvent::EMediaInserted, + iAvailableDrives[pos].iDrive ); + } + + if ( !(iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::EMediaNotPresent) && + (iAvailableDrives[pos].iFlags & TIptvDriveInfo::EMediaNotPresent) ) + { + SendEvent( TIptvDriveMonitorEvent::EMediaRemoved, + iAvailableDrives[pos].iDrive ); + } + + if ( !(iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::ELocked) && + (iAvailableDrives[pos].iFlags & TIptvDriveInfo::ELocked) ) + { + SendEvent( TIptvDriveMonitorEvent::EDriveLocked, + iAvailableDrives[pos].iDrive ); + } + + if ( (iPreviousAvailableDrives[i].iFlags & TIptvDriveInfo::ELocked) && + !(iAvailableDrives[pos].iFlags & TIptvDriveInfo::ELocked) ) + { + SendEvent( TIptvDriveMonitorEvent::EDriveUnlocked, + iAvailableDrives[pos].iDrive ); + } + } + // drive volume name was changed + if ( iPreviousAvailableDrives[i].iVolumeName.Compare( + iAvailableDrives[pos].iVolumeName ) != 0 ) + { + SendEvent( TIptvDriveMonitorEvent::EDriveVolumeNameChanged, + iAvailableDrives[pos].iDrive ); + } + } + } + + // Run through new drives list to detect mounted drives + for ( i = 0; i < iAvailableDrives.Count(); i++ ) + { + TBool found = EFalse; + for ( TInt j = 0; j < iPreviousAvailableDrives.Count(); j++ ) + { + if ( iPreviousAvailableDrives[j].iDrive == iAvailableDrives[i].iDrive ) + { + found = ETrue; + break; + } + } + if ( !found ) + { + SendEvent( TIptvDriveMonitorEvent::EDriveMounted, + iAvailableDrives[i].iDrive ); + } + } + } + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::DriveType() +// ----------------------------------------------------------------------------- +// +#if IPTV_LOGGING_METHOD != 0 +const TDesC& CIptvDriveMonitor::DriveTypeDes( TInt aType ) + { + switch (aType) + { + case EMediaNotPresent: + return KIptvMediaNotPresentDes; + case EMediaUnknown: + return KIptvMediaUnknownDes; + case EMediaFloppy: + return KIptvMediaFloppyDes; + case EMediaHardDisk: + return KIptvMediaHardDiskDes; + case EMediaCdRom: + return KIptvMediaCdRomDes; + case EMediaRam: + return KIptvMediaRamDes; + case EMediaFlash: + return KIptvMediaFlashDes; + case EMediaRom: + return KIptvMediaRomDes; + case EMediaRemote: + return KIptvMediaRemoteDes; + case EMediaNANDFlash: + return KIptvMediaNANDFlashDes; + default: + return KIptvMediaUnknownDes; + } + } +#else +const TDesC& CIptvDriveMonitor::DriveTypeDes( TInt /*aType*/ ) + { + return KIptvEmptyDes; + } +#endif + +// ----------------------------------------------------------------------------- +// CIptvDriveMonitor::PrintAvailableDrives() +// ----------------------------------------------------------------------------- +// +void CIptvDriveMonitor::PrintAvailableDrives() + { +#if IPTV_LOGGING_METHOD != 0 + for ( TInt i = 0; i < iAvailableDrives.Count(); i++ ) + { + IPTVLOGSTRING3_HIGH_LEVEL("CIptvDriveMonitor:: iAvailableDrives[%d].iDrive = %d", + i, iAvailableDrives[i].iDrive); + IPTVLOGSTRING2_HIGH_LEVEL(" ERemovableDrive = %d", + !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::ERemovable)); + IPTVLOGSTRING2_HIGH_LEVEL(" EMassStorage = %d", + !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::EMassStorage)); + IPTVLOGSTRING2_HIGH_LEVEL(" ELockedDrive = %d", + !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::ELocked)); + IPTVLOGSTRING2_HIGH_LEVEL(" EMediaNotPresent = %d", + !!(iAvailableDrives[i].iFlags & TIptvDriveInfo::EMediaNotPresent)); + } +#endif + } + +// ========================== OTHER EXPORTED FUNCTIONS ========================= + + +// End of File diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/CIptvResourceLoader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/CIptvResourceLoader.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,214 @@ +/* +* Copyright (c) 2010 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: Resource file loader for components that cannot use the* +*/ + + + + +#include +#include +#include +#include "IptvDebug.h" +#include "CIptvResourceLoader.h" + +_LIT( KIptvEDrive, "E:" ); +_LIT( KIptvFDrive, "F:" ); +_LIT( KIptvZDrive, "Z:" ); +_LIT( KIptvRsc, ".RSC" ); +_LIT( KIptvRxx, ".R" ); +const TInt KIptvLangCodeWidth2( 2 ); +const TInt KIptvLangExtLength( 10 ); + +// --------------------------------------------------------- +// CIptvResourceLoader::NewL +// Two-phased constructor. +// --------------------------------------------------------- +// +CIptvResourceLoader* CIptvResourceLoader::NewL( CCoeEnv& aCoeEnv ) + { + IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::NewL" ); + + CIptvResourceLoader* self = new( ELeave ) CIptvResourceLoader( aCoeEnv ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------- +// CIptvResourceLoader::CIptvResourceLoader +// C++ default constructor +// --------------------------------------------------------- +// +CIptvResourceLoader::CIptvResourceLoader( CCoeEnv& aCoeEnv ) + : iCoeEnv( aCoeEnv ) + { + // None + } + +// --------------------------------------------------------- +// CIptvResourceLoader::ConstructL +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------- +// +void CIptvResourceLoader::ConstructL() + { + // None + } + +// --------------------------------------------------------- +// CIptvResourceLoader::~CIptvResourceLoader +// Destructor +// ----------------------------------------------------------------------------- +// +CIptvResourceLoader::~CIptvResourceLoader() + { + IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::~CIptvResourceLoader" ); + + if ( iAdded ) + { + iCoeEnv.DeleteResourceFile( iOffset ); + } + } + +// --------------------------------------------------------- +// CIptvResourceLoader::AddResourceL +// +// --------------------------------------------------------- +// +void CIptvResourceLoader::AddResourceL( + const TDesC& aResourceFile ) + { + IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::AddResourceL()" ); + + // Language + TLanguage language = User::Language(); + IPTVLOGSTRING2_LOW_LEVEL( "CIptvResourceLoader::AddResourceL(), language: %d", language ); + TBuf langExt( KNullDesC ); + if ( language <= ELangOther ) // Langs 0 - 99 + { + langExt.NumFixedWidth( language, EDecimal, KIptvLangCodeWidth2 ); + } + else // Languages 100 - ELangMaximum + { + langExt.Num( language, EDecimal ); + } + + // File parser + TParse* fp = new( ELeave ) TParse(); + CleanupStack::PushL( fp ); + User::LeaveIfError( fp->Set( aResourceFile, NULL, NULL ) ); + + // Search with language code + TFileName file( fp->Path() ); + file.Append( fp->Name() ); + file.Append( KIptvRxx ); + file.Append( langExt ); + TInt error( SearchResourceFile( file ) ); + + // If no language file found, change ext to .RSC + if ( error ) + { + file.Copy( fp->Path() ); + file.Append( fp->Name() ); + file.Append( KIptvRsc ); + file.ZeroTerminate(); + error = SearchResourceFile( file ); + } + + // See result + if ( error ) + { + IPTVLOGSTRING_LOW_LEVEL( "CIptvResourceLoader::AddResourceL(), NO RESOURCE FILE ADDED!" ); + iAdded = EFalse; + } + else + { + iAdded = ETrue; + } + + CleanupStack::PopAndDestroy( fp ); + User::LeaveIfError( error ); + } + +// --------------------------------------------------------- +// CIptvResourceLoader::SearchResourceFile +// +// --------------------------------------------------------- +// +TInt CIptvResourceLoader::SearchResourceFile( const TDesC& aFile ) + { + // Try to load resource file without drive letter + TInt error( AddResourceFile( aFile ) ); + + if ( error ) + { + // Try to load resource file from E-drive + TFileName eDrive( KIptvEDrive ); + eDrive.Append( aFile ); + error = AddResourceFile( eDrive ); + } + + if ( error ) + { + // Try to load resource file from F-drive + TFileName fDrive( KIptvFDrive); + fDrive.Append( aFile ); + error = AddResourceFile( fDrive ); + } + + if ( error ) + { + // Try to load resource file from Z-drive + TFileName zDrive( KIptvZDrive); + zDrive.Append( aFile ); + error = AddResourceFile( zDrive ); + } + + // If language variant was not found, next try to find nearest one + if ( error ) + { + TFileName tempFile( aFile ); + BaflUtils::NearestLanguageFile( iCoeEnv.FsSession(), tempFile ); + // Did BaflUtil change the file + if ( tempFile.Compare( aFile ) != 0 ) + { + error = AddResourceFile( tempFile ); + } + } + + return error; + } + +// --------------------------------------------------------- +// CIptvResourceLoader::AddResourceFile +// +// --------------------------------------------------------- +// +TInt CIptvResourceLoader::AddResourceFile( const TDesC& aFile ) + { + TInt error( KErrNotFound ); + if ( BaflUtils::FileExists( iCoeEnv.FsSession(), aFile ) ) + { + TRAP( error, iOffset = iCoeEnv.AddResourceFileL( aFile ) ); + if ( error == KErrNone ) + { + IPTVLOGSTRING2_LOW_LEVEL( "CIptvResourceLoader::AddResourceFile(), Added: %S", &aFile ); + } + } + + return error; + } + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/TIptvDriveInfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/TIptvDriveInfo.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 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: +* +*/ + + + + +// INCLUDE FILES +#include "TIptvDriveInfo.h" + +// ============================ MEMBER FUNCTIONS =============================== + +TIptvDriveInfo::TIptvDriveInfo() + : iDrive( 0 ) + , iFlags( 0 ) + { + } + +TIptvDriveInfo::~TIptvDriveInfo() + { + } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/TIptvDriveMonitorEvent.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/TIptvDriveMonitorEvent.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,88 @@ +/* +* Copyright (c) 2010 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: +* +*/ + + + + +// INCLUDE FILES +#include "TIptvDriveMonitorEvent.h" +#include "IptvDebug.h" + +#if IPTV_LOGGING_METHOD != 0 +_LIT(KIptvDmeMediaRemovedDes, "EMediaRemoved"); +_LIT(KIptvDmeMediaInsertedDes, "EMediaInserted"); +_LIT(KIptvDmeDriveLockedDes, "EDriveLocked"); +_LIT(KIptvDmeDriveUnlockedDes, "EDriveUnlocked"); +_LIT(KIptvDmeDriveMountedDes, "EDriveMounted"); +_LIT(KIptvDmeDriveDismountedDes, "EDriveDismounted"); +_LIT(KIptvDmeDriveVolumeNameChangedDes, "EDriveVolumeNameChanged"); +_LIT(KIptvDmeUnknownDes, "Unknown"); +#endif + +// ============================ MEMBER FUNCTIONS =============================== + +TIptvDriveMonitorEvent::TIptvDriveMonitorEvent() + : iEvent( ENone ) + , iDrive( -1 ) + { + } + +// ----------------------------------------------------------------------------- +// TIptvDriveMonitorEvent::EventDes() +// ----------------------------------------------------------------------------- +// +#if IPTV_LOGGING_METHOD != 0 + +const TDesC& TIptvDriveMonitorEvent::EventDes( TIptvDriveMonitorEvent::TEvent aEvent ) + { + switch ( aEvent ) + { + case EMediaRemoved: + return KIptvDmeMediaRemovedDes; + + case EMediaInserted: + return KIptvDmeMediaInsertedDes; + + case EDriveLocked: + return KIptvDmeDriveLockedDes; + + case EDriveUnlocked: + return KIptvDmeDriveUnlockedDes; + + case EDriveMounted: + return KIptvDmeDriveMountedDes; + + case EDriveDismounted: + return KIptvDmeDriveDismountedDes; + + case EDriveVolumeNameChanged: + return KIptvDmeDriveVolumeNameChangedDes; + + default: + return KIptvDmeUnknownDes; + } + } + +#else + +const TDesC& TIptvDriveMonitorEvent::EventDes( TIptvDriveMonitorEvent::TEvent /*aEvent*/ ) + { + return KIptvEmptyDes; + } + +#endif + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideoscategorylistimpl.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideoscategorylistimpl.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideoscategorylistimpl.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -20,6 +20,8 @@ // INCLUDE FILES #include #include +#include +#include #include "vcxhgmyvideoscategorylistimpl.h" #include "vcxhgmyvideoscategorymodelhandler.h" @@ -79,7 +81,21 @@ void CVcxHgMyVideosCategoryListImpl::ConstructL() { CVcxHgMyVideosListBase::ConstructL(); - iCategoryModel = new (ELeave) CVcxHgMyVideosCategoryModelHandler( iModel, *iScroller ); + iCategoryModel = CVcxHgMyVideosCategoryModelHandler::NewL( iModel, *iScroller ); + + // Load indicator + CGulIcon* ind = iCategoryModel->VideoIndicatorL().VideoOverlayIndicatorL(); + if ( ind ) + { + CleanupStack::PushL( ind ); + // Ownership of the icon is transferred + static_cast( iScroller )->SetIconOverlayIndicator( ind ); + CleanupStack::Pop( ind ); + } + + // Set default icon as empty + iScroller->SetDefaultIconL( iCategoryModel->CreateEmptyHgListIconL() ); + iScroller->SetFlags( CHgScroller::EHgScrollerKeyMarkingDisabled ); iScroller->SetSelectionObserver( *this ); } @@ -141,10 +157,53 @@ void CVcxHgMyVideosCategoryListImpl::HandleOpenL( TInt /*aIndex*/ ) { TInt highlight = Highlight(); + TInt categoryId = iCategoryModel->ResolveCategoryId( highlight ); - if ( highlight >= 0 && iModel.TouchSupport() ) + switch ( categoryId ) { - iView.ActivateVideoListL( iCategoryModel->ResolveCategoryId( highlight ) ); + case KVcxMvcCategoryIdAll: + case KVcxMvcCategoryIdDownloads: + case KVcxMvcCategoryIdCaptured: + case KVcxMvcCategoryIdOther: + { + if ( highlight >= 0 && iModel.TouchSupport() ) + { + iView.ActivateVideoListL( iCategoryModel->ResolveCategoryId( highlight ) ); + } + } + break; + + case KCategoryIdLastWatched: + { + iCategoryModel->PlayLastWatchedVidedoL(); + } + break; + + case KCategoryIdExtraItem1: + case KCategoryIdExtraItem2: + case KCategoryIdExtraItem3: + { + // Handle item according to type (open web link or start app). + + TVcxHgMyVideosCategoryItemType itemType; + TUid appUid; + TBuf<64> urlString; + iCategoryModel->HandleExtraItemSelectionL( categoryId, itemType, appUid, urlString ); + + if ( itemType == TVcxHgMyVideosCategoryItemTypeUid ) + { + iView.LaunchAppL( appUid ); + } + else if ( itemType == TVcxHgMyVideosCategoryItemTypeUrl ) + { + iView.LaunchBrowserL( urlString ); + } + } + break; + + default: + ASSERT( 0 ); + break; } } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideoscategorymodelhandler.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideoscategorymodelhandler.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideoscategorymodelhandler.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -1,4 +1,4 @@ - /* +/* * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available @@ -26,17 +26,53 @@ #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include #include #include +#include #include "IptvDebug.h" #include "vcxhgmyvideoscategorymodelhandler.h" #include "vcxhgmyvideosmodel.h" #include "vcxhgmyvideoscollectionclient.h" +#include "vcxhgmyvideosthumbnailmanager.h" +#include "vcxhgmyvideoscenrepkeys.h" + +const TInt KMyVideosTitleStringMaxLength = 64; +const TInt KMyVideosTitleUrlMaxLength = 128; + +_LIT( KVcxHgMyVideosMifFile, "\\resource\\apps\\vcxhgmyvideosicons.mif" ); // ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosCategoryModelHandler::NewL() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosCategoryModelHandler* CVcxHgMyVideosCategoryModelHandler::NewL( + CVcxHgMyVideosModel& aModel, + CHgScroller& aScroller ) + { + CVcxHgMyVideosCategoryModelHandler* self = + new (ELeave) CVcxHgMyVideosCategoryModelHandler( aModel, aScroller ); + + return self; + } + + // ----------------------------------------------------------------------------- // CVcxHgMyVideosCategoryModelHandler::CVcxHgMyVideosCategoryModelHandler() // ----------------------------------------------------------------------------- @@ -44,7 +80,9 @@ CVcxHgMyVideosCategoryModelHandler::CVcxHgMyVideosCategoryModelHandler( CVcxHgMyVideosModel& aModel, CHgScroller& aScroller ) : iModel( aModel ), - iScroller( aScroller ) + iScroller( aScroller ), + iTnManager( aModel.ThumbnailManager() ), + iTnRequestId( KErrNotFound ) { } @@ -55,6 +93,9 @@ CVcxHgMyVideosCategoryModelHandler::~CVcxHgMyVideosCategoryModelHandler() { delete iCategoryList; + delete iLastWatched; + delete iVideoIndicator; + iCategoryIdArray.Reset(); } @@ -68,6 +109,8 @@ "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelActivateL() - Enter" ); iModel.CollectionClient().SetCategoryModelObserver( this ); + + iTnManager.AddObserverL( *this ); IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelActivateL() - Exit" ); @@ -83,6 +126,11 @@ "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelDeactivate() - Enter" ); iModel.CollectionClient().SetCategoryModelObserver( NULL ); + + iTnManager.RemoveObserver( *this ); + + delete iLastWatched; + iLastWatched = NULL; IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosCategoryModelHandler::DoModelDeactivate() - Exit" ); @@ -116,11 +164,11 @@ // CVcxHgMyVideosCategoryModelHandler::GetCategoryNameLC() // ----------------------------------------------------------------------------- // -HBufC* CVcxHgMyVideosCategoryModelHandler::GetCategoryNameLC( TInt aIndex ) +HBufC* CVcxHgMyVideosCategoryModelHandler::GetCategoryNameLC( TInt aCategoryId ) { HBufC* name = NULL; - switch ( aIndex ) + switch ( aCategoryId ) { case KVcxMvcCategoryIdAll: name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_STORAGE_ALL_LIST ); @@ -134,8 +182,42 @@ case KVcxMvcCategoryIdOther: name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_STORAGE_OTHER_LIST ); break; + case KCategoryIdLastWatched: + name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_LAST_WATCHED ); + break; + case KCategoryIdExtraItem1: + // ExtraItem1 is always interpreted as Ovi Store + name = StringLoader::LoadLC( R_VCXHGMYVIDEOS_OVI_STORE ); + break; + case KCategoryIdExtraItem2: + case KCategoryIdExtraItem3: + { + TInt key = 0; + if ( aCategoryId == KCategoryIdExtraItem2 ) + { + key = KCRVideoPlayerExtraItem2Title; + } + else if ( aCategoryId == KCategoryIdExtraItem3 ) + { + key = KCRVideoPlayerExtraItem3Title; + } + + TBuf titleString; + TInt error = iModel.GetMyVideosCustomizationString( key, titleString ); + if ( error == KErrNone ) + { + name = titleString.AllocLC(); + } + else + { + name = KNullDesC().AllocLC(); + } + } + break; + default: { + name = KNullDesC().AllocLC(); IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # GetCategoryNameLC() Unexpected category!" ); } @@ -145,13 +227,130 @@ } // ----------------------------------------------------------------------------- +// CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() +// ----------------------------------------------------------------------------- +// +CGulIcon* CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL( TInt aCategoryId ) + { + IPTVLOGSTRING2_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() Enter! Category id = %d", aCategoryId ); + + CGulIcon* icon( NULL ); + TInt bitmapId( 0 ); + TInt maskId( 0 ); + TInt key( KErrNotFound ); + TFileName iconFile( KNullDesC() ); + + // Find icon file & bitmap IDs or cenrep keys + switch ( aCategoryId ) + { + case KVcxMvcCategoryIdDownloads: // fall through + case KVcxMvcCategoryIdAll: // fall through + case KVcxMvcCategoryIdOther: + iconFile = KVcxHgMyVideosMifFile; + bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_download_thumbnail_video; + maskId = EMbmVcxhgmyvideosiconsQgn_prop_download_thumbnail_video_mask; + break; + case KVcxMvcCategoryIdCaptured: + iconFile = KVcxHgMyVideosMifFile; + bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_captured_thumbnail_video; + maskId = EMbmVcxhgmyvideosiconsQgn_prop_captured_thumbnail_video_mask; + break; + case KCategoryIdLastWatched: + // If no last watched, dont show default icon + if ( iLastWatched ) + { + iconFile = KVcxHgMyVideosMifFile; + bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video; + maskId = EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video_mask; + } + break; + case KCategoryIdExtraItem1: + // ExtraItem1 is always interpreted as Ovi Store + iconFile = KVcxHgMyVideosMifFile; + bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_ovi_thumbnail_video; + maskId = EMbmVcxhgmyvideosiconsQgn_prop_ovi_thumbnail_video_mask; + break; + case KCategoryIdExtraItem2: + key = KCRVideoPlayerExtraItem2IconPath; + break; + case KCategoryIdExtraItem3: + key = KCRVideoPlayerExtraItem3IconPath; + break; + default: + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # GetCategoryIconLC() Unexpected category!" ); + } + break; + } + + if ( key != KErrNotFound ) + { + // Extra item 2 or 3, get icon file from cenrep + TInt error = iModel.GetMyVideosCustomizationString( key, iconFile ); + if ( error == KErrNone && iconFile.Length() > 0 ) + { + IPTVLOGSTRING3_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() cenrep key %d iconFile %S", key, &iconFile ); + bitmapId = 0x4000; + maskId = 0x4001; + } + else + { // Use default service icon + iconFile = KVcxHgMyVideosMifFile; + bitmapId = EMbmVcxhgmyvideosiconsQgn_prop_service_thumbnail_video; + maskId = EMbmVcxhgmyvideosiconsQgn_prop_service_thumbnail_video_mask; + } + } + + if ( bitmapId && iconFile.Length() > 0 ) + { + // find mif file + TFindFile findFile( iModel.FileServerSessionL() ); + TInt error = findFile.FindByDir( iconFile, KNullDesC ); + + // Create icon if icon file was found + if ( KErrNone == error ) + { + TParse parse; + parse.Set( findFile.File(), NULL, NULL ); + iconFile = parse.FullName(); + IPTVLOGSTRING3_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconLC() get %d from file %S", bitmapId, &iconFile ); + + icon = CreateHgListIconL( iconFile, bitmapId, maskId ); + } + else + { + IPTVLOGSTRING2_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconL() FindByDir() returned %d", error ); + } + } + else + { + IPTVLOGSTRING_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::GetCategoryIconLC() no icon file or id" ); + } + + return icon; + } + +// ----------------------------------------------------------------------------- // CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC() // ----------------------------------------------------------------------------- // HBufC* CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC( CMPXMedia& aMedia ) - { + { + if ( !aMedia.IsSupported( KMPXMediaGeneralType ) || + aMedia.ValueTObjectL( KMPXMediaGeneralType ) != EMPXGroup ) + { + if ( aMedia.IsSupported( KMPXMediaGeneralTitle ) ) + { + return aMedia.ValueText( KMPXMediaGeneralTitle ).AllocLC(); + } + else + { + return KNullDesC().AllocLC(); + } + } + HBufC* details = NULL; - HBufC* newVideoName = NULL; TInt newVideos = 0; TInt videos = 0; @@ -166,38 +365,14 @@ if ( newVideos > 0 ) { - if ( aMedia.IsSupported( KVcxMediaMyVideosCategoryNewItemName ) ) - { - newVideoName = aMedia.ValueText( KVcxMediaMyVideosCategoryNewItemName ).AllocLC(); - } - else - { - newVideoName = KNullDesC().AllocLC(); - } - if ( newVideos == 1 ) { - details = StringLoader::LoadL( R_VCXHGMYVIDEOS_ONE_NEW_VIDEO, *newVideoName ); + details = StringLoader::LoadL( R_VCXHGMYVIDEOS_ONE_NEW_VIDEO ); } else { - CDesCArrayFlat* arrayForStrings = new ( ELeave ) CDesCArrayFlat( 1 ); - CleanupStack::PushL( arrayForStrings ); - arrayForStrings->AppendL( *newVideoName ); - - CArrayFixFlat* arrayForInts = new ( ELeave ) CArrayFixFlat( 3 ); - CleanupStack::PushL( arrayForInts ); - arrayForInts->AppendL( newVideos ); - - details = StringLoader::LoadL( R_VCXHGMYVIDEOS_N_NEW_VIDEOS, - *arrayForStrings, - *arrayForInts ); - - CleanupStack::PopAndDestroy( arrayForInts ); - CleanupStack::PopAndDestroy( arrayForStrings ); + details = StringLoader::LoadL( R_VCXHGMYVIDEOS_N_NEW_VIDEOS, newVideos ); } - - CleanupStack::PopAndDestroy( newVideoName ); CleanupStack::PushL( details ); } else @@ -219,6 +394,76 @@ return details; } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC() +// ----------------------------------------------------------------------------- +// +HBufC* CVcxHgMyVideosCategoryModelHandler::FormatCategorySecondRowLC( TInt aCategoryId ) + { + HBufC* secondRow = NULL; + + switch ( aCategoryId ) + { + case KVcxMvcCategoryIdAll: + case KVcxMvcCategoryIdDownloads: + case KVcxMvcCategoryIdTvRecordings: + case KVcxMvcCategoryIdCaptured: + case KVcxMvcCategoryIdOther: + case KCategoryIdLastWatched: + { + CMPXMedia* media = GetCategoryDataL( aCategoryId ); + if ( media ) + { + secondRow = FormatCategorySecondRowLC( *media ); + } + else + { + secondRow = KNullDesC().AllocLC(); + } + } + break; + case KCategoryIdExtraItem1: + // ExtraItem1 is always interpreted as Ovi Store + secondRow = StringLoader::LoadLC( R_VCXHGMYVIDEOS_OVI_STORE_VIDEOS ); + break; + + case KCategoryIdExtraItem2: + case KCategoryIdExtraItem3: + { + TInt key = 0; + if ( aCategoryId == KCategoryIdExtraItem2 ) + { + key = KCRVideoPlayerExtraItem2Text; + } + else if ( aCategoryId == KCategoryIdExtraItem3 ) + { + key = KCRVideoPlayerExtraItem3Text; + } + + TBuf detailsString; + TInt error = iModel.GetMyVideosCustomizationString( key, detailsString ); + if ( error == KErrNone ) + { + secondRow = detailsString.AllocLC(); + } + else + { + secondRow = KNullDesC().AllocLC(); + } + break; + } + default: + { + secondRow = KNullDesC().AllocLC(); + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # FormatCategorySecondRowLC() Unexpected category!" ); + break; + } + } + return secondRow; + } + // ----------------------------------------------------------------------------- // CVcxHgMyVideosCategoryModelHandler::UiIndexFromMpxItemId() // ----------------------------------------------------------------------------- @@ -244,7 +489,7 @@ if ( mpxItemId == aMpxItemId ) { - index = ResolveCategoryArrayIndexById( i ); + index = ResolveCategoryArrayIndexById( i ); break; } } @@ -261,7 +506,8 @@ // TInt CVcxHgMyVideosCategoryModelHandler::ResolveCategoryArrayIndexById( TInt aCategoryId ) { - TInt ret( 0 ); + TInt ret( KErrNotFound ); + for(TInt i = 0; i < iCategoryIdArray.Count(); i++ ) { if( iCategoryIdArray[ i ] == aCategoryId ) @@ -270,6 +516,7 @@ break; } } + return ret; } @@ -279,14 +526,20 @@ // ----------------------------------------------------------------------------- // void CVcxHgMyVideosCategoryModelHandler::NewCategoryListL( - CMPXMediaArray* aCategoryList ) + CMPXMediaArray* aCategoryList, TBool aIsPartial ) { - IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # NewCategoryListL() - Enter" ); + IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # NewCategoryListL() - Enter. IsPartial=%d", aIsPartial ); delete iCategoryList; iCategoryList = aCategoryList; UpdateCategoryListL(); + + if ( !aIsPartial ) + { + // KVcxMessageMyVideosListComplete does not come, finish list fetching now + CategoryListFetchingCompletedL(); + } IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # NewCategoryListL() - Exit" ); } @@ -301,7 +554,10 @@ IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CategoryListModifiedL() - Enter" ); UpdateCategoryListL(); - + + FetchLastWatchedL(); + SetLastWatchedIndicatorL(); + IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CategoryListModifiedL() - Exit" ); } @@ -327,7 +583,35 @@ break; case EMPXItemInserted: + { + if ( !iLastWatched ) + { + TInt id1( 0 ); + TInt ret = iModel.GetLastWatchedIdL( id1 ); + TMPXItemId id ( id1 ); + + if ( ret == KErrNone && + id1 == aMpxItemId.iId1 ) + { + FetchLastWatchedL(); + } + } + } + break; case EMPXItemDeleted: + { + if ( iLastWatched && + iLastWatched->IsSupported( KMPXMediaGeneralId ) && + iLastWatched->Value( KMPXMediaGeneralId )->iId1 == aMpxItemId.iId1 ) + { + delete iLastWatched; + iLastWatched = NULL; + + UpdateCategoryListItemL( ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) ); + SetLastWatchedIndicatorL(); + } + } + break; default: { IPTVLOGSTRING_LOW_LEVEL( @@ -393,30 +677,18 @@ { CHgItem& listItem = iScroller.ItemL( aListIndex ); - CMPXMedia* media( NULL ); - media = (*iCategoryList)[ iCategoryIdArray[ aListIndex ] ]; - HBufC* categoryName( NULL ); categoryName = GetCategoryNameLC( iCategoryIdArray[ aListIndex ] ); - - if ( categoryName && media ) - { - // Insert the category name into first row of list item. - listItem.SetTitleL( *categoryName ); - CleanupStack::PopAndDestroy( categoryName ); - - // Insert video count into second row of list item. - HBufC* secondRow( NULL ); - secondRow = FormatCategorySecondRowLC( *media ); - listItem.SetTextL( *secondRow ); - CleanupStack::PopAndDestroy( secondRow ); - } - else - { - // If category name or media was not found then - // the whole list item should be removed. - RemoveCategoryListItem( aListIndex ); - } + listItem.SetTitleL( *categoryName ); + CleanupStack::PopAndDestroy( categoryName ); + + HBufC* secondRow( NULL ); + secondRow = FormatCategorySecondRowLC( iCategoryIdArray[ aListIndex ] ); + listItem.SetTextL( *secondRow ); + CleanupStack::PopAndDestroy( secondRow ); + + // Set icon for category + listItem.SetIcon( GetCategoryIconL( iCategoryIdArray[ aListIndex ] ) ); } IPTVLOGSTRING_LOW_LEVEL( @@ -442,7 +714,8 @@ TInt CVcxHgMyVideosCategoryModelHandler::ResolveCategoryId( TInt aScrollerIndex ) { TInt ret( -1 ); - if ( aScrollerIndex <= iCategoryIdArray.Count() ) + if ( aScrollerIndex >= 0 && + aScrollerIndex <= iCategoryIdArray.Count() ) { ret = iCategoryIdArray[ aScrollerIndex ]; } @@ -460,12 +733,72 @@ iCategoryIdArray.Reset(); - for(TInt i = 0; i < aCategoriesAvailable; i++) + TInt error = KErrNone; + TInt value = KErrNotFound; + TInt categoryId = KErrNotFound; + + // Check that cenrep exists and has some valid data + error = iModel.GetMyVideosCustomizationInt( KCRVideoPlayerItemLocation1, value ); + + if ( error == KErrNone && value > EMyVideosListItemTypeEmpty ) { - if( AcceptCategory( i ) ) + IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # MakeCategoryIdArray() Getting category items from cenrep" ); + + for ( TInt i=KCRVideoPlayerItemLocation1; i<=KCRVideoPlayerItemLocation7; i++ ) { - iCategoryIdArray.Append( i ); - } + error = iModel.GetMyVideosCustomizationInt( i , value ); + if ( error == KErrNone && value != EMyVideosListItemTypeEmpty ) + { + switch ( value ) + { + case EMyVideosListItemTypeLastWatched: + categoryId = KCategoryIdLastWatched; + break; + case EMyVideosListItemTypeCapturedVideos: + categoryId = KVcxMvcCategoryIdCaptured; + break; + case EMyVideosListItemTypeOtherVideos: + categoryId = KVcxMvcCategoryIdOther; + break; + case EMyVideosListItemTypeExtra1: + categoryId = KCategoryIdExtraItem1; + break; + case EMyVideosListItemTypeExtra2: + categoryId = KCategoryIdExtraItem2; + break; + case EMyVideosListItemTypeExtra3: + categoryId = KCategoryIdExtraItem3; + break; + case EMyVideosListItemTypeEmpty: + categoryId = KErrNotFound; + break; + default: + categoryId = KErrNotFound; + break; + } + + if ( AcceptCategory( categoryId ) ) + { + iCategoryIdArray.Append( categoryId ); + } + } + } + } + else + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # MakeCategoryIdArray() Could not access CenRep!" ); + + // If cenrep access fails then use these values as backup + iCategoryIdArray.Append( KCategoryIdLastWatched ); + + for(TInt i = 0; i < aCategoriesAvailable; i++) + { + if( AcceptCategory( i ) ) + { + iCategoryIdArray.Append( i ); + } + } } } @@ -479,18 +812,372 @@ switch ( aCategoryId ) { case KVcxMvcCategoryIdAll: - case KVcxMvcCategoryIdDownloads: case KVcxMvcCategoryIdCaptured: case KVcxMvcCategoryIdOther: + case KCategoryIdLastWatched: + case KCategoryIdExtraItem1: + case KCategoryIdExtraItem2: + case KCategoryIdExtraItem3: IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # AcceptCategory() Accepted category: %d", aCategoryId ); ret = ETrue; break; default: IPTVLOGSTRING2_LOW_LEVEL( - "MPX My Videos UI # AcceptCategory() Uknowns category: %d", aCategoryId ); + "MPX My Videos UI # AcceptCategory() Unknown category: %d", aCategoryId ); break; } return ret; } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::VideoFetchingCompletedL() +// MPX Collection calls this callback when a single video has fetched. +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::VideoFetchingCompletedL( CMPXMedia* aVideo ) + { + TInt id( 0 ); + + TInt ret = iModel.GetLastWatchedIdL( id ); + + if ( ret == KErrNone && + id && + aVideo && + aVideo->IsSupported( KMPXMediaGeneralId ) && + aVideo->Value( KMPXMediaGeneralId )->iId1 == id ) + { + delete iLastWatched; + iLastWatched = aVideo; + + LoadLastWatchedIconL(); + SetLastWatchedIndicatorL(); + } + else + { + delete aVideo; + aVideo = NULL; + } + + UpdateCategoryListItemL( ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) ); + iScroller.RefreshScreen( ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) ); + } + +// ----------------------------------------------------------------------------- +// MPX Collection calls this callback when category list items have been fetched. +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::CategoryListFetchingCompletedL() + { + IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CategoryListFetchingCompletedL()" ); + FetchLastWatchedL(); + SetLastWatchedIndicatorL(); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::GetCategoryDataL() +// +// ----------------------------------------------------------------------------- +// +CMPXMedia* CVcxHgMyVideosCategoryModelHandler::GetCategoryDataL( TInt aCategoryId ) + { + if ( aCategoryId == KCategoryIdLastWatched ) + { + return iLastWatched; + } + + if ( aCategoryId >= 0 && iCategoryList->Count() > aCategoryId ) + { + return (*iCategoryList)[ aCategoryId ]; + } + + return NULL; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::FetchLastWatchedL() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::FetchLastWatchedL() + { + TInt id1( 0 ); + TInt ret = iModel.GetLastWatchedIdL( id1 ); + TMPXItemId id ( id1 ); + + if ( id1 != 0 && + KErrNone == ret ) + { + if ( !iLastWatched || + ( iLastWatched && + iLastWatched->IsSupported( KMPXMediaGeneralId ) && + iLastWatched->Value( KMPXMediaGeneralId )->iId1 != id1 )) + { + iModel.CollectionClient().FetchMpxMediaByMpxIdL( id ); + } + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::PlayLastWatchedVidedoL() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::PlayLastWatchedVidedoL() + { + if ( iLastWatched && iLastWatched->IsSupported( KMPXMediaGeneralId ) ) + { + iModel.CollectionClient().PlayVideoL( + *iLastWatched->Value( KMPXMediaGeneralId ) ); + + iModel.SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer ); + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::LoadLastWatchedIconL() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::LoadLastWatchedIconL() + { + CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( + iLastWatched->ValueText( KMPXMediaGeneralUri ), + KNullDesC ); + + iTnRequestId = iTnManager.GetL( *source ); + CleanupStack::PopAndDestroy( source ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::SetLastWatchedIndicatorL() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::SetLastWatchedIndicatorL() + { + if ( KErrNotFound != ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) ) + { + CHgItem& lastWatchedItem = iScroller.ItemL( + ResolveCategoryArrayIndexById( KCategoryIdLastWatched ) ); + if ( iLastWatched && VideoIndicatorL().IsIndicatorShown( *iLastWatched ) ) + { + lastWatchedItem.SetFlags( CHgItem::EHgItemFlagsIconOverlayIndicator ); + } + else + { + lastWatchedItem.ClearFlags( CHgItem::EHgItemFlagsIconOverlayIndicator ); + } + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::VideoIndicatorL() +// +// ----------------------------------------------------------------------------- +// +CMyVideosIndicator& CVcxHgMyVideosCategoryModelHandler::VideoIndicatorL() + { + if ( !iVideoIndicator ) + { + iVideoIndicator = CMyVideosIndicator::NewL(); + } + return *iVideoIndicator; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::ThumbnailPreviewReady() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::ThumbnailPreviewReady( + MThumbnailData& /*aThumbnail*/, + TThumbnailRequestId /*aId*/ ) + { + // No implementation + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::ThumbnailReady() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::ThumbnailReady( + TInt aError, + MThumbnailData& aThumbnail, + TThumbnailRequestId aId ) + { + if ( aId == iTnRequestId ) + { + iTnRequestId = KErrNotFound; + + TRAP_IGNORE( ThumbnailReadyL( aError, aThumbnail, aId ) ); + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::ThumbnailReady() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::ThumbnailReadyL( + TInt aError, + MThumbnailData& aThumbnail, + TThumbnailRequestId /*aId*/ ) + { + TInt lastWatchedIndex = ResolveCategoryArrayIndexById( KCategoryIdLastWatched ); + if ( lastWatchedIndex != KErrNotFound ) + { + CHgItem& listItem = iScroller.ItemL( lastWatchedIndex ); + CGulIcon* thumbnail( NULL ); + + if ( !aError ) + { + thumbnail = CGulIcon::NewL( aThumbnail.DetachBitmap() ); + CleanupStack::PushL( thumbnail ); + } + else + { + TFileName iconFile( KVcxHgMyVideosMifFile ); + thumbnail = CreateHgListIconL( iconFile, + EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video, + EMbmVcxhgmyvideosiconsQgn_prop_recent_thumbnail_video_mask ); + + CleanupStack::PushL( thumbnail ); + } + + listItem.SetIcon( thumbnail ); // Takes ownership + CleanupStack::Pop( thumbnail ); + + iScroller.RefreshScreen( lastWatchedIndex ); + } + } + + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::HandleExtraItemSelectionL() +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCategoryModelHandler::HandleExtraItemSelectionL( + TInt categoryId, + TVcxHgMyVideosCategoryItemType& aItemType, + TUid& aUid, + TDes& aUrl ) + { + TInt uidKey = 0; + TInt urlKey = 0; + + aItemType = TVcxHgMyVideosCategoryItemTypeUndefined; + + switch ( categoryId ) + { + case KCategoryIdExtraItem1: + { + uidKey = KCRVideoPlayerExtraItem1Uid; + urlKey = KCRVideoPlayerExtraItem1Url; + break; + } + case KCategoryIdExtraItem2: + { + uidKey = KCRVideoPlayerExtraItem2Uid; + urlKey = KCRVideoPlayerExtraItem2Url; + break; + } + case KCategoryIdExtraItem3: + { + uidKey = KCRVideoPlayerExtraItem3Uid; + urlKey = KCRVideoPlayerExtraItem3Url; + break; + } + default: + return; + } + + TBuf urlString; + TInt uidInt( 0 ) ; + + // Try to get web link URL first. + TInt error = iModel.GetMyVideosCustomizationString( urlKey, urlString ); + if ( error == KErrNone && urlString.Size() > 0 ) + { + aUrl = urlString; + aItemType = TVcxHgMyVideosCategoryItemTypeUrl; + } + else + { + // If URL is not found try to fetch application UID. + error = iModel.GetMyVideosCustomizationInt( uidKey, uidInt ); + if ( error == KErrNone && uidInt != 0 ) + { + aUid = TUid::Uid( uidInt ); + aItemType = TVcxHgMyVideosCategoryItemTypeUid; + } + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::CreateHgListIconL() +// +// ----------------------------------------------------------------------------- +// +CGulIcon* CVcxHgMyVideosCategoryModelHandler::CreateHgListIconL( + const TFileName& aFileName, + TInt aBitmapId, + TInt aMaskId ) + { + IPTVLOGSTRING4_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::CreateHgListIconL() bitmap=%d mask=%d file %S", aBitmapId, aMaskId, &aFileName ); + + CFbsBitmap* bitmap( NULL ); + CFbsBitmap* mask( NULL ); + CGulIcon* icon( NULL ); + + // Create default icon for Hg list. + AknIconUtils::CreateIconLC( + bitmap, + mask, + aFileName, + aBitmapId, + aMaskId ); + + TInt error( KErrNone ); + error = AknIconUtils::SetSize( + bitmap, + CHgDoubleGraphicList::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved ); + User::LeaveIfError( error ); + + error = AknIconUtils::SetSize( + mask, + CHgDoubleGraphicList::PreferredImageSize(), + EAspectRatioPreservedAndUnusedSpaceRemoved ); + User::LeaveIfError( error ); + + // Ownership of bitmap and mask is transferred to icon. + icon = CGulIcon::NewL( bitmap, mask ); + CleanupStack::Pop( 2, bitmap ); // mask and bitmap + + IPTVLOGSTRING2_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::CreateHgListIconL() icon=0x%08x", icon ); + + return icon; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::CreateEmptyHgListIconL() +// +// ----------------------------------------------------------------------------- +// +CGulIcon* CVcxHgMyVideosCategoryModelHandler::CreateEmptyHgListIconL() + { + IPTVLOGSTRING_LOW_LEVEL( "CVcxHgMyVideosCategoryModelHandler::CreateEmptyHgListIconL()" ); + CGulIcon* icon( NULL ); + CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; + + bitmap->Create( CHgDoubleGraphicList::PreferredImageSize(), ENone ); + CleanupStack::PushL( bitmap ); + icon = CGulIcon::NewL( bitmap ); + CleanupStack::Pop( bitmap ); + + return icon; + } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideoscollectionclient.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideoscollectionclient.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideoscollectionclient.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -105,7 +105,6 @@ // CVcxHgMyVideosCollectionClient::~CVcxHgMyVideosCollectionClient() { - delete iLatestMpxMedia; delete iDownloadClient; if ( iCollectionUtility ) { @@ -383,81 +382,6 @@ } // ----------------------------------------------------------------------------- -// CVcxHgMyVideosCollectionClient::SetAttributeL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosCollectionClient::SetAttributeL( const CMPXMedia& aMedia, - const TMPXAttribute& aAttribute, - const TUint32 aValue ) - { - if ( ! HasPendingCommand() && ! iDownloadClient->HasPendingCommand() ) - { - CMPXMedia* updatedMedia = CMPXMedia::NewL(); - CleanupStack::PushL( updatedMedia ); - CMPXCommand* cmd = CMPXCommand::NewL(); - CleanupStack::PushL( cmd ); - - updatedMedia->SetTObjectValueL( - KMPXMediaGeneralId, - aMedia.ValueTObjectL( KMPXMediaGeneralId ) ); - updatedMedia->SetTObjectValueL( aAttribute, aValue ); - - cmd->SetTObjectValueL( KMPXCommandGeneralId, KMPXCommandIdCollectionSet ); - cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue ); - cmd->SetCObjectValueL( KMPXCommandColSetMedia, updatedMedia ); - cmd->SetTObjectValueL( KMPXCommandGeneralCollectionId, - KVcxUidMyVideosMpxCollection ); - - iCollectionUtility->Collection().CommandL( *cmd ); - - CleanupStack::PopAndDestroy( cmd ); - CleanupStack::PopAndDestroy( updatedMedia ); - } - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosCollectionClient::SetAttributeL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosCollectionClient::SetAttributeL( const CMPXMedia& aMedia, - const TMPXAttribute& aAttribute, - const TReal32 aValue ) - { - if ( ! HasPendingCommand() && ! iDownloadClient->HasPendingCommand() ) - { - CMPXMedia* updatedMedia = CMPXMedia::NewL(); - CleanupStack::PushL( updatedMedia ); - CMPXCommand* cmd = CMPXCommand::NewL(); - CleanupStack::PushL( cmd ); - - updatedMedia->SetTObjectValueL( - KMPXMediaGeneralId, - aMedia.ValueTObjectL( KMPXMediaGeneralId ) ); - updatedMedia->SetTObjectValueL( aAttribute, aValue ); - - cmd->SetTObjectValueL( KMPXCommandGeneralId, KMPXCommandIdCollectionSet ); - cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue ); - cmd->SetCObjectValueL( KMPXCommandColSetMedia, updatedMedia ); - cmd->SetTObjectValueL( KMPXCommandGeneralCollectionId, - KVcxUidMyVideosMpxCollection ); - - iCollectionUtility->Collection().CommandL( *cmd ); - - CleanupStack::PopAndDestroy( cmd ); - CleanupStack::PopAndDestroy( updatedMedia ); - } - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosCollectionClient::GetLatestFetchedMpxMediaL() -// ----------------------------------------------------------------------------- -// -CMPXMedia* CVcxHgMyVideosCollectionClient::GetLatestFetchedMpxMediaL() - { - return iLatestMpxMedia; - } - -// ----------------------------------------------------------------------------- // CVcxHgMyVideosCollectionClient::FetchMpxMediaByMpxIdL() // ----------------------------------------------------------------------------- // @@ -606,6 +530,9 @@ case KVcxMessageMyVideosItemsAppended: HandleMyVideosItemsAppendedL( aMessage, aError ); break; + case KVcxMessageMyVideosListComplete: + HandleMyVideosListCompleteL( aMessage, aError ); + break; case KVcxMessageMyVideosDeleteStarted: case KVcxMessageMyVideosDeleteResp: HandleMyVideosDeleteMessageL( aMessage, aError ); @@ -717,7 +644,12 @@ if ( iCategoryModelObserver ) { - iCategoryModelObserver->NewCategoryListL( categoryArray ); + TBool isPartial( EFalse ); + if ( aEntries.IsSupported( KVcxMediaMyVideosVideoListIsPartial ) ) + { + isPartial = aEntries.ValueTObjectL( KVcxMediaMyVideosVideoListIsPartial ); + } + iCategoryModelObserver->NewCategoryListL( categoryArray, isPartial ); CleanupStack::Pop( categoryArray ); } else @@ -878,12 +810,6 @@ { IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # HandleMyVideosItemsChangedL() - MMC plugged/unplugged." ); - - // Show "Refreshing view" information note. - HBufC* text = StringLoader::LoadLC( R_VCXHGMYVIDEOS_REFRESHING ); - CAknConfirmationNote* note = new (ELeave) CAknConfirmationNote(); - note->ExecuteLD( *text ); - CleanupStack::PopAndDestroy( text ); if ( levels == KVcxMpxLevelCategories ) { @@ -894,7 +820,7 @@ { if ( levels == KVcxMpxLevelCategories ) { - if ( iCategoryModelObserver && eventlevel == KVcxHgEventLevelCategory ) + if ( iCategoryModelObserver ) { iCategoryModelObserver->CategoryModifiedL( eventType, eventData ); } @@ -1129,10 +1055,13 @@ // Ownership is transferred. iVideoModelObserver->VideoFetchingCompletedL( media ); } - - delete iLatestMpxMedia; - iLatestMpxMedia = NULL; - iLatestMpxMedia = CMPXMedia::NewL( *( ( *array )[0] ) ); + + else if ( iCategoryModelObserver ) + { + CMPXMedia* media = CMPXMedia::NewL( *( ( *array )[0] ) ); + // Ownership is transferred. + iCategoryModelObserver->VideoFetchingCompletedL( media ); + } } } CleanupStack::PopAndDestroy( entries ); @@ -1140,6 +1069,23 @@ } // ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosCollectionClient::HandleMyVideosListCompleteL( CMPXMessage* /*aMessage*/, + TInt aError ) + { + IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # HandleMyVideosListCompleteL()" ); + if ( aError == KErrNone ) + { + if ( iCategoryModelObserver ) + { + iCategoryModelObserver->CategoryListFetchingCompletedL(); + } + } + } + +// ----------------------------------------------------------------------------- // CVcxHgMyVideosCollectionClient::HandleGetVideoDetailsRespL() // ----------------------------------------------------------------------------- // diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: TB92_33.1.1 % +// Version : %version: e92_37 % // INCLUDE FILES #include @@ -25,6 +25,8 @@ #include #include #include +#include // RApaLsSession +#include // CApaCommandLine #include #include @@ -49,6 +51,12 @@ _LIT( KVcxHgMyVideosMainViewResFile, "\\resource\\apps\\vcxhgmyvideos." ); const TUint32 KVcxHgMyVideosViewUid = 0x20021191; +const TUid KMediaSettingsAppUid = { 0x10005A3F }; +const TUid KBrowserAppUid = { 0x10008D39 }; + +const TInt KVcxHgMyVideosUrlMaxLen = 1024; + +_LIT( KBrowserProtocol, "4 " ); // ============================ MEMBER FUNCTIONS =============================== @@ -146,8 +154,8 @@ IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosMainView::CategoryListL: Creating category list." ); // Create category list control. - CHgDoubleTextList* hgCategoryList = - CHgDoubleTextList::NewL( ClientRect(), 0 ); + CHgDoubleGraphicList* hgCategoryList = + CHgDoubleGraphicList::NewL( ClientRect(), 0 ); CleanupStack::PushL( hgCategoryList ); // Create list implementations. @@ -361,7 +369,7 @@ if ( highlight >= 0 ) { - ActivateVideoListL( highlight ); + CategoryListL()->HandleOpenL( highlight ); } } break; @@ -450,6 +458,12 @@ VideoListL()->HandleMarkCommandL( aCommand ); } break; + case EVcxHgMyVideosCmdOpenSettings: + { + // Open MediaSettings application + LaunchAppL( KMediaSettingsAppUid ); + } + break; case EVcxHgMyVideosCmdHelp: { HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), @@ -756,7 +770,15 @@ } else { - rskToSet = R_VCXHGMYVIDEOS_RSK_BACK; + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle || + iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryBusy ) + { + rskToSet = R_VCXHGMYVIDEOS_RSK_EXIT; + } + else + { + rskToSet = R_VCXHGMYVIDEOS_RSK_BACK; + } } if ( rskToSet != iCurrentRskResource ) @@ -783,3 +805,81 @@ VideoListL()->HandleMarkCommandL( EVcxHgMyVideosCmdStopMarking ); } } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::LaunchAppL() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::LaunchAppL( const TUid aAppUid, const TDesC& aMsg ) + { + RWsSession wsSession; + User::LeaveIfError( wsSession.Connect() ); + CleanupClosePushL( wsSession ); + TApaTaskList taskList( wsSession ); + TApaTask task = taskList.FindApp( aAppUid ); + TInt msgLen = aMsg.Length(); + + if ( task.Exists() ) + { + if ( msgLen > 0 ) + { + // Send message + HBufC8* param8 = HBufC8::NewLC( msgLen ); + param8->Des().Append( aMsg ); + task.SendMessage( TUid::Uid( 0 ), *param8 ); + CleanupStack::PopAndDestroy( param8 ); + } + else + { + task.BringToForeground(); + } + } + else // Task didn't exist + { + RApaLsSession appArcSession; + User::LeaveIfError( appArcSession.Connect() ); + CleanupClosePushL( appArcSession ); + + if ( msgLen > 0 ) + { + TThreadId id; + appArcSession.StartDocument( aMsg, aAppUid , id ); + } + else + { + TApaAppInfo appInfo; + TInt retVal = appArcSession.GetAppInfo( appInfo, aAppUid ); + if ( retVal == KErrNone ) + { + CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); + cmdLine->SetExecutableNameL( appInfo.iFullName ); + cmdLine->SetCommandL( EApaCommandRun ); + User::LeaveIfError( appArcSession.StartApp( *cmdLine ) ); + CleanupStack::PopAndDestroy( cmdLine ); + } + else + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # CVcxHgMyVideosMainView::LaunchAppL - Application not found!" ); + } + } + CleanupStack::PopAndDestroy(); // appArcSession + } + CleanupStack::PopAndDestroy(); // wsSession + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::LaunchBrowserL() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::LaunchBrowserL( const TDesC& aUrl ) + { + HBufC* param = HBufC::NewLC( KVcxHgMyVideosUrlMaxLen ); + param->Des().Copy( KBrowserProtocol() ); + param->Des().Append( aUrl ); + + LaunchAppL( KBrowserAppUid, *param ); + + CleanupStack::PopAndDestroy( param ); + } + diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosmodel.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideosmodel.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosmodel.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -22,16 +22,12 @@ #include #include #include "IptvDebug.h" -#include -#include "iptvlastwatcheddata.h" -#include "iptvlastwatchedapi.h" #include "vcxhgmyvideosmodel.h" #include "vcxhgmyvideoscollectionclient.h" #include "vcxhgmyvideosdownloadclient.h" -#include "vcxnsmediatorids.h" #include "thumbnaildata.h" - -_LIT( KTemporaryThumbPath, "C:\\Data\\videocenter\\ecg\\lastwatched.bmp" ); +#include "vcxhgmyvideoscenrepkeys.h" +#include "vcxhgmyvideosthumbnailmanager.h" // ============================ MEMBER FUNCTIONS =============================== @@ -42,7 +38,6 @@ CVcxHgMyVideosModel::CVcxHgMyVideosModel() : iAppState( EVcxMyVideosAppStateUnknown ), iPreviousAppState( EVcxMyVideosAppStateUnknown ), - iTnRequestId( KErrNotFound ), iSortOrder( EVcxMyVideosSortingNone ) { } @@ -80,7 +75,8 @@ { iCollection = CVcxHgMyVideosCollectionClient::NewL(); iTouchSupport = AknLayoutUtils::PenEnabled(); - iMediatorEventProvider = CMediatorEventProvider::NewL(); + iTnManager = CVcxHgMyVideosThumbnailManager::NewL(); + InitMyVideosCenRepL(); } // ----------------------------------------------------------------------------- @@ -96,16 +92,8 @@ delete iDriveMonitor; delete iCollection; delete iCollectionCenRep; - delete iLastWatchedApi; - delete iLastWatchedData; - delete iVideoPlayerCustomMessage; - - if ( iTnManager && iTnRequestId != KErrNotFound ) - { - iTnManager->CancelRequest( iTnRequestId ); - } + delete iMyVideosCenRep; delete iTnManager; - delete iMediatorEventProvider; } // ----------------------------------------------------------------------------- @@ -143,7 +131,17 @@ { if ( ! iFsSession.Handle() ) { - User::LeaveIfError( iFsSession.Connect() ); + TInt err = iFsSession.Connect(); + if ( err == KErrNone ) + { + // For sending handles to thumbnailmanager + err = iFsSession.ShareProtected(); + } + if ( err != KErrNone ) + { + iFsSession.Close(); + User::Leave( err ); + } } return iFsSession; @@ -211,6 +209,20 @@ } // ----------------------------------------------------------------------------- +// CVcxHgMyVideosModel::GetLastWatchedIdL() +// ----------------------------------------------------------------------------- +// +TInt CVcxHgMyVideosModel::GetLastWatchedIdL( TInt& aId ) + { + if ( ! iCollectionCenRep ) + { + iCollectionCenRep = CRepository::NewL( TUid::Uid( KVcxMyVideosCollectionCenrepUid ) ); + } + + return iCollectionCenRep->Get( KVcxMyVideosCollectionCenrepKeyLastWatchedMpxId, aId ); + } + +// ----------------------------------------------------------------------------- // CVcxHgMyVideosModel::VideolistSortOrderL() // ----------------------------------------------------------------------------- // @@ -275,222 +287,12 @@ } // ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::SetVideoAsLastWatchedL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::SetVideoAsLastWatchedL( TVideoPlayerCustomMessage& aVideoInfo, - TInt aMpxId1, - TUint32 aAgeProfile ) - { - if ( iTnRequestId != KErrNotFound ) - { - ThumbnailManagerL()->CancelRequest( iTnRequestId ); - iTnRequestId = KErrNotFound; - } - - CopyVideoPlayerCustomMessageL( aVideoInfo, *VideoPlayerCustomMessageL() ); - - // Store data from Video Player Custom message to 'Last Watched' item on - // disk. Un-used (legacy) data fields are resetted to dummy values. - - LastWatchedDataL()->SetIconPathL( VideoPlayerCustomMessageL()->iIcon ); - /* - LastWatchedDataL()->SetLastVideoPlayPoint( ViaPlayerCustomMessageL()->iStartPosition ); - LastWatchedDataL()->SetMimeTypeL( ViaPlayerCustomMessageL()->iMimeType ); - */ - - LastWatchedDataL()->SetNameL( VideoPlayerCustomMessageL()->iName ); - LastWatchedDataL()->SetUriL( VideoPlayerCustomMessageL()->iContent ); - - // LastWatchedDataL()->SetContentType( ViaPlayerCustomMessageL()->iContentType ); - - LastWatchedDataL()->SetMpxId( aMpxId1 ); - LastWatchedDataL()->SetServiceId( KIdUndefined ); - LastWatchedDataL()->SetContentId( KIdUndefined ); - LastWatchedDataL()->SetContentIndex( -1 ); - LastWatchedDataL()->SetParentalControl( aAgeProfile ); - LastWatchedDataL()->SetParametersL( KNullDesC8 ); - LastWatchedDataL()->SetAppUid( TUid::Uid( 0 ) ); - LastWatchedDataL()->SetViewUid( TUid::Uid( 0 ) ); - LastWatchedDataL()->SetParameterId( TUid::Uid( 0 ) ); - LastWatchedDataL()->SetLaunchType( CIptvLastWatchedData::EUndefined ); - - // Start fetching or generating thumbnail for last watched video. - // The 'Last Watched' data is published only when thumb is available. - CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( - VideoPlayerCustomMessageL()->iContent, - KNullDesC ); - iTnRequestId = ThumbnailManagerL()->GetThumbnailL( *source ); - CleanupStack::PopAndDestroy( source ); - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::UpdateLastWatchedPlayPositionL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::UpdateLastWatchedPlayPositionL( TUint32 aLastVideoPlayPoint ) - { - if ( iTnRequestId != KErrNotFound ) - { - LastWatchedDataL()->SetLastVideoPlayPoint( aLastVideoPlayPoint ); - } - else - { - LastWatchedApiL()->UpdateLastVideoPlayPointL( aLastVideoPlayPoint ); - } - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::GetLastWatchedDataL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::GetLastWatchedDataL( TVideoPlayerCustomMessage& aVideoInfo, - TUint32& /*aMpxId1 */, - TUint32& aAgeProfile ) - { - LastWatchedApiL()->GetLastWatchedDataL( *LastWatchedDataL() ); - - aVideoInfo.iContent = LastWatchedDataL()->Uri(); - aVideoInfo.iName = LastWatchedDataL()->Name(); - aVideoInfo.iIcon = LastWatchedDataL()->IconPath(); - - aAgeProfile = LastWatchedDataL()->ParentalControl(); - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::ThumbnailPreviewReady() -// From MThumbnailManagerObserver, not used in Video Center. -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::ThumbnailPreviewReady( MThumbnailData& /*aThumbnail*/, - TThumbnailRequestId /*aId*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::ThumbnailReady() -// From MThumbnailManagerObserver -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::ThumbnailReady( TInt aError, - MThumbnailData& aThumbnail, - TThumbnailRequestId aId ) - { - TRAP_IGNORE( HandleThumbnailReadyL( aError, aThumbnail, aId ) ); - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::HandleThumbnailReadyL() +// CVcxHgMyVideosModel::ThumbnailManager() // ----------------------------------------------------------------------------- // -void CVcxHgMyVideosModel::HandleThumbnailReadyL( TInt aError, - MThumbnailData& aThumbnail, - TThumbnailRequestId aId ) - { - IPTVLOGSTRING3_LOW_LEVEL( - "MPX My Videos UI # HandleThumbnailReadyL(error=%d, ID=%d)", aError, aId ); - - if ( aError == KErrNone && aId == iTnRequestId ) - { - iTnRequestId = KErrNotFound; - - // Save a copy of the bitmap to local file that Matrix Menu can access. - CFbsBitmap* bitmap = aThumbnail.Bitmap(); - bitmap->Save( KTemporaryThumbPath ); - LastWatchedDataL()->SetIconPathL( KTemporaryThumbPath ); - VideoPlayerCustomMessageL()->iIcon = KTemporaryThumbPath; - } - else - { - iTnRequestId = KErrNotFound; - } - - LastWatchedApiL()->SetLastWatchedDataL( *LastWatchedDataL() ); - TPckg videoInfoPckg( *VideoPlayerCustomMessageL() ); - iMediatorEventProvider->RaiseEvent( KVcxNsVideoCenterMediatorDomain, - KVcxNsPlayerGeneralCategory, - KVcxNsMediatorEventPlayerLastWatch, - TVersion( KVcxNsMediatorPlayerVersion, 0, 0 ), - videoInfoPckg ); - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::ResetDownloadNotification() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::ResetDownloadNotification() - { - iMediatorEventProvider->RaiseEvent( TUid::Uid( KVcxNsMpxMediatorDomain ), - TUid::Uid( KVcxNsMpxMediatorCategory ), - KVcxNsMpxEventResetDownloadNotification, - TVersion( KVcxNsMpxEventVersion, 0, 0 ), - KNullDesC8() ); - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::ThumbnailManagerL() -// ----------------------------------------------------------------------------- -// -CThumbnailManager* CVcxHgMyVideosModel::ThumbnailManagerL() +CVcxHgMyVideosThumbnailManager& CVcxHgMyVideosModel::ThumbnailManager() const { - if ( ! iTnManager ) - { - iTnManager = CThumbnailManager::NewL( *this ); - iTnManager->SetThumbnailSizeL( EVideoListThumbnailSize ); - iTnManager->SetDisplayModeL( EColor16M ); - } - return iTnManager; - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::CopyVideoPlayerCustomMessageL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosModel::CopyVideoPlayerCustomMessageL( TVideoPlayerCustomMessage& aSource, - TVideoPlayerCustomMessage& aTarget ) - { - aTarget.iContent = aSource.iContent; - aTarget.iName = aSource.iName; - aTarget.iIcon = aSource.iIcon; - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::VideoPlayerCustomMessageL() -// ----------------------------------------------------------------------------- -// -TVideoPlayerCustomMessage* CVcxHgMyVideosModel::VideoPlayerCustomMessageL() - { - if ( ! iVideoPlayerCustomMessage ) - { - iVideoPlayerCustomMessage = new (ELeave) TVideoPlayerCustomMessage; - } - return iVideoPlayerCustomMessage; - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::LastWatchedApiL() -// ----------------------------------------------------------------------------- -// -CIptvLastWatchedApi* CVcxHgMyVideosModel::LastWatchedApiL() - { - if ( ! iLastWatchedApi ) - { - iLastWatchedApi = CIptvLastWatchedApi::NewL(); - } - return iLastWatchedApi; - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosModel::LastWatchedDataL() -// ----------------------------------------------------------------------------- -// -CIptvLastWatchedData* CVcxHgMyVideosModel::LastWatchedDataL() - { - if ( ! iLastWatchedData ) - { - iLastWatchedData = CIptvLastWatchedData::NewL(); - } - return iLastWatchedData; + return *iTnManager; } // ----------------------------------------------------------------------------- @@ -502,3 +304,46 @@ // We are not interested about the event, we are observing just to keep // iDriveMonitor.iAvailableDrives up to date. } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosModel::GetMyVideosCustomizationIntL() +// ----------------------------------------------------------------------------- +// +TInt CVcxHgMyVideosModel::GetMyVideosCustomizationInt( const TInt& aKey, + TInt& aValue ) + { + if ( iMyVideosCenRep ) + { + return iMyVideosCenRep->Get( aKey, aValue ); + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosModel::GetMyVideosCustomizationString() +// ----------------------------------------------------------------------------- +// +TInt CVcxHgMyVideosModel::GetMyVideosCustomizationString( const TInt& aKey, + TDes& aValue ) + { + if ( iMyVideosCenRep ) + { + return iMyVideosCenRep->Get( aKey, aValue ); + } + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosModel::InitMyVideosCenRepL() +// ----------------------------------------------------------------------------- +// +TInt CVcxHgMyVideosModel::InitMyVideosCenRepL() + { + TInt retVal = KErrNone; + if ( !iMyVideosCenRep ) + { + TRAPD( error, iMyVideosCenRep = CRepository::NewL( KMyVideosMainViewCenRepUid ) ); + retVal = error; + } + return retVal; + } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosthumbnailmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosthumbnailmanager.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -0,0 +1,189 @@ +/* +* 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: Class for sharing thumbnailmanager session +*/ + + +// INCLUDE FILES +#include +#include +#include "vcxhgmyvideosthumbnailmanager.h" + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::NewL() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosThumbnailManager* CVcxHgMyVideosThumbnailManager::NewL() + { + CVcxHgMyVideosThumbnailManager* self = + CVcxHgMyVideosThumbnailManager::NewLC(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::NewLC() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosThumbnailManager* CVcxHgMyVideosThumbnailManager::NewLC() + { + CVcxHgMyVideosThumbnailManager* self = + new (ELeave) CVcxHgMyVideosThumbnailManager(); + CleanupStack::PushL( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::~CVcxHgMyVideosThumbnailManager() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosThumbnailManager::~CVcxHgMyVideosThumbnailManager() + { + iTnObservers.Reset(); // The pointers are not own + delete iTnManager; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::PeekL() +// ----------------------------------------------------------------------------- +// +TThumbnailRequestId CVcxHgMyVideosThumbnailManager::PeekL( + CThumbnailObjectSource& aSource ) + { + CThumbnailManager& tnm = SessionL(); + + // Set 'do not create' if needed + if ( !( iCurrentFlags & CThumbnailManager::EDoNotCreate ) ) + { + CThumbnailManager::TThumbnailFlags flags = + static_cast< CThumbnailManager::TThumbnailFlags >( + iCurrentFlags | CThumbnailManager::EDoNotCreate ); + tnm.SetFlagsL( flags ); + iCurrentFlags = flags; + } + + return tnm.GetThumbnailL( aSource ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::GetL() +// ----------------------------------------------------------------------------- +// +TThumbnailRequestId CVcxHgMyVideosThumbnailManager::GetL( + CThumbnailObjectSource& aSource ) + { + CThumbnailManager& tnm = SessionL(); + + // Remove 'do not create' if needed + if ( iCurrentFlags & CThumbnailManager::EDoNotCreate ) + { + CThumbnailManager::TThumbnailFlags flags = + static_cast< CThumbnailManager::TThumbnailFlags >( + iCurrentFlags & (~CThumbnailManager::EDoNotCreate) ); + tnm.SetFlagsL( flags ); + iCurrentFlags = flags; + } + + return tnm.GetThumbnailL( aSource ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::Cancel() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosThumbnailManager::Cancel( TThumbnailRequestId aRequestId ) + { + if ( iTnManager ) + { + iTnManager->CancelRequest( aRequestId ); + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::AddObserverL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosThumbnailManager::AddObserverL( + MThumbnailManagerObserver& aObserver ) + { + iTnObservers.InsertInAddressOrderL( &aObserver ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::RemoveObserver() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosThumbnailManager::RemoveObserver( + MThumbnailManagerObserver& aObserver ) + { + TInt i = iTnObservers.FindInAddressOrder( &aObserver ); + if ( i >= 0 && i < iTnObservers.Count() ) + { + iTnObservers.Remove( i ); // Pointer is not own + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::ThumbnailPreviewReady() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosThumbnailManager::ThumbnailPreviewReady( + MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ ) + { + // No implementation required. + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::ThumbnailReady() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosThumbnailManager::ThumbnailReady( TInt aError, + MThumbnailData& aThumbnail, TThumbnailRequestId aId ) + { + TInt count = iTnObservers.Count(); + for( TInt i = 0; i < count; ++i ) + { + iTnObservers[i]->ThumbnailReady( aError, aThumbnail, aId ); + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::CVcxHgMyVideosThumbnailManager() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosThumbnailManager::CVcxHgMyVideosThumbnailManager() + { + // No implementation required. + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosThumbnailManager::SessionL() +// ----------------------------------------------------------------------------- +// +CThumbnailManager& CVcxHgMyVideosThumbnailManager::SessionL() + { + if ( !iTnManager ) + { + CThumbnailManager* tnm = CThumbnailManager::NewLC( *this ); + tnm->SetThumbnailSizeL( EVideoListThumbnailSize ); + tnm->SetDisplayModeL( EColor16M ); + iCurrentFlags = tnm->Flags(); + CleanupStack::Pop( tnm ); + iTnManager = tnm; + } + return *iTnManager; + } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosvideodataupdater.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideodataupdater.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideodataupdater.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -39,8 +39,11 @@ #include "vcxhgmyvideosvideolist.h" #include "vcxhgmyvideosvideodataupdater.h" #include "vcxhgmyvideosindicatorhelper.h" +#include "vcxhgmyvideosthumbnailmanager.h" const TInt KRefreshTimerInterval( 1000000 ); // 1 second +const TInt KMaxThumbnailReqs( 2 ); // Max count of peek and get reqs combined +const TInt KMaxThumbnailGetReqs( 1 ); // Max count of get reqs // ============================ MEMBER FUNCTIONS =============================== @@ -103,6 +106,7 @@ void CVcxHgMyVideosVideoDataUpdater::ConstructL() { iRefreshTimer = CPeriodic::NewL( CActive::EPriorityStandard ); + iModel.ThumbnailManager().AddObserverL( *this ); } // ----------------------------------------------------------------------------- @@ -123,15 +127,10 @@ // CVcxHgMyVideosVideoDataUpdater::~CVcxHgMyVideosVideoDataUpdater() { - if ( iRefreshTimer ) - { - // Calling cancel without checking if the timer is active is safe. - iRefreshTimer->Cancel(); - delete iRefreshTimer; - } - - CancelAndDeleteFetchArray(); - delete iTnEngine; + iModel.ThumbnailManager().RemoveObserver( *this ); + Cancel(); + delete iRefreshTimer; // Cancels active timer + iFetchArray.ResetAndDestroy(); } // ----------------------------------------------------------------------------- @@ -159,6 +158,24 @@ } // ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoDataUpdater::AddToRequestBufferL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoDataUpdater::AddToRequestBufferL( TMPXItemId aMPXItemId ) + { + AddItemToFetchArrayL( aMPXItemId ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoDataUpdater::FlushRequestBufferL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoDataUpdater::FlushRequestBufferL() + { + ContinueVideoDataFetchingL(); + } + +// ----------------------------------------------------------------------------- // CVcxHgMyVideosVideoDataUpdater::ReleaseData() // ----------------------------------------------------------------------------- // @@ -204,20 +221,12 @@ { if ( aIndex >= 0 && aIndex < iFetchArray.Count() ) { - CVcxHgMyVideosVideoData::TVideoDataState state = iFetchArray[aIndex]->State(); - - if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted ) + CVcxHgMyVideosVideoData* item = iFetchArray[aIndex]; + CVcxHgMyVideosVideoData::TVideoDataState state = item->State(); + if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted || + state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted ) { - // Cancel thumbnail generation. Safe to ignore leave, as the ThumbnailManagerL - // can only leave if iTnEngine is not created yet, so there cannot be - // any outstanding requests either. - TRAP_IGNORE( ThumbnailManagerL()->CancelRequest( - iFetchArray[aIndex]->ThumbnailConversionId() ) ); - } - else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateDrmStarted ) - { - // Cancel DRM checking. - Cancel(); + iModel.ThumbnailManager().Cancel( item->ThumbnailConversionId() ); } } } @@ -228,9 +237,10 @@ // void CVcxHgMyVideosVideoDataUpdater::CancelAndDeleteFetchArray() { - for ( TInt i = 0; i < iFetchArray.Count(); i++ ) + TInt count = iFetchArray.Count(); + for ( TInt i = 0; i < count; i++ ) { - RemoveItem( i ); + CancelActivities( i ); } iFetchArray.ResetAndDestroy(); } @@ -241,90 +251,66 @@ // void CVcxHgMyVideosVideoDataUpdater::ContinueVideoDataFetchingL() { - if ( iFetchArray.Count() >= 1 && ! iPaused && iVideoArray.VideoCount() > 0 ) + if ( !iPaused && iVideoArray.VideoCount() > 0 && iFetchArray.Count() > 0 ) { - TBool go = EFalse; - - // If first item is in idle state, we need to start new operation. - if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateNone ) - { - // It's safe to ignore leave here, because in that case we just use the first index - // of fetch array. - TRAP_IGNORE( SelectNextIndexL() ); - go = ETrue; - } - // If thumbnail generation has finished, start DRM checking. - else if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished ) - { - go = ETrue; - } - // If first item has completed all operations, remove it and start with second one. - else if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateDrmFinished ) + TBool startRefreshTimer = EFalse; + TInt peekReqs = 0; + TInt getReqs = 0; + GetActiveRequestCount( peekReqs, getReqs ); + TInt reqs = peekReqs + getReqs; + if ( reqs < KMaxThumbnailReqs ) { - UpdateVideoDataToUiL( *( iFetchArray[0] ) ); - RemoveItem( 0 ); - - if ( iFetchArray.Count() >= 1 ) + CVcxHgMyVideosVideoData::TVideoDataState state = + CVcxHgMyVideosVideoData::EVideoDataStateNone; + CVcxHgMyVideosVideoData* prevItem = NULL; + CVcxHgMyVideosVideoData* item = NULL; + do { - TRAP_IGNORE( SelectNextIndexL() ); - go = ETrue; - } - } - - if ( go ) - { - if ( iFetchArray[0]->State() == CVcxHgMyVideosVideoData::EVideoDataStateNone ) - { - CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( iFetchArray[0]->MPXItemId() ); - - if ( media && media->IsSupported( KMPXMediaGeneralUri ) ) + TInt err = KErrNone; + prevItem = item; + SelectNextIndexL( getReqs >= KMaxThumbnailGetReqs ); + item = iFetchArray[0]; + state = item->State(); + if ( state == CVcxHgMyVideosVideoData::EVideoDataStateNone ) { - HBufC* mimeType = NULL; - if ( media->IsSupported( KMPXMediaGeneralMimeType ) ) + // Try first a quick peek with thumbnail creation denied + TRAP( err, StartThumbnailL( *item, ETrue ) ); + if( err == KErrNone ) { - mimeType = media->ValueText( KMPXMediaGeneralMimeType ).AllocLC(); + ++reqs; + startRefreshTimer = ETrue; } - else + } + else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekFinished ) + { + if ( getReqs < KMaxThumbnailGetReqs ) { - mimeType = HBufC::NewLC( 1 ); + // Try then get with thumbnail creation allowed + TRAP( err, StartThumbnailL( *item, EFalse ) ); + if ( err == KErrNone ) + { + ++reqs; + ++getReqs; + startRefreshTimer = ETrue; + } } - - CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( - media->ValueText( KMPXMediaGeneralUri ), - *mimeType ); - iFetchArray[0]->SetThumbnailConversionId( - ThumbnailManagerL()->GetThumbnailL( *source ) ); - CleanupStack::PopAndDestroy( source ); - CleanupStack::PopAndDestroy( mimeType ); - - IPTVLOGSTRING3_LOW_LEVEL( - "MPX My Videos UI # GetThumbnailL() called thumbID %d for %S.", - iFetchArray[0]->ThumbnailConversionId(), - &media->ValueText( KMPXMediaGeneralUri ) ); - - iRefreshTimer->Cancel(); - iRefreshTimer->Start( KRefreshTimerInterval, - KRefreshTimerInterval, - TCallBack( RefreshTimerCallBack, this ) ); - - iFetchArray[0]->SetState( - CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted ); + } + else + { + break; // Nothing to be started } - } - else if ( iFetchArray[0]->State() == - CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished ) - { - if ( ! IsActive() ) + if ( err != KErrNone ) { - SetActive(); - iStatus = KRequestPending; - TRequestStatus* stat = &iStatus; - User::RequestComplete(stat, KErrNone); - - iFetchArray[0]->SetState( - CVcxHgMyVideosVideoData::EVideoDataStateDrmStarted ); - } + RemoveItem( 0 ); + } } + while ( iFetchArray.Count() > 0 && reqs < KMaxThumbnailReqs && prevItem != item ); + } + if ( startRefreshTimer ) + { + iRefreshTimer->Cancel(); + iRefreshTimer->Start( KRefreshTimerInterval, KRefreshTimerInterval, + TCallBack( RefreshTimerCallBack, this ) ); } } } @@ -333,18 +319,18 @@ // CVcxHgMyVideosVideoDataUpdater::UpdateVideoDataToUiL() // ----------------------------------------------------------------------------- // -void CVcxHgMyVideosVideoDataUpdater::UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& videoData ) +void CVcxHgMyVideosVideoDataUpdater::UpdateVideoDataToUiL( CVcxHgMyVideosVideoData& aVideoData ) { - TInt index = iVideoArray.IndexByMPXItemId( videoData.MPXItemId() ); + TInt index = iVideoArray.IndexByMPXItemId( aVideoData.MPXItemId() ); if ( index >= 0 && index < iScroller.ItemCount() ) { - TBool drmUpdate = videoData.DrmProtected(); + TBool drmUpdate = aVideoData.DrmProtected(); CHgItem& listItem = iScroller.ItemL( index ); - if ( videoData.Thumbnail() ) + if ( aVideoData.Thumbnail() ) { - CGulIcon* thumbnail = CGulIcon::NewL( videoData.Thumbnail( ETrue ) ); + CGulIcon* thumbnail = CGulIcon::NewL( aVideoData.Thumbnail( ETrue ) ); listItem.SetIcon( thumbnail ); } @@ -359,7 +345,7 @@ TInt indicator1( 0 ); TInt indicator2( 0 ); - if ( videoData.ValidDrmRights() ) + if ( aVideoData.ValidDrmRights() ) { drmStatus = TVcxHgMyVideosIndicatorHelper::EIndicatorDrmStatusValid; } @@ -411,7 +397,8 @@ // TInt CVcxHgMyVideosVideoDataUpdater::IndexByMPXItemId( TMPXItemId aMPXItemId ) { - for ( TInt i = 0; i < iFetchArray.Count(); i++ ) + TInt count = iFetchArray.Count(); + for ( TInt i = 0; i < count; i++ ) { if ( iFetchArray[i]->MPXItemId() == aMPXItemId ) { @@ -425,7 +412,7 @@ // CVcxHgMyVideosVideoDataUpdater::SelectNextIndexL() // ----------------------------------------------------------------------------- // -void CVcxHgMyVideosVideoDataUpdater::SelectNextIndexL() +void CVcxHgMyVideosVideoDataUpdater::SelectNextIndexL( TBool aSelectForPeekOnly ) { TInt firstIndexOnScreen = iScroller.FirstIndexOnScreen(); @@ -454,13 +441,28 @@ { mpxItemId = iVideoArray.ArrayIndexToMpxItemIdL( i ); index = IndexByMPXItemId( mpxItemId ); - - if ( index > 0 ) + + if ( index >= 0 ) { + CVcxHgMyVideosVideoData* item = iFetchArray[index]; + CVcxHgMyVideosVideoData::TVideoDataState state = item->State(); // Move selected index to first index of the fetch array. - iFetchArray.Insert( iFetchArray[index], 0 ); - iFetchArray.Remove( index + 1 ); - break; + if ( aSelectForPeekOnly ) + { + if ( state == CVcxHgMyVideosVideoData::EVideoDataStateNone ) + { + iFetchArray.InsertL( item, 0 ); + iFetchArray.Remove( index + 1 ); + break; + } + } + else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateNone || + state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekFinished ) + { + iFetchArray.InsertL( item, 0 ); + iFetchArray.Remove( index + 1 ); + break; + } } } } @@ -539,25 +541,6 @@ } // ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoDataUpdater::ThumbnailManagerL() -// ----------------------------------------------------------------------------- -// -CThumbnailManager* CVcxHgMyVideosVideoDataUpdater::ThumbnailManagerL() - { - if ( !iTnEngine ) - { - IPTVLOGSTRING_LOW_LEVEL( - "MPX My Videos UI # CVcxHgMyVideosVideoDataUpdater::ThumbnailManagerL: Creating thumbnail manager." ); - - iTnEngine = CThumbnailManager::NewL( *this ); - iTnEngine->SetThumbnailSizeL( EVideoListThumbnailSize ); - iTnEngine->SetDisplayModeL( EColor16M ); - } - - return iTnEngine; - } - -// ----------------------------------------------------------------------------- // CVcxHgMyVideosVideoDataUpdater::ThumbnailPreviewReady() // From MThumbnailManagerObserver, not used in Video Center. // ----------------------------------------------------------------------------- @@ -579,23 +562,51 @@ IPTVLOGSTRING3_LOW_LEVEL( "MPX My Videos UI # ThumbnailReady(error=%d, thumbID=%d)", aError, aId ); - if ( iFetchArray.Count() > 0 ) + TInt count = iFetchArray.Count(); + for( TInt i = 0; i < count; ++i ) { - if ( aError == KErrNone - && aId == iFetchArray[0]->ThumbnailConversionId() ) + CVcxHgMyVideosVideoData* item = iFetchArray[i]; + if ( aId == item->ThumbnailConversionId() ) { - // Never delete this, ownership gone to Ganes list - iFetchArray[0]->SetThumbnail( aThumbnail.DetachBitmap() ); + if ( aError == KErrNone || + aError == KErrCompletion || // Accept blacklisted + item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted ) + { + // Never delete this, ownership gone to Ganes list + item->SetThumbnail( aError == KErrNone ? aThumbnail.DetachBitmap() : NULL ); + item->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished ); + } + else if ( aError == KErrNotFound && + item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted ) + { + // Try getting thumbnail with create allowed when peek failed with not found + item->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekFinished ); + } + else + { + // Stop thumbnail peek attemps + item->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished ); + } + + // Start DRM check if thumb finished + if ( item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished && + !IsActive() ) + { + SetActive(); + TRequestStatus* stat = &iStatus; + User::RequestComplete( stat, KErrNone ); + } + + TRAPD( err, ContinueVideoDataFetchingL() ); + if ( err != KErrNone ) + { + IPTVLOGSTRING2_LOW_LEVEL( + "MPX My Videos UI # CVcxHgMyVideosVideoDataUpdater::ThumbnailReady, err = %d", + err ); + } + break; } - else - { - iFetchArray[0]->SetThumbnail( NULL ); - } - - iFetchArray[0]->SetState( CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished ); } - - TRAP_IGNORE( ContinueVideoDataFetchingL() ); } // ----------------------------------------------------------------------------- @@ -605,57 +616,29 @@ // void CVcxHgMyVideosVideoDataUpdater::RunL() { - if ( iFetchArray.Count() > 0 ) + if ( !iPaused ) { - CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( iFetchArray[0]->MPXItemId() ); - - if ( media ) + TInt i = 0; + while( i < iFetchArray.Count() ) { - if ( media->IsSupported( KMPXMediaGeneralUri ) ) + CVcxHgMyVideosVideoData* item = iFetchArray[i]; + if ( item->State() == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailFinished ) { - TUint32 flags = 0; - if ( media->IsSupported( KMPXMediaGeneralFlags ) ) - { - flags = media->ValueTObjectL( KMPXMediaGeneralFlags ); - } - - if ( flags & EVcxMyVideosVideoDrmProtected ) + TRAP_IGNORE( { - ContentAccess::CData* cData = NULL; - - iFetchArray[0]->SetDrmProtected( ETrue ); - iFetchArray[0]->SetValidDrmRights( EFalse ); - - TRAPD( trapError, - cData = CData::NewL( - (TVirtualPathPtr) media->ValueText( KMPXMediaGeneralUri ), - EPeek, - EContentShareReadWrite ) ); - - if ( cData ) - { - if ( trapError == KErrNone ) - { - TInt intentResult = cData->EvaluateIntent( ContentAccess::EPlay ); - - // Not valid rights should return KErrCANoRights, KErrCANoPermission, - // or in rare cases KErrCAPendingRights. But we don't trust those and - // just compare against KErrNone. - if ( intentResult == KErrNone ) - { - iFetchArray[0]->SetValidDrmRights( ETrue ); - } - } - delete cData; - } - } + CheckDrmL( *item ); + UpdateVideoDataToUiL( *item ); + } ); + delete iFetchArray[i]; + iFetchArray.Remove(i); + } + else + { + ++i; } } - - iFetchArray[0]->SetState( CVcxHgMyVideosVideoData::EVideoDataStateDrmFinished ); + ContinueVideoDataFetchingL(); } - - ContinueVideoDataFetchingL(); } // ----------------------------------------------------------------------------- @@ -669,8 +652,6 @@ if ( aError != KErrNone ) { - // Remove current item from fetch array - RemoveItem( 0 ); } return KErrNone; } @@ -683,3 +664,115 @@ void CVcxHgMyVideosVideoDataUpdater::DoCancel() { } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoDataUpdater::CheckDrmL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoDataUpdater::CheckDrmL( CVcxHgMyVideosVideoData& aVideoData ) + { + CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( aVideoData.MPXItemId() ); + if ( media && media->IsSupported( KMPXMediaGeneralUri ) ) + { + TUint32 flags = 0; + if ( media->IsSupported( KMPXMediaGeneralFlags ) ) + { + flags = media->ValueTObjectL( KMPXMediaGeneralFlags ); + } + if ( flags & EVcxMyVideosVideoDrmProtected ) + { + aVideoData.SetDrmProtected( ETrue ); + aVideoData.SetValidDrmRights( EFalse ); + + ContentAccess::CData* cData = CData::NewLC( + (TVirtualPathPtr) media->ValueText( KMPXMediaGeneralUri ), + EPeek, + EContentShareReadWrite ); + TInt intentResult = cData->EvaluateIntent( ContentAccess::EPlay ); + + // Not valid rights should return KErrCANoRights, KErrCANoPermission, + // or in rare cases KErrCAPendingRights. But we don't trust those and + // just compare against KErrNone. + if ( intentResult == KErrNone ) + { + aVideoData.SetValidDrmRights( ETrue ); + } + CleanupStack::PopAndDestroy( cData ); + } + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoDataUpdater::GetActiveRequestCount() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoDataUpdater::GetActiveRequestCount( + TInt& aPeekRequests, TInt& aGetRequests ) + { + aPeekRequests = 0; + aGetRequests = 0; + TInt count = iFetchArray.Count(); + for( TInt i = 0; i < count; ++i ) + { + CVcxHgMyVideosVideoData::TVideoDataState state = iFetchArray[i]->State(); + if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted ) + { + ++aPeekRequests; + } + else if ( state == CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted ) + { + ++aGetRequests; + } + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoDataUpdater::StartThumbnailL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoDataUpdater::StartThumbnailL( + CVcxHgMyVideosVideoData& aItem, TBool aPeek ) + { + CMPXMedia* media = iVideoArray.MPXMediaByMPXItemId( aItem.MPXItemId() ); + if ( media && media->IsSupported( KMPXMediaGeneralUri ) ) + { + TPtrC uri = media->ValueText( KMPXMediaGeneralUri ); + TPtrC mime = media->IsSupported( KMPXMediaGeneralMimeType ) ? + media->ValueText( KMPXMediaGeneralMimeType ) : KNullDesC; + TThumbnailRequestId id = 0; + if ( aPeek ) + { + CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( + uri, mime ); + id = iModel.ThumbnailManager().PeekL( *source ); + CleanupStack::PopAndDestroy( source ); + } + else + { + // Use shared file handle to minimize thumbnailserver overhead + RFs& fs = iModel.FileServerSessionL(); + RFile64 file; + User::LeaveIfError( file.Open( fs, uri, EFileShareReadersOrWriters )); + CleanupClosePushL( file ); + CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( + file, mime ); + id = iModel.ThumbnailManager().GetL( *source ); + CleanupStack::PopAndDestroy( source ); + CleanupStack::PopAndDestroy( &file ); + } + aItem.SetThumbnailConversionId( id ); + + IPTVLOGSTRING3_LOW_LEVEL( + "MPX My Videos UI # GetThumbnailL() called thumbID %d for %S.", + aItem.ThumbnailConversionId(), + &media->ValueText( KMPXMediaGeneralUri ) ); + + aItem.SetState( aPeek ? + CVcxHgMyVideosVideoData::EVideoDataStateThumbnailPeekStarted : + CVcxHgMyVideosVideoData::EVideoDataStateThumbnailStarted ); + } + else + { + User::Leave( KErrNotFound ); + } + } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosvideodetailsdialog.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideodetailsdialog.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideodetailsdialog.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -31,8 +31,6 @@ #include -const TInt KThousandNotKilobyte = 1000; - // ============================ MEMBER FUNCTIONS ============================= // --------------------------------------------------------------------------- diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosvideolistimpl.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideolistimpl.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideolistimpl.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -56,7 +56,6 @@ #include "vcxhgmyvideosvideocopier.h" #include "vcxhgmyvideospanics.h" #include "vcxhgmyvideosupnpinterface.h" -#include "vcxhgtelephonyclient.h" #ifdef RD_VIDEO_AS_RINGING_TONE #include "vcxhgmyvideosaiwmenuhandler.h" #endif @@ -104,9 +103,7 @@ CVcxHgMyVideosModel& aModel, CVcxHgMyVideosMainView& aView, CHgScroller& aScroller ) - : CVcxHgMyVideosListBase( aModel, aView, aScroller ), - iCurrentlyPlayedVideo( KErrNotFound ), - iMultipleMarkingActive( EFalse ) + : CVcxHgMyVideosListBase( aModel, aView, aScroller ) #ifdef RD_VIDEO_AS_RINGING_TONE , iAiwMenuHandler( NULL ) #endif @@ -182,8 +179,6 @@ CVcxHgMyVideosVideoListImpl::~CVcxHgMyVideosVideoListImpl() { CloseDeleteWaitNote(); - delete iTelephonyClient; - delete iCenRep; delete iUPnP; delete iVideoCopier; delete iVideoModel; @@ -469,33 +464,11 @@ // Need to handle multiply selected videos for ( TInt i = operationTargets.Count() - 1; i >= 0; i-- ) { - CheckParentalControlL( iVideoModel->VideoAgeProfileL( operationTargets[i] ) ); + if( !iUPnP->IsStarted() ) + { + iVideoModel->PlayVideoL( operationTargets[i] ); - if( !iUPnP->IsStarted() ) - { - TVideoPlayerCustomMessage* videoInfo = new (ELeave) TVideoPlayerCustomMessage; - CleanupStack::PushL( videoInfo ); - TInt mpxId1( 0 ); - - if ( iVideoModel->GetVideoPlayerCustomMessage( operationTargets[i], *videoInfo, mpxId1 ) - == KErrNone ) - { - iCurrentlyPlayedVideo = operationTargets[i]; - - iVideoModel->PlayVideoL( operationTargets[i] ); - - iModel.SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer ); - iModel.SetVideoAsLastWatchedL( *videoInfo, mpxId1, - iVideoModel->VideoAgeProfileL( iCurrentlyPlayedVideo ) ); - - //Sometimes MDS has database locked and this fails, we still want to start the playback -> trap ignore - TRAP_IGNORE( iVideoModel->ClearNewVideoIndicatorL( iCurrentlyPlayedVideo ) ); - } - else - { - // Error notes? - } - CleanupStack::PopAndDestroy( videoInfo ); + iModel.SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer ); } else // UPnP started { @@ -594,8 +567,9 @@ TInt highlight = Highlight(); // Set menu visibility information. - showStartMarking = !iMultipleMarkingActive; - showEndMarking = iMultipleMarkingActive; + TBool markingMode( IsMarking() ); + showStartMarking = !markingMode; + showEndMarking = markingMode; aShowMarkAll = ( ( count > 0 ) && ( markedVideos.Count() < count ) ); aShowUnmarkAll = ( ( count > 0 ) && ( markedVideos.Count() > 0 ) ); aShowMarkSubmenu = ( showStartMarking || showEndMarking || aShowMarkAll || aShowUnmarkAll ); @@ -620,6 +594,7 @@ } case EVcxHgMyVideosCmdStopMarking: { + iVideoModel->HandleMarkCommandL( EVcxHgMyVideosCmdUnmarkAll ); EndMarkingMode(); break; } @@ -877,6 +852,9 @@ // Dont show "Sort by" if list is empty. aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdSortSubMenu, ETrue ); } + + // Hide "Settings" menu item + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdOpenSettings, ETrue ); } #ifdef RD_VIDEO_AS_RINGING_TONE else if ( aResourceId == R_VCXHGMYVIDEOS_USE_AS_SUBMENU ) @@ -981,53 +959,18 @@ } } -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoListImpl::CheckParentalControlL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosVideoListImpl::CheckParentalControlL( TUint32 aAgeProfile ) - { - TInt parentControlSetting( KVcxMyvideosCenRepParentControlKeyDefault ); - TInt error( KErrNone ); - if ( !iCenRep ) - { - TRAP( error, iCenRep = CRepository::NewL( TUid::Uid( KVcxMyVideosCenRepUid ) ) ) - } - if ( error == KErrNone ) - { - error = iCenRep->Get( KVcxMyvideosCenRepParentControlKey, parentControlSetting ); - if ( error == KErrNone && parentControlSetting != KVcxMyvideosCenRepParentControlKeyOff ) - { - // Parental control has been set - if ( static_cast( aAgeProfile ) >= parentControlSetting ) - { - // Must ask lock code to allow playing - if ( !iTelephonyClient ) - { - iTelephonyClient = new( ELeave ) CVcxHgTelephonyClient(); - } - if ( !iTelephonyClient->CheckLockCodeL() ) - { - User::Leave( KErrPermissionDenied ); - } - } - } - } - } - // --------------------------------------------------------------------------- // CVcxHgMyVideosVideoListImpl::StartMarkingMode() // --------------------------------------------------------------------------- // void CVcxHgMyVideosVideoListImpl::StartMarkingMode() { - IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::StartMarkingMode() iMultipleMarkingActive = %d", iMultipleMarkingActive ); + IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::StartMarkingMode() IsMarking = %d", IsMarking() ); // Start multiple marking mode if ( iModel.TouchSupport() ) { iScroller->SetFlags( CHgScroller::EHgScrollerSelectionMode ); - iMultipleMarkingActive = ETrue; } } @@ -1037,11 +980,10 @@ // void CVcxHgMyVideosVideoListImpl::EndMarkingMode() { - IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::EndMarkingMode() iMultipleMarkingActive = %d", iMultipleMarkingActive ); + IPTVLOGSTRING2_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoListImpl::EndMarkingMode() IsMarking = %d", IsMarking() ); // End multiple marking mode iScroller->ClearFlags( CHgScroller::EHgScrollerSelectionMode ); - iMultipleMarkingActive = EFalse; } // --------------------------------------------------------------------------- diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp --- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 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" @@ -49,9 +49,6 @@ #include "vcxhgmyvideosvideolist.h" #include "vcxhgmyvideospanics.h" - -#include - // CONSTANTS const TUint KVcxSecondsInMinute( 60 ); const TUint KVcxSecondsInHour( 3600 ); @@ -254,8 +251,7 @@ TInt highlight = iScroller.SelectedIndex(); - iScroller.Reset(); - iScroller.ResizeL( iVideoArray->VideoCount() ); + ResetScrollerBufferAndItemsL(); iScroller.SetSelectedIndex( highlight ); @@ -379,64 +375,6 @@ } // ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage() -// ----------------------------------------------------------------------------- -// -TInt CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage( - TInt aIndex, TVideoPlayerCustomMessage& aVideoInfo, TInt& aMpxId1 ) - { - CMPXMedia* media = iVideoArray->MPXMedia( aIndex ); - - if ( ( ! media ) || ( ! media->IsSupported( KMPXMediaGeneralId ) ) ) - { - return KErrNotFound; - } - - TMPXItemId mpxItemId = media->ValueTObjectL( KMPXMediaGeneralId ); - - if ( GetVideoPlayerCustomMessage( mpxItemId, aVideoInfo ) != KErrNone ) - { - return KErrNotFound; - } - - aMpxId1 = ( media->ValueTObjectL( KMPXMediaGeneralId ) ).iId1; - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage() -// ----------------------------------------------------------------------------- -// -TInt CVcxHgMyVideosVideoModelHandler::GetVideoPlayerCustomMessage( - TMPXItemId& aMpxItemId, TVideoPlayerCustomMessage& aVideoInfo ) - { - CMPXMedia* media = iVideoArray->MPXMediaByMPXItemId( aMpxItemId ); - - if ( ! media ) - { - return KErrNotFound; - } - - if ( media->IsSupported( KMPXMediaGeneralUri ) ) - { - aVideoInfo.iContent = media->ValueText( KMPXMediaGeneralUri ); - } - - if ( media->IsSupported( KMPXMediaGeneralTitle ) ) - { - aVideoInfo.iName = media->ValueText( KMPXMediaGeneralTitle ); - } - - if ( media->IsSupported( KMPXMediaGeneralThumbnail1 ) ) - { - aVideoInfo.iIcon = media->ValueText( KMPXMediaGeneralThumbnail1 ); - } - - return KErrNone; - } - -// ----------------------------------------------------------------------------- // CVcxHgMyVideosVideoModelHandler::VideoAgeProfileL() // ----------------------------------------------------------------------------- // @@ -495,70 +433,6 @@ } // ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL() -// Informative call about video being played. Method removes possible new indicator -// from video. -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL( TInt aIndex ) - { - CMPXMedia* media = iVideoArray->MPXMedia( aIndex ); - - if ( media ) - { - if ( media->IsSupported( KMPXMediaGeneralFlags ) && - media->IsSupported( KMPXMediaGeneralId ) ) - { - TUint32 flags = media->ValueTObjectL( KMPXMediaGeneralFlags ); - if ( flags & EVcxMyVideosVideoNew ) - { - flags &= ~EVcxMyVideosVideoNew; - CVcxHgMyVideosCollectionClient& collectionClient = iModel.CollectionClient(); - collectionClient.SetAttributeL( *media, KMPXMediaGeneralFlags, flags ); - - if ( media->IsSupported( KVcxMediaMyVideosOrigin ) && - ( media->ValueTObjectL( KVcxMediaMyVideosOrigin ) == EVcxMyVideosOriginDownloaded ) ) - { - iModel.ResetDownloadNotification(); - } - } - } - } - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL() -// Informative call about video being played. Method removes possible new indicator -// from video. -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosVideoModelHandler::ClearNewVideoIndicatorL( TMPXItemId& aMpxItemId ) - { - CMPXMedia* media = iVideoArray->MPXMediaByMPXItemId( aMpxItemId ); - - if ( media ) - { - if ( media->IsSupported( KMPXMediaGeneralFlags ) && - media->IsSupported( KMPXMediaGeneralId ) ) - { - TUint32 flags = media->ValueTObjectL( KMPXMediaGeneralFlags ); - if ( flags & EVcxMyVideosVideoNew ) - { - flags &= ~EVcxMyVideosVideoNew; - CVcxHgMyVideosCollectionClient& collectionClient = iModel.CollectionClient(); - collectionClient.SetAttributeL( *media, KMPXMediaGeneralFlags, flags ); - - if ( media->IsSupported( KVcxMediaMyVideosOrigin ) && - ( media->ValueTObjectL( KVcxMediaMyVideosOrigin ) == EVcxMyVideosOriginDownloaded ) ) - { - iModel.ResetDownloadNotification(); - } - } - } - } - } - -// ----------------------------------------------------------------------------- // CVcxHgMyVideosVideoModelHandler::ShowVideoDetailsDialogL() // ----------------------------------------------------------------------------- // @@ -583,89 +457,6 @@ } // ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoModelHandler::LastPlaybackPosition() -// ----------------------------------------------------------------------------- -// -TInt CVcxHgMyVideosVideoModelHandler::LastPlaybackPosition( const TDesC& aContentUri ) - { - TInt position = 0; - - if ( CIptvUtil::LastPlaybackPositionFeatureSupported() ) - { - CMPXMedia* media = iVideoArray->MPXMediaByUri( aContentUri ); - - if ( media ) - { - if ( media->IsSupported( KMPXMediaGeneralLastPlaybackPosition ) ) - { - position = *media->Value( KMPXMediaGeneralLastPlaybackPosition ); - } - } - IPTVLOGSTRING3_LOW_LEVEL( "MPX My Videos UI # Found position %d for clip %S", - position, &aContentUri ); - } - else - { - IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # LastPlaybackPosition() - Feature is not supported, position = 0" ); - } - - return position; - } - -// ----------------------------------------------------------------------------- -// CVcxHgMyVideosVideoModelHandler::SetLastPlaybackPositionL() -// ----------------------------------------------------------------------------- -// -void CVcxHgMyVideosVideoModelHandler::SetLastPlaybackPositionL( const TDesC& aContentUri, - TInt aPosition ) - { - if ( CIptvUtil::LastPlaybackPositionFeatureSupported() ) - { - CMPXMedia* media = iVideoArray->MPXMediaByUri( aContentUri ); - - // If media is not in our own list, it was launched from external source. In this - // case the MPX Media object could be fetched on background to allow position storing. - if ( ! media ) - { - media = iModel.CollectionClient().GetLatestFetchedMpxMediaL(); - - if ( media ) - { - TBool match( EFalse ); - if ( media->IsSupported( KMPXMediaGeneralUri ) ) - { - if ( aContentUri.CompareF( media->ValueText( KMPXMediaGeneralUri ) ) == 0 ) - { - match = ETrue; - } - } - if ( ! match ) - { - media = NULL; - } - } - } - - if ( media ) - { - IPTVLOGSTRING3_LOW_LEVEL( "MPX My Videos UI # Storing position %d for clip %S", - aPosition, &aContentUri ); - - // Change data type of last playback position? - - iModel.CollectionClient().SetAttributeL( *media, - KMPXMediaGeneralLastPlaybackPosition, - TUint32( aPosition ) ); - } - iModel.UpdateLastWatchedPlayPositionL( aPosition ); - } - else - { - IPTVLOGSTRING_LOW_LEVEL( "MPX My Videos UI # SetLastPlaybackPositionL() - Feature is not supported" ); - } - } - -// ----------------------------------------------------------------------------- // CVcxHgMyVideosVideoModelHandler::GetVideoName() // ----------------------------------------------------------------------------- // @@ -882,11 +673,17 @@ IPTVLOGSTRING3_LOW_LEVEL( "MPX My Videos UI # CVcxHgMyVideosVideoModelHandler::HandleRequestL - aRequestStart: %d, aRequestEnd: %d", requestStart, requestEnd ); - + + TBool flushNeeded = EFalse; for ( TInt i = requestStart; i <= requestEnd; i++ ) { UpdateVideoListItemL( i ); - iDataUpdater->RequestDataL( iVideoArray->ArrayIndexToMpxItemIdL( i ) ); + iDataUpdater->AddToRequestBufferL( iVideoArray->ArrayIndexToMpxItemIdL( i ) ); + flushNeeded = ETrue; + } + if ( flushNeeded ) + { + iDataUpdater->FlushRequestBufferL(); } iScroller.DrawDeferred(); @@ -1373,7 +1170,7 @@ } else { - iScroller.ResizeL( videoCount ); + ResizeScrollerL( iVideoArray->VideoCount() ); } TInt highlight( KErrNotFound ); @@ -1611,3 +1408,50 @@ iScroller.SetScrollBarTypeL( CHgScroller::EHgScrollerScrollBar ); } } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::ResetScrollerItemsL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoModelHandler::ResetScrollerItemsL() + { + // Reset items for refetch + TInt count = iScroller.ItemCount(); + for ( TInt i = 0; i < count; ++i ) + { + iScroller.ItemL( i ).SetIcon( NULL ); + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::ResetScrollerBufferAndItemsL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoModelHandler::ResetScrollerBufferAndItemsL() + { + // Reset scroll buffer and items for refetch + iScroller.DisableScrollBuffer(); + iScroller.EnableScrollBufferL( *this, KHgBufferSize, KHgBufferTreshold ); + ResetScrollerItemsL(); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosVideoModelHandler::ResizeScrollerL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosVideoModelHandler::ResizeScrollerL( TInt aNewItemCount ) + { + if (iScroller.ItemCount() > 0) + { + // Reset scroller without time consuming scaling of icons never shown + iScroller.DisableScrollBuffer(); + iScroller.ResizeL( aNewItemCount ); + iScroller.EnableScrollBufferL( *this, KHgBufferSize, KHgBufferTreshold ); + ResetScrollerItemsL(); + } + else + { + // CHgScroller::Reset() was already called, no need to reset tricks + iScroller.ResizeL( aNewItemCount ); + } + } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideos/tsrc/ut_vcxhgmyvideosmainview/conf/ui_VcxHgMyVideosMainViewTest.cfg --- a/videocollection/hgmyvideos/tsrc/ut_vcxhgmyvideosmainview/conf/ui_VcxHgMyVideosMainViewTest.cfg Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideos/tsrc/ut_vcxhgmyvideosmainview/conf/ui_VcxHgMyVideosMainViewTest.cfg Fri Mar 12 15:43:00 2010 +0200 @@ -10,11 +10,12 @@ * Nokia Corporation - initial contribution. * * Contributors: +* +* Description: This file contains test configuration * -* Description: Test case file. -* */ + // // test blocks: // diff -r 7d91903f795f -r ce5ada96ab30 videocollection/hgmyvideosplugin/group/vcxhgmyvideosplugin.mmp --- a/videocollection/hgmyvideosplugin/group/vcxhgmyvideosplugin.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/hgmyvideosplugin/group/vcxhgmyvideosplugin.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ */ -// Version : %version: 8 % +// Version : %version: 9 % #include #include @@ -41,8 +41,6 @@ USERINCLUDE ../inc USERINCLUDE ../../hgmyvideos/inc USERINCLUDE ../../../inc -USERINCLUDE ../../../videofeeds/utils/inc -USERINCLUDE ../../../videofeeds/viewmessageutility/inc APP_LAYER_SYSTEMINCLUDE diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/conf/videoscollection.confml Binary file videocollection/mpxmyvideoscollection/conf/videoscollection.confml has changed diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/conf/videoscollection_2001B2A9.crml Binary file videocollection/mpxmyvideoscollection/conf/videoscollection_2001B2A9.crml has changed diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h --- a/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosmdsdb.h Fri Mar 12 15:43:00 2010 +0200 @@ -26,6 +26,8 @@ #include #include +class CRepository; + /** * MPX My Videos collection MDS database observer class. * Part of ECOM Plugin. @@ -495,6 +497,11 @@ * The observer for db changes. Not own. */ MVcxMyVideosMdsDbObserver* iMdsDbObserver; + + /** + * Cenrep session. + */ + CRepository* iRepository; }; #endif // VCXMYVIDEOSMDSDB_H diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscategories.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -200,11 +200,8 @@ media = videoListArray->AtL( i ); - if ( media->IsSupported( KVcxMediaMyVideosOrigin ) ) - { - origin = media->ValueTObjectL( KVcxMediaMyVideosOrigin ); - } - + origin = TVcxMyVideosCollectionUtil::OriginL( *media ); + TBool newVideo = EFalse; TUint32 flags = 0; @@ -554,15 +551,11 @@ case -1: return KVcxMyVideosAllVideosCategoryIndex; - case EVcxMyVideosOriginDownloaded: - return KVcxMyVideosDownloadsCategoryIndex; - case EVcxMyVideosOriginCapturedWithCamera: return KVcxMyVideosCapturedCategoryIndex; + case EVcxMyVideosOriginDownloaded: case EVcxMyVideosOriginTvRecording: - return KVcxMyVideosTvRecordingsCategoryIndex; - case EVcxMyVideosOriginSideLoaded: case EVcxMyVideosOriginOther: default: diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideoscollectionutil.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -236,7 +236,9 @@ if ( aVideo.IsSupported( KVcxMediaMyVideosOrigin ) ) { origin = aVideo.ValueTObjectL( KVcxMediaMyVideosOrigin ); - if ( origin == EVcxMyVideosOriginSideLoaded ) + if ( origin == EVcxMyVideosOriginSideLoaded || + origin == EVcxMyVideosOriginDownloaded || + origin == EVcxMyVideosOriginTvRecording ) { origin = EVcxMyVideosOriginOther; } diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsdb.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -29,6 +29,7 @@ #include #include #include +#include #include "vcxmyvideosmdsdb.h" #include "vcxmyvideoscollectionutil.h" @@ -192,6 +193,7 @@ delete iVideoQuery; delete iMDSSession; delete iActiveSchedulerWait; + delete iRepository; } // --------------------------------------------------------------------------- @@ -882,8 +884,15 @@ //16. ORIGIN, KVcxMediaMyVideosOrigin if ( aObject.Property( *iOriginPropertyDef, property, 0 ) != KErrNotFound ) { - aVideo.SetTObjectValueL( KVcxMediaMyVideosOrigin, - static_cast(property)->Value() ); + TUint8 origin = static_cast(property)->Value(); + if ( origin == EVcxMyVideosOriginDownloaded || + origin == EVcxMyVideosOriginSideLoaded || + origin == EVcxMyVideosOriginTvRecording ) + { + origin = EVcxMyVideosOriginOther; + } + + aVideo.SetTObjectValueL( KVcxMediaMyVideosOrigin, origin ); } //17. DURATION, (KMPXMediaGeneralDuration can't be used since it is TInt @@ -1261,6 +1270,17 @@ static_cast(property)->SetValueL( flags ); } + // Play pos has really changed -> put the video as last watched + if ( aObject.Property( *iLastPlayPositionPropertyDef, property, 0 ) == KErrNotFound || + static_cast(property)->Value() != lastPlaybackPos ) + { + if ( !iRepository ) + { + iRepository = CRepository::NewL( TUid::Uid( KVcxMyVideosCollectionCenrepUid ) ); + } + iRepository->Set( KVcxMyVideosCollectionCenrepKeyLastWatchedMpxId, + TInt ( aVideo.ValueTObjectL( KMPXMediaGeneralId ).iId1 ) ); + } if ( aObject.Property( *iLastPlayPositionPropertyDef, property, 0 ) != KErrNotFound ) { static_cast(property)->SetValueL( lastPlaybackPos ); diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosopenhandler.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -112,6 +112,11 @@ { MPX_DEBUG2("iCache->CreateVideoListL() left: %d. Returning categories anyway.", err); } + + iCollection.CategoriesL().iList-> + SetTObjectValueL( KVcxMediaMyVideosVideoListIsPartial, + iCache.iVideoListIsPartial ); + iCollection.iObs->HandleOpen( iCollection.CategoriesL().iList, KErrNone ); } break; diff -r 7d91903f795f -r ce5ada96ab30 videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp --- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosvideocache.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -135,18 +135,8 @@ { media = (*allVideosArray)[i]; - TUint8 mediaOrigin = EVcxMyVideosOriginOther; - - if ( media->IsSupported( KVcxMediaMyVideosOrigin ) ) - { - mediaOrigin = *(media->Value( KVcxMediaMyVideosOrigin )); - - if ( mediaOrigin == EVcxMyVideosOriginSideLoaded ) - { - mediaOrigin = EVcxMyVideosOriginOther; - } - } - + TUint8 mediaOrigin = TVcxMyVideosCollectionUtil::OriginL( *media ); + if ( mediaOrigin == aOrigin ) { filteredVideosArray->AppendL( *media ); @@ -807,14 +797,16 @@ TBool modified = EFalse; iCollection.CategoriesL().UpdateCategoryNewVideoNameAndDateL( *videoInCache, modified ); - + + TUint8 origin = TVcxMyVideosCollectionUtil::OriginL( *videoInCache ); + iCollection.CategoriesL().NewVideoFlagChangedL( oldFlags, newFlags, - videoInCache->ValueTObjectL( KVcxMediaMyVideosOrigin ), + origin, modified ); if ( !(newFlags & EVcxMyVideosVideoNew) && - TVcxMyVideosCollectionUtil::OriginL( *videoInCache ) == EVcxMyVideosOriginDownloaded ) + origin == EVcxMyVideosOriginDownloaded ) { MPX_DEBUG1("CVcxMyVideosVideoCache::UpdateVideoL - Count of new videos in Downloaded origin has decreased, sending mediator event to notification launcher"); iCollection.NotifyNewVideosCountDecreasedL( *videoInCache ); diff -r 7d91903f795f -r ce5ada96ab30 videofeeds/group/bld.inf --- a/videofeeds/group/bld.inf Fri Feb 19 22:52:52 2010 +0200 +++ b/videofeeds/group/bld.inf Fri Mar 12 15:43:00 2010 +0200 @@ -20,83 +20,10 @@ /** - * Iptv Util - */ -#include "../utils/group/bld.inf" - -/** - * View message utility - */ -#include "../viewmessageutility/group/bld.inf" - -/** - * Vcx Notifier - */ -#include "../vcxnotifier/group/bld.inf" - -/** * vccommon */ #include "../vccommon/group/bld.inf" -// ======================================== - -/** - * Server Client - */ -#include "../clientapi/group/bld.inf" - -/** - * Provisioning processor - */ -#include "../provisioningprocessor/group/bld.inf" - -/** - * RSS plugin - */ -#include "../mrssplugin/group/bld.inf" - -/** - * Server - */ -#include "../server/group/bld.inf" - -/** - * LiveTV Utils - */ -#include "../livetvutils/group/bld.inf" - -/** - * Provisioning recognizer and App UI - */ -#include "../provisioningrecognizer/group/bld.inf" -#include "../provisioningappui/group/bld.inf" -#include "../omaprovisioning/group/bld.inf" - -// ======================================== - -/** - * VodUi Engine - */ -#include "../vcnsuiengine/group/bld.inf" - -/** - * Ganes UX2.0 VodUi - */ -#include "../hgvodui/group/bld.inf" -#include "../hgvodplugin/group/bld.inf" - -/** - * Scheduled download settings view - */ -#include "../vcnsscheduleview/group/bld.inf" -#include "../vcnsscheduleplugin/group/bld.inf" - -/** - * Scheduled download plugin - */ -#include "../scheduleddlplugin/group/bld.inf" - PRJ_PLATFORMS DEFAULT diff -r 7d91903f795f -r ce5ada96ab30 videofeeds/vccommon/loc/ipvideo.loc --- a/videofeeds/vccommon/loc/ipvideo.loc Fri Feb 19 22:52:52 2010 +0200 +++ b/videofeeds/vccommon/loc/ipvideo.loc Fri Mar 12 15:43:00 2010 +0200 @@ -627,13 +627,6 @@ // #define qtn_iptv_download_failed_note "Download failed: %U" -//d:Text in note that's displayed when view is refreshed because of MMC insertion. -//d: Ui Spec sec 16.9 Activating and deactivating mass storage mode (p99) -//l:popup_note_window/opt2 -//r:5.0 -// -#define qtn_iptv_refreshing "Refreshing the view" - //d:Info pop-up note shown to user when video service added. //d: Ui Spec sec 7.1.2 Video feeds view content and service installation promotion (p27) //l:popup_note_window/opt2 @@ -648,11 +641,10 @@ #define qtn_vcx_downloads_title "Downloads" -//d:page 69 qtn_iptv_captured_title video captured by the user -//d: Ui Spec sec 13.1 My Videos sub-levels(p76) +//d:Video list title pane text for videos captured by the user. //l:title_pane_t2/opt9 -//r:5.0 - +//r:5.2 +// #define qtn_vcx_captured_title "Captured videos" /* @@ -1835,12 +1827,11 @@ // #define qtn_iptv_tv_recordings_title "TV recordings" -//d:Title pane text on Video Storage UI for Other view. -//d: Ui Spec sec 13 My videos (p76) +//d:Video list title pane text for other videos. //l:title_pane_t2/opt9 -//r:5.0 +//r:5.2 // -#define qtn_iptv_other_title "Other" +#define qtn_iptv_other_title "Other videos" //d:Command in option "Mark/Unmark" submenu. //d:When selected, starts marking mode (user can mark items from @@ -2057,6 +2048,68 @@ //r:5.0 #define qtn_vcx_hg_options_use_video_as "Use video as" +//d:Main view item text for last watched +//l:list_double_large_graphic_pane_t1 +//r:5.2 +// +#define qtn_vcx_hg_list_last_watched "Last watched" + +//d:Main view item text for videos other than captured +//l:list_double_large_graphic_pane_t1 +//r:5.2 +// +#define qtn_vcx_hg_list_storage_other "Other videos" + +//d:Main view item text for captured videos +//l:list_double_large_graphic_pane_t1 +//r:5.2 +// +#define qtn_vcx_hg_list_storage_captured "Captured" + +//d:Main view item text for Ovi Store link +//l:list_double_large_graphic_pane_t1 +//r:5.2 +// +#define qtn_vcx_hg_list_ovi_store "Ovi Store" + +//d:Second line for main view item, amount of videos in category. +//d:%N is the amount of videos. +//l:list_double_large_graphic_pane_t2 +//r:5.2 +// +#define qtn_vcx_hg_list_videos_in_category "%N videos" + +//d:Same as qtn_vcx_hg_list_videos_in_category but used when only one video in category. +//l:list_double_large_graphic_pane_t2 +//r:5.2 +// +#define qtn_vcx_hg_list_one_video_in_category "1 video" + +//d:Second line for main view item, there is one new video. +//l:list_double_large_graphic_pane_t2 +//r:5.2 +// +#define qtn_vcx_hg_list_one_new_video "1 new video" + +//d:Second line for main view item, there are more than 1 new videos. +//d:%N is the count of new videos. +//l:list_double_large_graphic_pane_t2 +//r:5.2 +// +#define qtn_vcx_hg_list_n_new_videos "%N new videos" + +//d:Second line for main view item, there are no videos. +//l:list_double_large_graphic_pane_t2 +//r:5.2 +// +#define qtn_vcx_hg_list_no_videos_in_category "No videos" + +//d:Second line for main view item, Ovi Store link. +//l:list_double_large_graphic_pane_t2 +//r:5.2 +// +#define qtn_vcx_hg_list_ovi_store_videos "Videos" + /* * ============================================================================== diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/inc/mpxvideobaseplaybackview.h --- a/videoplayback/inc/mpxvideobaseplaybackview.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/inc/mpxvideobaseplaybackview.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 16 % +// Version : %version: 17 % // This file defines the API for VideoBasePlaybackView.dll @@ -341,11 +341,11 @@ TBool IsMultiItemPlaylist(); TInt OpenDrmFileHandleL( RFile& aFile ); void LaunchDRMDetailsL(); - + #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - TInt OpenDrmFileHandle64L( RFile64& aFile ); + TInt OpenDrmFileHandle64L( RFile64& aFile ); #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - + protected: // data MMPXPlaybackUtility* iPlaybackUtility; MMPXViewUtility* iViewUtility; @@ -365,6 +365,7 @@ TBool iMediaRequested; TBool iPlaylistView; TBool iCollectionMediaRequested; + TBool iPdlReloading; HBufC* iClipName; }; diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/inc/mpxvideoplaybackdisplayhandler.h --- a/videoplayback/inc/mpxvideoplaybackdisplayhandler.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/inc/mpxvideoplaybackdisplayhandler.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 6 % +// Version : %version: 7 % #ifndef __CMPXVIDEOPLAYBACKDISPLAYHANDLER_H__ @@ -94,6 +94,8 @@ void SurfaceRemoved(); TInt SetNgaAspectRatioL( TMPXVideoPlaybackCommand aCmd ); + void SignalSurfaceRemovedL(); + #endif private: diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/inc/mpxvideoplaybackuserinputhandler.h --- a/videoplayback/inc/mpxvideoplaybackuserinputhandler.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/inc/mpxvideoplaybackuserinputhandler.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 5 % +// Version : %version: 6 % @@ -37,6 +37,7 @@ class CRemConInterfaceSelector; // Side volume key class CRemConCoreApiTarget; class CMPXVideoPlaybackContainer; +class CHWRMLight; // CLASS DECLARATION @@ -159,7 +160,7 @@ CPeriodic* iDisplayTimer; // Timer to timeout the lights time-out TInt iDisplayTimeOut; // Value of the lights time-out - + CHWRMLight* iLight; CMPXVideoPlaybackContainer* iContainer; // not owned diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/inc/mpxvideoplaybackviewfiledetails.h --- a/videoplayback/inc/mpxvideoplaybackviewfiledetails.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/inc/mpxvideoplaybackviewfiledetails.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: e003sa33#10 % +// Version : %version: e003sa33#11 % @@ -45,6 +45,13 @@ // void ClearFileDetails(); + /** + * Generate file name, remove all file path + * + * @return generated file name, ownership is transferred + */ + IMPORT_C HBufC* GenerateFileNameL(); + private: // // By default Symbian 2nd phase constructor is private. diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h --- a/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/inc/mpxvideoplaybackcontroller.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 18 % +// Version : %version: 19 % #ifndef _CMPXVIDEOPLAYBACKCONTROLLER_H_ @@ -117,7 +117,7 @@ void SetPlaybackModeL(); - TBool IsDisplayOff(); + TBool IsKeyLocked(); TBool IsAlarm(); TBool IsPhoneCall(); TBool IsActivePhoneCall(); diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/inc/mpxvideoplayerutility.h --- a/videoplayback/videohelix/inc/mpxvideoplayerutility.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/inc/mpxvideoplayerutility.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 9 % +// Version : %version: 10 % #ifndef __MPXVIDEOPLAYERUTILITY__ @@ -123,6 +123,8 @@ const TSurfaceId& aSurfaceId, const TRect& aCropRect, TVideoAspectRatio aAspectRatio ); + + void SurfaceRemovedFromView(); #endif diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/src/mpxvideoaccessoryobserver.cpp --- a/videoplayback/videohelix/src/mpxvideoaccessoryobserver.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/src/mpxvideoaccessoryobserver.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 6 % +// Version : %version: 7 % // // INCLUDE FILES @@ -133,6 +133,7 @@ MPX_DEBUG(_L("CMPXVideoAccessoryObserver::UpdateTvOutStatusL()")); TBool statusChanged = EFalse; + TBool tvOutHDMI = EFalse; // // Initialize TV-Out value to EFalse before checking if @@ -153,10 +154,12 @@ for ( TInt index = 0 ; index < count ; index++ ) { + TAccPolGenericID genId = iGenericIdArray.GetGenericIDL( index ); + // // Get all supported capabilities for this connected accessory. // - iConnection.GetSubblockNameArrayL( iGenericIdArray.GetGenericIDL( index ), *nameArray ); + iConnection.GetSubblockNameArrayL( genId, *nameArray ); // // Check if this connected accessory supports TV-Out @@ -166,7 +169,22 @@ MPX_DEBUG(_L(" TV-Out Capabilities Exist")); tvOutConnected = ETrue; - break; + + TAccPolNameRecord nameRecord; + nameRecord.SetNameL( KAccVideoOut ); + TAccValueTypeTInt value; + iConnection.GetValueL( genId, nameRecord, value ); + + if ( value.iValue == EAccVideoOutEHDMI ) + { + tvOutHDMI = ETrue; + // + // HDMI has precedence over Comp TV-Out, If the accessory is + // HDMI then stop the search for Video Out accessory, else continue + // looping through all the accessories. + // + break; + } } } @@ -180,7 +198,7 @@ { iTvOutConnected = tvOutConnected; - if ( iTvOutConnected ) + if ( iTvOutConnected && !tvOutHDMI) { // // Check the playablility of the clip @@ -195,7 +213,7 @@ statusChanged = ETrue; } - MPX_DEBUG(_L(" iTvOutConnected = %d"), iTvOutConnected); + MPX_DEBUG(_L("CMPXVideoAccessoryObserver::UpdateTvOutStatusL iTvOutConnected = %d, tvOutHDMI = %d"), iTvOutConnected, tvOutHDMI); MPX_DEBUG(_L("CMPXVideoAccessoryObserver::UpdateTvOutStatusL() ret = %d"), statusChanged); diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/src/mpxvideohelixplayback.cpp --- a/videoplayback/videohelix/src/mpxvideohelixplayback.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/src/mpxvideohelixplayback.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 11 % +// Version : %version: 12 % // @@ -193,7 +193,7 @@ TInt aAccessPoint ) { MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreamingL()"), - _L("aUri %S, aType %d"), &aUri, aAccessPoint ); + _L("aUri %S, aAccessPoint %d"), &aUri, aAccessPoint ); RFile fileHandle; @@ -220,7 +220,8 @@ // void CMPXVideoHelixPlayback::InitStreamingL( RFile& aFile, TInt aAccessPoint ) { - MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreamingL( RFile )")); + MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreamingL( RFile )"), + _L("aAccessPoint = %d"), aAccessPoint ); TFileName filename; aFile.FullName( filename ); @@ -386,7 +387,8 @@ // void CMPXVideoHelixPlayback::InitStreaming64L( RFile64& aFile, TInt aAccessPoint ) { - MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreaming64L( RFile64 )")); + MPX_ENTER_EXIT(_L("CMPXVideoHelixPlayback::InitStreaming64L( RFile64 )"), + _L("aAccessPoint = %d"), aAccessPoint ); TFileName filename; aFile.FullName( filename ); diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp --- a/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/src/mpxvideoplaybackcontroller.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 43 % +// Version : %version: 47 % // @@ -38,10 +38,9 @@ #include #include -#include -#include #include #include +#include #include "mpxvideoregion.h" #include "mpxvideoplaybackcontroller.h" @@ -145,7 +144,7 @@ MPX_ENTER_EXIT(_L("CMPXVideoPlaybackController::ConstructL()")); iMPXPluginObs = &aObs; - iAccessPointId = -1; + iAccessPointId = KUseDefaultIap; iVideoSeeker = CMPXVideoSeeker::NewL( this ); // Initiliaze to True @@ -525,6 +524,11 @@ break; } + case EPbCmdSurfaceRemoved: + { + iPlayer->SurfaceRemovedFromView(); + break; + } default: { break; @@ -1725,17 +1729,17 @@ } // ----------------------------------------------------------------------------- -// CMPXVideoPlaybackController::IsDisplayOff +// CMPXVideoPlaybackController::IsKeyLocked // ----------------------------------------------------------------------------- // -TBool CMPXVideoPlaybackController::IsDisplayOff() +TBool CMPXVideoPlaybackController::IsKeyLocked() { - TBool displayState; - HAL::Get( HALData::EDisplayState, displayState ); + TBool keylock( EFalse ); + RProperty::Get( KPSUidAvkonDomain, KAknKeyguardStatus, keylock ); - MPX_DEBUG(_L("CMPXVideoPlaybackController::IsDisplayOff(%d)"), !displayState); + MPX_DEBUG(_L("CMPXVideoPlaybackController::IsKeyLocked(%d)"), keylock); - return !displayState; + return keylock; } // ------------------------------------------------------------------------------------------------ @@ -1907,6 +1911,16 @@ iPlayer->Reset(); + // + // Delete the video accessory observer when the plugin + // goes back to Not Initialised state. + // + if ( iAccessoryMonitor ) + { + delete iAccessoryMonitor; + iAccessoryMonitor = NULL; + } + if ( iFileDetails ) { delete iFileDetails; diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/src/mpxvideoplaybackmode.cpp --- a/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/src/mpxvideoplaybackmode.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 17 % +// Version : %version: 19 % @@ -180,7 +180,7 @@ if ( iVideoPlaybackCtlr->iAppInForeground ) { if ( iVideoPlaybackCtlr->IsAlarm() || - ( iVideoPlaybackCtlr->IsDisplayOff() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) ) + ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) ) { iVideoPlaybackCtlr->iForegroundPause = ETrue; iVideoPlaybackCtlr->iState->HandlePause(); @@ -213,7 +213,7 @@ MPX_TRAPD( err, iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError ) ); } - else if ( iVideoPlaybackCtlr->IsDisplayOff() && + else if ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) { iVideoPlaybackCtlr->iForegroundPause = ETrue; @@ -262,7 +262,7 @@ if ( networkMode == RMobilePhone::ENetworkModeGsm) { - networkMode2g = ETrue; + networkMode2g = ETrue; } mobilePhone.Close(); @@ -346,13 +346,14 @@ { MPX_ENTER_EXIT(_L("CMPXStreamingPlaybackMode::HandleOpenComplete()")); - // since SDP files are opened as KMmfUidFileSource type, we need to set - // the access point for SDP files before Prepare is called on Helix // - // for RAM files and URLs - access point is already been set - // at the point of adding data source - - if ( iVideoPlaybackCtlr->iMediaType == CMediaRecognizer::ELocalSdpFile ) + // There is no need to send the access point if it is set to use default. + // SDP files are opened as KMmfUidFileSource type, we need to set the access point for + // SDP files before Prepare is called on Helix for RAM files and URLs - access point is + // already been set at the point of adding data source + // + if ( iVideoPlaybackCtlr->iAccessPointId != KUseDefaultIap && + iVideoPlaybackCtlr->iMediaType == CMediaRecognizer::ELocalSdpFile ) { const TMMFMessageDestinationPckg destinationPckg(KUidInterfaceMMFHelixController); const TPckgBuf savePckg( EFalse ); @@ -393,7 +394,7 @@ MPX_TRAPD(err, iVideoPlaybackCtlr->iState->SendErrorToViewL( KMPXVideoCallOngoingError )); } - else if ( iVideoPlaybackCtlr->IsDisplayOff() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) + else if ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled ) { //exit for live streaming } @@ -505,7 +506,7 @@ { if ( iVideoPlaybackCtlr->IsPhoneCall() || iVideoPlaybackCtlr->IsVideoCall() || - ( iVideoPlaybackCtlr->IsDisplayOff() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )) + ( iVideoPlaybackCtlr->IsKeyLocked() && iVideoPlaybackCtlr->iFileDetails->iVideoEnabled )) { iVideoPlaybackCtlr->iState->HandlePause(); } diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/src/mpxvideoplayerutility.cpp --- a/videoplayback/videohelix/src/mpxvideoplayerutility.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/src/mpxvideoplayerutility.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 15 % +// Version : %version: 16 % #include @@ -79,6 +79,12 @@ iControllerEventMonitor = NULL; } + if ( ! iSurfaceId.IsNull() ) + { + MPX_TRAPD( err, SendSurfaceCommandL( EPbMsgVideoRemoveDisplayWindow ) ); + iSurfaceId = TSurfaceId::CreateNullId(); + } + iController.Close(); iDirectScreenAccessAbort = EFalse; } @@ -274,6 +280,21 @@ } } + +// ------------------------------------------------------------------------------------------------- +// CMpxVideoPlayerUtility::SurfaceRemovedFromView() +// ------------------------------------------------------------------------------------------------- +// +void CMpxVideoPlayerUtility::SurfaceRemovedFromView() +{ + MPX_ENTER_EXIT(_L("CMpxVideoPlayerUtility::SurfaceRemovedFromView()")); + + if ( ! iSurfaceId.IsNull() ) + { + iSurfaceId = TSurfaceId::CreateNullId(); + } +} + TBool CMpxVideoPlayerUtility::AudioEnabledL() const { TBool enabled; diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/conf/videohelixtest.cfg Fri Mar 12 15:43:00 2010 +0200 @@ -653,7 +653,6 @@ waittestclass test pause 100 test GetMedia -test DisconnectTvOut waittestclass test delete test pause 1000 @@ -821,5 +820,18 @@ pause 1000 [Endtest] +[Test] +title 54. HDMI Tv-Out - Unprotected Content +create videohelixtest test +test Initialize 60000 10 vhpp_test.3gp KErrNone KErrNone KErrNone +waittestclass test +pause 100 +test ConnectHDMITvOut +waittestclass test +test DisconnectHDMITvOut +waittestclass test +delete test +pause 1000 +[Endtest] diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoaccessoryobserver_stub.h --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoaccessoryobserver_stub.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoaccessoryobserver_stub.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 3 % +// Version : %version: 4 % @@ -74,6 +74,7 @@ void UpdateTvOutStatusL( TBool aTvOutConnected ); void SetTvOutConnected( TBool aConnected ); void SetTvOutPlaybackAllowed( TBool aAllowed ); + void SetTvOutHDMI( TBool aTvOutHDMI ); private: @@ -94,6 +95,7 @@ CMPXVideoPlaybackController* iController; TBool iTvOutConnected; TBool iTvOutPlaybackAllowed; + TBool iTvOutHDMI; }; #endif // MPXVIDEOACCESSORYOBSERVER_H diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/mpxvideoplayerutility_stub.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 10 % +// Version : %version: 11 % #ifndef __MPXVIDEOPLAYERUTILITY__ @@ -111,6 +111,8 @@ void SetVolumeSteps( TInt aVolumeSteps ); + void SurfaceRemovedFromView(); + #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API void OpenFile64L( const RFile64& aFile ); #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 10 % +// Version : %version: 11 % #ifndef __VHPPTESTCASE_H__ @@ -165,11 +165,14 @@ virtual TInt EndPhoneCall(); virtual TInt SetTvOutConnectedL( CStifItemParser& aItem ); virtual TInt SetTvOutDisconnectedL(); - virtual TInt CVHPPTestClass::ConnectTvOutL( CStifItemParser& aItem ); - virtual TInt CVHPPTestClass::DisconnectTvOutL(); + virtual TInt ConnectTvOutL( CStifItemParser& aItem ); + virtual TInt DisconnectTvOutL(); virtual TInt SetDrmProtectedL( CStifItemParser& aItem ); virtual TInt IssueSeekedToEndCommandL( CStifItemParser& aItem ); virtual TInt HandleVolumeL( CStifItemParser& aItem ); + virtual TInt ConnectHDMITvOutL(); + virtual TInt DisconnectHDMITvOutL(); + virtual TInt SetHDMITvOutConnectedL(); // --------------------------------------------------------------------- // Helper Functions diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoaccessoryobserver_stub.cpp --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoaccessoryobserver_stub.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoaccessoryobserver_stub.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 3 % +// Version : %version: 4 % // // INCLUDE FILES @@ -65,6 +65,7 @@ : iController( aController ) , iTvOutConnected( EFalse ) , iTvOutPlaybackAllowed( ETrue ) + , iTvOutHDMI( EFalse ) { } @@ -104,6 +105,12 @@ if ( iTvOutConnected != aTvOutConnected ) { iTvOutConnected = aTvOutConnected; + + if ( iTvOutConnected && iTvOutHDMI) + { + // if HDMI playback is always allowed + iTvOutPlaybackAllowed = ETrue; + } iController->HandleTvOutEventL( iTvOutConnected ); } @@ -134,4 +141,12 @@ return playAllowed; } +void CMPXVideoAccessoryObserver::SetTvOutHDMI( TBool aTvOutHDMI ) +{ + MPX_ENTER_EXIT(_L("CMPXVideoAccessoryObserver::SetTvOutHDMI()"), + _L("aTvOutHDMI = %d"), aTvOutHDMI); + + iTvOutHDMI = aTvOutHDMI; +} + // End of File diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/mpxvideoplayerutility_stub.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 12 % +// Version : %version: 13 % #include #include @@ -743,6 +743,10 @@ return KErrNone; } +void CMpxVideoPlayerUtility::SurfaceRemovedFromView() +{ +} + #endif #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/src/videohelixtestbody.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 16 % +// Version : %version: 17 % // [INCLUDE FILES] - do not remove @@ -115,7 +115,10 @@ ENTRY( "SetDrmProtected", CVHPPTestClass::SetDrmProtectedL ), ENTRY( "IssueSeekedToEndCommand", CVHPPTestClass::IssueSeekedToEndCommandL), - ENTRY( "HandleVolume", CVHPPTestClass::HandleVolumeL ) + ENTRY( "HandleVolume", CVHPPTestClass::HandleVolumeL ), + ENTRY( "ConnectHDMITvOut", CVHPPTestClass::ConnectHDMITvOutL ), + ENTRY( "DisconnectHDMITvOut", CVHPPTestClass::DisconnectHDMITvOutL ), + ENTRY( "SetHDMITvOutConnected", CVHPPTestClass::SetHDMITvOutConnectedL ) // @@ -2165,4 +2168,65 @@ return err; } +TInt +CVHPPTestClass::ConnectHDMITvOutL( ) +{ + MPX_ENTER_EXIT(_L("CVHPPTestClass::ConnectHDMITvOutL()")); + iLog->Log(_L("CVHPPTestClass::ConnectHDMITvOutL()")); + + // Connect HDMI TV Out + iAccObserver->SetTvOutHDMI( ETrue ); + + // + // Add event for callback + // + TCallbackEvent* event = new TCallbackEvent; + + event->iEvent = EPbCmdTvOutEvent; + event->iData = ETrue; + event->iError = ETrue; + + AddExpectedEvent( event ); + + iAccObserver->UpdateTvOutStatusL( ETrue ); + + return KErrNone; +} + +TInt +CVHPPTestClass::DisconnectHDMITvOutL() +{ + MPX_ENTER_EXIT(_L("CVHPPTestClass::DisconnectHDMITvOutL()")); + iLog->Log(_L("CVHPPTestClass::DisconnectHDMITvOutL()")); + + // Connect HDMI TV Out + iAccObserver->SetTvOutHDMI( EFalse ); + + // + // Add event for callback + // + TCallbackEvent* event = new TCallbackEvent; + + event->iEvent = EPbCmdTvOutEvent; + event->iData = EFalse; + event->iError = ETrue; + + AddExpectedEvent( event ); + + iAccObserver->UpdateTvOutStatusL( EFalse ); + + return KErrNone; +} + +TInt +CVHPPTestClass::SetHDMITvOutConnectedL() +{ + MPX_ENTER_EXIT(_L("CVHPPTestClass::SetHDMITvOutConnectedL()")); + iLog->Log(_L("CVHPPTestClass::SetHDMITvOutConnectedL()")); + + iAccObserver->SetTvOutHDMI( ETrue ); + + return KErrNone; +} + // EOF diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp --- a/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: e003sa33#12 % +// Version : %version: e003sa33#14 % // INCLUDE FILES @@ -299,8 +299,10 @@ // License if ( iController->FileDetails()->iDrmProtected ) { - iLicenseLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iLicenseLabel->SetExtent( + TPoint(Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_LICENSE_HEADING ); CleanupStack::PushL( heading ); @@ -319,22 +321,29 @@ } // Filename - if ( iController->FileDetails()->iClipName ) + HBufC* fileName = iController->FileDetails()->GenerateFileNameL(); + if ( fileName && fileName->Length() ) { // file name gets populated by HandleScrollFilenameTimer method - iClipnameLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iClipnameLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); iClipnameLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin); iClipnameLabel->MakeVisible( ETrue ); rowsAdded++; + delete fileName; } // Mime Type (Format) - if ( iController->FileDetails()->iMimeType ) + if ( iController->FileDetails()->iMimeType + && iController->FileDetails()->iMimeType->Length() ) { - iFormatLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iFormatLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_FORMAT_HEADING ); CleanupStack::PushL( heading ); @@ -356,8 +365,10 @@ if ( iController->FileDetails()->iVideoHeight && iController->FileDetails()->iVideoWidth ) { - iResolutionLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iResolutionLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_RESOLUTION_HEADING ); CleanupStack::PushL( heading ); @@ -381,8 +392,10 @@ // Duration if ( iController->FileDetails()->iDuration > 0 ) { - iDurationLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iDurationLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_DURATION_HEADING ); CleanupStack::PushL( heading ); @@ -423,8 +436,10 @@ // Bitrate if ( iController->FileDetails()->iBitRate > 0 ) { - iBitrateLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iBitrateLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_BITRATE_HEADING ); CleanupStack::PushL( heading ); @@ -447,10 +462,13 @@ } // Title - if ( iController->FileDetails()->iTitle ) + if ( iController->FileDetails()->iTitle + && iController->FileDetails()->iTitle->Length() ) { - iTitleLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iTitleLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_TITLE_HEADING ); CleanupStack::PushL( heading ); @@ -469,10 +487,13 @@ } // Artist - if ( iController->FileDetails()->iArtist ) + if ( iController->FileDetails()->iArtist + && iController->FileDetails()->iArtist->Length() ) { - iArtistLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iArtistLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_ARTIST_HEADING ); CleanupStack::PushL( heading ); @@ -494,8 +515,10 @@ // Additional Label if ( iAdditionalString && iAdditionalString->Length() ) { - iAdditionalLabel->SetExtent( TPoint(Rect().iTl.iX, Rect().iTl.iY + (labelHeight*rowsAdded) ) , - TSize(labelWidth,labelHeight) ); + iAdditionalLabel->SetExtent( + TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) , + TSize( labelWidth, labelHeight ) + ); TBuf titleField; titleField.Append(KLeftMargin); @@ -694,15 +717,18 @@ // void CMPXVideoPlaybackMediaDetailsViewer::HandleScrollFilenameTimerL() { - if (iController->FileDetails()->iClipName) + HBufC* fileName = iController->FileDetails()->GenerateFileNameL(); + + if ( fileName && fileName->Length() ) { + CleanupStack::PushL( fileName ); if ( iShouldPauseScrolling ) { iShouldPauseScrolling = EFalse; User::After( 2000000 ); // add a 2 second delay after each complete scrolling } - TInt length = iController->FileDetails()->iClipName->Length(); + TInt length = fileName->Length(); HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_FILENAME_HEADING ); CleanupStack::PushL( heading ); @@ -714,9 +740,8 @@ if ( length >= KMediaDetailsViewerVisibleCharacters ) { - filenameField.Append( - iController->FileDetails()->iClipName->Mid(iScrollPosition, - KMediaDetailsViewerVisibleCharacters) ); + filenameField.Append( fileName->Mid( iScrollPosition, + KMediaDetailsViewerVisibleCharacters ) ); if ( iScrollPosition == (length - KMediaDetailsViewerVisibleCharacters) ) { @@ -730,7 +755,7 @@ } else { - filenameField.Append( *(iController->FileDetails()->iClipName) ); + filenameField.Append( *fileName ); iScrollingTextTimer->Cancel(); // no need to keep the timer active } @@ -738,7 +763,7 @@ DrawNow(); CleanupStack::PopAndDestroy( heading ); - + CleanupStack::PopAndDestroy( fileName ); } } diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/bwins/ui_videoplaybackcontrolstestu.def --- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/bwins/ui_videoplaybackcontrolstestu.def Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/bwins/ui_videoplaybackcontrolstestu.def Fri Mar 12 15:43:00 2010 +0200 @@ -6,4 +6,5 @@ ?GetBitmap@CMPXVideoPlaybackControlsController@@QAEPAVCEikImage@@W4TMPXVideoPlaybackControls@@@Z @ 5 NONAME ; class CEikImage * CMPXVideoPlaybackControlsController::GetBitmap(enum TMPXVideoPlaybackControls) ?HandleEventL@CMPXVideoPlaybackControlsController@@QAEXW4TMPXVideoPlaybackControlCommandIds@@H@Z @ 6 NONAME ; void CMPXVideoPlaybackControlsController::HandleEventL(enum TMPXVideoPlaybackControlCommandIds, int) ?NewL@CMPXVideoPlaybackControlsController@@SAPAV1@PAVCMPXVideoPlaybackContainer@@VTRect@@PAVCMPXVideoPlaybackViewFileDetails@@@Z @ 7 NONAME ; class CMPXVideoPlaybackControlsController * CMPXVideoPlaybackControlsController::NewL(class CMPXVideoPlaybackContainer *, class TRect, class CMPXVideoPlaybackViewFileDetails *) + ?GenerateFileNameL@CMPXVideoPlaybackViewFileDetails@@QAEPAVHBufC16@@XZ @ 8 NONAME ; class HBufC16 * CMPXVideoPlaybackViewFileDetails::GenerateFileNameL(void) diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/eabi/ui_videoplaybackcontrolstestu.def --- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/eabi/ui_videoplaybackcontrolstestu.def Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/eabi/ui_videoplaybackcontrolstestu.def Fri Mar 12 15:43:00 2010 +0200 @@ -34,4 +34,7 @@ _ZTV34CMPXVideoPlaybackBrandingAnimation @ 33 NONAME ; ## _ZTV35CMPXVideoPlaybackControlsController @ 34 NONAME ; ## _ZTV37CMPXVideoPlaybackControlConfiguration @ 35 NONAME ; ## + _ZN32CMPXVideoPlaybackViewFileDetails17GenerateFileNameLEv @ 36 NONAME + _ZTI35CMPXVideoPlaybackMediaDetailsViewer @ 37 NONAME + _ZTV35CMPXVideoPlaybackMediaDetailsViewer @ 38 NONAME diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp --- a/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackcontrols/tsrc/videoplaybackcontrols_test/src/mpxvpbvfd_stub.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,12 +15,14 @@ * */ -// Version : %version: ou1cpsw#6 % +// Version : %version: e003sa33#7 % // // INCLUDE FILES // +#include + #include "mpxvideo_debug.h" #include "mpxvideoplaybackviewfiledetails.h" @@ -90,4 +92,28 @@ iPausableStream = ETrue; } +// ------------------------------------------------------------------------------------------------- +// CMPXVideoPlaybackViewFileDetails::GenerateFileNameL +// ------------------------------------------------------------------------------------------------- +// +EXPORT_C HBufC* CMPXVideoPlaybackViewFileDetails::GenerateFileNameL() +{ + MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackViewFileDetails::GenerateFileNameL()" ) ); + + HBufC* fileName = NULL; + + if ( iClipName && iClipName->Length() + && EMPXVideoStreaming != iPlaybackMode && + EMPXVideoLiveStreaming != iPlaybackMode ) + { + // + // Get only file name for media details viewer + // + TParsePtrC filePath( iClipName->Des() ); + fileName = ( filePath.Name() ).AllocL(); + } + + return fileName; +} + // EOF diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/bwins/mpxvideoplaybackviewsu.def --- a/videoplayback/videoplaybackviews/bwins/mpxvideoplaybackviewsu.def Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/bwins/mpxvideoplaybackviewsu.def Fri Mar 12 15:43:00 2010 +0200 @@ -10,4 +10,5 @@ ?NewLC@CMPXVideoPlaybackView@@SAPAV1@XZ @ 9 NONAME ; class CMPXVideoPlaybackView * CMPXVideoPlaybackView::NewLC(void) ?ProcessPointerEventL@CMPXVideoPlaybackUserInputHandler@@QAEXPAVCCoeControl@@ABUTPointerEvent@@W4TMPXVideoControlType@@@Z @ 10 NONAME ; void CMPXVideoPlaybackUserInputHandler::ProcessPointerEventL(class CCoeControl *, struct TPointerEvent const &, enum TMPXVideoControlType) ?UserInputHandler@CMPXVideoPlaybackContainer@@QAEPAVCMPXVideoPlaybackUserInputHandler@@XZ @ 11 NONAME ; class CMPXVideoPlaybackUserInputHandler * CMPXVideoPlaybackContainer::UserInputHandler(void) + ?GenerateFileNameL@CMPXVideoPlaybackViewFileDetails@@QAEPAVHBufC16@@XZ @ 12 NONAME ; class HBufC16 * CMPXVideoPlaybackViewFileDetails::GenerateFileNameL(void) diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/eabi/mpxvideoplaybackviewsu.def --- a/videoplayback/videoplaybackviews/eabi/mpxvideoplaybackviewsu.def Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/eabi/mpxvideoplaybackviewsu.def Fri Mar 12 15:43:00 2010 +0200 @@ -20,4 +20,5 @@ _ZN26CMPXVideoPlaybackContainer16UserInputHandlerEv @ 19 NONAME _ZTI31CMPXVideoPlaybackDisplayHandler @ 20 NONAME ; ## _ZTV31CMPXVideoPlaybackDisplayHandler @ 21 NONAME ; ## + _ZN32CMPXVideoPlaybackViewFileDetails17GenerateFileNameLEv @ 22 NONAME diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/group/mpxvideoplaybackviews.mmp --- a/videoplayback/videoplaybackviews/group/mpxvideoplaybackviews.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/group/mpxvideoplaybackviews.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 13 % +// Version : %version: 14 % #include @@ -83,7 +83,7 @@ LIBRARY sysutil.lib LIBRARY drmuihandling.lib LIBRARY centralrepository.lib // for backlight timeout value -LIBRARY hal.lib // disabling backlight +LIBRARY hwrmlightclient.lib // light status #ifdef SYMBIAN_BUILD_GCE LIBRARY mediaclientvideodisplay.lib diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/src/mpxvideobaseplaybackview.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 61 % +// Version : %version: 63 % // Include Files @@ -64,6 +64,7 @@ #include #include "mpxmediavideodefs.h" #include "mpxvideo_debug.h" +#include "mpxvideoplayercustomviewmsgconsts.h" // Member Functions @@ -220,6 +221,7 @@ CreateGeneralPlaybackCommandL( EPbCmdPause ); break; } + case EAknSoftkeyClose: case EMPXPbvCmdClose: { MPX_DEBUG(_L("CMPXVideoBasePlaybackView::HandleCommandL() EMPXPbvCmdClose")); @@ -363,17 +365,9 @@ LaunchDRMDetailsL(); break; } - case EAknSoftkeyClose: + case KMpxVideoPlaybackPdlReloading: { - // - // Close is in progress - // Remove the display window so the surface can be released - // - if ( iDisplayHandler ) - { - iDisplayHandler->RemoveDisplayWindow(); - } - + iPdlReloading = ETrue; break; } } diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/src/mpxvideopdlplaybackview.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideopdlplaybackview.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/src/mpxvideopdlplaybackview.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 21 % +// Version : %version: 22 % // Include Files @@ -370,7 +370,11 @@ { MPX_DEBUG(_L("CMPXVideoPdlPlaybackView::HandleStoppedStateL()")); - if ( iPlaybackState == EPbStateStopped ) + if ( iPdlReloading ) + { + iPdlReloading = EFalse; + } + else { ClosePlaybackViewL(); } diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/src/mpxvideoplaybackdisplayhandler.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackdisplayhandler.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackdisplayhandler.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 9 % +// Version : %version: 10 % #include #include @@ -60,6 +60,8 @@ iVideoDisplay = NULL; } #endif + + iSurfaceId = TSurfaceId::CreateNullId(); } CMPXVideoPlaybackDisplayHandler* @@ -101,6 +103,27 @@ } // ------------------------------------------------------------------------------------------------- +// CMPXVideoPlaybackDisplayHandler::SignalSurfaceRemovedL() +// ------------------------------------------------------------------------------------------------- +// +void CMPXVideoPlaybackDisplayHandler::SignalSurfaceRemovedL() +{ + MPX_ENTER_EXIT(_L("CMPXVideoPlaybackDisplayHandler::SignalSurfaceRemovedL()")); + + CMPXCommand* cmd = CMPXCommand::NewL(); + CleanupStack::PushL( cmd ); + + cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue ); + cmd->SetTObjectValueL( KMPXCommandGeneralId, KMPXMediaIdVideoPlayback ); + cmd->SetTObjectValueL( KMPXMediaVideoPlaybackCommand, + EPbCmdSurfaceRemoved ); + + iPlaybackUtility->CommandL( *cmd ); + + CleanupStack::PopAndDestroy( cmd ); +} + +// ------------------------------------------------------------------------------------------------- // CMPXVideoPlaybackDisplayHandler::RemoveDisplayWindow() // ------------------------------------------------------------------------------------------------- // @@ -115,6 +138,16 @@ iVideoDisplay = NULL; } #endif + + if ( ! iSurfaceId.IsNull() ) + { + // + // Signal to the Playback Plugin that the surface has been removed + // + TRAP_IGNORE( SignalSurfaceRemovedL() ); + + iSurfaceId = TSurfaceId::CreateNullId(); + } } // ------------------------------------------------------------------------------------------------- @@ -150,6 +183,18 @@ SurfaceRemoved(); break; } + case EPbMsgVideoRemoveDisplayWindow: + { + if ( iVideoDisplay ) + { + delete iVideoDisplay; + iVideoDisplay = NULL; + } + + iSurfaceId = TSurfaceId::CreateNullId(); + + break; + } #endif } @@ -421,7 +466,7 @@ MPX_ENTER_EXIT(_L("CMPXVideoPlaybackDisplayHandler::SurfaceCreatedL()")); TSurfaceId oldSurfaceId = iSurfaceId; - + // // Extract the surface parameters from the message // diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackuserinputhandler.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 14 % +// Version : %version: 15 % // INCLUDE FILES @@ -43,8 +43,7 @@ #else #include "mpxvideoplaybackcontainer.h" #include "mpxvideoplaybackcontrol.h" -#include -#include +#include //light status #endif #include "mpxvideoplaybackcontrol.hrh" @@ -104,6 +103,8 @@ iTVOutConnected = aTvOutConnected; + iLight = CHWRMLight::NewL(); + // Start the timer if TV out is connected if ( iTVOutConnected ) { @@ -158,6 +159,11 @@ // the view updates or deactivates EnableBacklight(); + if ( iLight ) + { + delete iLight; + iLight = NULL; + } } // ------------------------------------------------------------------------------------------------- @@ -612,7 +618,11 @@ iDisplayTimer->Cancel(); // disable the backlight - HAL::Set( HALData::EBacklightState, 0 ); + MPX_TRAPD( err, + { + iLight->ReserveLightL( CHWRMLight::EPrimaryDisplay ); + iLight->LightOffL( CHWRMLight::EPrimaryDisplay ); + } ); } // ----------------------------------------------------------------------------- @@ -624,7 +634,11 @@ MPX_ENTER_EXIT(_L("CMPXVideoPlaybackUserInputHandler::EnableBacklight")); // enable the backlight - HAL::Set( HALData::EBacklightState, 1 ); + MPX_TRAPD( err, + { + iLight->LightOnL( CHWRMLight::EPrimaryDisplay ); + iLight->ReleaseLight(CHWRMLight::EPrimaryDisplay ); + } ); } @@ -691,12 +705,9 @@ { // timeout has happened and the backlight is disabled // enable the backlight - HAL::Set( HALData::EBacklightState, 1 ); + EnableBacklight(); } - TBool backlightState; - TInt ret = HAL::Get( HALData::EBacklightState, backlightState ); - // Re start the display backlight timer iDisplayTimer->Start( iDisplayTimeOut, iDisplayTimeOut, TCallBack( CMPXVideoPlaybackUserInputHandler::HandleDisplayTimeout, this ) ); diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/src/mpxvideoplaybackviewfiledetails.cpp --- a/videoplayback/videoplaybackviews/src/mpxvideoplaybackviewfiledetails.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/src/mpxvideoplaybackviewfiledetails.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,12 +15,14 @@ * */ -// Version : %version: 8 % +// Version : %version: e003sa33#9 % // // INCLUDE FILES // +#include + #include "mpxvideo_debug.h" #include "mpxvideoplaybackviewfiledetails.h" @@ -99,4 +101,32 @@ iFourCCCode = 0; } +// ------------------------------------------------------------------------------------------------- +// CMPXVideoPlaybackViewFileDetails::GenerateFileNameL +// ------------------------------------------------------------------------------------------------- +// +EXPORT_C HBufC* CMPXVideoPlaybackViewFileDetails::GenerateFileNameL() +{ + MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackViewFileDetails::GenerateFileNameL()" ) ); + + HBufC* fileName = NULL; + + if ( iClipName && iClipName->Length() + && EMPXVideoStreaming != iPlaybackMode && + EMPXVideoLiveStreaming != iPlaybackMode ) + { + // + // Get only file name for media details viewer + // + //TParsePtrC filePath( iClipName->Des() ); + //fileName = ( filePath.Name() ).AllocL(); + TParse parse; + parse.Set( iClipName->Des(), NULL, NULL); + fileName = ( parse.Name() ).AllocL(); + + } + + return fileName; +} + // EOF diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/conf/ui_userinputhandlertest.cfg --- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/conf/ui_userinputhandlertest.cfg Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/conf/ui_userinputhandlertest.cfg Fri Mar 12 15:43:00 2010 +0200 @@ -16,7 +16,7 @@ ETvOutDisconnected 0 ETvOutConnected 1 -EDisplayBacklightOff 0 +EDisplayBacklightOff 2 EDisplayBacklightOn 1 [Enddefine] diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/inc/hal_stub.h --- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/inc/hal_stub.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/inc/hal_stub.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,17 +15,22 @@ * */ -// Version : %version: ou1cpsw#2 % +// Version : %version: 3 % #ifndef __HAL_STUB_H__ #define __HAL_STUB_H__ -#include -#include -#include +#include +enum TLightStatus + { + ELightStatusUnknown = 0, + ELightOn, + ELightOff, + ELightBlink + }; -static TInt iBacklightState = 1; +static TLightStatus iBacklightState = ELightOn; /** @publishedPartner @@ -33,50 +38,40 @@ A set of static functions to get and set HAL attributes. -@see HALData +@see CHWRMLight */ -class HAL : public HALData - { -public: - - HAL(); - virtual ~HAL(); - - /** - Gets the value of the specified HAL attribute. +class CHWRMLight : public CBase +{ + public: - @param aAttribute The HAL attribute. - @param aValue On successful return, contains the attribute value. + enum TLightTarget + { + ENoTarget = 0x0, + EPrimaryDisplay = 0x1, + ESystemTarget = 0x80000000 + }; + + public: + + static CHWRMLight* NewL(); - @return KErrNone, if successful; - KErrNotSupported, if the attribute is not defined in the list - of attributes, or is not meaningful for this device. - - @see HALData::TAttribute - @see HALData::TAttributeProperty - */ - static TInt Get(TAttribute aAttribute, TInt& aValue); + void ConstructL(); + + CHWRMLight(); - - /** - Sets the specified HAL attribute. + ~CHWRMLight(); + + public: + void ReserveLightL(TInt aTarget); - @param aAttribute The HAL attribute. - @param aValue The attribute value. + void ReleaseLight(TInt aTarget); + + void LightOnL(TInt aTarget); - @return KErrNone, if successful; - KErrNotSupported, if the attribute is not defined in the list - of attributes, or is not meaningful for this device, or is - not settable. - - @see HALData::TAttribute - @see HALData::TAttributeProperty + void LightOffL(TInt aTarget); - @capability WriteDeviceData or other capability specified - for individual attributes in TAttribute - */ - static TInt Set(TAttribute aAttribute, TInt aValue); - - }; + TLightStatus LightStatus(TInt aTarget) const; + +}; #endif diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/hal_stub.cpp --- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/hal_stub.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/hal_stub.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#2 % +// Version : %version: 3 % // INCLUDE FILES @@ -28,63 +28,62 @@ // ================= MEMBER FUNCTIONS ============================================================== // ------------------------------------------------------------------------------------------------- -// HAL::HAL() +// CHWRMLight::CHWRMLight() // C++ default constructor can NOT contain any code, that // might leave. // ------------------------------------------------------------------------------------------------- // -HAL::HAL() +CHWRMLight::CHWRMLight() { } +CHWRMLight::~CHWRMLight() +{ + MPX_DEBUG(_L("CHWRMLight::~CHWRMLight()")); +} -// ------------------------------------------------------------------------------------------------- -// CMPXVideoPlaybackControl::~CMPXVideoPlaybackControl() -// Destructor. -// ------------------------------------------------------------------------------------------------- -// -HAL::~HAL() +CHWRMLight* CHWRMLight::NewL() { - MPX_DEBUG(_L("HAL::~HAL()")); + MPX_DEBUG(_L("CHWRMLight::NewL()")); + + CHWRMLight* self = new (ELeave) CHWRMLight(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); + + return self; +} + +void CHWRMLight::ConstructL() +{ + MPX_DEBUG(_L("CHWRMLight::ConstructL()")); } -// ------------------------------------------------------------------------------------------------- -// Gets the attribute value. -// ------------------------------------------------------------------------------------------------- -// -TInt HAL::Get( TAttribute aAttribute, TInt& aValue ) +void CHWRMLight::ReserveLightL(TInt aTarget) { - switch ( aAttribute ) - { - case EBacklightState: - { - aValue = iBacklightState; - break; - } - default: - break; - } - return KErrNone; + MPX_DEBUG(_L("CHWRMLight::ReserveLightL()")); +} + +void CHWRMLight::ReleaseLight(TInt aTarget) +{ + MPX_DEBUG(_L("CHWRMLight::ReleaseLight()")); } -// ------------------------------------------------------------------------------------------------- -// From CCoeControl -// Gets an indexed component of a compound control. -// ------------------------------------------------------------------------------------------------- -// -TInt HAL::Set( TAttribute aAttribute, TInt aValue ) +void CHWRMLight::LightOnL(TInt aTarget) +{ + MPX_DEBUG(_L("CHWRMLight::LightOnL()")); + iBacklightState = ELightOn; +} +void CHWRMLight::LightOffL(TInt aTarget) { - switch ( aAttribute ) - { - case EBacklightState: - { - iBacklightState = aValue; - break; - } - default: - break; - } - return KErrNone; + MPX_DEBUG(_L("CHWRMLight::LightOffL()")); + iBacklightState = ELightOff; +} + +TLightStatus CHWRMLight::LightStatus(TInt aTarget) const +{ + MPX_DEBUG(_L("CHWRMLight::LightStatus()")); + return iBacklightState; } diff -r 7d91903f795f -r ce5ada96ab30 videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/userinputhandlertestBlocks.cpp --- a/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/userinputhandlertestBlocks.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayback/videoplaybackviews/tsrc/ut_userinputhandlertest/src/userinputhandlertestBlocks.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#5 % +// Version : %version: 6 % // [INCLUDE FILES] - do not remove @@ -33,7 +33,6 @@ #include "mpxvideoplaybackuserinputhandler.h" #include "mpxvideo_debug.h" #include "hal_stub.h" -#include // // pre-define @@ -579,10 +578,13 @@ { MPX_DEBUG(_L("CUserinputhandlertest::CheckBacklightState()")); - TBool backlightState; + TLightStatus backlightState = ELightStatusUnknown; TInt status; - HAL::Get( HALData::EBacklightState, backlightState ); + CHWRMLight* light = NULL; + MPX_TRAPD( err, light = CHWRMLight::NewL() ); + backlightState = light->LightStatus( CHWRMLight::EPrimaryDisplay ); + delete light; TInt result = aItem.GetNextInt( status ); diff -r 7d91903f795f -r ce5ada96ab30 videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest.cfg --- a/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest.cfg Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest.cfg Fri Mar 12 15:43:00 2010 +0200 @@ -44,79 +44,79 @@ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 0 ELaunchVideoToPlayer - ENoSender -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENoSender 0 -pause 5000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 0 ELaunchVideoToPlayer - ENoSender +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENoSender 0 +#pause 5000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 1 ELaunchVideoToPlayer - ENotification -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 5000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 1 ELaunchVideoToPlayer - ENotification +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 5000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 2 ELaunchVideoToPlayer - EActiveSpace -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer EActiveSpace 0 -pause 5000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 2 ELaunchVideoToPlayer - EActiveSpace +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer EActiveSpace 0 +#pause 5000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 3 ELaunchVideoToPlayer - EIptvMainLastWatcher -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer EIptvMainLastWatcher 0 -pause 5000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 3 ELaunchVideoToPlayer - EIptvMainLastWatcher +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer EIptvMainLastWatcher 0 +#pause 5000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 4 ELaunchVideoToPlayer - EMatrixMenu -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer EMatrixMenu 0 -pause 5000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 4 ELaunchVideoToPlayer - EMatrixMenu +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer EMatrixMenu 0 +#pause 5000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 5 ELaunchVideoToPlayer - EMatrixMenu, no file defined -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer EMatrixMenu -pause 5000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 5 ELaunchVideoToPlayer - EMatrixMenu, no file defined +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer EMatrixMenu +#pause 5000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # @@ -267,66 +267,66 @@ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 17 ELaunchServiceById - ENoSender -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchServiceById ENoSender -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 17 ELaunchServiceById - ENoSender +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchServiceById ENoSender +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 18 ELaunchServiceById - ENotification -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchServiceById ENotification -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 18 ELaunchServiceById - ENotification +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchServiceById ENotification +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 19 ELaunchServiceById - EActiveSpace -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchServiceById EActiveSpace -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 19 ELaunchServiceById - EActiveSpace +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchServiceById EActiveSpace +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 20 ELaunchServiceById - EIptvMainLastWatcher -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchServiceById EIptvMainLastWatcher -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 20 ELaunchServiceById - EIptvMainLastWatcher +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchServiceById EIptvMainLastWatcher +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 21 ELaunchServiceById - EMatrixMenu -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchServiceById EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 21 ELaunchServiceById - EMatrixMenu +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchServiceById EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # diff -r 7d91903f795f -r ce5ada96ab30 videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest2.cfg --- a/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest2.cfg Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayer_plat/videoplayer_startup_api/tsrc/conf/ui_VideoPlayerStartupApiTest2.cfg Fri Mar 12 15:43:00 2010 +0200 @@ -130,151 +130,151 @@ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 106 EOpenServiceCatalogue - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenServiceCatalogue EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 106 EOpenServiceCatalogue - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenServiceCatalogue EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 107 EOpenVideoShop - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenVideoShop EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 107 EOpenVideoShop - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenVideoShop EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 108 ELiveTVMessage - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage ELiveTVMessage EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 108 ELiveTVMessage - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage ELiveTVMessage EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 109 EOpenRecordingsCategory - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenRecordingsCategory EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 109 EOpenRecordingsCategory - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenRecordingsCategory EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 110 EOpenVCSettings - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenVCSettings EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 110 EOpenVCSettings - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenVCSettings EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 111 EOpenVCSettingsFeedSubscriptions - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenVCSettingsFeedSubscriptions EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 111 EOpenVCSettingsFeedSubscriptions - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenVCSettingsFeedSubscriptions EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 112 EOpenVCSettingsAddFeed - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenVCSettingsAddFeed EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 112 EOpenVCSettingsAddFeed - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenVCSettingsAddFeed EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 113 ELiveTVMessageLastWatched - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage ELiveTVMessageLastWatched EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 113 ELiveTVMessageLastWatched - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage ELiveTVMessageLastWatched EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 114 EOpenVCSettingsLiveTVSubscriptions - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenVCSettingsLiveTVSubscriptions EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 114 EOpenVCSettingsLiveTVSubscriptions - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenVCSettingsLiveTVSubscriptions EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # # CaseClass: core #------------------------------------------------------------------------------------ -[Test] -title 115 EOpenVCSettingsEditFeed - EMatrixMenu, while playing -create VideoPlayerStartupApiTest test -test ActivationMessage ELaunchVideoToPlayer ENotification 0 -pause 3000 -test ActivationMessage EOpenVCSettingsEditFeed EMatrixMenu -pause 3000 -test KillFusion -delete test -[Endtest] +#[Test] +#title 115 EOpenVCSettingsEditFeed - EMatrixMenu, while playing +#create VideoPlayerStartupApiTest test +#test ActivationMessage ELaunchVideoToPlayer ENotification 0 +#pause 3000 +#test ActivationMessage EOpenVCSettingsEditFeed EMatrixMenu +#pause 3000 +#test KillFusion +#delete test +#[Endtest] #------------------------------------------------------------------------------------ # diff -r 7d91903f795f -r ce5ada96ab30 videoplayer_plat/videoplayer_startup_api/tsrc/group/VideoPlayerStartupApiTest.mmp --- a/videoplayer_plat/videoplayer_startup_api/tsrc/group/VideoPlayerStartupApiTest.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayer_plat/videoplayer_startup_api/tsrc/group/VideoPlayerStartupApiTest.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -47,7 +47,6 @@ SOURCE VideoPlayerStartupApiTest.cpp SOURCE VideoPlayerStartupApiTestBlocks.cpp -SOURCE VCXTestSmClient.cpp //RESOURCE resource_file //RESOURCE resource_file2 @@ -78,8 +77,6 @@ LIBRARY insock.lib LIBRARY esock.lib LIBRARY sendui.lib -LIBRARY IptvUtil.lib -LIBRARY IPTVClientAPI.lib LIBRARY FLOGGER.lib LIBRARY ecom.lib LIBRARY VCXTestMyVideosCollectionClient.lib diff -r 7d91903f795f -r ce5ada96ab30 videoplayer_plat/videoplayer_startup_api/tsrc/inc/VideoPlayerStartupApiTest.h --- a/videoplayer_plat/videoplayer_startup_api/tsrc/inc/VideoPlayerStartupApiTest.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayer_plat/videoplayer_startup_api/tsrc/inc/VideoPlayerStartupApiTest.h Fri Mar 12 15:43:00 2010 +0200 @@ -48,7 +48,6 @@ // FORWARD DECLARATIONS //class ?FORWARD_CLASSNAME; class CVideoPlayerStartupApiTest; -class CVCXTestSmClient; class CVCXTestMyVideosCollectionClient; // DATA TYPES @@ -168,8 +167,6 @@ RPointerArray iProcessHandles; - CVCXTestSmClient* iSmClient; - CVCXTestMyVideosCollectionClient* iMyVideosCollectionClient; CVCXTestMessageWait* iMessageWait; TInt iCollectionError; diff -r 7d91903f795f -r ce5ada96ab30 videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTest.cpp --- a/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTest.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTest.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -21,7 +21,6 @@ #include #include "VideoPlayerStartupApiTest.h" -#include "VCXTestSmClient.h" // EXTERNAL DATA STRUCTURES //extern ?external_data; @@ -131,8 +130,6 @@ CStifLogger::ETxt, CStifLogger::EFile, EFalse ); - - iSmClient = CVCXTestSmClient::NewL(); SendTestClassVersion(); } @@ -164,9 +161,6 @@ // Delete logger delete iLog; - - delete iSmClient; - iSmClient = NULL; } //----------------------------------------------------------------------------- diff -r 7d91903f795f -r ce5ada96ab30 videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTestBlocks.cpp --- a/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTestBlocks.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayer_plat/videoplayer_startup_api/tsrc/src/VideoPlayerStartupApiTestBlocks.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -32,7 +32,6 @@ #include "VideoPlayerStartupApiTest.h" #include "VCXTestLog.h" -#include "VCXTestSmClient.h" #include "VCXTestMyVideosCollectionClient.h" // CONSTANTS @@ -70,7 +69,7 @@ { // Copy this line for every implemented function. // First string is the function name used in TestScripter script file. - // Second is the actual implementation member function. + // Second is the actual implementation member function. ENTRY( "ActivationMessage", CVideoPlayerStartupApiTest::ActivationMessageL ), ENTRY( "KillFusion", CVideoPlayerStartupApiTest::KillFusionL ), //ADD NEW ENTRY HERE @@ -118,7 +117,7 @@ // Refresh collection. iMyVideosCollectionClient->RefreshCollectionL(); iMessageWait->AddMessage( EVCXTestVideoListRefreshed ); - iMessageWait->WaitForAllL( 10, ETrue ); + iMessageWait->WaitForAllL( 10, ETrue ); } if( iCollectionError != KErrNone ) @@ -207,7 +206,6 @@ case TVideoPlayerActivationMessage::ELaunchServiceById: { VCXLOGLO1("CVideoPlayerStartupApiTest:: msgType: ELaunchServiceById"); - iSmClient->GetAnyServiceIdL( message.iServiceId ); } break; diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/group/bld.inf --- a/videoplayerapp/group/bld.inf Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/group/bld.inf Fri Mar 12 15:43:00 2010 +0200 @@ -16,7 +16,7 @@ * */ -// Version : %version: ou1cpsw#3 % +// Version : %version: ou1cpsw#4 % @@ -24,6 +24,5 @@ #include "../lwplayer/group/bld.inf" #include "../mpxvideoplayer/group/bld.inf" -#include "../videoplayerlauncher/group/bld.inf" // EOF diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/lwplayer/src/lwplayerappui.cpp --- a/videoplayerapp/lwplayer/src/lwplayerappui.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/lwplayer/src/lwplayerappui.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 7 % +// Version : %version: 8 % #include @@ -208,14 +208,14 @@ MPX_DEBUG(_L(" filename = %S"), &fileName); - if ( !iEmbeddedMPCreated ) + if ( ! iEmbeddedMPCreated ) { // // Launch the Media Player for ProgDL playback // Ignore the errors since the Media Player is // responsible for all error messages once launched. // - TRAPD( err, LaunchMediaPlayerL( fileName, genParList ) ); + MPX_TRAPD( err, LaunchMediaPlayerL( fileName, genParList ) ); if ( err != KErrNone ) { @@ -232,8 +232,8 @@ CLWPlayerAppUi::LaunchMediaPlayerL( const TDesC& afilename, const CAiwGenericParamList* aparamList ) { - MPX_DEBUG(_L("CLWPlayerAppUi::LaunchMediaPlayerL(%S)"), &afilename); - + MPX_ENTER_EXIT(_L("CLWPlayerAppUi::LaunchMediaPlayerL()"), + _L("afilename = %S"), &afilename ); // // The download manager has already performed recognition on the file @@ -250,7 +250,7 @@ // Call the document handler to open the file // It will leave if the filename is not present // - TRAPD( err, handler.OpenTempFileL( afilename, file )); + MPX_TRAPD( err, handler.OpenTempFileL( afilename, file )); if ( err == KErrNotFound ) { @@ -264,7 +264,7 @@ { CleanupClosePushL( file ); - TRAPD( err, handler.OpenFileEmbeddedL( file, datatype, *aparamList ) ); + MPX_TRAPD( err, handler.OpenFileEmbeddedL( file, datatype, *aparamList ) ); // // ignore some document handler errors diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/data/mpxvideoplayer_reg.rss --- a/videoplayerapp/mpxvideoplayer/data/mpxvideoplayer_reg.rss Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/data/mpxvideoplayer_reg.rss Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#12 % +// Version : %version: 13 % // INCLUDES #include @@ -40,9 +40,6 @@ localisable_resource_id = R_MPXVIDEOPLAYER_LOCALISABLE_APP_INFO; embeddability = KAppEmbeddable; - // Hide this application, launcher will be visible instead - hidden = KAppIsHidden; - datatype_list = { DATATYPE { priority=EDataTypePrioritySystem; type="video/avi"; }, diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/group/mpxvideoplayer.mmp --- a/videoplayerapp/mpxvideoplayer/group/mpxvideoplayer.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/group/mpxvideoplayer.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 27 % +// Version : %version: da1mmcf#28 % #include #include @@ -73,15 +73,7 @@ LIBRARY commonengine.lib LIBRARY estor.lib LIBRARY apgrfx.lib -LIBRARY cmmanager.lib -LIBRARY commsdat.lib -LIBRARY mpsettengine.lib LIBRARY playbackhelper.lib -LIBRARY esock.lib -LIBRARY extendedconnpref.lib -LIBRARY netmeta.lib -LIBRARY commdb.lib - LIBRARY mpxviewutility.lib // MPX view utility LIBRARY mpxplaybackutility.lib // MPX playback utility LIBRARY mpxcollectionutility.lib diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappui.h --- a/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappui.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappui.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#14 % +// Version : %version: 15 % #ifndef CMPXVIDEOPLAYERAPPUI_H @@ -107,12 +107,6 @@ * @return Active akn view or NULL if no views. */ CAknView* View(); - - /** - * Sends a message to Matrix menu. - * @param aMessage The message to be sent. - */ - void LaunchMmViewL( const TDesC8& aMessage ); private: /** @@ -161,7 +155,6 @@ // own CMpxVideoPlayerAppUiEngine* iAppUiEngine; - TBool iEndKeyExit; }; diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappuiengine.h --- a/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappuiengine.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/inc/mpxvideoplayerappuiengine.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#27 % +// Version : %version: e92_31 % #ifndef CMPXVIDEOPLAYERAPPUIENGINE_H @@ -42,7 +42,6 @@ class MMPXCollectionUiHelper; class CAiwGenericParamList; class CVideoPlaylistUtility; -class RConnection; /** * Application UI class. @@ -97,11 +96,6 @@ void ActivatePlaybackViewL(); /** - * Sets mpx components ready for application shutdown - */ - void PrepareCloseMpxL(); - - /** * Sets AppUiEngine in stand alone "mode" */ void StartStandAloneL(); @@ -116,12 +110,6 @@ */ void StepBackCollectionPathL(); - /** - * Process activation message. - * @param aMsg reference to activation message - */ - void ProcessActivationMessageL( const TDesC8 &aMsg ); - /* * Handle embedded playback message * @param aMessageUid message identification uid @@ -232,14 +220,11 @@ void ClearPdlInformation(); - /** - * Checks if application has to exit to Matrix root menu - */ - TBool ExitToMatrixMenu(); - void InitializeFileL( const TDesC& aFileName ); void ClosePlaybackPluginL(); + + void SignalViewPdlReloading(); private: /** @@ -272,41 +257,6 @@ CMediaRecognizer::TMediaType aMediaType, TBool aUseFileHandle = EFalse ); - /* - * Sets the access point member variable - */ - void SetAccessPointL(); - - /** - * Checks if the the AP is WLAN - * - * @param aAPId - the ID of access point to be evaluated - * @return ETrue if the bearer type is WLAN for this access point - */ - TBool IsWLANAccessPointL(TInt aAPId); - - /** - * Reads the default AP - * - * @return ID of the default Access Point read from the config file - */ - TInt GetDefaultAccessPointL(); - - /** - * Converts UID of the AP to and Access Point Id - * - * @return ID of the Access Point - */ - TInt GetAccessPointIdForUIDL(TUint32 aAPUid); - - /** - * Tries to get AP ID for connection. - * If default AP is not available, AP is queried from the user. - * - * @return ID of the Access Point - */ - TUint32 TryToGetAccessPointL(); - TInt HandleAiwGenericParamListL( const CAiwGenericParamList* aParams ); /** @@ -340,20 +290,6 @@ */ void UpdatePbPluginMediaL(); - /* - * Sends custom command to active view - * - * @param aMsg custom message data - */ - void SendCustomCommandToActiveViewL( const TDesC8& aMsg ); - - /* - * Gets IAP ID from active connection. - * - * @param aConn Connection to query. - */ - TUint32 QueryIap( RConnection& aConn ); - void InitializeStreamingLinkL( const TDesC& aUri ); void InitializePlaylistL( const CMPXCollectionPlaylist& aPlaylist, TBool aPlay ); @@ -376,11 +312,9 @@ CMpxVideoEmbeddedPdlHandler* iPdlHandler; // own TInt iAccessPointId; - TInt iExtAccessPointId; TBool iMultilinkPlaylist; TBool iSeekable; TBool iUpdateSeekInfo; - TBool iExitToMatrixMenu; }; // diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/sis/VideoPlayer.pkg --- a/videoplayerapp/mpxvideoplayer/sis/VideoPlayer.pkg Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/sis/VideoPlayer.pkg Fri Mar 12 15:43:00 2010 +0200 @@ -1,4 +1,4 @@ -; +; ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ; All rights reserved. ; This component and the accompanying materials are made available @@ -41,13 +41,6 @@ "/epoc32/data/Z/resource/apps/mpxvideoplayer_aif.mif" - "!:/resource/apps/mpxvideoplayer_aif.mif" ; -; Video Player launcher -; -"/epoc32/release/armv5/urel/videoplayerlauncher.exe" - "!:/sys/bin/videoplayerlauncher.exe" -"/epoc32/data/z/resource/apps/videoplayerlauncher.rsc" - "!:/resource/apps/videoplayerlauncher.rsc" -"/epoc32/data/z/private/10003a3f/apps/videoplayerlauncher_reg.rsc" - "!:/private/10003a3f/import/apps/videoplayerlauncher_reg.rsc" - -; ; Playback Plugin ; "/epoc32/release/armv5/urel/mpxvideohelixplayback.dll" - "!:/sys/bin/mpxvideohelixplayback.dll" @@ -88,20 +81,6 @@ "/epoc32/data/z/private/10003a3f/apps/lwplayer_reg.rsc" - "!:/private/10003a3f/import/apps/lwplayer_reg.rsc" ; -; Matrix (Homescreen) -; -"/epoc32/release/armv5/urel/vcxnsahplugin.dll" - "!:/sys/bin/vcxnsahplugin.dll" -"/epoc32/data/z/resource/plugins/vcxnsahplugin.rsc" - "!:/resource/plugins/vcxnsahplugin.rsc" -"/epoc32/release/armv5/urel/vcxnscontentharvesterplugin.dll" - "!:/sys/bin/vcxnscontentharvesterplugin.dll" -"/epoc32/data/z/resource/plugins/vcxnscontentharvesterplugin.rsc" - "!:/resource/plugins/vcxnscontentharvesterplugin.rsc" -"/epoc32/data/z/resource/apps/videocontentharvester.rsc" - "!:/resource/apps/videocontentharvester.rsc" -"/epoc32/data/z/resource/apps/videosuiteres.rsc" - "!:/resource/apps/videosuiteres.rsc" -"/epoc32/include/videosuiteres.rsg" - "!:/resource/apps/videosuiteres.rsg" -"/epoc32/data/Z/resource/apps/videosuite.mif" - "!:/resource/apps/videosuite.mif" -"../../../homescreenplugins/videosuiteconf/data/suite.xml" - "!:/private/101f4cd2/import/suites/tvvideosuite/suite.xml" -"../../../homescreenplugins/videosuiteconf/data/vcns_matrix_items.xml" - "!:/private/101f4cd2/import/suites/tvvideosuite/vcns_matrix_items.xml" - -; ; File details dialog ; "/epoc32/release/armv5/urel/MPFileDetailsDialog.dll" - "!:/sys/bin/MPFileDetailsDialog.dll" @@ -114,22 +93,6 @@ "/epoc32/data/z/resource/plugins/filedetailsplugin.rsc" - "!:/resource/plugins/filedetailsplugin.rsc" ; -; Iptv Server -; -"/epoc32/release/armv5/urel/iptvserver.exe" - "!:/sys/bin/iptvserver.exe" - -; -; Iptv Client API -; -"/epoc32/release/armv5/urel/iptvclientapi.dll" - "!:/sys/bin/iptvclientapi.dll" - -; -; Iptv Utils -; -"/epoc32/release/armv5/urel/iptvutil.dll" - "!:/sys/bin/iptvutil.dll" -"/epoc32/data/z/resource/apps/iptvmimesupport.rsc" - "!:/resource/apps/iptvmimesupport.rsc" - -; ; MyVideos Collection Plugin ; "/epoc32/release/armv5/urel/vcxmyvideoscollectionplugin.dll" - "!:/sys/bin/vcxmyvideoscollectionplugin.dll" @@ -148,64 +111,6 @@ "/epoc32/release/armv5/urel/cseschedulerclient.dll" - "!:/sys/bin/cseschedulerclient.dll" ; -; View Message Utility -; -"/epoc32/release/armv5/urel/vcxviewmessageutility.dll" - "!:/sys/bin/vcxviewmessageutility.dll" - -; -; Vcx Notifier -; -"/epoc32/release/armv5/urel/vcxnotifierplugin.dll" - "!:/sys/bin/vcxnotifierplugin.dll" -"/epoc32/data/z/resource/plugins/vcxnotifierplugin.rsc" - "!:/resource/plugins/vcxnotifierplugin.rsc" -"/epoc32/data/z/resource/plugins/vcxnotifier.rsc" - "!:/resource/plugins/vcxnotifier.rsc" - -; -; Scheduled Download Plugin -; -"/epoc32/release/armv5/urel/iptvscheduleddownloadplugin.dll" - "!:/sys/bin/iptvscheduleddownloadplugin.dll" -"/epoc32/data/z/resource/plugins/iptvscheduleddownloadplugin.rsc" - "!:/resource/plugins/iptvscheduleddownloadplugin.rsc" - -; -; Provisioning App -; -"/epoc32/release/armv5/urel/iptvprovisioningapp.exe" - "!:/sys/bin/iptvprovisioningapp.exe" -"/epoc32/data/z/private/10003a3f/apps/iptvprovisioningapp_reg.rsc" - "!:/private/10003a3f/import/apps/iptvprovisioningapp_reg.rsc" -"/epoc32/data/z/resource/apps/iptvprovisioningapp.rsc" - "!:/resource/apps/iptvprovisioningapp.rsc" - -; -; Provisioning Processor -; -"/epoc32/release/armv5/urel/iptvprovisioningprocessor.dll" - "!:/sys/bin/iptvprovisioningprocessor.dll" - -; -; OMA Provisioning -; -"/epoc32/release/armv5/urel/iptvomaprovisioningadapter.dll" - "!:/sys/bin/iptvomaprovisioningadapter.dll" -"/epoc32/data/z/resource/plugins/iptvomaprovisioningadapter.rsc" - "!:/resource/plugins/iptvomaprovisioningadapter.rsc" - -; -; Provisioning Recognizer -; -"/epoc32/release/armv5/urel/iptvprovrec.dll" - "!:/sys/bin/iptvprovrec.dll" -"/epoc32/data/z/resource/plugins/iptvprovrec.rsc" - "!:/resource/plugins/iptvprovrec.rsc" - -; -; RSS Plugin -; -"/epoc32/release/armv5/urel/iptvrssplugin.dll" - "!:/sys/bin/iptvrssplugin.dll" -"/epoc32/data/z/resource/plugins/iptvrssplugin.rsc" - "!:/resource/plugins/iptvrssplugin.rsc" - -; -; VOD UI Engine -; -"/epoc32/release/armv5/urel/vcxnsuiengine.dll" - "!:/sys/bin/vcxnsuiengine.dll" - -; -; LiveTV Utils -; -"/epoc32/release/armv5/urel/livetvutils.dll" - "!:/sys/bin/livetvutils.dll" - -; ; MediaSettings ; "/epoc32/release/armv5/urel/mediasettings.exe" - "!:/sys/bin/mediasettings.exe" @@ -241,37 +146,17 @@ ; ; View Plugins ; -"/epoc32/release/armv5/urel/vcxnssettingsplugin.dll" - "!:/sys/bin/vcxnssettingsplugin.dll" -"/epoc32/data/z/resource/plugins/vcxnssettingsplugin.rsc" - "!:/resource/plugins/vcxnssettingsplugin.rsc" - -"/epoc32/release/armv5/urel/vcxhgvodplugin.dll" - "!:/sys/bin/vcxhgvodplugin.dll" -"/epoc32/data/z/resource/plugins/vcxhgvodplugin.rsc" - "!:/resource/plugins/vcxhgvodplugin.rsc" - "/epoc32/release/armv5/urel/vcxhgmyvideosplugin.dll" - "!:/sys/bin/vcxhgmyvideosplugin.dll" "/epoc32/data/z/resource/plugins/vcxhgmyvideosplugin.rsc" - "!:/resource/plugins/vcxhgmyvideosplugin.rsc" -"/epoc32/release/armv5/urel/vcxnsscheduleplugin.dll" - "!:/sys/bin/vcxnsscheduleplugin.dll" -"/epoc32/data/z/resource/plugins/vcxnsscheduleplugin.rsc" - "!:/resource/plugins/vcxnsscheduleplugin.rsc" - ; ; Views ; -"/epoc32/release/armv5/urel/vcxnssettingsview.dll" - "!:/sys/bin/vcxnssettingsview.dll" -"/epoc32/data/z/resource/apps/vcxnssettingsview.rsc" - "!:/resource/apps/vcxnssettingsview.rsc" - "/epoc32/release/armv5/urel/vcxhgmyvideos.dll" - "!:/sys/bin/vcxhgmyvideos.dll" "/epoc32/data/z/resource/apps/vcxhgmyvideos.rsc" - "!:/resource/apps/vcxhgmyvideos.rsc" "/epoc32/data/z/resource/apps/vcxhgmyvideos.mif" - "!:/resource/apps/vcxhgmyvideos.mif" "/epoc32/data/z/resource/apps/vcxhgmyvideosicons.mif" - "!:/resource/apps/vcxhgmyvideosicons.mif" -"/epoc32/release/armv5/urel/vcxhgvodui.dll" - "!:/sys/bin/vcxhgvodui.dll" -"/epoc32/data/z/resource/apps/vcxhgvodui.rsc" - "!:/resource/apps/vcxhgvodui.rsc" - -"/epoc32/data/z/resource/apps/vcxhgvoddefaulticons.mif" - "!:/resource/apps/vcxhgvoddefaulticons.mif" - -"/epoc32/release/armv5/urel/vcxnsscheduleview.dll" - "!:/sys/bin/vcxnsscheduleview.dll" -"/epoc32/data/z/resource/apps/vcxnsscheduleview.rsc" - "!:/resource/apps/vcxnsscheduleview.rsc" - ; ; My Videos indicator plugin ; @@ -279,11 +164,6 @@ "/epoc32/data/z/resource/plugins/myvideosindicatorplugin.rsc" - "!:/resource/plugins/myvideosindicatorplugin.rsc" ; -; Default VOD services -; -"/epoc32/data/z/private/102750D5/services.xml" - "c:/private/102750D5/services.xml" - -; ; Help files ; "/epoc32/data/z/resource/xhtml/01/0x102750E2/contents.zip" - "!:/resource/xhtml/01/0x102750E2/contents.zip" @@ -295,21 +175,12 @@ ; Language specific files for Video Player application ; If user want to create sis files for a specific variant then add supported languages here ; -"/epoc32/data/z/resource/apps/vcxnssettingsview.r01" - "!:/resource/apps/vcxnssettingsview.r01" "/epoc32/data/z/resource/mediasettings.r01" - "!:/resource/mediasettings.r01" "/epoc32/data/z/resource/apps/MPFileDetails.r01" - "!:/resource/apps/MPFileDetails.r01" -"/epoc32/data/z/resource/apps/videosuiteres.r01" - "!:/resource/apps/videosuiteres.r01" "/epoc32/data/z/resource/apps/mediasettings.r01" - "!:/resource/apps/mediasettings.r01" "/epoc32/data/z/resource/apps/vcxhgmyvideos.r01" - "!:/resource/apps/vcxhgmyvideos.r01" -"/epoc32/data/z/resource/apps/vcxhgvodui.r01" - "!:/resource/apps/vcxhgvodui.r01" -"/epoc32/data/z/resource/plugins/iptvomaprovisioningadapter.r01" - "!:/resource/plugins/iptvomaprovisioningadapter.r01" -"/epoc32/data/z/resource/apps/iptvprovisioningapp.r01" - "!:/resource/apps/iptvprovisioningapp.r01" -"/epoc32/data/z/resource/apps/vcxnsscheduleview.r01" - "!:/resource/apps/vcxnsscheduleview.r01" -"/epoc32/data/z/resource/plugins/vcxnotifier.r01" - "!:/resource/plugins/vcxnotifier.r01" "/epoc32/data/z/resource/apps/mpxvideoplaybackcontrols.r01" - "!:/resource/apps/mpxvideoplaybackcontrols.r01" "/epoc32/data/z/resource/apps/mpxvideoplaybackviews.r01" - "!:/resource/apps/mpxvideoplaybackviews.r01" "/epoc32/data/z/resource/apps/lwplayer.r01" - "!:/resource/apps/lwplayer.r01" "/epoc32/data/z/resource/apps/mpxvideoplayer.r01" - "!:/resource/apps/mpxvideoplayer.r01" -"/epoc32/data/z/resource/apps/videoplayerlauncher.r01" - "!:/resource/apps/videoplayerlauncher.r01" -"/epoc32/data/z/resource/apps/videocontentharvester.r01" - "!:/resource/apps/videocontentharvester.r01" diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/src/mpxvideoembeddedpdlhandler.cpp --- a/videoplayerapp/mpxvideoplayer/src/mpxvideoembeddedpdlhandler.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoembeddedpdlhandler.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 11 % +// Version : %version: 12 % #include @@ -106,6 +106,8 @@ // New download received, close old playback plugin // iAppUiEngine->ClosePlaybackPluginL(); + + iAppUiEngine->SignalViewPdlReloading(); StartNewDownloadL( aDlId, aFileName ); } diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp --- a/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 34 % +// Version : %version: e92_37 % #include // Help launcher @@ -44,19 +44,12 @@ #include "mpxvideo_debug.h" #include "videoplayerpskeys.h" -// Matrix uid, needed for activating the suite view. -const TInt KVcxMatrixUid = 0x101F4CD2; - -// The action=exit flag tells menu that the suite app view is exiting via options->exit. -_LIT8( KVcxVideoSuiteExitMessage, "mm://tvvideosuite?action=exit" ); - // ======== MEMBER FUNCTIONS ======== // ----------------------------------------------------------------------------- // CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi // ----------------------------------------------------------------------------- // CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi() - : iEndKeyExit( EFalse ) { MPX_DEBUG(_L("CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi()")); } @@ -71,8 +64,6 @@ BaseConstructL( EAknEnableSkin | EAknSingleClickCompatible ); - DoWgIdUpkeep(); - if ( IsEmbedded() ) { // @@ -80,52 +71,10 @@ // SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape ); } - else - { - // - // if we are stand alone mode store window group id to RProperty - // so we can identify it in ActionHandlerPlugin. - // - RProperty::Define( KVideoPlayerRPropertyCategory, - KVideoPlayerRPropertyWGIdKey, - RProperty::EInt ); - - RProperty::Set( KVideoPlayerRPropertyCategory, - KVideoPlayerRPropertyWGIdKey, - iCoeEnv->RootWin().Identifier() ); - } iAppUiEngine = CMpxVideoPlayerAppUiEngine::NewL( this ); } - -// ----------------------------------------------------------------------------- -// CMpxVideoPlayerAppUi::DoWgIdUpkeer -// Checks if stored wgid is run by other application than us -// ----------------------------------------------------------------------------- -// -void CMpxVideoPlayerAppUi::DoWgIdUpkeep() -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::DoWgIdUpkeep()")); - - // Do the upkeep for stand alone wg identifier - // If we find that the WgId of this application is same - // as the one stored in RProperty we know that the stand - // alone has crashed and we have to clear it. - TInt wgId( 0 ); - TInt err( RProperty::Get( KVideoPlayerRPropertyCategory, KVideoPlayerRPropertyWGIdKey, wgId ) ); - - if ( wgId && !err ) - { - if ( IsEmbedded() && wgId == iCoeEnv->RootWin().Identifier() ) - { - // Stored wgId is ours and we are in embedded mode. Delete! - RProperty::Delete( KVideoPlayerRPropertyCategory, - KVideoPlayerRPropertyWGIdKey ); - } - } -} - // ----------------------------------------------------------------------------- // CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi // Destructor. Frees reserved resources @@ -135,13 +84,6 @@ { MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi()")); - // If we are running in embedded we keep the RProperty alive when exiting. - if ( ! IsEmbedded() ) - { - RProperty::Delete( KVideoPlayerRPropertyCategory, - KVideoPlayerRPropertyWGIdKey ); - } - delete iAppUiEngine; } @@ -180,13 +122,15 @@ void CMpxVideoPlayerAppUi::HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination ) { TInt eventType = aEvent.Type(); - if ( eventType == KAknUidValueEndKeyCloseEvent // End Call key - || eventType == KAknShutOrHideApp ) // Exit cmd from Task Switcher + + // + // Close from the End Call Key or the Exit Cmd from the Task Switcher + // + if ( eventType == KAknUidValueEndKeyCloseEvent || eventType == KAknShutOrHideApp ) { MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleWsEventL() Closed by framework")); - iEndKeyExit = ETrue; - iAppUiEngine->PrepareCloseMpxL(); + iAppUiEngine->ClosePlaybackPluginL(); } CAknAppUi::HandleWsEventL( aEvent, aDestination ); @@ -208,17 +152,7 @@ { MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleCommandL() - Exit")); - iAppUiEngine->PrepareCloseMpxL(); - - // - // Send message to matrix menu on a stand alone instance if: - // 1) End Key is pressed - // 2) Exit command has been issued - // - if ( ! IsEmbedded() && ( ! iEndKeyExit && iAppUiEngine->ExitToMatrixMenu() ) ) - { - LaunchMmViewL( KVcxVideoSuiteExitMessage ); - } + iAppUiEngine->ClosePlaybackPluginL(); HandleExit(); break; @@ -239,11 +173,6 @@ iAppUiEngine->ClearPdlInformation(); break; } - default: - { - // do nothing if the command is not reconized - break; - } } } @@ -378,23 +307,3 @@ return iView; } -// --------------------------------------------------------------------------- -// Sends a message to Matrix Menu -// --------------------------------------------------------------------------- -// -void CMpxVideoPlayerAppUi::LaunchMmViewL( const TDesC8& aMessage ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::LaunchMmViewL()")); - - TApaTaskList taskList( iCoeEnv->WsSession() ); - TApaTask task = taskList.FindApp( TUid::Uid( KVcxMatrixUid ) ); - - if ( task.Exists() ) - { - // - // Matrix is already running in background - send APA Message - // - task.SendMessage( TUid::Uid( KUidApaMessageSwitchOpenFileValue ), aMessage ); - } -} - diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappuiengine.cpp --- a/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappuiengine.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappuiengine.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#61 % +// Version : %version: e92_66 % #include @@ -39,18 +39,10 @@ #include #include #include - #include -#include #include #include -#include -#include -#include // CMDBSession -#include // CCDWAPIPBearerRecord -#include -#include // TCommDbConnPref -#include +#include #include "mpxvideoplayerappuiengine.h" #include "mpxvideoplayerlogger.h" @@ -60,8 +52,6 @@ #include "mpxvideo_debug.h" #include "mpxvideoplayercustomviewmsgconsts.h" -_LIT( KMpxVideoPlayerQueryIap, "IAP\\Id" ); - const TInt KMpxPlaybackPluginTypeUid = 0x101FFCA0; // ----------------------------------------------------------------------------- @@ -75,11 +65,10 @@ iCollectionUtility( NULL ), iExitAo( NULL ), iRecognizer( NULL ), - iExtAccessPointId( KErrUnknown ), + iAccessPointId( KUseDefaultIap ), iMultilinkPlaylist(EFalse), iSeekable(ETrue), - iUpdateSeekInfo(EFalse), - iExitToMatrixMenu(ETrue) + iUpdateSeekInfo(EFalse) { } @@ -235,7 +224,8 @@ if ( iPlaybackUtility ) { - TRAP_IGNORE( iPlaybackUtility->CommandL( EPbCmdClose ) ); + MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager(); + TRAP_IGNORE( manager.ClearSelectPlayersL() ); iPlaybackUtility->Close(); } } @@ -335,7 +325,7 @@ { TInt32 apId = KErrUnknown; genParamAccessPoint->Value().Get( apId ); - iExtAccessPointId = apId; + iAccessPointId = apId; } } } @@ -377,7 +367,6 @@ } else if ( mediaType == CMediaRecognizer::ELocalSdpFile ) { - SetAccessPointL(); iPlaybackUtility->InitStreamingL( aFile, iAccessPointId ); ActivatePlaybackViewL(); } @@ -515,23 +504,6 @@ } // --------------------------------------------------------------------------- -// Closed mpx components and readies to application takedown. -// --------------------------------------------------------------------------- -// -void CMpxVideoPlayerAppUiEngine::PrepareCloseMpxL() -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::PrepareCloseMpxL()")); - - if ( iPlaybackUtility ) - { - ClosePlaybackPluginL(); - - MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager(); - TRAP_IGNORE( manager.ClearSelectPlayersL() ); - } -} - -// --------------------------------------------------------------------------- // Sets AppUiEngine in stand alone "mode" // --------------------------------------------------------------------------- // @@ -539,8 +511,6 @@ { MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::StartStandAloneL()")); - iExitToMatrixMenu = EFalse; - // // Create the utilities for the stand alone player // @@ -741,7 +711,10 @@ CleanupStack::PopAndDestroy( playlistUtil ); } - +// ------------------------------------------------------------------------------------------------- +// CMpxVideoPlayerAppUiEngine::DoHandleMultiLinksFileL() +// ------------------------------------------------------------------------------------------------- +// void CMpxVideoPlayerAppUiEngine::DoHandleMultiLinksFileL( CVideoPlaylistUtility* aPlaylistUtil, TBool aSingleLink, TBool aLocalFile ) @@ -777,11 +750,6 @@ } else { - if ( ! aLocalFile ) - { - SetAccessPointL(); - } - CMPXMedia* playlist = aPlaylistUtil->GetPlayListL( iAccessPointId ); CleanupStack::PushL( playlist ); @@ -801,351 +769,6 @@ } } -// ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::SetAccessPointL -// ------------------------------------------------------------------------------------------------- -// -void CMpxVideoPlayerAppUiEngine::SetAccessPointL() -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::SetAccessPointL()")); - - // - // a value was passed in for argument aAPId - // - if ( ( iExtAccessPointId != KErrUnknown ) && IsWLANAccessPointL( iExtAccessPointId ) ) - { - // - // An external WLAN access point was passed in by an embedding app, use it - // - iAccessPointId = iExtAccessPointId; - } - else - { - // - // No access point was passed in or it's not WLAN, retrieve the default access point - // - TInt defaultAPId(0); - - MPX_TRAPD( err, defaultAPId = GetDefaultAccessPointL() ); - - if ( ( err == KErrNone ) && ( defaultAPId != 0 )) - { - // - // Use the default access point - // - iAccessPointId = defaultAPId; - } - else - { - // - // Valid default access point was not found - // - if ( iExtAccessPointId != KErrUnknown ) - { - // - // Use the AP passed in by embedding app, regardless of bearer type - // - iAccessPointId = iExtAccessPointId; - } - else - { - // - // Try to fetch AP ID and open connection selection dialog if required - // - TUint32 apUid = TryToGetAccessPointL(); - - // - // Use selected access point - // - if ( apUid != 0 ) - { - // - // convert the AccessPoint-Uid to AccessPoint-Id - // - iAccessPointId = GetAccessPointIdForUIDL( apUid ); - } - } - } - } -} - -// ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL -// ------------------------------------------------------------------------------------------------- -// -TBool CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL( TInt aAPId ) -{ - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL(%d)"), aAPId); - - TBool wlanAP(EFalse); - TUint32 bearer( 0 ); - - RCmManagerExt cmManager; - CleanupClosePushL( cmManager ); - cmManager.OpenL(); - - bearer = cmManager.ConnectionMethodL( aAPId ).GetIntAttributeL( CMManager::ECmBearerType ); - CleanupStack::PopAndDestroy( &cmManager ); - - if ( bearer == KUidWlanBearerType ) - { - wlanAP = ETrue; - } - - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::IsWLANAccessPointL() return %d"), wlanAP); - - return wlanAP; -} - -// ----------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::GetDefaultAccessPointL -// ----------------------------------------------------------------------------- -// -TInt CMpxVideoPlayerAppUiEngine::GetDefaultAccessPointL() -{ - TInt defaultAP(0); - TUint32 iap; - - CMPSettingsModel* ropSettings = CMPSettingsModel::NewL( KSettingsModelForROPUid ); - - CleanupStack::PushL( ropSettings ); - - ropSettings->LoadSettingsL( EConfigDefault ); - - User::LeaveIfError( ropSettings->GetDefaultAp( iap ) ); - - CleanupStack::PopAndDestroy(); // ropSettings - - defaultAP = GetAccessPointIdForUIDL( iap ); - - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::GetDefaultAccessPointL(%d)"), defaultAP); - - return defaultAP; -} - -// ----------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL -// ----------------------------------------------------------------------------- -// -TInt CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL( TUint32 aAPUid ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL()"), - _L(" aAPUid = %d"), aAPUid); - - TInt apId(0); - - CMDBSession* db = CMDBSession::NewL( CMDBSession::LatestVersion() ); - CleanupStack::PushL( db ); - - // - // WapIpBearer table contains the mapping between wap and iap id's. - // - CCDWAPIPBearerRecord* wapBearerRecord = - static_cast(CCDRecordBase::RecordFactoryL(KCDTIdWAPIPBearerRecord)); - - CleanupStack::PushL( wapBearerRecord ); - - wapBearerRecord->iWAPAccessPointId = aAPUid; - - TBool found = wapBearerRecord->FindL( *db ); - - if ( ! found ) - { - User::Leave( KErrNotFound ); - } - - apId = static_cast( wapBearerRecord->iWAPIAP ); - - CleanupStack::PopAndDestroy( wapBearerRecord ); - CleanupStack::PopAndDestroy( db ); - - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::GetAccessPointIdForUIDL(%d)"), apId); - - return apId; -} - -// ----------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL -// ----------------------------------------------------------------------------- -// -TUint32 CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL() -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL()")); - - TUint32 returnVal(0); - - RSocketServ ss; - CleanupClosePushL( ss ); - - User::LeaveIfError( ss.Connect() ); - - RConnection conn; - CleanupClosePushL( conn ); - - User::LeaveIfError( conn.Open( ss ) ); - - TConnPrefList prefList; - TExtendedConnPref prefs; - prefs.SetSnapPurpose( CMManager::ESnapPurposeInternet ); - prefs.SetNoteBehaviour( TExtendedConnPref::ENoteBehaviourConnSilent ); - prefList.AppendL( &prefs ); - - TInt err = conn.Start( prefList ); - - if ( err == KErrNone ) - { - returnVal = QueryIap( conn ); - } - else if ( err == KErrNotFound ) - { - // - // SNAP is empty or no WLAN was available. - // Try again with connection selection dialog. - // - MPX_DEBUG(_L(" connection start returned KErrNotFound")); - - TConnPrefList prefList2; - TExtendedConnPref prefs2; - - prefs2.SetConnSelectionDialog( ETrue ); - prefList2.AppendL( &prefs2 ); - - err = conn.Start( prefList2 ); - - if ( err == KErrNone ) - { - returnVal = QueryIap( conn ); - } - else - { - User::Leave( err ); - } - } - else - { - User::Leave( err ); - } - - CleanupStack::PopAndDestroy( &conn ); - - CleanupStack::PopAndDestroy( &ss ); - - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::TryToGetAccessPointL() AP ID: %d"), returnVal); - - return returnVal; -} - -// ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::QueryIap() -// ------------------------------------------------------------------------------------------------- -// -TUint32 CMpxVideoPlayerAppUiEngine::QueryIap( RConnection& aConn ) -{ - TUint32 iap( 0 ); - aConn.GetIntSetting( KMpxVideoPlayerQueryIap, iap ); - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::QueryIap(%u)"), iap); - return iap; -} - -// ----------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL -// ----------------------------------------------------------------------------- -// -void CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL( const TDesC8 &aMsg ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL()")); - - if ( aMsg.Length() < KVideoPlayerActivationMessageMinLength ) - { - User::Leave( KErrNotSupported ); - } - - TVideoPlayerActivationMessage msgHandler; - TPckg paramsPckg( msgHandler ); - paramsPckg.Copy( aMsg ); - - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::ProcessActivationMessageL() sender = %d, type = %d"), - msgHandler.iMsgSender, msgHandler.iMsgType ); - - if ( msgHandler.iMsgSender == TVideoPlayerActivationMessage::EMatrixMenu ) - { - // Clear the view history, so app exits back to matrix. - iViewUtility->PushDefaultHistoryL(); - } - - if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::EOpenInternetVideos ) - { - iViewUtility->ActivateViewL( TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ) ); - } - else if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::EOpenVideoStorage ) - { - iViewUtility->ActivateViewL( TUid::Uid( KUidMyVideosViewTypeId ) ); - } - else if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::ELaunchVideoToPlayer ) - { - // - // Launch video to player, it can be either local video or stream. - // If there's path and mpx id, clip can be played directly. - // - if ( msgHandler.iServiceId && msgHandler.iFullPath.Length() > 0 ) - { - if ( iRecognizer->IdentifyMediaTypeL( msgHandler.iFullPath ) - == CMediaRecognizer::ELocalVideoFile ) - { - TMPXItemId id; - id.iId1 = msgHandler.iServiceId; - CMPXMedia* media = CMPXMedia::NewL(); - CleanupStack::PushL( media ); - media->SetTObjectValueL( KMPXMediaGeneralId, id ); - OpenMediaL( *media ); - CleanupStack::PopAndDestroy( media ); - } - else - { - // Most likely the clip has been deleted - User::Leave( KErrNotFound ); - } - } - else - { - TBool vodUiRunning = ( iViewUtility->ActiveViewType() == - TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ) ); - - if ( vodUiRunning ) - { - // VOD is active, must use the utility to pass the message. - SendCustomCommandToActiveViewL( aMsg ); - } - else - { - // VOD is not running, activate with custom message. - HBufC* customMsg = HBufC::NewLC( paramsPckg.Length() ); - customMsg->Des().Copy( paramsPckg ); - iViewUtility->ActivateViewL( TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ), customMsg ); - CleanupStack::PopAndDestroy( customMsg ); - - // Clear the view history, so playback returns where it was started - iViewUtility->PushDefaultHistoryL(); - } - } - } - else if ( msgHandler.iMsgType == TVideoPlayerActivationMessage::ELaunchServiceById ) - { - if ( iViewUtility->ActiveViewType() == TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ) ) - { - // VOD is active, must use the utility to pass the message. - SendCustomCommandToActiveViewL( aMsg ); - } - else - { - // VOD is not running, activate with custom message. - HBufC* customMsg = HBufC::NewLC( paramsPckg.Length() ); - customMsg->Des().Copy( paramsPckg ); - iViewUtility->ActivateViewL( TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ), customMsg ); - CleanupStack::PopAndDestroy( customMsg ); - } - } -} // ----------------------------------------------------------------------------- // CMpxVideoPlayerAppUiEngine::HandleMessageL() @@ -1163,16 +786,7 @@ // TVideoPlayerActivationMessage received. case KVideoPlayerVodStartPlayer: { - // - // Do nothing if we are loaded in a playback view - // - if ( iViewUtility->ActiveViewType() != TUid::Uid( KMpxPlaybackPluginTypeUid ) ) - { - ProcessActivationMessageL( aMessageParameters ); - } - - msgHandled = ETrue; - + // Do nothing break; } case KVideoPlayerStartPDlPlayer: @@ -1294,6 +908,10 @@ } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// void CMpxVideoPlayerAppUiEngine::HandleSoftKeyBackL() { MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleSoftKeyBackL()")); @@ -1305,7 +923,6 @@ // if ( iViewUtility->ViewHistoryDepth() <= 1 ) { - iExitToMatrixMenu = EFalse; ActivateExitActiveObject(); } else @@ -1314,6 +931,10 @@ } } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// TBool CMpxVideoPlayerAppUiEngine::ProcessCommandParametersL( TApaCommand aCommand, TFileName& aDocumentName, const TDesC8& aTail ) @@ -1323,38 +944,31 @@ TBool retVal = EFalse; // - // If command line has tail, this is probably a message from Matrix, Live TV - // reminder, Video Center soft notification, or other VC component. + // If we are embedded or the command is to open a document // - if ( aTail.Length() > 0 ) + if ( iAppUi->IsEmbedded() || aCommand != EApaCommandRun ) { - ProcessActivationMessageL( aTail ); + if ( iRecognizer->IsValidStreamingPrefix( aDocumentName ) ) + { + retVal = ETrue; + } + else + { + retVal = ConeUtils::FileExists( aDocumentName ); + } } else { - // - // If we are embedded or the command is to open a document - // - if ( iAppUi->IsEmbedded() || aCommand != EApaCommandRun ) - { - if ( iRecognizer->IsValidStreamingPrefix( aDocumentName ) ) - { - retVal = ETrue; - } - else - { - retVal = ConeUtils::FileExists( aDocumentName ); - } - } - else - { - StartStandAloneL(); - } + StartStandAloneL(); } return retVal; } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// void CMpxVideoPlayerAppUiEngine::ActivateExitActiveObject() { MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::ActivateExitActiveObject()")); @@ -1365,9 +979,9 @@ } } -// ----------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // CMpxVideoPlayerAppUiEngine::ExitApplicationL -// ----------------------------------------------------------------------------- +// ------------------------------------------------------------------------------------------------- // TInt CMpxVideoPlayerAppUiEngine::ExitApplicationL( TAny* aPtr ) { @@ -1425,29 +1039,6 @@ } // ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::SendCustomCommandToActiveViewL() -// ------------------------------------------------------------------------------------------------- -// -void CMpxVideoPlayerAppUiEngine::SendCustomCommandToActiveViewL( const TDesC8& aMsg ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::SendCustomCommandToActiveViewL()")); - - User::LeaveIfNull( iAppUi->View() ); - - HBufC8* msgBuf = aMsg.AllocLC(); - - TAny* ptr = (TAny*) msgBuf; - - UserSvr::DllSetTls( KVcxCustomViewMessagePtr, ptr ); - - iAppUi->View()->HandleCommandL( KVcxCustomViewMessageCmd ); - - UserSvr::DllFreeTls( KVcxCustomViewMessagePtr ); - - CleanupStack::PopAndDestroy( msgBuf ); -} - -// ------------------------------------------------------------------------------------------------- // CMpxVideoPlayerAppUiEngine::ClearPdlInformation() // ------------------------------------------------------------------------------------------------- // @@ -1462,16 +1053,6 @@ } // ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayerAppUiEngine::StartedStandAlone() -// ------------------------------------------------------------------------------------------------- -// -TBool CMpxVideoPlayerAppUiEngine::ExitToMatrixMenu() -{ - MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::ExitToMatrixMenu(%d)"), iExitToMatrixMenu); - return iExitToMatrixMenu; -} - -// ------------------------------------------------------------------------------------------------- // CMpxVideoPlayerAppUiEngine::InitializeStreamingLinkL() // ------------------------------------------------------------------------------------------------- // @@ -1480,8 +1061,6 @@ MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::InitializeStreamingLinkL()"), _L("aUri = %S"), &aUri ); - SetAccessPointL(); - iPlaybackUtility->InitStreamingL( aUri, (TDesC8*)(&KDATATYPEVIDEOHELIX), iAccessPointId ); @@ -1532,8 +1111,30 @@ // iAppUi->View()->HandleCommandL( EAknSoftkeyClose ); } + else + { + if (iPlaybackUtility) + { + iPlaybackUtility->CommandL( EPbCmdClose ); + } + } +} - iPlaybackUtility->CommandL( EPbCmdClose ); +// ------------------------------------------------------------------------------------------------- +// CMpxVideoPlayerAppUiEngine::SignalViewPdlReloading() +// ------------------------------------------------------------------------------------------------- +// +void CMpxVideoPlayerAppUiEngine::SignalViewPdlReloading() +{ + MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::SignalViewPdlReloading")); + + if ( iViewUtility->ActiveViewType() == TUid::Uid( KMpxPlaybackPluginTypeUid ) ) + { + // + // The display window must be removed before closing the playback plugin + // + iAppUi->View()->HandleCommandL( KMpxVideoPlaybackPdlReloading ); + } } diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/bwins/mpxvideoplayertestu.def --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/bwins/mpxvideoplayertestu.def Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/bwins/mpxvideoplayertestu.def Fri Mar 12 15:43:00 2010 +0200 @@ -1,74 +1,8 @@ EXPORTS ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * LibEntryL(class CTestModuleIf &) - ?Close@RConnection@@QAEXXZ @ 2 NONAME ; void RConnection::Close(void) - ?Connect@RSocketServ@@QAEHI@Z @ 3 NONAME ; int RSocketServ::Connect(unsigned int) - ??1CMDBTextFieldBase@CommsDat@@UAE@XZ @ 4 NONAME ; CommsDat::CMDBTextFieldBase::~CMDBTextFieldBase(void) - ??0RConnection@@QAE@XZ @ 5 NONAME ; RConnection::RConnection(void) - ?NewL@MMPXCollectionUtility@@SAPAV1@PAVMMPXCollectionObserver@@ABVTUid@@@Z @ 6 NONAME ; class MMPXCollectionUtility * MMPXCollectionUtility::NewL(class MMPXCollectionObserver *, class TUid const &) - ??0TExtendedConnPref@@QAE@XZ @ 7 NONAME ; TExtendedConnPref::TExtendedConnPref(void) - ?AppendL@TConnPrefList@@QAEXPAUSMetaDataECom@Meta@@@Z @ 8 NONAME ; void TConnPrefList::AppendL(struct Meta::SMetaDataECom *) - ?LoadL@SMetaDataECom@Meta@@SAPAU12@AAVTPtrC8@@@Z @ 9 NONAME ; struct Meta::SMetaDataECom * Meta::SMetaDataECom::LoadL(class TPtrC8 &) - ?GetVDataTable@CMDBNumFieldBase@CommsDat@@UBEPBUSVDataTableEntry@Meta@@XZ @ 10 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBNumFieldBase::GetVDataTable(void) const - ?GetAttribPtr@CMDBRecordLinkBase@CommsDat@@MBEPAEH@Z @ 11 NONAME ; unsigned char * CommsDat::CMDBRecordLinkBase::GetAttribPtr(int) const - ?GetIntAttributeL@RCmConnectionMethodExt@@QBEKK@Z @ 12 NONAME ; unsigned long RCmConnectionMethodExt::GetIntAttributeL(unsigned long) const - ??1RCmConnectionMethodExt@@QAE@XZ @ 13 NONAME ; RCmConnectionMethodExt::~RCmConnectionMethodExt(void) - ??0CCDRecordBase@CommsDat@@QAE@K@Z @ 14 NONAME ; CommsDat::CCDRecordBase::CCDRecordBase(unsigned long) - ?GetVDataTable@CMDBTextFieldBase@CommsDat@@UBEPBUSVDataTableEntry@Meta@@XZ @ 15 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBTextFieldBase::GetVDataTable(void) const - ??BCMDBRecordLinkBase@CommsDat@@QAEKXZ @ 16 NONAME ; CommsDat::CMDBRecordLinkBase::operator unsigned long(void) - ??0CCommsDatabaseBase@@IAE@XZ @ 17 NONAME ; CCommsDatabaseBase::CCommsDatabaseBase(void) - ??0MMetaDatabase@CommsDat@@IAE@XZ @ 18 NONAME ; CommsDat::MMetaDatabase::MMetaDatabase(void) - ?Open@RConnection@@QAEHAAVRSocketServ@@I@Z @ 19 NONAME ; int RConnection::Open(class RSocketServ &, unsigned int) - ??0RMetaDataContainerBase@Meta@@QAE@XZ @ 20 NONAME ; Meta::RMetaDataContainerBase::RMetaDataContainerBase(void) - ?UtilityL@MMPXPlaybackUtility@@SAPAV1@W4TMPXCategory@@ABVTUid@@@Z @ 21 NONAME ; class MMPXPlaybackUtility * MMPXPlaybackUtility::UtilityL(enum TMPXCategory, class TUid const &) - ?GetIntSetting@RConnection@@QAEHABVTDesC16@@AAK@Z @ 22 NONAME ; int RConnection::GetIntSetting(class TDesC16 const &, unsigned long &) - ?OpenL@RCmManagerExt@@QAEXXZ @ 23 NONAME ; void RCmManagerExt::OpenL(void) - ?GetVDataTable@CMDBElement@CommsDat@@UBEPBUSVDataTableEntry@Meta@@XZ @ 24 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBElement::GetVDataTable(void) const - ??1MMetaDatabase@CommsDat@@UAE@XZ @ 25 NONAME ; CommsDat::MMetaDatabase::~MMetaDatabase(void) - ?SetAutoPlay@CMPXCollectionPlaylist@@QAEXH@Z @ 26 NONAME ; void CMPXCollectionPlaylist::SetAutoPlay(int) - ??1CCommsDatabase@@UAE@XZ @ 27 NONAME ; CCommsDatabase::~CCommsDatabase(void) - ?GetAttribPtr@TExtendedConnPref@@MBEPAEH@Z @ 28 NONAME ; unsigned char * TExtendedConnPref::GetAttribPtr(int) const - ?GetAttribPtr@CMDBElement@CommsDat@@UBEPAEH@Z @ 29 NONAME ; unsigned char * CommsDat::CMDBElement::GetAttribPtr(int) const - ?RecordFactoryL@CCDRecordBase@CommsDat@@SAPAVCMDBRecordBase@2@K@Z @ 30 NONAME ; class CommsDat::CMDBRecordBase * CommsDat::CCDRecordBase::RecordFactoryL(unsigned long) - ?GetAttribPtr@CCDRecordBase@CommsDat@@MBEPAEH@Z @ 31 NONAME ; unsigned char * CommsDat::CCDRecordBase::GetAttribPtr(int) const - ?GetAttribPtr@CMDBTextFieldBase@CommsDat@@UBEPAEH@Z @ 32 NONAME ; unsigned char * CommsDat::CMDBTextFieldBase::GetAttribPtr(int) const - ?NewL@CCommsDatabase@@SAPAV1@W4TCommDbDatabaseType@@@Z @ 33 NONAME ; class CCommsDatabase * CCommsDatabase::NewL(enum TCommDbDatabaseType) - ?ConnectionMethodL@RCmManagerExt@@QAE?AVRCmConnectionMethodExt@@K@Z @ 34 NONAME ; class RCmConnectionMethodExt RCmManagerExt::ConnectionMethodL(unsigned long) - ?SetSnapPurpose@TExtendedConnPref@@QAEXW4TSnapPurpose@CMManager@@@Z @ 35 NONAME ; void TExtendedConnPref::SetSnapPurpose(enum CMManager::TSnapPurpose) - ??1SMetaDataECom@Meta@@UAE@XZ @ 36 NONAME ; Meta::SMetaDataECom::~SMetaDataECom(void) - ??0TConnPref@@QAE@XZ @ 37 NONAME ; TConnPref::TConnPref(void) - ?UtilityL@MMPXViewUtility@@SAPAV1@XZ @ 38 NONAME ; class MMPXViewUtility * MMPXViewUtility::UtilityL(void) - ?GetAttribPtr@CMDBNumFieldBase@CommsDat@@UBEPAEH@Z @ 39 NONAME ; unsigned char * CommsDat::CMDBNumFieldBase::GetAttribPtr(int) const - ??1CMDBSession@CommsDat@@UAE@XZ @ 40 NONAME ; CommsDat::CMDBSession::~CMDBSession(void) - ?GetVDataTable@CCDRecordBase@CommsDat@@MBEPBUSVDataTableEntry@Meta@@XZ @ 41 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CCDRecordBase::GetVDataTable(void) const - ??1CMDBRecordLinkBase@CommsDat@@UAE@XZ @ 42 NONAME ; CommsDat::CMDBRecordLinkBase::~CMDBRecordLinkBase(void) - ?Close@RCmManagerExt@@QAEXXZ @ 43 NONAME ; void RCmManagerExt::Close(void) - ?NewL@CMDBSession@CommsDat@@SAPAV12@VTVersion@@@Z @ 44 NONAME ; class CommsDat::CMDBSession * CommsDat::CMDBSession::NewL(class TVersion) - ??0CMDBRecordLinkBase@CommsDat@@QAE@XZ @ 45 NONAME ; CommsDat::CMDBRecordLinkBase::CMDBRecordLinkBase(void) - ?GetFieldByNameL@CMDBRecordBase@CommsDat@@UAEPAVCMDBElement@2@ABVTPtrC16@@AAH@Z @ 46 NONAME ; class CommsDat::CMDBElement * CommsDat::CMDBRecordBase::GetFieldByNameL(class TPtrC16 const &, int &) - ?GetVDataTable@TExtendedConnPref@@MBEPBUSVDataTableEntry@Meta@@XZ @ 47 NONAME ; struct Meta::SVDataTableEntry const * TExtendedConnPref::GetVDataTable(void) const - ?LatestVersion@CMDBSession@CommsDat@@SA?AVTVersion@@XZ @ 48 NONAME ; class TVersion CommsDat::CMDBSession::LatestVersion(void) - ??0RCmConnectionMethodExt@@QAE@XZ @ 49 NONAME ; RCmConnectionMethodExt::RCmConnectionMethodExt(void) - ??4CMDBRecordLinkBase@CommsDat@@QAEAAV01@K@Z @ 50 NONAME ; class CommsDat::CMDBRecordLinkBase & CommsDat::CMDBRecordLinkBase::operator=(unsigned long) - ??0RSocketServ@@QAE@XZ @ 51 NONAME ; RSocketServ::RSocketServ(void) - ?SetConnSelectionDialog@TExtendedConnPref@@QAEXH@Z @ 52 NONAME ; void TExtendedConnPref::SetConnSelectionDialog(int) - ??1CCommsDatabaseBase@@UAE@XZ @ 53 NONAME ; CCommsDatabaseBase::~CCommsDatabaseBase(void) - ??1TConnPrefList@@QAE@XZ @ 54 NONAME ; TConnPrefList::~TConnPrefList(void) - ?Start@RConnection@@QAEHAAVTConnPref@@@Z @ 55 NONAME ; int RConnection::Start(class TConnPref &) - ?NewL@CMPSettingsModel@@SAPAV1@VTUid@@@Z @ 56 NONAME ; class CMPSettingsModel * CMPSettingsModel::NewL(class TUid) - ??0TConnPrefList@@QAE@XZ @ 57 NONAME ; TConnPrefList::TConnPrefList(void) - ??0CMDBTextFieldBase@CommsDat@@QAE@XZ @ 58 NONAME ; CommsDat::CMDBTextFieldBase::CMDBTextFieldBase(void) - ?FindL@MMetaDatabase@CommsDat@@QAEHAAVCMDBSession@2@@Z @ 59 NONAME ; int CommsDat::MMetaDatabase::FindL(class CommsDat::CMDBSession &) - ??1SMetaData@Meta@@UAE@XZ @ 60 NONAME ; Meta::SMetaData::~SMetaData(void) - ??1CMDBElement@CommsDat@@UAE@XZ @ 61 NONAME ; CommsDat::CMDBElement::~CMDBElement(void) - ??0SMetaData@Meta@@IAE@XZ @ 62 NONAME ; Meta::SMetaData::SMetaData(void) - ?GetVDataTable@CMDBRecordLinkBase@CommsDat@@MBEPBUSVDataTableEntry@Meta@@XZ @ 63 NONAME ; struct Meta::SVDataTableEntry const * CommsDat::CMDBRecordLinkBase::GetVDataTable(void) const - ?SetNoteBehaviour@TExtendedConnPref@@QAEXK@Z @ 64 NONAME ; void TExtendedConnPref::SetNoteBehaviour(unsigned long) - ??1RConnection@@UAE@XZ @ 65 NONAME ; RConnection::~RConnection(void) - ?GetRecordInfo@CMDBRecordBase@CommsDat@@UAEPBUSRecordTypeInfo@2@XZ @ 66 NONAME ; struct CommsDat::SRecordTypeInfo const * CommsDat::CMDBRecordBase::GetRecordInfo(void) - ??0CMDBElement@CommsDat@@QAE@XZ @ 67 NONAME ; CommsDat::CMDBElement::CMDBElement(void) - ??1CMPSettingsModel@@UAE@XZ @ 68 NONAME ; CMPSettingsModel::~CMPSettingsModel(void) - ?FileExists@ConeUtils@@SAHABVTDesC16@@@Z @ 69 NONAME ; int ConeUtils::FileExists(class TDesC16 const &) - ??0CMDBNumFieldBase@CommsDat@@QAE@XZ @ 70 NONAME ; CommsDat::CMDBNumFieldBase::CMDBNumFieldBase(void) - ??0SMetaDataECom@Meta@@IAE@XZ @ 71 NONAME ; Meta::SMetaDataECom::SMetaDataECom(void) - ?GetFieldByIdL@CMDBRecordBase@CommsDat@@UAEPAVCMDBElement@2@K@Z @ 72 NONAME ; class CommsDat::CMDBElement * CommsDat::CMDBRecordBase::GetFieldByIdL(unsigned long) + ?NewL@MMPXCollectionUtility@@SAPAV1@PAVMMPXCollectionObserver@@ABVTUid@@@Z @ 2 NONAME ; class MMPXCollectionUtility * MMPXCollectionUtility::NewL(class MMPXCollectionObserver *, class TUid const &) + ?UtilityL@MMPXViewUtility@@SAPAV1@XZ @ 3 NONAME ; class MMPXViewUtility * MMPXViewUtility::UtilityL(void) + ?UtilityL@MMPXPlaybackUtility@@SAPAV1@W4TMPXCategory@@ABVTUid@@@Z @ 4 NONAME ; class MMPXPlaybackUtility * MMPXPlaybackUtility::UtilityL(enum TMPXCategory, class TUid const &) + ?FileExists@ConeUtils@@SAHABVTDesC16@@@Z @ 5 NONAME ; int ConeUtils::FileExists(class TDesC16 const &) + ?SetAutoPlay@CMPXCollectionPlaylist@@QAEXH@Z @ 6 NONAME ; void CMPXCollectionPlaylist::SetAutoPlay(int) diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/conf/mpxvideoplayertest.cfg --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/conf/mpxvideoplayertest.cfg Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/conf/mpxvideoplayertest.cfg Fri Mar 12 15:43:00 2010 +0200 @@ -23,14 +23,10 @@ NewFile 1 NewFileAfterError 2 -NO_AP 0 -AP_GPRS_1 3 +AP_USEDEFAULT -1 + AP_GPRS_2 4 AP_WLAN_1 5 -AP_WLAN_2 6 -AP_SNAP 7 -AP_QUERY 8 -AP_QUERY2 9 LocalLinks 0 StreamingLinks 1 @@ -115,8 +111,7 @@ title 3) AppUiEngine OpenFile w/ File Handle - SDP create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_GPRS_1 +enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_USEDEFAULT delete enginetest pause 1000 [Endtest] @@ -130,8 +125,7 @@ title 4) AppUiEngine OpenFile w/ File Handle - RAM file create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseHandle test_streaming.ram EAddPath ERamFile AP_GPRS_1 StreamingLinks +enginetest OpenFile UseHandle test_streaming.ram EAddPath ERamFile AP_USEDEFAULT StreamingLinks delete enginetest pause 1000 [Endtest] @@ -145,8 +139,7 @@ title 5) AppUiEngine OpenFile w/ File Handle - RAM file create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseHandle test_local.ram EAddPath ERamFile AP_GPRS_1 LocalLinks +enginetest OpenFile UseHandle test_local.ram EAddPath ERamFile AP_USEDEFAULT LocalLinks delete enginetest pause 1000 [Endtest] @@ -154,7 +147,6 @@ [Test] // // Test the Access Point Selection with OpenFile file handle API -// - Default GPRS Access Point // - GenericParameters with WLAN Access Point // - Launch an embedded SDP file // - WLAN access point should be used @@ -162,7 +154,6 @@ title 6) AppUiEngine Access Point Selection create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 enginetest SetGenericParamAccessPoint AP_WLAN_1 enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_WLAN_1 delete enginetest @@ -172,33 +163,13 @@ [Test] // // Test the Access Point Selection with OpenFile file handle API -// - Default GPRS Access Point // - GenericParameters with GPRS Access Point // - Launch an embedded SDP file -// - Default access point should be used +// - GPRS access point should be used // title 7) AppUiEngine Access Point Selection create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest SetGenericParamAccessPoint AP_GPRS_2 -enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_GPRS_1 -delete enginetest -pause 1000 -[Endtest] - -[Test] -// -// Test the Access Point Selection with OpenFile file handle API -// - No Default Access Point -// - GenericParameters with GPRS Access Point -// - Launch an embedded SDP file -// - Default access point should be used -// -title 8) AppUiEngine Access Point Selection -create mpxvideoplayertest enginetest -enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint NO_AP enginetest SetGenericParamAccessPoint AP_GPRS_2 enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_GPRS_2 delete enginetest @@ -207,28 +178,10 @@ [Test] // -// Test the Access Point Selection with OpenFile file handle API -// - No Default Access Point -// - No GenericParameters -// - Launch an embedded SDP file -// - Use the Internet SNAP Access Point for STIF Testing -// -title 9) AppUiEngine Access Point Selection -create mpxvideoplayertest enginetest -enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint NO_AP -enginetest SetQueryAccessPoint AP_SNAP -enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_SNAP -delete enginetest -pause 1000 -[Endtest] - -[Test] -// // Test the OpenFile with a file name API // - Launch a local clip // -title 10) AppUiEngine OpenFile w/ File Name - Local +title 8) AppUiEngine OpenFile w/ File Name - Local create mpxvideoplayertest enginetest enginetest CreateEngine Embedded enginetest OpenFile UseName local.3gp EAddPath ELocalFile @@ -242,11 +195,10 @@ // - No GenericParameters // - Launch an SDP file // -title 11) AppUiEngine OpenFile w/ File Name - SDP +title 9) AppUiEngine OpenFile w/ File Name - SDP create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseName sdp_test.sdp EAddPath ESdpFile AP_GPRS_1 +enginetest OpenFile UseName sdp_test.sdp EAddPath ESdpFile AP_USEDEFAULT delete enginetest pause 1000 [Endtest] @@ -257,28 +209,10 @@ // - No GenericParameters // - Launch an RAM file with streaming links // -title 12) AppUiEngine OpenFile w/ File Name - RAM file +title 10) AppUiEngine OpenFile w/ File Name - RAM file create mpxvideoplayertest enginetest enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseName test_streaming.ram EAddPath ERamFile AP_GPRS_1 StreamingLinks -delete enginetest -pause 1000 -[Endtest] - -[Test] -// -// Test the OpenFile with a file name API -// - No GenericParameters -// - Launch an URL -// - Test the PrepareCloseMpx API -// -title 13) AppUiEngine OpenFile w/ URL -create mpxvideoplayertest enginetest -enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseName rtsp:\/\/stream.3gp ENoPath EUrl AP_GPRS_1 -enginetest PrepareCloseMpx +enginetest OpenFile UseName test_streaming.ram EAddPath ERamFile AP_USEDEFAULT StreamingLinks delete enginetest pause 1000 [Endtest] @@ -287,7 +221,7 @@ // // Test the StartStandAloneL method // -title 14) AppUiEngine StartStandAloneL +title 11) AppUiEngine StartStandAloneL create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest StartStandAlone @@ -299,7 +233,7 @@ // // Test the HandleCollectionMessage method // -title 15) AppUiEngine HandleCollectionMessage +title 12) AppUiEngine HandleCollectionMessage create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest HandleCollectionMessage EPathChanged EMcPathChangedByOpen EMcItemOpened @@ -311,7 +245,7 @@ // // Test the HandleCollectionMedia method // -title 16) AppUiEngine HandleCollectionMedia +title 13) AppUiEngine HandleCollectionMedia create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest HandleCollectionMedia local.3gp EAddPath @@ -330,7 +264,7 @@ // - Call HandleSoftKeyL // - AppUi should StepBackCollectionPathL // -title 17) AppUiEngine HandleSoftkeyBackL +title 14) AppUiEngine HandleSoftkeyBackL create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest HandleSoftkeyBack ViewDepth_1 @@ -347,7 +281,7 @@ // - Call HandleOpenL // - PlaybackUtility should receive InitL with Playlist // -title 18) AppUiEngine HandleOpenPlaylist +title 15) AppUiEngine HandleOpenPlaylist create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest StartStandAlone @@ -363,7 +297,7 @@ // - Call HandleOpenL // - CollectionUtility should receive OpenL with new collection path // -title 19) AppUiEngine HandleOpenMedia +title 16) AppUiEngine HandleOpenMedia create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest StartStandAlone @@ -374,35 +308,10 @@ [Test] // -// Test ProcessActivationMessageL -// - Test with small Message, function Leaves -// - Test with Open Internet Videos, View Utility receives view activation -// - Test with Open Video Storage, View Utility receives view activation -// - Test with Matrix Launch Video, local file callbacks are received -// - Test with Notification Launch Video, local file callbacks are received -// -title 20) AppUiEngine ProcessActivationMessageL -create mpxvideoplayertest enginetest -enginetest CreateEngine StandAlone -enginetest StartStandAlone -enginetest ProcessActivationMessage ENoMsg -enginetest ProcessActivationMessage EMatrix EOpenInternetVideos -enginetest ProcessActivationMessage EMatrix EOpenVideoStorage -enginetest ProcessActivationMessage EMatrix ELaunchVideo local.3gp EAddPath EDefined -enginetest ProcessActivationMessage EMatrix ELaunchVideo local.3gp EAddPath EUndefined -allownextresult KErrNotFound -enginetest ProcessActivationMessage EMatrix ELaunchVideo not_fuond.3gp EAddPath EDefined -enginetest ProcessActivationMessage EMatrix ELaunchVideo not_fuond.3gp EAddPath EUndefined -delete enginetest -pause 1000 -[Endtest] - -[Test] -// // Test HandleViewActivation // - No callback is received // -title 21) AppUiEngine HandleViewActivation +title 17) AppUiEngine HandleViewActivation create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest StartStandAlone @@ -428,10 +337,9 @@ // - Open with document name and file that doesn't exist // - file exists is false // -title 22) AppUiEngine ProcessCommandParameters +title 18) AppUiEngine ProcessCommandParameters create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone -enginetest ProcessCommandParameters EApaCommandTail EMatrix EOpenVideoStorage enginetest ProcessCommandParameters EApaCommandRun enginetest ProcessCommandParameters EApaCommandOpen rtsp:\/\/stream.3gp ENoPath ETrue enginetest ProcessCommandParameters EApaCommandOpen local.3gp EAddPath ETrue @@ -442,53 +350,14 @@ [Test] // -// Test Access Point Dialog withSelection -// - No GenericParameters -// - No Default Access Point -// - Set Query Access Point to 0 to simulate a cancel button press -// - Launch an embedded SDP file -// - OpenFile leaves with KErrCancel -// -title 23) AppUiEngine Access Point Selection -create mpxvideoplayertest enginetest -enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint NO_AP -enginetest SetQueryAccessPoint AP_QUERY -enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile AP_QUERY2 -delete enginetest -pause 1000 -[Endtest] - -[Test] -// -// Test Access Point Dialog Cancel without Selection -// - No GenericParameters -// - No Default Access Point -// - Set Query Access Point to 0 to simulate a cancel button press -// - Launch an embedded SDP file -// - OpenFile leaves with KErrCancel -// -title 24) AppUiEngine Access Point Selection -create mpxvideoplayertest enginetest -enginetest CreateEngine Embedded -enginetest SetDefaultAccessPoint NO_AP -enginetest SetQueryAccessPoint NO_AP -enginetest OpenFile UseHandle sdp_test.sdp EAddPath ESdpFile KErrCancel -delete enginetest -pause 1000 -[Endtest] - -[Test] -// // Test Playlist functionality // Open Multilink ram file // HandleCollectionMessage for playlist // -title 25) AppUiEngine HandleCollectionMessage RAM Playlist +title 19) AppUiEngine HandleCollectionMessage RAM Playlist create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseHandle test_multilocal.ram EAddPath EMultiLinkFile AP_GPRS_1 LocalLinks +enginetest OpenFile UseHandle test_multilocal.ram EAddPath EMultiLinkFile AP_USEDEFAULT LocalLinks enginetest HandleCollectionMessage EPathChanged EMcPathChangedByOpen EMcContainerOpened delete enginetest pause 1000 @@ -500,11 +369,10 @@ // Open Multilink ASX file // HandleCollectionMessage for playlist // -title 26) AppUiEngine HandleCollectionMessage ASX Playlist +title 20) AppUiEngine HandleCollectionMessage ASX Playlist create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseHandle test_multilink_v2.asx EAddPath EMultiLinkFile AP_GPRS_1 StreamingLinks +enginetest OpenFile UseHandle test_multilink_v2.asx EAddPath EMultiLinkFile AP_USEDEFAULT StreamingLinks enginetest HandleCollectionMessage EPathChanged EMcPathChangedByOpen EMcContainerOpened delete enginetest pause 1000 @@ -516,11 +384,10 @@ // Open Multilink ASX file // HandleCollectionMessage for playlist // -title 27) AppUiEngine UpdatePbPluginMediaL ASX V3 +title 21) AppUiEngine UpdatePbPluginMediaL ASX V3 create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone -enginetest SetDefaultAccessPoint AP_GPRS_1 -enginetest OpenFile UseHandle test_seekSingle_v3.asx EAddPath EAsxFile AP_GPRS_1 StreamingLinks +enginetest OpenFile UseHandle test_seekSingle_v3.asx EAddPath EAsxFile AP_USEDEFAULT StreamingLinks delete enginetest pause 1000 [Endtest] @@ -530,10 +397,9 @@ // Test OpenMediaL functionality // Open valid Media // -title 28) AppUiEngine OpenMediaL +title 22) AppUiEngine OpenMediaL create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone -enginetest SetDefaultAccessPoint AP_GPRS_1 enginetest OpenMedia local.3gp EAddPath delete enginetest pause 1000 @@ -544,10 +410,9 @@ // Test OpenMediaL functionality // Open bad Media // -title 29) AppUiEngine OpenMediaL bad file path +title 23) AppUiEngine OpenMediaL bad file path create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone -enginetest SetDefaultAccessPoint AP_GPRS_1 enginetest OpenMedia no_existing_file.ram EAddPath delete enginetest pause 1000 @@ -557,7 +422,7 @@ // // Test View Depth functionality // -title 30) AppUiEngine GetView Depth +title 24) AppUiEngine GetView Depth create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest GetViewDepth ViewDepth_2 @@ -571,40 +436,10 @@ // - Launch a stand alone instance of engine // - Handle a message to start feeds PDL playback // -title 31) AppUiEngine Feeds PDL +title 25) AppUiEngine Feeds PDL create mpxvideoplayertest enginetest enginetest CreateEngine StandAlone enginetest HandleCollectionMedia local.3gp EAddPath DownloadId_1 delete enginetest pause 1000 [Endtest] - -[Test] -// -// Test the handling of messages -// -title 32) AppUiEngine Messages -create mpxvideoplayertest enginetest -enginetest CreateEngine StandAlone -enginetest HandleMessageActivationMessageL ENoMsg EOpenInternetVideos EFalse -enginetest HandleMessageActivationMessageL EMatrix EOpenInternetVideos EFalse -delete enginetest -pause 1000 -[Endtest] - -[Test] -// -// Test the handling of messages -// - Set the active view type to playback view type -// - Send Message from KVideoPlayerVodStartPlayer -// - Message should be ignored -// -title 33) AppUiEngine Messages -create mpxvideoplayertest enginetest -enginetest CreateEngine StandAlone -enginetest HandleMessageActivationMessageL ENoMsg EOpenInternetVideos ETrue -enginetest HandleMessageActivationMessageL EMatrix EOpenInternetVideos ETrue -delete enginetest -pause 1000 -[Endtest] - diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/eabi/mpxvideoplayertestu.def --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/eabi/mpxvideoplayertestu.def Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/eabi/mpxvideoplayertestu.def Fri Mar 12 15:43:00 2010 +0200 @@ -1,46 +1,12 @@ EXPORTS _Z9LibEntryLR13CTestModuleIf @ 1 NONAME _ZN22CMPXCollectionPlaylist11SetAutoPlayEi @ 2 NONAME - _ZTI11RConnection @ 3 NONAME - _ZTI14CCommsDatabase @ 4 NONAME - _ZTI14CSimpleTimeout @ 5 NONAME - _ZTI16CMPSettingsModel @ 6 NONAME - _ZTI17TExtendedConnPref @ 7 NONAME - _ZTI18CCommsDatabaseBase @ 8 NONAME - _ZTI26CMpxVideoPlayerAppUiEngine @ 9 NONAME - _ZTI27CMpxVideoEmbeddedPdlHandler @ 10 NONAME - _ZTI33CMpxVideoPlayer_AppUiEngineTester @ 11 NONAME - _ZTIN4Meta13SMetaDataEComE @ 12 NONAME - _ZTIN4Meta18RMetaDataContainerINS_13SMetaDataEComEEE @ 13 NONAME - _ZTIN4Meta9SMetaDataE @ 14 NONAME - _ZTIN8CommsDat11CMDBElementE @ 15 NONAME - _ZTIN8CommsDat11CMDBSessionE @ 16 NONAME - _ZTIN8CommsDat13CCDRecordBaseE @ 17 NONAME - _ZTIN8CommsDat13MMetaDatabaseE @ 18 NONAME - _ZTIN8CommsDat14CMDBRecordBaseE @ 19 NONAME - _ZTIN8CommsDat16CMDBNumFieldBaseE @ 20 NONAME - _ZTIN8CommsDat17CMDBTextFieldBaseE @ 21 NONAME - _ZTIN8CommsDat18CMDBRecordLinkBaseE @ 22 NONAME - _ZTIN8CommsDat20CCDWAPIPBearerRecordE @ 23 NONAME - _ZTV11RConnection @ 24 NONAME - _ZTV14CCommsDatabase @ 25 NONAME - _ZTV14CSimpleTimeout @ 26 NONAME - _ZTV16CMPSettingsModel @ 27 NONAME - _ZTV17TExtendedConnPref @ 28 NONAME - _ZTV18CCommsDatabaseBase @ 29 NONAME - _ZTV26CMpxVideoPlayerAppUiEngine @ 30 NONAME - _ZTV27CMpxVideoEmbeddedPdlHandler @ 31 NONAME - _ZTV33CMpxVideoPlayer_AppUiEngineTester @ 32 NONAME - _ZTVN4Meta13SMetaDataEComE @ 33 NONAME - _ZTVN4Meta18RMetaDataContainerINS_13SMetaDataEComEEE @ 34 NONAME - _ZTVN4Meta9SMetaDataE @ 35 NONAME - _ZTVN8CommsDat11CMDBElementE @ 36 NONAME - _ZTVN8CommsDat11CMDBSessionE @ 37 NONAME - _ZTVN8CommsDat13CCDRecordBaseE @ 38 NONAME - _ZTVN8CommsDat13MMetaDatabaseE @ 39 NONAME - _ZTVN8CommsDat14CMDBRecordBaseE @ 40 NONAME - _ZTVN8CommsDat16CMDBNumFieldBaseE @ 41 NONAME - _ZTVN8CommsDat17CMDBTextFieldBaseE @ 42 NONAME - _ZTVN8CommsDat18CMDBRecordLinkBaseE @ 43 NONAME - _ZTVN8CommsDat20CCDWAPIPBearerRecordE @ 44 NONAME + _ZTI14CSimpleTimeout @ 3 NONAME + _ZTI26CMpxVideoPlayerAppUiEngine @ 4 NONAME + _ZTI27CMpxVideoEmbeddedPdlHandler @ 5 NONAME + _ZTI33CMpxVideoPlayer_AppUiEngineTester @ 6 NONAME + _ZTV14CSimpleTimeout @ 7 NONAME + _ZTV26CMpxVideoPlayerAppUiEngine @ 8 NONAME + _ZTV27CMpxVideoEmbeddedPdlHandler @ 9 NONAME + _ZTV33CMpxVideoPlayer_AppUiEngineTester @ 10 NONAME diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group/mpxvideoplayertest.mmp --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group/mpxvideoplayertest.mmp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/group/mpxvideoplayertest.mmp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#9 % +// Version : %version: 10 % #include @@ -44,12 +44,9 @@ SOURCE mpxvideoplayerappui_stub.cpp SOURCE mpxcollectionutility_stub.cpp SOURCE mpxcollectionutilityimp_stub.cpp -SOURCE commsdatabase_stub.cpp -SOURCE mpsettingsmodelimp_stub.cpp SOURCE stifutilities.cpp SOURCE coneutils_stub.cpp SOURCE timeoutcontroller.cpp -SOURCE apstubs.cpp SOURCEPATH ../../../src SOURCE mpxvideoplayerappuiengine.cpp diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayer_appuienginetester.h --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayer_appuienginetester.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayer_appuienginetester.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#10 % +// Version : %version: ou1cpsw#13 % #ifndef MPXVIDEOPLAYER_APPUIENGINETESTER_H_ #define MPXVIDEOPLAYER_APPUIENGINETESTER_H_ @@ -110,20 +110,16 @@ TInt CreateGenericParametersTerminateL(); TInt OpenFileL( CStifItemParser& aItem ); TInt OpenMediaL( CStifItemParser& aItem ); - TInt SetDefaultAccessPointL( CStifItemParser& aItem ); - TInt SetQueryAccessPointL( CStifItemParser& aItem ); TInt SetGenericParamAccessPointL( CStifItemParser& aItem ); TInt OpenFileEmbeddedPdlL( CStifItemParser& aItem ); TInt HandleMessageEmbeddedPdlL( CStifItemParser& aItem ); TInt HandleMessageActivationMessageL( CStifItemParser& aItem ); - TInt PrepareCloseMpxL( CStifItemParser& aItem ); TInt StartStandAloneL( CStifItemParser& aItem ); TInt HandleCollectionMessageL( CStifItemParser& aItem ); TInt HandleCollectionMediaL( CStifItemParser& aItem ); TInt HandleSoftkeyBackL( CStifItemParser& aItem ); TInt HandleOpenPlaylistL( CStifItemParser& aItem ); TInt HandleOpenMediaL( CStifItemParser& aItem ); - TInt ProcessActivationMessageL( CStifItemParser& aItem ); TInt HandleViewActivation( CStifItemParser& aItem ); TInt ProcessCommandParametersL( CStifItemParser& aItem ); TInt GetViewDepthL( CStifItemParser& aItem ); @@ -147,8 +143,6 @@ void AddEmbeddedPdlCallbacksL( TInt aDownloadId, TDesC& aFileName ); void AddMessagePdlCallbacksL( TInt aNewFile, TInt aDownloadId, TDesC& aFileName ); - void WriteAccessPointL( const TDesC& aFileName, TInt aApId ); - CMPXMessage* CreateMpxMessageLC( TInt aEvent, TInt aType, TInt aData ); void AddLocalFileCallbacksL( TDesC& aFileName, TBool aUseFileHandle ); @@ -166,8 +160,6 @@ void AddCollectionMediaPdlCallbacksL( TInt aDownloadId, TDesC& aFileName ); - void CleanupTempFiles(); - private: CScriptBase* iScriptBase; diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayertest.h --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayertest.h Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/inc/mpxvideoplayertest.h Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#7 % +// Version : %version: ou1cpsw#10 % #ifndef MPXVIDEOPLAYER_TEST_H #define MPXVIDEOPLAYER_TEST_H @@ -115,19 +115,15 @@ virtual TInt CreateGenericParametersTerminateL(); virtual TInt OpenFileL( CStifItemParser& aItem ); virtual TInt OpenMediaL( CStifItemParser& aItem ); - virtual TInt SetDefaultAccessPointL( CStifItemParser& aItem ); - virtual TInt SetQueryAccessPointL( CStifItemParser& aItem ); virtual TInt SetGenericParamAccessPointL( CStifItemParser& aItem ); virtual TInt OpenFileEmbeddedPdlL( CStifItemParser& aItem ); virtual TInt HandleMessageEmbeddedPdlL( CStifItemParser& aItem ); - virtual TInt PrepareCloseMpxL( CStifItemParser& aItem ); virtual TInt StartStandAloneL( CStifItemParser& aItem ); virtual TInt HandleCollectionMessageL( CStifItemParser& aItem ); virtual TInt HandleCollectionMediaL( CStifItemParser& aItem ); virtual TInt HandleSoftkeyBackL( CStifItemParser& aItem ); virtual TInt HandleOpenPlaylistL( CStifItemParser& aItem ); virtual TInt HandleOpenMediaL( CStifItemParser& aItem ); - virtual TInt ProcessActivationMessageL( CStifItemParser& aItem ); virtual TInt HandleViewActivation( CStifItemParser& aItem ); virtual TInt ProcessCommandParametersL( CStifItemParser& aItem ); virtual TInt HandleMessageActivationMessageL( CStifItemParser& aItem ); diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayer_appuienginetester.cpp --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayer_appuienginetester.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayer_appuienginetester.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#18 % +// Version : %version: ou1cpsw#21 % #include "mpxvideoplayer_appuienginetester.h" @@ -38,9 +38,6 @@ #include "mpxvideo_debug.h" -_LIT( KDefaultAccessPointFilename, "c:\\defaultApId.txt" ); -_LIT( KQueryAccessPointFilename, "c:\\queryApId.txt" ); - #define KMPXPLAYBACKPLUGINTYPEUID 0x101FFCA0 #define EMatrix 4 @@ -70,8 +67,6 @@ { MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::~CMpxVideoPlayer_AppUiEngineTester()")); - CleanupTempFiles(); - delete iAppUiEngine; iAppUiEngine = NULL; @@ -235,27 +230,16 @@ // TCallbackEvent* event = new (ELeave) TCallbackEvent; - if ( expectedApId > 0 ) - { event->iFileName = aFileName; event->iApId = expectedApId; - if ( aUseFileHandle ) - { - event->iEvent = EPlaybackUtilityInitStreamingFileHandle; - } - else - { - event->iEvent = EPlaybackUtilityInitStreamingUrl; - } + if ( aUseFileHandle ) + { + event->iEvent = EPlaybackUtilityInitStreamingFileHandle; } else { - // - // When the apId is negative, an error code will be return with a Leave - // - event->iEvent = EFunctionLeave; - event->iExtra = expectedApId; + event->iEvent = EPlaybackUtilityInitStreamingUrl; } AddExpectedEvent( event ); @@ -506,46 +490,6 @@ } // ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayer_AppUiEngineTester::SetDefaultAccessPointL -// ------------------------------------------------------------------------------------------------- -// -TInt CMpxVideoPlayer_AppUiEngineTester::SetDefaultAccessPointL( CStifItemParser& aItem ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::SetDefaultAccessPointL()")); - - TInt apId; - - // - // Read in the filename from the config file - // - User::LeaveIfError( aItem.GetNextInt( apId ) ); - - WriteAccessPointL( KDefaultAccessPointFilename, apId ); - - return KErrNone; -} - -// ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayer_AppUiEngineTester::SetQueryAccessPointL -// ------------------------------------------------------------------------------------------------- -// -TInt CMpxVideoPlayer_AppUiEngineTester::SetQueryAccessPointL( CStifItemParser& aItem ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::SetQueryAccessPointL()")); - - TInt apId; - - // - // Read in the filename from the config file - // - User::LeaveIfError( aItem.GetNextInt( apId ) ); - - WriteAccessPointL( KQueryAccessPointFilename, apId ); - - return KErrNone; -} - -// ------------------------------------------------------------------------------------------------- // CMpxVideoPlayer_AppUiEngineTester::SetGenericParamAccessPointL // ------------------------------------------------------------------------------------------------- // @@ -865,25 +809,6 @@ } // ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayer_AppUiEngineTester::PrepareCloseMpxL -// ------------------------------------------------------------------------------------------------- -// -TInt CMpxVideoPlayer_AppUiEngineTester::PrepareCloseMpxL( CStifItemParser& /*aItem*/ ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::PrepareCloseMpxL()")); - - TCallbackEvent* event = new (ELeave) TCallbackEvent; - event->iEvent = EPlaybackUtilityClose; - AddExpectedEvent( event ); - - iAppUiEngine->PrepareCloseMpxL(); - - EndTest(); - - return iError; -} - -// ------------------------------------------------------------------------------------------------- // CMpxVideoPlayer_AppUiEngineTester::StartStandAloneL // ------------------------------------------------------------------------------------------------- // @@ -1119,102 +1044,6 @@ } // ------------------------------------------------------------------------------------------------- -// CMpxVideoPlayer_AppUiEngineTester::ProcessActivationMessageL -// ------------------------------------------------------------------------------------------------- -// -TInt CMpxVideoPlayer_AppUiEngineTester::ProcessActivationMessageL( CStifItemParser& aItem ) -{ - MPX_ENTER_EXIT(_L("CMpxVideoPlayer_AppUiEngineTester::ProcessActivationMessageL()")); - - TInt msgSender; - TInt msgType; - - User::LeaveIfError( aItem.GetNextInt( msgSender ) ); - - if ( msgSender == KErrNotSupported ) - { - _LIT8( KShortDes, "Test" ); - - MPX_TRAP( iError, iAppUiEngine->ProcessActivationMessageL( KShortDes ) ); - - if ( iError == msgSender ) - { - iError = KErrNone; - } - } - else - { - TVideoPlayerActivationMessage params; - - User::LeaveIfError( aItem.GetNextInt( msgType ) ); - - params.iMsgType = (TVideoPlayerActivationMessage::TMessageType)msgType; - params.iMsgSender = (TVideoPlayerActivationMessage::TMessageSender)msgSender; - - if ( msgType == TVideoPlayerActivationMessage::EOpenInternetVideos ) - { - TCallbackEvent* event = new TCallbackEvent; - event->iEvent = EViewUtilityActivateViewUid; - event->iUid = TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ); - AddExpectedEvent( event ); - } - else if ( msgType == TVideoPlayerActivationMessage::EOpenVideoStorage ) - { - TCallbackEvent* event = new TCallbackEvent; - event->iEvent = EViewUtilityActivateViewUid; - event->iUid = TUid::Uid( KUidMyVideosViewTypeId ); - AddExpectedEvent( event ); - } - else if ( msgType == TVideoPlayerActivationMessage::ELaunchVideoToPlayer ) - { - TFileName filename = GetFileNameAndPathL( aItem ); - - TBool idDefined; - User::LeaveIfError( aItem.GetNextInt( idDefined )); - - if ( idDefined ) - { - params.iServiceId = 0x1234; - RFs fs; - User::LeaveIfError( fs.Connect() ); - CleanupClosePushL( fs ); - - if ( BaflUtils::FileExists( fs , filename ) ) - { - TCallbackEvent* event1 = new (ELeave) TCallbackEvent; - event1->iEvent = EViewUtilityPreLoadView; - event1->iUid = KVideoPlaybackViewUid; - AddExpectedEvent( event1 ); - - TCallbackEvent* event2 = new (ELeave) TCallbackEvent; - event2->iEvent = EPlaybackUtilityInitPlaylist; - AddExpectedEvent( event2 ); - } - CleanupStack::PopAndDestroy( &fs ); - } - else - { - params.iServiceId = 0; - - TCallbackEvent* event = new TCallbackEvent; - event->iEvent = EViewUtilityActivateViewUid; - event->iUid = TUid::Uid( KMpxVideoPlayerVodViewPluginTypeId ); - AddExpectedEvent( event ); - } - params.iFullPath = filename; - } - - TPckg paramsPckg( params ); - - iAppUiEngine->ProcessActivationMessageL( paramsPckg ); - } - - EndTest(); - - return iError; -} - -// ------------------------------------------------------------------------------------------------- // CMpxVideoPlayer_AppUiEngineTester::HandleViewActivation // ------------------------------------------------------------------------------------------------- // @@ -1268,31 +1097,6 @@ switch ( cmdId ) { - case EProcessTail: - { - TInt msgSender; - TInt msgType; - - User::LeaveIfError( aItem.GetNextInt( msgSender ) ); - User::LeaveIfError( aItem.GetNextInt( msgType ) ); - - - TVideoPlayerActivationMessage params; - - params.iMsgType = TVideoPlayerActivationMessage::EOpenVideoStorage; - params.iMsgSender = TVideoPlayerActivationMessage::EMatrixMenu; - - TPckg paramsPckg( params ); - - TCallbackEvent* event = new TCallbackEvent; - event->iEvent = EViewUtilityActivateViewUid; - event->iUid = TUid::Uid( KUidMyVideosViewTypeId ); - AddExpectedEvent( event ); - - tail.Set( paramsPckg ); - - break; - } case EProcessStandAlone: { TCallbackEvent* event = new (ELeave) TCallbackEvent; @@ -1470,31 +1274,6 @@ } void -CMpxVideoPlayer_AppUiEngineTester::WriteAccessPointL( const TDesC& aFileName, TInt aApId ) -{ - MPX_DEBUG(_L("CMpxVideoPlayer_AppUiEngineTester::WriteAccessPointL(%S, %d)"), - &aFileName, aApId); - - // - // Write to test file so the controller open fails - // - RFile file; - - RFs fs; - User::LeaveIfError( fs.Connect() ); - - TBuf8<16> tgt; - tgt.Num( aApId ); - - file.Replace( fs, aFileName, EFileWrite ); - - file.Write( tgt ); - - file.Close(); - fs.Close(); -} - -void CMpxVideoPlayer_AppUiEngineTester::EndTest() { if ( ! iTimeoutController ) @@ -1550,18 +1329,4 @@ return fullPath; } -void -CMpxVideoPlayer_AppUiEngineTester::CleanupTempFiles() -{ - MPX_DEBUG(_L("CMpxVideoPlayer_AppUiEngineTester::CleanupTempFiles()")); - - RFs fs; - TInt error = fs.Connect(); - - error = fs.Delete( KDefaultAccessPointFilename ); - error = fs.Delete( KQueryAccessPointFilename ); - - fs.Close(); -} - // EOF diff -r 7d91903f795f -r ce5ada96ab30 videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayertestblocks.cpp --- a/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayertestblocks.cpp Fri Feb 19 22:52:52 2010 +0200 +++ b/videoplayerapp/mpxvideoplayer/tsrc/ut_mpxvideoplayertest/src/mpxvideoplayertestblocks.cpp Fri Mar 12 15:43:00 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: ou1cpsw#7 % +// Version : %version: ou1cpsw#10 % // [INCLUDE FILES] - do not remove #include @@ -59,19 +59,15 @@ ENTRY( "CreateGenericParametersTerminate", Cmpxvideoplayer_test::CreateGenericParametersTerminateL ), ENTRY( "OpenFile", Cmpxvideoplayer_test::OpenFileL ), ENTRY( "OpenMedia", Cmpxvideoplayer_test::OpenMediaL ), - ENTRY( "SetDefaultAccessPoint", Cmpxvideoplayer_test::SetDefaultAccessPointL ), - ENTRY( "SetQueryAccessPoint", Cmpxvideoplayer_test::SetQueryAccessPointL ), ENTRY( "SetGenericParamAccessPoint", Cmpxvideoplayer_test::SetGenericParamAccessPointL ), ENTRY( "OpenFileEmbeddedPdl", Cmpxvideoplayer_test::OpenFileEmbeddedPdlL ), ENTRY( "HandleMessageEmbeddedPdl", Cmpxvideoplayer_test::HandleMessageEmbeddedPdlL ), - ENTRY( "PrepareCloseMpx", Cmpxvideoplayer_test::PrepareCloseMpxL ), ENTRY( "StartStandAlone", Cmpxvideoplayer_test::StartStandAloneL ), ENTRY( "HandleCollectionMessage", Cmpxvideoplayer_test::HandleCollectionMessageL ), ENTRY( "HandleCollectionMedia", Cmpxvideoplayer_test::HandleCollectionMediaL ), ENTRY( "HandleSoftkeyBack", Cmpxvideoplayer_test::HandleSoftkeyBackL ), ENTRY( "HandleOpenPlaylist", Cmpxvideoplayer_test::HandleOpenPlaylistL ), ENTRY( "HandleOpenMedia", Cmpxvideoplayer_test::HandleOpenMediaL ), - ENTRY( "ProcessActivationMessage", Cmpxvideoplayer_test::ProcessActivationMessageL ), ENTRY( "HandleViewActivation", Cmpxvideoplayer_test::HandleViewActivation ), ENTRY( "ProcessCommandParameters", Cmpxvideoplayer_test::ProcessCommandParametersL ), ENTRY( "HandleMessageActivationMessageL", Cmpxvideoplayer_test::HandleMessageActivationMessageL ), @@ -123,24 +119,6 @@ } // ----------------------------------------------------------------------------- -// Cmpxvideoplayer_test::SetDefaultAccessPointL -// ----------------------------------------------------------------------------- -// -TInt Cmpxvideoplayer_test::SetDefaultAccessPointL( CStifItemParser& aItem ) -{ - return iAppUiEngineTester->SetDefaultAccessPointL( aItem ); -} - -// ----------------------------------------------------------------------------- -// Cmpxvideoplayer_test::SetQueryAccessPointL -// ----------------------------------------------------------------------------- -// -TInt Cmpxvideoplayer_test::SetQueryAccessPointL( CStifItemParser& aItem ) -{ - return iAppUiEngineTester->SetQueryAccessPointL( aItem ); -} - -// ----------------------------------------------------------------------------- // Cmpxvideoplayer_test::SetGenericParamAccessPointL // ----------------------------------------------------------------------------- // @@ -168,15 +146,6 @@ } // ----------------------------------------------------------------------------- -// Cmpxvideoplayer_test::PrepareCloseMpxL -// ----------------------------------------------------------------------------- -// -TInt Cmpxvideoplayer_test::PrepareCloseMpxL( CStifItemParser& aItem ) -{ - return iAppUiEngineTester->PrepareCloseMpxL( aItem ); -} - -// ----------------------------------------------------------------------------- // Cmpxvideoplayer_test::StartStandAloneL // ----------------------------------------------------------------------------- // @@ -231,15 +200,6 @@ } // ----------------------------------------------------------------------------- -// Cmpxvideoplayer_test::ProcessActivationMessageL -// ----------------------------------------------------------------------------- -// -TInt Cmpxvideoplayer_test::ProcessActivationMessageL( CStifItemParser& aItem ) -{ - return iAppUiEngineTester->ProcessActivationMessageL( aItem ); -} - -// ----------------------------------------------------------------------------- // Cmpxvideoplayer_test::HandleViewActivation // ----------------------------------------------------------------------------- //