summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-02-12 16:55:11 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-02-12 16:55:11 +0000
commitc241f36817b43e02baa4b164b603063d827e939f (patch)
tree57a19cdb29d3b7e1f0736896e61f43c6ebde5d8c
parent8bfbf5bda11fcdae12f28bf6fc6bca910aaec411 (diff)
fix up compile issues; add new grabber_edit_point cursor
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3040 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/audio_region_view.cc5
-rw-r--r--gtk2_ardour/editor.cc16
-rw-r--r--gtk2_ardour/editor.h1
-rw-r--r--gtk2_ardour/editor_mouse.cc63
-rw-r--r--gtk2_ardour/editor_ops.cc4
-rw-r--r--gtk2_ardour/icons/grabber_edit_point.pngbin0 -> 543 bytes
-rw-r--r--libs/ardour/audiosource.cc2
7 files changed, 56 insertions, 35 deletions
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc
index ad4001b10c..d1b64b239b 100644
--- a/gtk2_ardour/audio_region_view.cc
+++ b/gtk2_ardour/audio_region_view.cc
@@ -772,8 +772,6 @@ AudioRegionView::create_waves ()
uint32_t nchans = atv.get_diskstream()->n_channels();
- cerr << "creating waves for " << _region->name() << " with wfd = " << wait_for_data << " and channels = " << nchans << endl;
-
/* in tmp_waves, set up null pointers for each channel so the vector is allocated */
for (uint32_t n = 0; n < nchans; ++n) {
tmp_waves.push_back (0);
@@ -789,16 +787,13 @@ AudioRegionView::create_waves ()
if (wait_for_data) {
if (audio_region()->source(n)->peaks_ready (bind (mem_fun(*this, &AudioRegionView::peaks_ready_handler), n), data_ready_connection)) {
- cerr << "\tData is ready\n";
create_one_wave (n, true);
} else {
- cerr << "\tdata is not ready\n";
// we'll get a PeaksReady signal from the source in the future
// and will call create_one_wave(n) then.
}
} else {
- cerr << "\tdon't delay, display today!\n";
create_one_wave (n, true);
}
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index dfd560f467..b2a327c8c9 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -170,6 +170,7 @@ Gdk::Cursor* Editor::cross_hair_cursor = 0;
Gdk::Cursor* Editor::selector_cursor = 0;
Gdk::Cursor* Editor::trimmer_cursor = 0;
Gdk::Cursor* Editor::grabber_cursor = 0;
+Gdk::Cursor* Editor::grabber_edit_point_cursor = 0;
Gdk::Cursor* Editor::zoom_cursor = 0;
Gdk::Cursor* Editor::time_fx_cursor = 0;
Gdk::Cursor* Editor::fader_cursor = 0;
@@ -1305,21 +1306,14 @@ Editor::build_cursors ()
transparent_cursor = new Gdk::Cursor (bits, bits, c, c, 0, 0);
}
- Glib::RefPtr<Gdk::Pixbuf> grabber_edit_point_pixbuf (::get_icon ("grabber_edit_point"));
grabber_cursor = new Gdk::Cursor (HAND2);
-#ifdef GTKOSX
{
-
- Glib::RefPtr<Gdk::Pixbuf> hand2 (grabber_cursor->get_image());
- hand2->save ("hand.png", "png");
+ Glib::RefPtr<Gdk::Pixbuf> grabber_edit_point_pixbuf (::get_icon ("grabber_edit_point"));
+ grabber_edit_point_cursor = new Gdk::Cursor (Gdk::Display::get_default(), grabber_edit_point_pixbuf, 5, 17);
}
-
- grabber_edit_point_cursor = new Gdk::Cursor (Gdk::Display::get_default(), grabber_edit_point_pixbuf);
-#endif
-
cross_hair_cursor = new Gdk::Cursor (CROSSHAIR);
trimmer_cursor = new Gdk::Cursor (SB_H_DOUBLE_ARROW);
selector_cursor = new Gdk::Cursor (XTERM);
@@ -2149,6 +2143,8 @@ Editor::set_edit_point_preference (EditPoint ep)
edit_point_selector.set_active_text (str);
}
+ set_canvas_cursor ();
+
if (!changed) {
return;
}
@@ -2175,7 +2171,7 @@ Editor::set_edit_point_preference (EditPoint ep)
break;
}
}
-
+
instant_save ();
}
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index c29239b1c1..4064b2b393 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -532,6 +532,7 @@ class Editor : public PublicEditor
Gtk::VBox vpacker;
Gdk::Cursor* current_canvas_cursor;
+ void set_canvas_cursor ();
ArdourCanvas::CanvasAA track_canvas;
ArdourCanvas::CanvasAA time_canvas;
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index df30834dff..e43b247fac 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -203,6 +203,47 @@ Editor::mouse_mode_toggled (MouseMode m)
}
void
+Editor::set_canvas_cursor ()
+{
+ switch (mouse_mode) {
+ case MouseRange:
+ current_canvas_cursor = selector_cursor;
+ break;
+
+ case MouseObject:
+ switch (_edit_point) {
+ case EditAtMouse:
+ current_canvas_cursor = grabber_edit_point_cursor;
+ break;
+ default:
+ current_canvas_cursor = grabber_cursor;
+ break;
+ }
+ break;
+
+ case MouseGain:
+ current_canvas_cursor = cross_hair_cursor;
+ break;
+
+ case MouseZoom:
+ current_canvas_cursor = zoom_cursor;
+ break;
+
+ case MouseTimeFX:
+ current_canvas_cursor = time_fx_cursor; // just use playhead
+ break;
+
+ case MouseAudition:
+ current_canvas_cursor = speaker_cursor;
+ break;
+ }
+
+ if (is_drawable()) {
+ track_canvas.get_window()->set_cursor(*current_canvas_cursor);
+ }
+}
+
+void
Editor::set_mouse_mode (MouseMode m, bool force)
{
if (drag_info.item) {
@@ -253,44 +294,32 @@ Editor::set_mouse_mode (MouseMode m, bool force)
switch (mouse_mode) {
case MouseRange:
mouse_select_button.set_active (true);
- current_canvas_cursor = selector_cursor;
break;
case MouseObject:
mouse_move_button.set_active (true);
- if (Profile->get_sae()) {
- current_canvas_cursor = timebar_cursor;
- } else {
- current_canvas_cursor = grabber_cursor;
- }
break;
case MouseGain:
mouse_gain_button.set_active (true);
- current_canvas_cursor = cross_hair_cursor;
break;
case MouseZoom:
mouse_zoom_button.set_active (true);
- current_canvas_cursor = zoom_cursor;
break;
case MouseTimeFX:
mouse_timefx_button.set_active (true);
- current_canvas_cursor = time_fx_cursor; // just use playhead
break;
case MouseAudition:
mouse_audition_button.set_active (true);
- current_canvas_cursor = speaker_cursor;
break;
}
ignore_mouse_mode_toggle = false;
-
- if (is_drawable()) {
- track_canvas.get_window()->set_cursor(*current_canvas_cursor);
- }
+
+ set_canvas_cursor ();
}
void
@@ -806,6 +835,7 @@ bool
Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
nframes_t where = event_frame (event, 0, 0);
+ AutomationTimeAxisView* atv = 0;
/* no action if we're recording */
@@ -1028,13 +1058,14 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
case MouseObject:
switch (item_type) {
case AutomationTrackItem:
- AutomationTimeAxisView* atv = dynamic_cast<AutomationTimeAxisView*>(clicked_trackview);
+ atv = dynamic_cast<AutomationTimeAxisView*>(clicked_trackview);
if (atv) {
atv->add_automation_event (item, event, where, event->button.y);
}
return true;
+
break;
-
+
default:
break;
}
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 92bb403166..a6437a2b7a 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -3066,7 +3066,7 @@ Editor::align (RegionPoint what)
{
RegionSelection rs;
- get_regions_for_action (rs);
+ get_regions_for_action (rs, false);
nframes64_t where = get_preferred_edit_position();
if (!rs.empty()) {
@@ -3085,7 +3085,7 @@ Editor::align_relative (RegionPoint what)
nframes64_t where = get_preferred_edit_position();
RegionSelection rs;
- get_regions_for_action (rs);
+ get_regions_for_action (rs, false);
if (!rs.empty()) {
align_selection_relative (what, where, rs);
diff --git a/gtk2_ardour/icons/grabber_edit_point.png b/gtk2_ardour/icons/grabber_edit_point.png
new file mode 100644
index 0000000000..7bbfe03828
--- /dev/null
+++ b/gtk2_ardour/icons/grabber_edit_point.png
Binary files differ
diff --git a/libs/ardour/audiosource.cc b/libs/ardour/audiosource.cc
index 7c8801845a..d9e5f83bd1 100644
--- a/libs/ardour/audiosource.cc
+++ b/libs/ardour/audiosource.cc
@@ -142,8 +142,6 @@ AudioSource::peaks_ready (sigc::slot<void> the_slot, sigc::connection& conn) con
connect the slot while still holding the lock.
*/
- cerr << _name << " @ " << this << " peaks built = " << _peaks_built << endl;
-
if (!(ret = _peaks_built)) {
conn = PeaksReady.connect (the_slot);
}