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