diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.am | 2 | ||||
| -rw-r--r-- | src/drumgizmo.cc | 10 | ||||
| -rw-r--r-- | src/drumgizmo.h | 2 | ||||
| -rw-r--r-- | src/drumgizmoconf.cc | 64 | ||||
| -rw-r--r-- | src/drumgizmoconf.h | 43 | 
5 files changed, 121 insertions, 0 deletions
| diff --git a/src/Makefile.am b/src/Makefile.am index 56e06b4..f2a392d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -47,6 +47,7 @@ libdg_la_SOURCES = \  	domloader.cc \  	dgxmlparser.cc \  	drumgizmo.cc \ +	drumgizmoconf.cc \  	drumkit.cc \  	drumkitloader.cc \  	events.cc \ @@ -95,6 +96,7 @@ EXTRA_DIST = \  	dgxmlparser.h \  	domloader.h \  	drumgizmo.h \ +	drumgizmoconf.h \  	drumkit.h \  	drumkitloader.h \  	event.h \ diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc index 3af5cbc..ca91c12 100644 --- a/src/drumgizmo.cc +++ b/src/drumgizmo.cc @@ -55,6 +55,16 @@ DrumGizmo::DrumGizmo(Settings& settings,  	loader.init();  	setSamplerate(44100.0f, settings.resampling_quality.load());  	settings_getter.audition_counter.hasChanged(); // Reset audition_counter + +	config.load(); +	if(config.defaultMidimap != "" && settings.midimap_file.load() == "") +	{ +		settings.midimap_file.store(config.defaultMidimap); +	} +	if(config.defaultKit != "" && settings.drumkit_file.load() == "") +	{ +		settings.drumkit_file.store(config.defaultKit); +	}  }  DrumGizmo::~DrumGizmo() diff --git a/src/drumgizmo.h b/src/drumgizmo.h index a075dd6..f08c9f7 100644 --- a/src/drumgizmo.h +++ b/src/drumgizmo.h @@ -38,6 +38,7 @@  #include "events.h"  #include "events_ds.h"  #include "audiofile.h" +#include "drumgizmoconf.h"  #include "drumkit.h"  #include "drumkitloader.h"  #include "audiocache.h" @@ -80,6 +81,7 @@ private:  protected:  	DrumKitLoader loader; +	DrumgizmoConfig config;  	AudioOutputEngine& oe;  	AudioInputEngine& ie; diff --git a/src/drumgizmoconf.cc b/src/drumgizmoconf.cc new file mode 100644 index 0000000..93509e8 --- /dev/null +++ b/src/drumgizmoconf.cc @@ -0,0 +1,64 @@ +/* -*- Mode: c++ -*- */ +/*************************************************************************** + *            drumgizmoconf.cc + * + *  Sat May  2 09:18:32 CEST 2020 + *  Copyright 2020 André Nusser + *  andre.nusser@googlemail.com + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU Lesser General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo 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 Lesser General Public License for more details. + * + *  You should have received a copy of the GNU Lesser General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ +#include "drumgizmoconf.h" + +#define CONFIGFILENAME "drumgizmo.conf" + +DrumgizmoConfig::DrumgizmoConfig() +	: ConfigFile(CONFIGFILENAME) +{ +	load(); +} + +DrumgizmoConfig::~DrumgizmoConfig() +{ +	save(); +} + +bool DrumgizmoConfig::load() +{ +	defaultKit.clear(); +	defaultMidimap.clear(); + +	if(!ConfigFile::load()) +	{ +		return false; +	} + +	defaultKit = getValue("defaultKit"); +	defaultMidimap = getValue("defaultMidimap"); + +	return true; +} + +bool DrumgizmoConfig::save() +{ +	setValue("defaultKit", defaultKit); +	setValue("defaultMidimap", defaultMidimap); + +	return ConfigFile::save(); +} diff --git a/src/drumgizmoconf.h b/src/drumgizmoconf.h new file mode 100644 index 0000000..f031730 --- /dev/null +++ b/src/drumgizmoconf.h @@ -0,0 +1,43 @@ +/* -*- Mode: c++ -*- */ +/*************************************************************************** + *            drumgizmoconf.h + * + *  Sat May  2 09:18:32 CEST 2020 + *  Copyright 2020 André Nusser + *  andre.nusser@googlemail.com + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU Lesser General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo 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 Lesser General Public License for more details. + * + *  You should have received a copy of the GNU Lesser General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ +#pragma once + +#include <configfile.h> + +class DrumgizmoConfig +	: public ConfigFile +{ +public: +	DrumgizmoConfig(); +	~DrumgizmoConfig(); + +	bool load() override; +	bool save() override; + +	std::string defaultKit; +	std::string defaultMidimap; +}; | 
