13
0

merge with master, with minor conflict fixes

This commit is contained in:
Paul Davis 2014-02-07 19:00:44 -05:00
commit 2a7ed69c28
10 changed files with 56 additions and 25 deletions

View File

@ -1033,6 +1033,7 @@ MixerStrip::connect_to_pan ()
if (panners._panner == 0) {
panners.panshell_changed ();
}
update_panner_choices();
}
void

View File

@ -49,6 +49,7 @@ const int PannerUI::pan_bar_height = 35;
PannerUI::PannerUI (Session* s)
: _current_nouts (-1)
, _current_nins (-1)
, _current_uri ("")
, pan_automation_style_button ("")
, pan_automation_state_button ("")
, _panner_list()
@ -214,12 +215,17 @@ PannerUI::setup_pan ()
int const nouts = _panner ? _panner->out().n_audio() : -1;
int const nins = _panner ? _panner->in().n_audio() : -1;
if (nouts == _current_nouts && nins == _current_nins) {
if (nouts == _current_nouts
&& nins == _current_nins
&& _current_uri == _panshell->panner_gui_uri()
)
{
return;
}
_current_nins = nins;
_current_nouts = nouts;
_current_uri = _panshell->panner_gui_uri();
container_clear (pan_vbox);
@ -236,7 +242,7 @@ PannerUI::setup_pan ()
return;
}
if (_panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_2in2out#ui")
if (_current_uri == "http://ardour.org/plugin/panner_2in2out#ui")
{
delete big_window;
big_window = 0;
@ -262,8 +268,8 @@ PannerUI::setup_pan ()
boost::weak_ptr<AutomationControl>(ac)));
_stereo_panner->signal_button_release_event().connect (sigc::mem_fun(*this, &PannerUI::pan_button_event));
}
else if (_panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_1in2out#ui"
|| _panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_balance#ui")
else if (_current_uri == "http://ardour.org/plugin/panner_1in2out#ui"
|| _current_uri == "http://ardour.org/plugin/panner_balance#ui")
{
delete big_window;
big_window = 0;
@ -284,7 +290,7 @@ PannerUI::setup_pan ()
update_pan_sensitive ();
pan_vbox.pack_start (*_mono_panner, false, false);
}
else if (_panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_vbap#ui")
else if (_current_uri == "http://ardour.org/plugin/panner_vbap#ui")
{
if (!twod_panner) {
twod_panner = new Panner2d (_panshell, 61);

View File

@ -96,6 +96,7 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
bool in_pan_update;
int _current_nouts;
int _current_nins;
std::string _current_uri;
static const int pan_bar_height;

View File

@ -99,6 +99,7 @@ StereoPanner::StereoPanner (boost::shared_ptr<PannerShell> p)
width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
_panner_shell->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&StereoPanner::bypass_handler, this), gui_context());
_panner_shell->PannableChanged.connect (panshell_connections, invalidator (*this), boost::bind (&StereoPanner::pannable_handler, this), gui_context());
ColorsChanged.connect (sigc::mem_fun (*this, &StereoPanner::color_handler));

View File

@ -74,6 +74,7 @@ public:
void inc_use_count ();
bool removable () const;
bool is_stub () const;
const std::string& origin() const { return _origin; }

View File

@ -397,7 +397,7 @@ Delivery::reset_panner ()
if (panners_legal) {
if (!_no_panner_reset) {
if (_panshell && _role != Insert) {
if (_panshell && _role != Insert && _role != Listen) {
_panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
}
}

View File

@ -101,7 +101,7 @@ FileSource::removable () const
{
bool r = ((_flags & Removable)
&& ((_flags & RemoveAtDestroy) ||
((_flags & RemovableIfEmpty) && empty() == 0)));
((_flags & RemovableIfEmpty) && empty())));
return r;
}
@ -581,3 +581,21 @@ FileSource::inc_use_count ()
Source::inc_use_count ();
}
bool
FileSource::is_stub () const
{
if (!empty()) {
return false;
}
if (!removable()) {
return false;
}
if (Glib::file_test (_path, Glib::FILE_TEST_EXISTS)) {
return false;
}
return true;
}

View File

@ -129,7 +129,7 @@ InternalSend::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame
// we have to copy the input, because we may alter the buffers with the amp
// in-place, which a send must never do.
if (_panshell && !_panshell->bypassed()) {
if (_panshell && !_panshell->bypassed() && role() != Listen) {
_panshell->run (bufs, mixbufs, start_frame, end_frame, nframes);
} else {
if (role() == Listen) {

View File

@ -2736,19 +2736,23 @@ Session::cleanup_sources (CleanupReport& rep)
++tmp;
if ((fs = boost::dynamic_pointer_cast<FileSource> (i->second)) != 0) {
if (playlists->source_use_count (fs) != 0) {
all_sources.insert (fs->path());
} else {
/* we might not remove this source from disk, because it may be used
by other snapshots, but its not being used in this version
so lets get rid of it now, along with any representative regions
in the region list.
*/
if (!fs->is_stub()) {
RegionFactory::remove_regions_using_source (i->second);
sources.erase (i);
}
if (playlists->source_use_count (fs) != 0) {
all_sources.insert (fs->path());
} else {
/* we might not remove this source from disk, because it may be used
by other snapshots, but its not being used in this version
so lets get rid of it now, along with any representative regions
in the region list.
*/
RegionFactory::remove_regions_using_source (i->second);
sources.erase (i);
}
}
}
i = tmp;

View File

@ -168,11 +168,6 @@ def set_compiler_flags (conf,opt):
if opt.gprofile:
debug_flags = [ '-pg' ]
if opt.backtrace:
if opt.dist_target == 'auto':
if platform != 'darwin' and not is_clang:
debug_flags = [ '-rdynamic' ]
# Autodetect
if opt.dist_target == 'auto':
if platform == 'darwin':
@ -409,6 +404,10 @@ def set_compiler_flags (conf,opt):
conf.env.append_value('CFLAGS', optimization_flags)
conf.env.append_value('CXXFLAGS', optimization_flags)
if opt.backtrace:
if platform != 'darwin' and not is_clang:
linker_flags += [ '-rdynamic' ]
conf.env.append_value('CFLAGS', compiler_flags)
conf.env.append_value('CFLAGS', c_flags)
conf.env.append_value('CXXFLAGS', compiler_flags)