summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-09-14 19:01:08 +0000
committerDavid Robillard <d@drobilla.net>2008-09-14 19:01:08 +0000
commitcb19d9cb1ef7698d63b00917008d0c4de38fb182 (patch)
treeca285743fa260ce049faf4c856e38ef8399ce52a
parentb69410425c1070aad5aa8a711a9ebb671f308621 (diff)
More gracefully handle type mismatch errors when doing playlist things (just ignore regions with the wrong type for this playlist).
git-svn-id: svn://localhost/ardour2/branches/3.0@3726 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/ardour3_ui_default.conf2
-rw-r--r--gtk2_ardour/audio_region_view.cc2
-rw-r--r--gtk2_ardour/editor_mouse.cc6
-rw-r--r--gtk2_ardour/midi_region_view.cc16
-rw-r--r--gtk2_ardour/time_axis_view_item.cc1
-rw-r--r--libs/ardour/ardour/playlist.h2
-rw-r--r--libs/ardour/playlist.cc7
7 files changed, 18 insertions, 18 deletions
diff --git a/gtk2_ardour/ardour3_ui_default.conf b/gtk2_ardour/ardour3_ui_default.conf
index 663a96edc1..5029c3f121 100644
--- a/gtk2_ardour/ardour3_ui_default.conf
+++ b/gtk2_ardour/ardour3_ui_default.conf
@@ -93,7 +93,7 @@
<Option name="selection" value="636363b2"/>
<Option name="tempo bar" value="72727fff"/>
<Option name="tempo marker" value="f2425bff"/>
- <Option name="time axis frame" value="0000000f"/>
+ <Option name="time axis frame" value="000000ff"/>
<Option name="time stretch fill" value="e2b5b596"/>
<Option name="time stretch outline" value="63636396"/>
<Option name="transport drag rect" value="969696c6"/>
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc
index 3a269c04bc..60f52d50a3 100644
--- a/gtk2_ardour/audio_region_view.cc
+++ b/gtk2_ardour/audio_region_view.cc
@@ -177,12 +177,10 @@ AudioRegionView::init (Gdk::Color& basic_color, bool wfd)
fade_out_shape->property_fill_color_rgba() = fade_color;
fade_out_shape->set_data ("regionview", this);
-
{
uint32_t r,g,b,a;
UINT_TO_RGBA(fill_color,&r,&g,&b,&a);
-
fade_in_handle = new ArdourCanvas::SimpleRect (*group);
fade_in_handle->property_fill_color_rgba() = RGBA_TO_UINT(r,g,b,0);
fade_in_handle->property_outline_pixels() = 0;
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 24a6fb47ef..d0931e4579 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -3919,13 +3919,17 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
//rv->get_time_axis_view().reveal_dependent_views (*rv);
- } else if (changed_tracks) {
+ } else if (changed_tracks && dest_rtv->playlist()) {
new_region = RegionFactory::create (rv->region());
}
if (changed_tracks || drag_info.copy) {
boost::shared_ptr<Playlist> to_playlist = dest_rtv->playlist();
+ if (!to_playlist) {
+ ++i;
+ continue;
+ }
latest_regionviews.clear ();
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 5ad459cb34..2dea5fd84b 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -71,10 +71,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
, _mouse_state(None)
, _pressed_button(0)
{
- group->lower_to_bottom();
_note_group->raise_to_top();
-
- frame->property_fill_color_rgba() = 0xff000033;
}
MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv, boost::shared_ptr<MidiRegion> r, double spu, Gdk::Color& basic_color, TimeAxisViewItem::Visibility visibility)
@@ -106,24 +103,23 @@ MidiRegionView::init (Gdk::Color& basic_color, bool wfd)
_model = midi_region()->midi_source(0)->model();
_enable_display = false;
- RegionView::init(basic_color, false);
+ RegionView::init (basic_color, false);
compute_colors (basic_color);
- reset_width_dependent_items ((double) _region->length() / samples_per_unit);
-
set_y_position_and_height (0, trackview.current_height());
region_muted ();
+ region_sync_changed ();
region_resized (BoundsChanged);
region_locked ();
-
- _region->StateChanged.connect (mem_fun(*this, &MidiRegionView::region_changed));
+
+ reset_width_dependent_items (_pixel_width);
+ //reset_width_dependent_items ((double) _region->length() / samples_per_unit);
set_colors ();
_enable_display = true;
-
if (_model) {
if (wfd) {
redisplay_model();
@@ -131,8 +127,6 @@ MidiRegionView::init (Gdk::Color& basic_color, bool wfd)
_model->ContentsChanged.connect(sigc::mem_fun(this, &MidiRegionView::redisplay_model));
}
- midi_region()->midi_source(0)->Switched.connect(sigc::mem_fun(this, &MidiRegionView::switch_source));
-
group->signal_event().connect (mem_fun (this, &MidiRegionView::canvas_event), false);
midi_view()->signal_channel_mode_changed().connect(
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index 6ea16c4b25..6f25f1e6b5 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -163,6 +163,7 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
frame->property_y1() = (double) 1.0;
frame->property_x2() = (double) trackview.editor.frame_to_pixel(duration);
frame->property_y2() = (double) trackview.current_height();
+ frame->property_outline_pixels() = 1;
frame->property_outline_what() = 0xF;
frame->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h
index ad7210f48f..b937c412ab 100644
--- a/libs/ardour/ardour/playlist.h
+++ b/libs/ardour/ardour/playlist.h
@@ -255,7 +255,7 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla
boost::shared_ptr<Region> region_by_id (PBD::ID);
- void add_region_internal (boost::shared_ptr<Region>, nframes_t position);
+ bool add_region_internal (boost::shared_ptr<Region>, nframes_t position);
int remove_region_internal (boost::shared_ptr<Region>);
RegionList *find_regions_at (nframes_t frame);
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 0b0d5ecc22..65cb8637d5 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -518,10 +518,11 @@ Playlist::set_region_ownership ()
}
}
-void
+bool
Playlist::add_region_internal (boost::shared_ptr<Region> region, nframes_t position)
{
- assert(region->data_type() == _type);
+ if (region->data_type() != _type)
+ return false;
RegionSortByPosition cmp;
nframes_t old_length = 0;
@@ -562,6 +563,8 @@ Playlist::add_region_internal (boost::shared_ptr<Region> region, nframes_t posit
region->StateChanged.connect (sigc::bind (mem_fun (this, &Playlist::region_changed_proxy),
boost::weak_ptr<Region> (region)));
+
+ return true;
}
void