scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimSettings.h
branchRCL_3
changeset 26 e8d784ac1a4b
parent 0 040fcad49f44
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimSettings.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,183 @@
+/*
+* 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
+*
+*/
+
+
+
+#ifndef C_CBMPANIMSETTINGS_H
+#define C_CBMPANIMSETTINGS_H
+
+#include <e32std.h>
+#include "CBmpAnimIniData.h"
+
+// Default plugin name
+_LIT(KPluginName, "BitmapAnimator");
+const TInt KMaxPluginNameLength = 30;
+
+// BmpAnim settings
+class CBmpAnimSettings : public CBase
+    {
+public:
+    // User constructor
+    static CBmpAnimSettings* NewL();
+
+    // Construction & destruction    
+private:
+    CBmpAnimSettings();
+    void ConstructL();
+public:
+    virtual ~CBmpAnimSettings();
+
+public:  // Access functions
+    // Load the current settings from file (may be used from outside,
+    // hence public). Usually just called from ConstructL(), tho
+    TBool LoadSettingsL();
+
+    // Save settings
+    TBool SaveSettingsL();
+    
+    // Get running time (-1 = not defined)
+    inline TInt RunningTime();
+    
+    // Get loop count (-1 = not defined)
+    inline TInt LoopCount();
+    
+    // Get suspend time (-1 = indefinitely)
+    inline TInt SuspendTime();
+    
+    // Get / set default timing
+    inline TInt Timing();
+    inline void SetTiming(TInt aTiming);
+
+    // Get plugin name
+    inline TDesC& PluginName();
+    
+    // Get bitmap file name
+    inline TDesC& BitmapFilename();
+
+    // Get landscape bitmap file name
+    inline TDesC& BitmapFilenameLandscape();
+
+    // Get/set lights on time (secs)
+    inline TInt Lights();
+    inline void SetLights(TInt aSecs);
+
+    // Landscape used?
+    inline TInt UseLandscape();
+
+    // Should bitmaps be scaled to screen
+    inline TInt ScaleBmps();
+    
+private:  // Utility functions
+    // Opens the settings file (initialises the settings reader)
+    TInt OpenSettings();
+    
+    // Figures out the bitmap file name
+    void LoadBitmapFileName(TBool aLandscape = EFalse);
+    
+private:
+    // Settings file handler
+    CBmpAnimIniData* iIniData;
+    
+    // Time to run the animation. Overrides loop count
+    TInt iRunningTime;
+
+    // Number of loops to be run. Used if run time is undefined
+    TInt iLoopCount;
+        
+    // Time to suspend the animation. -1 = indefinitely
+    TInt iSuspendTime;
+    
+    // Time to display each image. Individual image timing overrides this.
+    TInt iTiming;
+
+    // Plugin name
+    TBuf<KMaxPluginNameLength> iPluginName;
+            
+    // Bitmap file name
+    TFileName iMbmFileName;
+
+    // Landscale bitmap file name
+    TFileName iMbmFileNameL;
+
+    // Lights on time (secs)
+    TInt iLights;
+
+    // Landscape images used (0 = no)
+    TInt iUseLandscape;
+    
+    // Bitmaps scaled to screen size (0 = no)
+    TInt iScaleBmps;
+    };
+
+
+// --- inlines ---
+
+// Get run time (-1 = not defined)
+inline TInt CBmpAnimSettings::RunningTime()
+    { return iRunningTime; }
+
+
+// Get loop count (-1 = not defined)
+inline TInt CBmpAnimSettings::LoopCount()
+    { return iLoopCount; }
+
+
+// Get suspend time (-1 = indefinitely)
+inline TInt CBmpAnimSettings::SuspendTime()
+    { return iSuspendTime; }
+
+
+// Get default timing
+inline TInt CBmpAnimSettings::Timing()
+    { return iTiming; }
+
+// Set default timing
+inline void CBmpAnimSettings::SetTiming(TInt aTiming)
+    { iTiming = aTiming; }
+
+
+// Get default bitmap file
+inline TDesC16& CBmpAnimSettings::PluginName()
+    { return iPluginName; }
+    
+    
+// Get default bitmap file
+inline TDesC16& CBmpAnimSettings::BitmapFilename()
+    { return iMbmFileName; }
+    
+// Get landscape bitmap file
+inline TDesC16& CBmpAnimSettings::BitmapFilenameLandscape()
+    { return iMbmFileNameL; }
+
+// Get lights on time (secs)
+inline TInt CBmpAnimSettings::Lights()
+    { return iLights; }
+
+    
+// Set lights on time (secs)
+inline void CBmpAnimSettings::SetLights(TInt aSecs)
+    { iLights = aSecs; }
+
+// Use landscape?
+inline TInt CBmpAnimSettings::UseLandscape()
+    { return iUseLandscape; }
+
+// Scale bitmaps?
+inline TInt CBmpAnimSettings::ScaleBmps()
+    { return iScaleBmps; }
+
+#endif  // C_CBMPANIMSETTINGS_H