emulator/emulatorbsp/win_drive/settings_manager.h
changeset 0 cec860690d41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emulator/emulatorbsp/win_drive/settings_manager.h	Tue Feb 02 01:39:10 2010 +0200
@@ -0,0 +1,93 @@
+// Copyright (c) 2007-2009 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:
+// Definitions of the classes responsible for the settings handling in the .ini file
+// 
+//
+
+/**
+ @file
+*/
+
+#ifndef SETTINGS_MANAGER_H
+#define SETTINGS_MANAGER_H
+
+#include "common.h"
+
+#define WIN32_LEAN_AND_MEAN
+#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
+#include <windows.h>
+#pragma warning( default : 4201 ) // nonstandard extension used : nameless struct/union
+
+
+//-----------------------------------------------------------------------------
+
+/** This class is the interface to the various settings from ini file */
+class TSettingsManager
+{
+ public:
+    
+    static TSettingsManager* Create(TInt aEpocDrvNumber);
+
+    //-- API for the particular user of this class
+    TUint32 MediaSectorSize() const;
+    TUint32 MediaSizeInSectors() const;
+    TBool   WinDeviceName(char* apszName, TUint aBufLen) const;
+    TBool   IsReadOnly() const;
+
+    TUint32 TMediaType_Override() const;
+    void    MediaAtt_OverrideMasks(TUint32 &aAndMask, TUint32 &aOrMask) const;
+    void    DriveAtt_OverrideMasks(TUint32 &aAndMask, TUint32 &aOrMask) const;
+
+ protected:
+
+    TSettingsManager(const char* apFileName, TInt aEpocDrvNumber);
+
+    TSettingsManager();
+    TSettingsManager(const TSettingsManager&);
+    TSettingsManager& operator=(const TSettingsManager&);
+
+    //-- low-level API, for internal use only
+    DWORD   ReadString (const char* aAppName, const char* aKeyName, const char* aStrDefault, char* aStrDest, DWORD aSize) const;
+    int     ReadInt (const char* aAppName, const char* aKeyName, int aDefaultIntVal) const;
+    TBool   ReadBool(const char* aAppName, const char* aKeyName, int  aDefaultBoolVal) const;
+    TBool   ReadUintFromHex(const char* aAppName, const char* aKeyName, TUint32& aVal) const;
+
+    inline const char* IniFileName() const {return iIniFileName;}
+    inline const char* DriveSection() const {return iDrvSectionName;}
+
+
+ private:
+    
+    char iIniFileName[KMaxFileName];
+    char iDrvSectionName[20];
+
+};
+
+
+//-----------------------------------------------------------------------------
+
+#endif //SETTINGS_MANAGER_H
+
+
+
+
+
+
+
+
+
+
+
+
+