diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/au_pluginui.mm | 12 | ||||
-rw-r--r-- | gtk2_ardour/editor_audio_import.cc | 26 | ||||
-rw-r--r-- | gtk2_ardour/editor_edit_groups.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor_route_list.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/generic_pluginui.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 13 |
6 files changed, 53 insertions, 10 deletions
diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm index 1d7029365a..1a197c6672 100644 --- a/gtk2_ardour/au_pluginui.mm +++ b/gtk2_ardour/au_pluginui.mm @@ -105,6 +105,7 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert) cocoa_window = 0; au_view = 0; packView = 0; + editView = 0; /* prefer cocoa, fall back to cocoa, but use carbon if its there */ @@ -126,10 +127,14 @@ AUPluginUI::~AUPluginUI () RemoveEventHandler(carbon_event_handler); [win removeChildWindow:cocoa_parent]; } else if (carbon_window) { - /* never parented */ + /* not parented, just overlaid on top of our window */ DisposeWindow (carbon_window); } + if (editView) { + CloseComponent (editView); + } + if (packView) { /* remove whatever we packed into low_box so that GTK doesn't mess with it. @@ -323,11 +328,14 @@ AUPluginUI::create_carbon_view () if ((err = CreateNewWindow(kDocumentWindowClass, attr, &r, &carbon_window)) != noErr) { error << string_compose (_("AUPluginUI: cannot create carbon window (err: %1)"), err) << endmsg; + CloseComponent (editView); return -1; } if ((err = GetRootControl(carbon_window, &root_control)) != noErr) { error << string_compose (_("AUPlugin: cannot get root control of carbon window (err: %1)"), err) << endmsg; + DisposeWindow (carbon_window); + CloseComponent (editView); return -1; } @@ -337,6 +345,8 @@ AUPluginUI::create_carbon_view () if ((err = AudioUnitCarbonViewCreate (editView, *au->get_au(), carbon_window, root_control, &location, &size, &viewPane)) != noErr) { error << string_compose (_("AUPluginUI: cannot create carbon plugin view (err: %1)"), err) << endmsg; + DisposeWindow (carbon_window); + CloseComponent (editView); return -1; } diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 1b34d1e2a6..902093b342 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -683,8 +683,11 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64 ustring region_name; uint32_t input_chan = 0; uint32_t output_chan = 0; + bool use_timestamp; + + use_timestamp = (pos == -1); - if (pos == -1) { // "use timestamp" + if (use_timestamp) { if (sources[0]->natural_position() != 0) { pos = sources[0]->natural_position(); } else { @@ -697,10 +700,15 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64 /* take all the sources we have and package them up as a region */ region_name = region_name_from_path (paths.front(), (sources.size() > 1), false); - - regions.push_back (boost::dynamic_pointer_cast<AudioRegion> + boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (sources, 0, sources[0]->length(), region_name, 0, - Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)))); + Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External))); + + if (use_timestamp) { + ar->special_set_position(sources[0]->natural_position()); + } + + regions.push_back (ar); } else if (target_regions == -1 || target_regions > 1) { @@ -718,11 +726,15 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64 boost::shared_ptr<AudioFileSource> afs = boost::dynamic_pointer_cast<AudioFileSource> (*x); region_name = region_name_from_path (afs->path(), false, true, sources.size(), n); - - regions.push_back (boost::dynamic_pointer_cast<AudioRegion> + boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (just_one, 0, (*x)->length(), region_name, 0, - Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)))); + Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External))); + + if (use_timestamp) { + ar->special_set_position((*x)->natural_position()); + } + regions.push_back (ar); } } diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc index 371b13ed0c..151d8043a6 100644 --- a/gtk2_ardour/editor_edit_groups.cc +++ b/gtk2_ardour/editor_edit_groups.cc @@ -225,7 +225,7 @@ Editor::add_edit_group (RouteGroup* group) TreeModel::Row row = *(group_model->append()); row[group_columns.is_active] = group->is_active(); - row[group_columns.is_visible] = !group->is_hidden(); + row[group_columns.is_visible] = false; in_edit_group_row_change = true; diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc index 86c7c9d437..f726db3641 100644 --- a/gtk2_ardour/editor_route_list.cc +++ b/gtk2_ardour/editor_route_list.cc @@ -31,6 +31,7 @@ #include <ardour/route.h> #include <ardour/audio_track.h> +#include <ardour/route_group.h> #include "i18n.h" @@ -71,6 +72,14 @@ Editor::handle_new_route (Session::RouteList& routes) row[route_display_columns.visible] = tv->marked_for_display(); row[route_display_columns.tv] = tv; + RouteGroup *group = route->edit_group(); + if (group) { + if (tv->marked_for_display()) { + group->set_hidden(false, this); + group_flags_changed(this, group); + } + } + track_views.push_back (tv); if ((atv = dynamic_cast<AudioTimeAxisView*> (tv)) != 0) { diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc index 75474f77bb..09cf877ae1 100644 --- a/gtk2_ardour/generic_pluginui.cc +++ b/gtk2_ardour/generic_pluginui.cc @@ -494,6 +494,7 @@ GenericPluginUI::build_control_ui (guint32 port_index, PBD::Controllable* mcontr control_ui->control->set_name (X_("PluginSlider")); control_ui->control->set_style (BarController::LeftToRight); control_ui->control->set_use_parent (true); + control_ui->control->set_logarithmic (control_ui->logarithmic); control_ui->control->StartGesture.connect (bind (mem_fun(*this, &GenericPluginUI::start_touch), control_ui)); control_ui->control->StopGesture.connect (bind (mem_fun(*this, &GenericPluginUI::stop_touch), control_ui)); diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 866587bb4e..56b11bfc2f 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -1233,7 +1233,18 @@ Mixer_UI::add_mix_group (RouteGroup* group) TreeModel::Row row = *(group_model->append()); row[group_columns.active] = group->is_active(); - row[group_columns.visible] = true; + + row[group_columns.visible] = false; + + for (list<MixerStrip *>::iterator i = strips.begin(); i != strips.end(); ++i) { + if ((*i)->mix_group() == group) { + if ((*i)->marked_for_display()) { + row[group_columns.visible] = true; + } + break; + } + } + row[group_columns.group] = group; if (!group->name().empty()) { row[group_columns.text] = group->name(); |