diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-09-24 16:15:27 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-09-24 16:15:27 +0000 |
commit | 9ea281bdea94e31961d714546c972d2d7ea7516e (patch) | |
tree | 30e435f489ead9ef1749aecda3d23d640bc65363 | |
parent | 2e765255e9ca05c89a8ed921575e937d423953f5 (diff) |
fix up translation domains to reflect v2; functor command header
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2477 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/SConscript | 2 | ||||
-rw-r--r-- | gtk2_ardour/sfdb_ui.cc | 11 | ||||
-rw-r--r-- | libs/ardour/SConscript | 2 | ||||
-rw-r--r-- | libs/ardour/route.cc | 8 | ||||
-rw-r--r-- | libs/pbd/pbd/functor_command.h | 121 |
5 files changed, 125 insertions, 19 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index 0e6efddaf5..b6fff7ed2b 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -13,7 +13,7 @@ gtkmmtests = env.Copy() # this defines the version number of the GTK interface to ardour # -domain = 'gtk_ardour' +domain = 'gtk2_ardour' gtkardour.Append(DOMAIN=domain, MAJOR=1,MINOR=0,MICRO=2) gtkardour.Append(CCFLAGS="-DPACKAGE=\\\"" + domain + "\\\"") diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc index 1ba31404ed..6cefaa3895 100644 --- a/gtk2_ardour/sfdb_ui.cc +++ b/gtk2_ardour/sfdb_ui.cc @@ -64,8 +64,6 @@ using Glib::ustring; ustring SoundFileBrowser::persistent_folder; -static int reset_depth = 0; - SoundFileBox::SoundFileBox () : _session(0), table (6, 2), @@ -617,12 +615,6 @@ SoundFileOmega::reset_options () { vector<ustring> paths = get_paths (); - reset_depth++; - - if (reset_depth > 4) { - abort (); - } - if (paths.empty()) { channel_combo.set_sensitive (false); @@ -630,7 +622,6 @@ SoundFileOmega::reset_options () where_combo.set_sensitive (false); copy_files_btn.set_sensitive (false); - reset_depth--; return false; } else { @@ -650,7 +641,6 @@ SoundFileOmega::reset_options () if (check_info (paths, same_size, src_needed, selection_includes_multichannel)) { Glib::signal_idle().connect (mem_fun (*this, &SoundFileOmega::bad_file_message)); - reset_depth--; return false; } @@ -789,7 +779,6 @@ SoundFileOmega::reset_options () } } - reset_depth--; return true; } diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript index 6cceed03a0..dfa7396bcc 100644 --- a/libs/ardour/SConscript +++ b/libs/ardour/SConscript @@ -12,7 +12,7 @@ ardour = env.Copy() # this defines the version number of libardour # -domain = 'libardour' +domain = 'libardour2' ardour.Append(DOMAIN = domain, MAJOR = 2, MINOR = 0, MICRO = 0) ardour.Append(CXXFLAGS = "-DPACKAGE=\\\"" + domain + "\\\"") diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 20b7cd86c8..792b316ed5 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -479,13 +479,9 @@ Route::process_output_buffers (vector<Sample*>& bufs, uint32_t nbufs, // OR recording - // h/w monitoring not in use + // AND software monitoring required - (!Config->get_monitoring_model() == HardwareMonitoring && - - // AND software monitoring required - - Config->get_monitoring_model() == SoftwareMonitoring)) { + (Config->get_monitoring_model() == SoftwareMonitoring)) { if (apply_gain_automation) { diff --git a/libs/pbd/pbd/functor_command.h b/libs/pbd/pbd/functor_command.h new file mode 100644 index 0000000000..e335f4418e --- /dev/null +++ b/libs/pbd/pbd/functor_command.h @@ -0,0 +1,121 @@ +/* + Copyright (C) 2007 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __lib_pbd_functor_command_h__ +#define __lib_pbd_functor_command_h__ + +#include <iostream> +#include <sstream> +#include <string> +#include <map> + +#include <pbd/xml++.h> +#include <pbd/shiva.h> +#include <pbd/command.h> +#include <pbd/failed_constructor.h> + +/** This command class is initialized + */ + +namespace PBD { + +template <class obj_type, class arg_type> +class FunctorCommand : public Command +{ + private: + typedef void (obj_type::*functor_type)(arg_type); + typedef std::map< std::string, functor_type > FunctorMap; + typedef typename FunctorMap::iterator FunctorMapIterator; + + public: + FunctorCommand( + std::string functor, + obj_type object, + arg_type b, + arg_type a + ) : functor_name(functor), + object(object), + before(b), + after(a) + { + method = find_functor(functor); + + /* catch destruction of the object */ + new PBD::Shiva< obj_type, FunctorCommand<obj_type, arg_type> > (object, *this); + } + + ~FunctorCommand() { + GoingAway(); + } + + void operator() () { + (object.*method) (after); + } + + void undo() { + (object.*method) (before); + } + + virtual XMLNode &get_state() { + std::stringstream ss; + + XMLNode *node = new XMLNode("FunctorCommand"); + node->add_property("functor", functor_name); + ss << before; + node->add_property("before", ss.str()); + ss.clear (); + ss << after; + node->add_property("after", ss.str()); + + return *node; + } + + static void register_functor(std::string name, functor_type f) { + functor_map[name] = f; + } + + private: + static functor_type find_functor(std::string name) { + FunctorMapIterator iter; + + if((iter = functor_map.find(name)) == functor_map.end()) { + throw failed_constructor(); + } + + return iter->second; + } + + protected: + std::string functor_name; + obj_type &object; + arg_type before; + arg_type after; + functor_type method; + static FunctorMap functor_map; +}; + +// static initialization of functor_map... +template <class obj_type, class arg_type> +typename FunctorCommand<obj_type, arg_type>::FunctorMap +FunctorCommand<obj_type, arg_type>::functor_map; + +}; + +#endif // __lib_pbd_functor_command_h__ + |