// This file is part of Gopher2600. // // Gopher2600 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. // // Gopher2600 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 Gopher2600. If not, see . package debugger import ( "github.com/jetsetilly/gopher2600/prefs" "github.com/jetsetilly/gopher2600/resources" ) type Preferences struct { dsk *prefs.Disk // last ROM to be loaded into the emulation RecentROM prefs.String } func (p *Preferences) String() string { return p.dsk.String() } // newPreferences is the preferred method of initialisation for the Preferences type. func newPreferences() (*Preferences, error) { p := &Preferences{} pth, err := resources.JoinPath(prefs.DefaultPrefsFile) if err != nil { return nil, err } p.dsk, err = prefs.NewDisk(pth) if err != nil { return nil, err } err = p.dsk.Add("emulation.recentrom", &p.RecentROM) if err != nil { return nil, err } err = p.dsk.Load(true) if err != nil { return nil, err } return p, nil } // Load disassembly preferences and apply to the current disassembly. func (p *Preferences) Load() error { return p.dsk.Load(false) } // Save current disassembly preferences to disk. func (p *Preferences) Save() error { return p.dsk.Save() }