summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_line.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-07-07 03:19:04 +0000
committerDavid Robillard <d@drobilla.net>2007-07-07 03:19:04 +0000
commit68653307e666b8daabd2931ce0731d400d947707 (patch)
tree773e4d462feddba5e0fb6fa1bdebd45eec930e95 /gtk2_ardour/automation_line.h
parentf87954eeb5d6a2a8b12e681ddb171dc1f6d76095 (diff)
Note modes: note, percussion.
Percussion tracks display diamonds. Separated/fixed MIDI and audio mode menus. CC automation modes: discrete, line. Bar controllers follow setting (hard steps or line) on playback. Sent CC data is always discrete (line not implemented yet). Discrete tracks show no lines, and always show control points. Separated ControlPoint from AutomationLine. Added some basic information (range) to Parameter (to be fleshed out..). git-svn-id: svn://localhost/ardour2/trunk@2123 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/automation_line.h')
-rw-r--r--gtk2_ardour/automation_line.h51
1 files changed, 8 insertions, 43 deletions
diff --git a/gtk2_ardour/automation_line.h b/gtk2_ardour/automation_line.h
index 3f01ae6cf9..6ce548e55d 100644
--- a/gtk2_ardour/automation_line.h
+++ b/gtk2_ardour/automation_line.h
@@ -53,48 +53,6 @@ namespace Gnome {
}
}
-class ControlPoint
-{
- public:
- ControlPoint (AutomationLine& al);
- ControlPoint (const ControlPoint&, bool dummy_arg_to_force_special_copy_constructor);
- virtual ~ControlPoint ();
-
- enum ShapeType {
- Full,
- Start,
- End
- };
-
- void move_to (double x, double y, ShapeType);
- void reset (double x, double y, ARDOUR::AutomationList::iterator, uint32_t, ShapeType);
- double get_x() const { return _x; }
- double get_y() const { return _y; }
-
- void hide ();
- void show ();
- void show_color (bool entered, bool hide_too);
-
- void set_size (double);
- void set_visible (bool);
-
- ArdourCanvas::SimpleRect* item;
- AutomationLine& line;
- uint32_t view_index;
- ARDOUR::AutomationList::iterator model;
- bool can_slide;
- bool selected;
-
- protected:
- virtual bool event_handler (GdkEvent*);
-
- private:
- double _x;
- double _y;
- double _size;
- ShapeType _shape;
-};
-
class AutomationLine : public sigc::trackable, public PBD::StatefulThingWithGoingAway
{
public:
@@ -129,9 +87,11 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulThingWithGoin
guint32 height() const { return _height; }
guint32 y_position() const { return _y_position; }
- void set_line_color (uint32_t);
+ void set_line_color (uint32_t);
uint32_t get_line_color() const { return _line_color; }
+ void set_interpolation(ARDOUR::AutomationList::InterpolationStyle style);
+
void show ();
void hide ();
void set_y_position_and_height (uint32_t, uint32_t);
@@ -155,6 +115,9 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulThingWithGoin
void show_all_control_points ();
void hide_all_but_selected_control_points ();
+ void track_entered();
+ void track_exited();
+
bool is_last_point (ControlPoint &);
bool is_first_point (ControlPoint &);
@@ -215,6 +178,8 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulThingWithGoin
uint32_t line_drag_cp2;
int64_t drag_x;
int64_t drag_distance;
+
+ ARDOUR::AutomationList::InterpolationStyle _interpolation;
void modify_view_point(ControlPoint&, double, double, bool with_push);
void reset_line_coords (ControlPoint&);