X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_unit.cc;h=add2407f841cfc87f9602aed7f4911c934fc3e64;hb=8a128b33d38172ae525ac798c53bc105bc4e2c64;hp=89aa99bac8f5f903f98d0b81b7d63c6d72618982;hpb=3cd8138a419cb165f56070ace0b21a1e63ec5a43;p=ardour.git diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 89aa99bac8..add2407f84 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -28,12 +28,13 @@ #include "pbd/xml++.h" #include "pbd/convert.h" #include "pbd/whitespace.h" -#include "pbd/pathscanner.h" +#include "pbd/file_utils.h" #include "pbd/locale_guard.h" #include #include #include +#include #include "ardour/ardour.h" #include "ardour/audioengine.h" @@ -65,13 +66,6 @@ using namespace std; using namespace PBD; using namespace ARDOUR; -#ifndef AU_STATE_SUPPORT -static bool seen_get_state_message = false; -static bool seen_set_state_message = false; -static bool seen_loading_message = false; -static bool seen_saving_message = false; -#endif - AUPluginInfo::CachedInfoMap AUPluginInfo::cached_info; static string preset_search_path = "/Library/Audio/Presets:/Network/Library/Audio/Presets"; @@ -1005,7 +999,7 @@ AUPlugin::output_streams() const } bool -AUPlugin::can_support_io_configuration (const ChanCount& in, ChanCount& out) const +AUPlugin::can_support_io_configuration (const ChanCount& in, ChanCount& out) { // Note: We never attempt to multiply-instantiate plugins to meet io configurations. @@ -1299,8 +1293,8 @@ AUPlugin::render_callback(AudioUnitRenderActionFlags*, { /* not much to do with audio - the data is already in the buffers given to us in connect_and_run() */ - DEBUG_TRACE (DEBUG::AudioUnits, string_compose ("%1: render callback, frames %2 bufs %3\n", - name(), inNumberFrames, ioData->mNumberBuffers)); + // DEBUG_TRACE (DEBUG::AudioUnits, string_compose ("%1: render callback, frames %2 bufs %3\n", + // name(), inNumberFrames, ioData->mNumberBuffers)); if (input_maxbuf == 0) { error << _("AUPlugin: render callback called illegally!") << endmsg; @@ -1679,8 +1673,6 @@ void AUPlugin::add_state (XMLNode* root) const { LocaleGuard lg (X_("POSIX")); - -#ifdef AU_STATE_SUPPORT CFDataRef xmlData; CFPropertyListRef propertyList; @@ -1712,20 +1704,11 @@ AUPlugin::add_state (XMLNode* root) const CFRelease (xmlData); CFRelease (propertyList); -#else - if (!seen_get_state_message) { - info << string_compose (_("Saving AudioUnit settings is not supported in this build of %1. Consider paying for a newer version"), - PROGRAM_NAME) - << endmsg; - seen_get_state_message = true; - } -#endif } int AUPlugin::set_state(const XMLNode& node, int version) { -#ifdef AU_STATE_SUPPORT int ret = -1; CFPropertyListRef propertyList; LocaleGuard lg (X_("POSIX")); @@ -1735,6 +1718,7 @@ AUPlugin::set_state(const XMLNode& node, int version) return -1; } +#ifndef NO_PLUGIN_STATE if (node.children().empty()) { return -1; } @@ -1770,17 +1754,10 @@ AUPlugin::set_state(const XMLNode& node, int version) } CFRelease (propertyList); } +#endif Plugin::set_state (node, version); return ret; -#else - if (!seen_set_state_message) { - info << string_compose (_("Restoring AudioUnit settings is not supported in this build of %1. Consider paying for a newer version"), - PROGRAM_NAME) - << endmsg; - } - return Plugin::set_state (node, version); -#endif } bool @@ -1788,7 +1765,6 @@ AUPlugin::load_preset (PresetRecord r) { Plugin::load_preset (r); -#ifdef AU_STATE_SUPPORT bool ret = false; CFPropertyListRef propertyList; Glib::ustring path; @@ -1836,15 +1812,6 @@ AUPlugin::load_preset (PresetRecord r) } return ret; -#else - if (!seen_loading_message) { - info << string_compose (_("Loading AudioUnit presets is not supported in this build of %1. Consider paying for a newer version"), - PROGRAM_NAME) - << endmsg; - seen_loading_message = true; - } - return true; -#endif } void @@ -1855,11 +1822,9 @@ AUPlugin::do_remove_preset (std::string) string AUPlugin::do_save_preset (string preset_name) { -#ifdef AU_STATE_SUPPORT CFPropertyListRef propertyList; vector v; Glib::ustring user_preset_path; - bool ret = true; std::string m = maker(); std::string n = name(); @@ -1878,12 +1843,12 @@ AUPlugin::do_save_preset (string preset_name) if (g_mkdir_with_parents (user_preset_path.c_str(), 0775) < 0) { error << string_compose (_("Cannot create user plugin presets folder (%1)"), user_preset_path) << endmsg; - return false; + return string(); } DEBUG_TRACE (DEBUG::AudioUnits, "get current preset\n"); if (unit->GetAUPreset (propertyList) != noErr) { - return false; + return string(); } // add the actual preset name */ @@ -1898,21 +1863,12 @@ AUPlugin::do_save_preset (string preset_name) if (save_property_list (propertyList, user_preset_path)) { error << string_compose (_("Saving plugin state to %1 failed"), user_preset_path) << endmsg; - ret = false; + return string(); } CFRelease(propertyList); return string ("file:///") + user_preset_path; -#else - if (!seen_saving_message) { - info << string_compose (_("Saving AudioUnit presets is not supported in this build of %1. Consider paying for a newer version"), - PROGRAM_NAME) - << endmsg; - seen_saving_message = true; - } - return string(); -#endif } //----------------------------------------------------------------------------- @@ -2079,7 +2035,6 @@ AUPlugin::current_preset() const { string preset_name; -#ifdef AU_STATE_SUPPORT CFPropertyListRef propertyList; DEBUG_TRACE (DEBUG::AudioUnits, "get current preset for current_preset()\n"); @@ -2087,28 +2042,26 @@ AUPlugin::current_preset() const preset_name = get_preset_name_in_plist (propertyList); CFRelease(propertyList); } -#endif + return preset_name; } void AUPlugin::find_presets () { -#ifdef AU_STATE_SUPPORT - vector* preset_files; - PathScanner scanner; + vector preset_files; user_preset_map.clear (); - preset_files = scanner (preset_search_path, au_preset_filter, this, true, true, -1, true); + find_files_matching_filter (preset_files, preset_search_path, au_preset_filter, this, true, true, true); - if (!preset_files) { + if (preset_files.empty()) { return; } - for (vector::iterator x = preset_files->begin(); x != preset_files->end(); ++x) { + for (vector::iterator x = preset_files.begin(); x != preset_files.end(); ++x) { - string path = *(*x); + string path = *x; string preset_name; /* make an initial guess at the preset name using the path */ @@ -2125,11 +2078,8 @@ AUPlugin::find_presets () user_preset_map[preset_name] = path; } - delete *x; } - delete preset_files; - /* now fill the vector with the names we have */ for (UserPresetMap::iterator i = user_preset_map.begin(); i != user_preset_map.end(); ++i) { @@ -2143,8 +2093,6 @@ AUPlugin::find_presets () string const uri = string_compose ("%1", _presets.size ()); _presets.insert (make_pair (uri, Plugin::PresetRecord (uri, i->first, i->second))); } - -#endif } bool @@ -2326,6 +2274,7 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip } AUPluginInfo::get_names (temp, info->name, info->creator); + ARDOUR::PluginScanMessage(_("AU"), info->name, false); info->type = ARDOUR::AudioUnit; info->unique_id = stringify_descriptor (*info->descriptor); @@ -2502,7 +2451,7 @@ AUPluginInfo::save_cached_info () if (!tree.write (path)) { error << string_compose (_("could not save AU cache to %1"), path) << endmsg; - unlink (path.c_str()); + g_unlink (path.c_str()); } }