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__*/ | 
