diff -r 000000000000 -r 96612d01cf9f videocollection/hgmyvideos/src/vcxhgmyvideosmemorystatus.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosmemorystatus.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,175 @@ +/* +* 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: Common model class for component* +*/ + + + + +// INCLUDE FILES +#include +#include +#include "CIptvDriveMonitor.h" +#include +#include "vcxhgmyvideosmodel.h" +#include "vcxhgmyvideosmemorystatus.h" + +// CONSTANTS +_LIT( KEnterString, "\n" ); +const TInt KVcxHgExtraSpace ( 20 ); +const TInt KVcxHgVideoSizeGB ( 0x40000000 ); +const TInt KVcxHgVideoSizeHalfGB ( 0x20000000 ); +const TInt KVcxHgVideoSizeMB ( 0x100000 ); +const TInt KVcxHgVideoSizeHalfMB ( 0x80000 ); +const TInt KVcxHgVideoSizeKB ( 0x400 ); +const TInt KVcxHgVideoSizeHalfKB ( 0x200 ); +const TUint64 KVcxHgFullPercentage ( 100 ); + +// ========================== MEMBER FUNCTIONS =============================== + +// --------------------------------------------------------------------------- +// TVcxHgMyVideosMemoryStatusDialog::TVcxHgMyVideosMemoryStatusDialog() +// --------------------------------------------------------------------------- +// +TVcxHgMyVideosMemoryStatusDialog::TVcxHgMyVideosMemoryStatusDialog() + { + } + +// --------------------------------------------------------------------------- +// TVcxHgMyVideosMemoryStatusDialog::ShowMemoryStatusDialogL() +// --------------------------------------------------------------------------- +// +void TVcxHgMyVideosMemoryStatusDialog::ShowMemoryStatusDialogL( CVcxHgMyVideosModel& aModel ) + { + HBufC* strFreeMemory = NULL; + HBufC* strUsedMemory = NULL; + TUint64 dispSize = 0; + TUint64 driveTotalSize = 0; + TUint64 driveFreeSize = 0; + TUint64 driveUsedSize = 0; + TInt freePercentage = 0; + TInt usedPercentage = 0; + TVolumeInfo volumeInfo; + + for ( TInt i = 0; i < aModel.DriveMonitorL().iAvailableDrives.Count(); i++ ) + { + if ( aModel.FileServerSessionL().Volume( + volumeInfo, aModel.DriveMonitorL().iAvailableDrives[i].iDrive ) + == KErrNone ) + { + driveFreeSize += volumeInfo.iFree; + driveTotalSize += volumeInfo.iSize; + } + } + + if ( !driveTotalSize ) + { + freePercentage = 0; + } + else + { + freePercentage = driveFreeSize * KVcxHgFullPercentage / driveTotalSize; + } + + usedPercentage = KVcxHgFullPercentage - freePercentage; + driveUsedSize = driveTotalSize - driveFreeSize; + + HBufC* strFreePercentage = StringLoader::LoadLC( R_VCXHGMYVIDEOS_MEMORY_PERCENTAGE, + ( freePercentage ) ); + HBufC* strUsedPercentage = StringLoader::LoadLC( R_VCXHGMYVIDEOS_MEMORY_PERCENTAGE, + ( usedPercentage ) ); + + HBufC* FreeMemoryTitle = StringLoader::LoadLC( R_VCXHGMYVIDEOS_FREE_MEMORY ); + + if ( driveFreeSize >= KVcxHgVideoSizeGB ) + { + dispSize = driveFreeSize + KVcxHgVideoSizeHalfGB; + dispSize /= KVcxHgVideoSizeGB; + strFreeMemory = StringLoader::LoadLC( R_VCXHGMYVIDEOS_SIZE_GB_SHORT, + static_cast( dispSize ) ); + } + + else if ( driveFreeSize >= KVcxHgVideoSizeMB ) + { + dispSize = driveFreeSize + KVcxHgVideoSizeHalfMB; + dispSize /= KVcxHgVideoSizeMB; + strFreeMemory = StringLoader::LoadLC( R_VCXHGMYVIDEOS_SIZE_MB_SHORT, + static_cast( dispSize ) ); + } + + else + { + dispSize = driveFreeSize + KVcxHgVideoSizeHalfKB; + dispSize /= KVcxHgVideoSizeKB; + strFreeMemory = StringLoader::LoadLC( R_VCXHGMYVIDEOS_SIZE_KB_SHORT, + static_cast( dispSize ) ); + } + + HBufC* UsedMemoryTitle = StringLoader::LoadLC( R_VCXHGMYVIDEOS_USED_MEMORY ); + + if ( driveUsedSize >= KVcxHgVideoSizeGB ) + { + dispSize = driveUsedSize + KVcxHgVideoSizeHalfGB; + dispSize /= KVcxHgVideoSizeGB; + strUsedMemory = StringLoader::LoadLC( R_VCXHGMYVIDEOS_SIZE_GB_SHORT, + static_cast( dispSize ) ); + } + + else if ( driveUsedSize >= KVcxHgVideoSizeMB ) + { + dispSize = driveUsedSize + KVcxHgVideoSizeHalfMB; + dispSize /= KVcxHgVideoSizeMB; + strUsedMemory = StringLoader::LoadLC( R_VCXHGMYVIDEOS_SIZE_MB_SHORT, + static_cast( dispSize ) ); + } + + else + { + dispSize = driveUsedSize + KVcxHgVideoSizeHalfKB; + dispSize /= KVcxHgVideoSizeKB; + strUsedMemory = StringLoader::LoadLC( R_VCXHGMYVIDEOS_SIZE_KB_SHORT, + static_cast( dispSize ) ); + } + + HBufC* context = HBufC::NewLC(FreeMemoryTitle->Length() + + strFreePercentage->Length() + + strFreeMemory->Length() + + UsedMemoryTitle->Length() + + strUsedPercentage->Length() + + strUsedMemory->Length() + + KVcxHgExtraSpace ); + + context->Des().Append( *FreeMemoryTitle ); + context->Des().Append( KEnterString ); + context->Des().Append( *strFreePercentage); + context->Des().Append( KEnterString ); + context->Des().Append( *strFreeMemory ); + context->Des().Append( KEnterString ); + context->Des().Append( *UsedMemoryTitle ); + context->Des().Append( KEnterString ); + context->Des().Append( *strUsedPercentage ); + context->Des().Append( KEnterString ); + context->Des().Append( *strUsedMemory ); + + CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( *context ); + dlg->ExecuteLD(R_VCXHGMYVIDEOS_MEMORY_STATUS_MESSAGE_QUERY); + + CleanupStack::PopAndDestroy( context ); + CleanupStack::PopAndDestroy( strUsedMemory ); + CleanupStack::PopAndDestroy( UsedMemoryTitle ); + CleanupStack::PopAndDestroy( strFreeMemory ); + CleanupStack::PopAndDestroy( FreeMemoryTitle ); + CleanupStack::PopAndDestroy( strUsedPercentage ); + CleanupStack::PopAndDestroy( strFreePercentage ); + }