diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-03-11 12:12:50 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-03-11 13:24:47 -0500 |
commit | f9ce27fd6538cc90be0f6908cb321d546d335d20 (patch) | |
tree | c6e0cd5b9517932c725b6847fa4d838ed7ccd52d | |
parent | d563b1173ba319c1f26c656a55ed2507e06e0519 (diff) |
global ARDOUR signal to ask GUI to copy configuration files across versions
-rw-r--r-- | libs/ardour/ardour/ardour.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/filesystem_paths.h | 2 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 20 |
3 files changed, 22 insertions, 1 deletions
diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index 29cfa4b354..486d5def7d 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -51,6 +51,7 @@ namespace ARDOUR { extern LIBARDOUR_API PBD::Signal3<void,std::string,std::string,bool> PluginScanMessage; extern LIBARDOUR_API PBD::Signal1<void,int> PluginScanTimeout; extern LIBARDOUR_API PBD::Signal0<void> GUIIdle; + extern LIBARDOUR_API PBD::Signal2<void,std::string,std::string> CopyConfigurationFiles; /** * @param with_vst true to enable VST Support diff --git a/libs/ardour/ardour/filesystem_paths.h b/libs/ardour/ardour/filesystem_paths.h index 82b84f5424..feca4ccb37 100644 --- a/libs/ardour/ardour/filesystem_paths.h +++ b/libs/ardour/ardour/filesystem_paths.h @@ -32,7 +32,7 @@ namespace ARDOUR { * If @param version is negative, the build-time string PROGRAM_VERSION * will be used to determine the version number. * - * @post user_config_directory() exists + * @post user_config_directory() exists IF version was negative. * * */ diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index 5f98a130b1..6370947652 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -131,6 +131,7 @@ PBD::Signal1<void,std::string> ARDOUR::BootMessage; PBD::Signal3<void,std::string,std::string,bool> ARDOUR::PluginScanMessage; PBD::Signal1<void,int> ARDOUR::PluginScanTimeout; PBD::Signal0<void> ARDOUR::GUIIdle; +PBD::Signal2<void,std::string,std::string> ARDOUR::CopyConfigurationFiles; namespace ARDOUR { extern void setup_enum_writer (); @@ -238,6 +239,23 @@ lotsa_files_please () #endif } +static void +maybe_copy_old_configuration_files () +{ + int version = atoi (X_(PROGRAM_VERSION)); + + if (version <= 1) { + return; + } + + string old_config_dir = user_config_directory (version-1); + string current_config_dir = user_config_directory (); + + if (Glib::file_test (old_config_dir, Glib::FILE_TEST_IS_DIR)) { + CopyConfigurationFiles (old_config_dir, current_config_dir); /* EMIT SIGNAL */ + } +} + bool ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir) { @@ -284,6 +302,8 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir // allow ardour the absolute maximum number of open files lotsa_files_please (); + maybe_copy_old_configuration_files (); + #ifdef HAVE_LRDF lrdf_init(); #endif |