--- a/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimSettings.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
-* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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: Loads and stores the bitmap animator settings
-*
-*/
-
-
-
-
-
-#include <e32std.h>
-
-#include "CBmpAnimSettings.h"
-
-#include "BmpAnimUtils.h"
-#include <f32file.h>
-
-// Defaults
-const TInt KRunningTime = 1000000 * 60; // 60 secs
-const TInt KTiming = 200000; // 5 fps
-const TInt KSuspendTime = -1; // Max = KMaxTInt, -1 = indefinitely
-const TInt KUndefined = -1;
-
-// Configuration file name
-_LIT(KIniFile, "BmpAnimScrPlugin.ini");
-
-// Default bitmap file name
-_LIT(KMbmFileName, "BmpAnimScrPlugin.mbm");
-
-// Default bitmap file name - lansdscape
-_LIT(KMbmFileNameL, "BmpAnimScrPluginL.mbm");
-
-// Basic info section name
-_LIT8(KIniSectionInfo, "info");
-
-// Info section keys
-_LIT8(KIniKeyName, "name"); // plugin name
-_LIT8(KIniKeyNumImages, "numimages"); // number of images
-_LIT8(KIniKeyMbmFile, "mbmfile"); // name of imagefile
-_LIT8(KIniKeyMbmFileL, "mbmfilelandscape"); // name of landscape imagefile
-_LIT8(KIniKeyRunningTime, "runningtime"); // time to run animation (in millis)
-_LIT8(KIniKeyLoopCount, "loopcount"); // loop count (if time is not defined)
-_LIT8(KIniKeySuspendTime, "suspendtime"); // time to suspend (in millis)
-_LIT8(KIniKeyTiming, "timing"); // time to display each image (RE-USED BELOW)
-_LIT8(KIniKeyLights, "lights"); // lights on for 5 secs. Over 5 = number of secs
-_LIT8(KIniKeyUseLandscape, "uselandscape"); // 1 = landscape image file used
-_LIT8(KIniKeyScaleBmps, "scalebmps"); // 1 = bitmaps scaled to screen size
-
-// Image section base name
-_LIT8(KIniSectionImageBase, "image"); // image information section name
-
-// Image section keys
-_LIT8(KIniKeyType, "type"); // 0 = background, 1 = bitmap, 2 = icon
-_LIT8(KIniKeyIndex, "index"); // index of image in mbm
-_LIT8(KIniKeyMaskIndex, "maskindex"); // index of icon mask in mbm
-_LIT8(KIniKeyFile, "file"); // name of image file (not yet supported)
-_LIT8(KIniKeyPosX, "posx"); // display position X
-_LIT8(KIniKeyPosY, "posy"); // display position Y
-// _LIT8(KIniKeyTiming, "timing"); // time to display this image (NOTE RE-USE!)
-
-
-// User constructor
-CBmpAnimSettings* CBmpAnimSettings::NewL()
- {
- CBmpAnimSettings* self = new(ELeave) CBmpAnimSettings();
-
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
-
- return self;
- }
-
-
-// C'tor, sets defaults
-CBmpAnimSettings::CBmpAnimSettings()
- : iRunningTime(KRunningTime),
- iLoopCount(KUndefined),
- iSuspendTime(KSuspendTime),
- iTiming(KTiming),
- iPluginName(KPluginName),
- iMbmFileName(KMbmFileName),
- iMbmFileNameL(KMbmFileNameL),
- iLights(KUndefined),
- iUseLandscape(0),
- iScaleBmps(0)
- {
- }
-
-
-// Two-phase constructor
-void CBmpAnimSettings::ConstructL()
- {
- // Try to open the settings file
- if (OpenSettings() == KErrNone)
- {
- LoadSettingsL();
- }
- }
-
-
-// D'tor
-CBmpAnimSettings::~CBmpAnimSettings()
- {
- delete iIniData;
- }
-
-
-// --- Access functions ---
-
-
-// Loads (common) settings from the settings file
-TBool CBmpAnimSettings::LoadSettingsL()
- {
- // Sanity check
- if (!iIniData)
- {
- return EFalse;
- }
-
- // Running time (never mind the section)
- if (!(iIniData->FindVar(KIniKeyRunningTime, iRunningTime)))
- {
- // Running time not found - try loop count
- if (!(iIniData->FindVar(KIniKeyLoopCount, iLoopCount)))
- {
- // That's not there either - use default running time
- iRunningTime = KRunningTime;
- }
- else
- {
- // Loop count found - running time is undefined
- iRunningTime = KUndefined;
- }
- }
-
- // Suspend time
- if (!(iIniData->FindVar(KIniKeySuspendTime, iSuspendTime)))
- {
- iSuspendTime = KSuspendTime; // TODO: KUndefined
- }
-
- // Default timing (need to use section as well)
- if (!(iIniData->FindVar(
- KIniSectionInfo,
- KIniKeyTiming,
- iTiming)))
- {
- iTiming = KTiming;
- }
-
- // Lights time
- if (!(iIniData->FindVar(KIniKeyLights, iLights)))
- {
- iLights = KUndefined;
- }
-
- // Use landscape
- if (!(iIniData->FindVar(KIniKeyUseLandscape, iUseLandscape)))
- {
- iUseLandscape = 0;
- }
-
- // Scale bmps
- if (!(iIniData->FindVar(KIniKeyScaleBmps, iScaleBmps)))
- {
- iScaleBmps = 0;
- }
-
- // Plugin name
- iPluginName = KNullDesC;
- if ((!(iIniData->FindVar(KIniKeyName, iPluginName))) ||
- (iPluginName.Length() <= 0))
- {
- // Not found, or empty setting - use default
- iPluginName = KPluginName;
- }
-
- // Load BMP file names
- LoadBitmapFileName();
- LoadBitmapFileName(ETrue);
-
- BMALOGGER_WRITEF(_L("BMA: Detected settings:"));
- BMALOGGER_WRITEF(_L(" Name: %S"), &iPluginName);
- BMALOGGER_WRITEF(_L(" Run for: %d"), RunningTime());
- BMALOGGER_WRITEF(_L(" Loops: %d"), LoopCount());
- BMALOGGER_WRITEF(_L(" Suspend: %d"), SuspendTime());
- BMALOGGER_WRITEF(_L(" Timing: %d"), Timing());
- BMALOGGER_WRITEF(_L(" Lights: %d"), Lights());
- BMALOGGER_WRITEF(_L(" Bitmap file: %S"), &iMbmFileName);
- BMALOGGER_WRITEF(_L(" Lanscape bitmap file: %S"), &iMbmFileNameL);
- BMALOGGER_WRITEF(_L(" Use landscape: %d"), UseLandscape());
- BMALOGGER_WRITEF(_L(" Scale bmps: %d"), ScaleBmps());
- BMALOGGER_WRITEF(_L("BMA: End settings"));
-
- return ETrue;
- }
-
-
-// Saves (common) settings
-TBool CBmpAnimSettings::SaveSettingsL()
- {
- // Sanity check
- if (!iIniData)
- {
- return EFalse;
- }
-
- // Write lights
- if (iIniData->WriteVarL(
- KIniSectionInfo, KIniKeyLights, iLights) == KErrNone)
- {
- iIniData->CommitL();
- }
-
- return ETrue;
- }
-
-// --- private ---
-
-
-// Opens the settings file (initialises the settings reader)
-TInt CBmpAnimSettings::OpenSettings()
- {
- // Locate the dll path
- TFileName dllName;
-// Dll::FileName(dllName);
- dllName.Append(_L("\\resource\\plugins\\"));
-
- // Combine the dll path with the settings file name
- TParse p;
- p.SetNoWild(KIniFile, &dllName, NULL);
-
- BMALOGGER_WRITEF(_L("Searching INI: %S"), &(p.FullName()));
-
- // Try to open the INI file from plugin directory
- TRAPD(err, iIniData = CBmpAnimIniData::NewL(p.FullName()));
-
- if (err != KErrNone)
- {
- BMALOGGER_WRITE("INI not in plugin dir, trying \\system\\data");
- // Try \system\data instead
- TRAP(err, iIniData = CBmpAnimIniData::NewL(KIniFile));
- }
-
- if (err != KErrNone)
- {
- // Make sure the settings are not attempted to be used
- delete iIniData;
- iIniData = NULL;
- BMALOGGER_WRITE("INI not found");
- }
- else
- {
- BMALOGGER_WRITE("INI found");
- }
-
- return err;
- }
-
-
-// Gets the bitmap file name from settings, or uses default
-void CBmpAnimSettings::LoadBitmapFileName(TBool aLandscape)
- {
- // Get the DLL path name. The path is used, if only a file name
- // is specified.
- TFileName dllName;
- Dll::FileName(dllName);
-
- // Get whatever's in the settings
- TFileName fileName;
- TBool res = ETrue;
- if (aLandscape)
- {
- res = iIniData->FindVar(KIniKeyMbmFileL, fileName);
- }
- else
- {
- res = iIniData->FindVar(KIniKeyMbmFile, fileName);
- }
-
- if (!res)
- {
- // Not found - use the default name with the plugin directory
- // there's really no need to do anything here (I think)
- fileName = (_L("\\resource\\plugins\\"));
- }
-
- // The combination order should be:
- // 1. use whatever was defined in the settings (part or full path)
- // 2. use the default name part
- // 3. use the DLL path, if no path parts have yet been defined
- TParse p;
- if (p.SetNoWild(fileName,
- aLandscape ? &KMbmFileNameL : &KMbmFileName,
- &dllName) == KErrNone)
- {
- if (aLandscape)
- {
- iMbmFileNameL = p.FullName();
- }
- else
- {
- iMbmFileName = p.FullName();
- }
- }
- }
-
-// End of File