Files
Scanning the repository...
Last update 6 years 6 months
by
Olivier Gillet
settings.cc// Copyright 2012 Olivier Gillet. // // Author: Olivier Gillet (olivier@mutable-instruments.net) // // This program 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. // This program 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 this program. If not, see <http://www.gnu.org/licenses/>. // // Settings written to eeprom #include "edges/settings.h" #include "edges/storage.h" namespace edges { /* static */ SettingsData Settings::data_; /* static */ int16_t Settings::previous_code_[kNumChannels]; /* static */ int16_t Settings::previous_pitch_[kNumChannels]; /* extern */ Settings settings; typedef SettingsData PROGMEM prog_SettingsData; const prog_SettingsData init_settings PROGMEM = { { { 0, false, false, 3, 0, { 512, 1536, 0, 0, 0, 0, 0 }, 1536, 15360, -7680 }, { 0, false, false, 3, 0, { 512, 896, 0, 0, 0, 0, 0 }, 1536, 15360, -7680 }, { 0, false, false, 4, 0, { 512, 896, 1536, 0, 0, 0, 0 }, 1536, 15360, -7680 }, { 0, false, false, 5, 0, { 512, 896, 1536, 3072, 0, 0, 0 }, 1536, 15360, -7680 } }, 0, 0 }; template<> struct StorageLayout<SettingsData> { static uint16_t eeprom_address() { return 0; } static const prog_char* init_data() { return (prog_char*)&init_settings; } }; /* static */ void Settings::Init(bool reset_to_factory_defaults) { if (reset_to_factory_defaults) { storage.ResetToFactoryDefaults(&data_); } else { storage.Load(&data_); } } /* static */ void Settings::Save() { storage.Save(data_); } } // namespace edges