// Pi1541 - A Commodore 1541 disk drive emulator // Copyright(C) 2018 Stephen White // // This file is part of Pi1541. // // Pi1541 is free software : you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Pi1541 is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Pi1541. If not, see . #ifndef OPTIONS_H #define OPTIONS_H class TextParser { public: TextParser(void) : data(0) { } void SetData(char* buffer) { data = buffer; } char* GetToken(bool includeSpace = false); protected: char* data; bool ParseComment(); void SkipWhiteSpace(); }; class Options : public TextParser { public: Options(void); void Process(char* buffer); inline unsigned int GetDeviceID() const { return deviceID; } inline unsigned int GetOnResetChangeToStartingFolder() const { return onResetChangeToStartingFolder; } inline const char* GetRomFontName() const { return ROMFontName; } const char* GetRomName(int index) const; inline const char* GetStarFileName() const { return starFileName; } inline unsigned int GetExtraRAM() const { return extraRAM; } inline unsigned int GetRAMBOard() const { return RAMBOard; } inline unsigned int GetDisableSD2IECCommands() const { return disableSD2IECCommands; } inline unsigned int GetSupportUARTInput() const { return supportUARTInput; } inline unsigned int GraphIEC() const { return graphIEC; } inline unsigned int QuickBoot() const { return quickBoot; } inline unsigned int DisplayPNGIcons() const { return displayPNGIcons; } inline unsigned int SoundOnGPIO() const { return soundOnGPIO; } inline unsigned int SplitIECLines() const { return splitIECLines; } inline unsigned int InvertIECInputs() const { return invertIECInputs; } inline unsigned int InvertIECOutputs() const { return invertIECOutputs; } inline unsigned int IgnoreReset() const { return ignoreReset; } inline unsigned int ScreenWidth() const { return screenWidth; } inline unsigned int ScreenHeight() const { return screenHeight; } static unsigned GetDecimal(char* pString); private: unsigned int deviceID; unsigned int onResetChangeToStartingFolder; unsigned int extraRAM; unsigned int RAMBOard; unsigned int disableSD2IECCommands; unsigned int supportUARTInput; unsigned int graphIEC; unsigned int quickBoot; unsigned int displayPNGIcons; unsigned int soundOnGPIO; unsigned int invertIECInputs; unsigned int invertIECOutputs; unsigned int splitIECLines; unsigned int ignoreReset; unsigned int screenWidth; unsigned int screenHeight; char starFileName[256]; char ROMFontName[256]; char ROMName[256]; char ROMNameSlot2[256]; char ROMNameSlot3[256]; char ROMNameSlot4[256]; char ROMNameSlot5[256]; char ROMNameSlot6[256]; char ROMNameSlot7[256]; char ROMNameSlot8[256]; }; #endif