summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/au_pluginui.mm12
-rw-r--r--gtk2_ardour/editor_audio_import.cc26
-rw-r--r--gtk2_ardour/editor_edit_groups.cc2
-rw-r--r--gtk2_ardour/editor_route_list.cc9
-rw-r--r--gtk2_ardour/generic_pluginui.cc1
-rw-r--r--gtk2_ardour/mixer_ui.cc13
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();