From 58c2b0a84813e6b07c870c91f87ed1d19c2c3101 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 18 Nov 2022 13:56:17 -0700 Subject: [PATCH] move midi maps folders and file extension out of control surfaces library --- libs/ardour/ardour/directory_names.h | 1 + libs/ardour/ardour/filename_extensions.h | 2 +- libs/ardour/ardour/filesystem_paths.h | 3 ++ libs/ardour/directory_names.cc | 1 + libs/ardour/filename_extensions.cc | 1 + libs/ardour/filesystem_paths.cc | 23 +++++++++++++++ libs/fst/wscript | 6 ++-- .../generic_midi_control_protocol.cc | 28 ++----------------- 8 files changed, 35 insertions(+), 30 deletions(-) diff --git a/libs/ardour/ardour/directory_names.h b/libs/ardour/ardour/directory_names.h index 6d60569c31..ea04a8db0b 100644 --- a/libs/ardour/ardour/directory_names.h +++ b/libs/ardour/ardour/directory_names.h @@ -53,6 +53,7 @@ namespace ARDOUR { LIBARDOUR_API extern const char* const externals_dir_name; LIBARDOUR_API extern const char* const lua_dir_name; LIBARDOUR_API extern const char* const media_dir_name; + LIBARDOUR_API extern const char* const midi_map_dir_name; }; diff --git a/libs/ardour/ardour/filename_extensions.h b/libs/ardour/ardour/filename_extensions.h index 6313e01ab1..6f6595f9ee 100644 --- a/libs/ardour/ardour/filename_extensions.h +++ b/libs/ardour/ardour/filename_extensions.h @@ -37,7 +37,7 @@ namespace ARDOUR { LIBARDOUR_API extern const char* const export_format_suffix; LIBARDOUR_API extern const char* const session_archive_suffix; LIBARDOUR_API extern const char* const template_archive_suffix; - + LIBARDOUR_API extern const char* const midi_map_suffix; } #endif diff --git a/libs/ardour/ardour/filesystem_paths.h b/libs/ardour/ardour/filesystem_paths.h index 028c93c002..d043eb3d58 100644 --- a/libs/ardour/ardour/filesystem_paths.h +++ b/libs/ardour/ardour/filesystem_paths.h @@ -89,6 +89,9 @@ namespace ARDOUR { LIBARDOUR_API std::string windows_package_directory_path (); #endif + LIBARDOUR_API PBD::Searchpath system_midi_map_search_path (); + LIBARDOUR_API std::string user_midi_map_directory (); + namespace ArdourVideoToolPaths { LIBARDOUR_API bool harvid_exe (std::string &harvid_exe); diff --git a/libs/ardour/directory_names.cc b/libs/ardour/directory_names.cc index 86bd220e10..6a092001b6 100644 --- a/libs/ardour/directory_names.cc +++ b/libs/ardour/directory_names.cc @@ -50,5 +50,6 @@ const char* const plugins_dir_name = X_("plugins"); const char* const externals_dir_name = X_("externals"); const char* const lua_dir_name = X_("scripts"); const char* const media_dir_name = X_("media"); +const char* const midi_map_dir_name = X_("midi_maps"); } diff --git a/libs/ardour/filename_extensions.cc b/libs/ardour/filename_extensions.cc index 86951b8f5c..a0acd73026 100644 --- a/libs/ardour/filename_extensions.cc +++ b/libs/ardour/filename_extensions.cc @@ -36,5 +36,6 @@ const char* const export_preset_suffix = X_(".preset"); const char* const export_format_suffix = X_(".format"); const char* const session_archive_suffix = X_(".ardour-session-archive"); const char* const template_archive_suffix = X_(".ardour-template-archive"); +const char* const midi_map_suffix = X_(".map"); } diff --git a/libs/ardour/filesystem_paths.cc b/libs/ardour/filesystem_paths.cc index 1d1bd125dd..505987cec9 100644 --- a/libs/ardour/filesystem_paths.cc +++ b/libs/ardour/filesystem_paths.cc @@ -31,6 +31,7 @@ #include #include "ardour/directory_names.h" +#include "ardour/filename_extensions.h" #include "ardour/filesystem_paths.h" #include "pbd/i18n.h" @@ -312,5 +313,27 @@ been_here_before_path (int version) return Glib::build_filename (user_config_directory (version), string (".a") + to_string (version)); } +static const char * const midimap_env_variable_name = "ARDOUR_MIDIMAPS_PATH"; + +Searchpath +system_midi_map_search_path () +{ + bool midimap_path_defined = false; + std::string spath_env (Glib::getenv (midimap_env_variable_name, midimap_path_defined)); + + if (midimap_path_defined) { + return spath_env; + } + + Searchpath spath (ardour_data_search_path()); + spath.add_subdirectory_to_paths (midi_map_dir_name); + return spath; +} + +std::string +user_midi_map_directory () +{ + return Glib::build_filename (user_config_directory(), midi_map_dir_name); +} } // namespace ARDOUR diff --git a/libs/fst/wscript b/libs/fst/wscript index e814277b03..e03e7c9753 100644 --- a/libs/fst/wscript +++ b/libs/fst/wscript @@ -40,7 +40,7 @@ def build(bld): 'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"', 'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"', ] - obj.use = [ 'libpbd' ] + obj.use = [ 'libpbd', 'libardour' ] obj.uselib = 'GIOMM DL UUID ARCHIVE CURL XML' if sys.platform == 'darwin': @@ -63,10 +63,10 @@ def build(bld): bld (features = 'c', name='vstwin', source='vstwin.c', uselib = 'GIOMM', includes = [ '../pbd/', '../ardour/', '.' ]) obj.uselib = ['GIOMM', 'DL', 'GDI32', 'ARCHIVE', 'CURL', 'XML'] obj.linkflags = ['-mwindows'] - obj.use = [ 'libpbd', 'libtemporal', 'libevoral', 'vstwin' ] + obj.use = [ 'libpbd', 'libtemporal', 'libevoral', 'libardour', 'vstwin' ] else: obj.uselib = ['GIOMM', 'DL', 'OSX', 'ARCHIVE', 'CURL', 'XML' ] - obj.use = [ 'libpbd', 'libtemporal', 'libevoral' ] + obj.use = [ 'libpbd', 'libtemporal', 'libevoral', 'libardour' ] obj.includes = [ '../pbd/', '../ardour/', '.' ] obj.defines = [ diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc index c169a83146..98e4f8d847 100644 --- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc +++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc @@ -50,6 +50,8 @@ #include "ardour/async_midi_port.h" #include "ardour/audioengine.h" #include "ardour/auditioner.h" +#include "ardour/directory_names.h" +#include "ardour/filename_extensions.h" #include "ardour/filesystem_paths.h" #include "ardour/session.h" #include "ardour/midi_ui.h" @@ -180,32 +182,6 @@ GenericMidiControlProtocol::bundles () return b; } - -static const char * const midimap_env_variable_name = "ARDOUR_MIDIMAPS_PATH"; -static const char* const midi_map_dir_name = "midi_maps"; -static const char* const midi_map_suffix = ".map"; - -Searchpath -system_midi_map_search_path () -{ - bool midimap_path_defined = false; - std::string spath_env (Glib::getenv (midimap_env_variable_name, midimap_path_defined)); - - if (midimap_path_defined) { - return spath_env; - } - - Searchpath spath (ardour_data_search_path()); - spath.add_subdirectory_to_paths(midi_map_dir_name); - return spath; -} - -static std::string -user_midi_map_directory () -{ - return Glib::build_filename (user_config_directory(), midi_map_dir_name); -} - static bool midi_map_filter (const string &str, void* /*arg*/) {