diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2015-05-15 11:53:17 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2015-05-15 11:53:17 +0200 |
commit | 9555c6e2734977c82023907f82a3ae82f845720a (patch) | |
tree | 75354bb1449b49639bd8171fac30d9afa12380b7 /plugingui | |
parent | 6a19e8f182183ad88df91d4a46e418fb4d42f9bd (diff) |
New ConfigFile class for generic config file reading/writing in homedir .drumgizmo folder. Use said new class for PluginConfig class.
Diffstat (limited to 'plugingui')
-rw-r--r-- | plugingui/Makefile.am | 1 | ||||
-rw-r--r-- | plugingui/pluginconfig.cc | 122 | ||||
-rw-r--r-- | plugingui/pluginconfig.h | 22 |
3 files changed, 18 insertions, 127 deletions
diff --git a/plugingui/Makefile.am b/plugingui/Makefile.am index bdb11cb..00b0881 100644 --- a/plugingui/Makefile.am +++ b/plugingui/Makefile.am @@ -14,6 +14,7 @@ plugingui_CFLAGS = $(plugingui_CXXFLAGS) plugingui_SOURCES = \ $(PLUGIN_GUI_SOURCES) \ + $(top_srcdir)/src/configfile.cc \ $(top_srcdir)/src/thread.cc \ $(top_srcdir)/src/semaphore.cc \ $(top_srcdir)/src/mutex.cc \ diff --git a/plugingui/pluginconfig.cc b/plugingui/pluginconfig.cc index d57d9df..0beef6e 100644 --- a/plugingui/pluginconfig.cc +++ b/plugingui/pluginconfig.cc @@ -26,140 +26,34 @@ */ #include "pluginconfig.h" -#include <stdio.h> -#include <errno.h> -#include <string.h> -#include <stdlib.h> - -#include "directory.h" - -#ifdef WIN32 -#include <direct.h> -#include <windows.h> -#include <Shlobj.h> -#include <Shlwapi.h> -#else -#endif - #include <hugin.hpp> #define CONFIGFILENAME "plugingui.conf" -#ifdef WIN32 - #define SEP "\\" - #define CONFIGDIRNAME ".drumgizmo" -#else - #define SEP "/" - #define CONFIGDIRNAME ".drumgizmo" -#endif - Config::Config() + : ConfigFile(CONFIGFILENAME) { - } Config::~Config() { - -} - -static std::string configPath() { - #ifdef WIN32 - std::string configpath; - TCHAR szPath[256]; - if(SUCCEEDED(SHGetFolderPath(NULL, - CSIDL_APPDATA | CSIDL_FLAG_CREATE, - NULL, - 0, - szPath))); { - configpath = szPath; - } -#else - std::string configpath = strdup(getenv("HOME")); -#endif - configpath += SEP; - configpath += CONFIGDIRNAME; - - return configpath; -} - -static bool createConfigPath() { - std::string configpath = configPath(); - - if(!Directory::exists(configpath)) { - DEBUG(pluginconfig, "No configuration exists, creating directory '%s'\n", configpath.c_str()); -#ifdef WIN32 - if( (mkdir(configpath.c_str())) < 0) { -#else - if( (mkdir(configpath.c_str(), 0755)) < 0) { -#endif - DEBUG(pluginconfig, "Could not create config directory\n"); - } - return false; - } - - return true; -} - -static FILE* openConfigFile(std::string mode) { - - std::string configpath = configPath(); - - FILE *fp; - std::string configfile = configpath; - configfile += SEP; - configfile += CONFIGFILENAME; - - DEBUG(pluginconfig, "Opening config file '%s'\n", configfile.c_str()); - if(! (fp = fopen(configfile.c_str(), mode.c_str())) ) { - return NULL; - } - - return fp; } void Config::load() { - DEBUG(pluginconfig, "Loading config file...\n"); - FILE *fp = openConfigFile("r"); - if(!fp) return; - lastkit.clear(); lastmidimap.clear(); - char buf[4096]; - while( fgets(buf, 4096, fp) ) { - if(!strncmp(buf, "lastkit:", 8)) { - DEBUG(pluginconfig, "Loading last kit path\n"); - // Dont copy newline - if(strlen(buf) > 8 + 1) { - lastkit.append(buf+8, strlen(buf+8) - 1); - DEBUG(pluginconfig, "\t path is %s\n", lastkit.c_str()); - } - } - if(!strncmp(buf, "lastmidimap:", 12)) { - DEBUG(pluginconfig, "Loading lastmidimap path\n"); - // Dont copy newline - if(strlen(buf) > 12+1) lastmidimap.append(buf+12, strlen(buf+12) - 1); - DEBUG(pluginconfig, "\t path is %s\n", lastmidimap.c_str()); - } - } + ConfigFile::load(); + + lastkit = getValue("lastkit"); + lastmidimap = getValue("lastmidimap"); } void Config::save() { - DEBUG(pluginconfig, "Saving configuration...\n"); - - createConfigPath(); - - FILE *fp = openConfigFile("w"); - if(!fp) return; - - std::string buf; - buf.append("lastkit:" + lastkit + '\n'); - buf.append("lastmidimap:" + lastmidimap + '\n'); - - fputs(buf.c_str(), fp); + setValue("lastkit", lastkit); + setValue("lastmidimap", lastmidimap); - fclose(fp); + ConfigFile::save(); } diff --git a/plugingui/pluginconfig.h b/plugingui/pluginconfig.h index d0e9bcd..29d2ef5 100644 --- a/plugingui/pluginconfig.h +++ b/plugingui/pluginconfig.h @@ -27,22 +27,18 @@ #ifndef __DRUMGIZMO_CONFIG_H__ #define __DRUMGIZMO_CONFIG_H__ -#include <string> -#include <list> +#include <configfile.h> -#define DIRECTORY_HIDDEN 1 +class Config : public ConfigFile { +public: + Config(); + ~Config(); -class Config { + void load(); + void save(); - public: - Config(); - ~Config(); - - void load(); - void save(); - - std::string lastkit; - std::string lastmidimap; + std::string lastkit; + std::string lastmidimap; }; #endif/*__DRUMGIZMO_CONFIG_H__*/ |