20 #ifndef __gtk_ardour_xfade_edit_h__
21 #define __gtk_ardour_xfade_edit_h__
25 #include <gtkmm/box.h>
26 #include <gtkmm/button.h>
27 #include <gtkmm/radiobutton.h>
29 #include "canvas/canvas.h"
74 struct Preset :
public std::list<PresetPoint> {
78 Preset (
const char* n,
const char* x) : name (n), image_name (x) {}
98 ArdourCanvas::Rectangle*
box;
105 void move_to (
double x,
double y,
double xfract,
double yfract);
123 std::vector<ArdourCanvas::WaveView*>
waves;
Gtk::ToggleButton audition_left_button
bool on_key_release_event(GdkEventKey *)
void _apply_to(boost::shared_ptr< ARDOUR::Crossfade > xf)
std::list< Point * > points
void audition_right_dry()
double y_coordinate(double &yfract) const
double effective_height() const
double effective_width() const
void xfade_changed(const PBD::PropertyChange &)
void move_to(double x, double y, double xfract, double yfract)
static Presets * fade_in_presets
Gtk::ToggleButton audition_right_dry_button
ArdourCanvas::Rectangle * box
void audition_left_dry_toggled()
PresetPoint(double a, double b)
std::list< Preset * > Presets
CrossfadeEditor(ARDOUR::Session *, boost::shared_ptr< ARDOUR::Crossfade >, double miny, double maxy)
bool curve_event(GdkEvent *event)
Gtk::Button * cancel_button
void audition_left_toggled()
Gtk::RadioButton select_in_button
Gtk::ToggleButton audition_left_dry_button
Gtk::ToggleButton audition_both_button
static const double canvas_border
Gtk::Button revert_button
ARDOUR::AutomationList gain_curve
std::vector< ArdourCanvas::WaveView * > waves
double x_coordinate(double &xfract) const
bool on_key_press_event(GdkEventKey *)
bool canvas_event(GdkEvent *event)
ArdourCanvas::GtkCanvas * canvas
void apply_preset(Preset *)
Gtk::ToggleButton preroll_button
Gtk::Table fade_out_table
ArdourCanvas::Rectangle * toplevel
Gtk::RadioButton select_out_button
void peaks_ready(boost::weak_ptr< ARDOUR::AudioRegion > r, WhichFade)
Gtk::HBox curve_button_box
void set(const ARDOUR::AutomationList &alist, WhichFade)
std::vector< Gtk::Button * > fade_in_buttons
PBD::ScopedConnection state_connection
ArdourCanvas::Polygon * shading
void add_control_point(double x, double y)
gint event_handler(GdkEvent *)
void curve_select_clicked(WhichFade)
void make_waves(boost::shared_ptr< ARDOUR::AudioRegion >, WhichFade)
PBD::ScopedConnection * _peaks_ready_connection
static const int32_t size
Preset(const char *n, const char *x)
ARDOUR::AutomationList normative_curve
void audition_state_changed(bool)
void setup(boost::shared_ptr< ARDOUR::Crossfade >)
boost::shared_ptr< ARDOUR::Crossfade > xfade
void audition_right_dry_toggled()
bool operator()(const CrossfadeEditor::Point *a, const CrossfadeEditor::Point *b)
void audition_right_toggled()
Gtk::ToggleButton postroll_button
Gtk::ToggleButton audition_right_button
ArdourCanvas::PolyLine * curve
std::vector< Gtk::Button * > fade_out_buttons
static Presets * fade_out_presets
ArdourCanvas::PolyLine * line
void canvas_allocation(Gtk::Allocation &)
bool point_event(GdkEvent *event, Point *)