ardour
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
CrossfadeEditor Class Reference

#include <crossfade_edit.h>

Inheritance diagram for CrossfadeEditor:
ArdourDialog ARDOUR::SessionHandlePtr

Classes

struct  Half
 
struct  Point
 
struct  PointSorter
 
struct  Preset
 
struct  PresetPoint
 

Public Types

typedef std::list< Preset * > Presets
 

Public Member Functions

 CrossfadeEditor (ARDOUR::Session *, boost::shared_ptr< ARDOUR::Crossfade >, double miny, double maxy)
 
 ~CrossfadeEditor ()
 
void apply ()
 
- Public Member Functions inherited from ArdourDialog
 ArdourDialog (std::string title, bool modal=false, bool use_separator=false)
 
 ArdourDialog (Gtk::Window &parent, std::string title, bool modal=false, bool use_separator=false)
 
 ~ArdourDialog ()
 
bool on_focus_in_event (GdkEventFocus *)
 
bool on_focus_out_event (GdkEventFocus *)
 
bool on_delete_event (GdkEventAny *)
 
void on_unmap ()
 
void on_show ()
 
- Public Member Functions inherited from ARDOUR::SessionHandlePtr
 SessionHandlePtr (ARDOUR::Session *s)
 
 SessionHandlePtr ()
 
virtual ~SessionHandlePtr ()
 
virtual void set_session (ARDOUR::Session *)
 

Public Attributes

Gtk::Button * cancel_button
 
Gtk::Button * ok_button
 

Static Public Attributes

static const double canvas_border = 10
 
static Presetsfade_in_presets = 0
 
static Presetsfade_out_presets = 0
 

Protected Member Functions

bool on_key_press_event (GdkEventKey *)
 
bool on_key_release_event (GdkEventKey *)
 
- Protected Member Functions inherited from ARDOUR::SessionHandlePtr
virtual void session_going_away ()
 

Private Types

enum  WhichFade { In = 0, Out = 1 }
 
enum  Audition { Both, Left, Right }
 

Private Member Functions

gint event_handler (GdkEvent *)
 
bool canvas_event (GdkEvent *event)
 
bool point_event (GdkEvent *event, Point *)
 
bool curve_event (GdkEvent *event)
 
void canvas_allocation (Gtk::Allocation &)
 
void add_control_point (double x, double y)
 
Pointmake_point ()
 
void redraw ()
 
double effective_width () const
 
double effective_height () const
 
void clear ()
 
void reset ()
 
void build_presets ()
 
void apply_preset (Preset *)
 
void curve_select_clicked (WhichFade)
 
double x_coordinate (double &xfract) const
 
double y_coordinate (double &yfract) const
 
void set (const ARDOUR::AutomationList &alist, WhichFade)
 
void make_waves (boost::shared_ptr< ARDOUR::AudioRegion >, WhichFade)
 
void peaks_ready (boost::weak_ptr< ARDOUR::AudioRegion > r, WhichFade)
 
void _apply_to (boost::shared_ptr< ARDOUR::Crossfade > xf)
 
void setup (boost::shared_ptr< ARDOUR::Crossfade >)
 
void cancel_audition ()
 
void audition_state_changed (bool)
 
void audition_toggled ()
 
void audition_right_toggled ()
 
void audition_right_dry_toggled ()
 
void audition_left_toggled ()
 
void audition_left_dry_toggled ()
 
void audition (Audition)
 
void audition_both ()
 
void audition_left_dry ()
 
void audition_left ()
 
void audition_right_dry ()
 
void audition_right ()
 
void xfade_changed (const PBD::PropertyChange &)
 
void dump ()
 

Private Attributes

boost::shared_ptr
< ARDOUR::Crossfade > 
xfade
 
Gtk::VBox vpacker
 
ArdourCanvas::Rectangle * toplevel
 
ArdourCanvas::GtkCanvas * canvas
 
Half fade [2]
 
WhichFade current
 
bool point_grabbed
 
std::vector< Gtk::Button * > fade_out_buttons
 
std::vector< Gtk::Button * > fade_in_buttons
 
Gtk::VBox vpacker2
 
Gtk::Button clear_button
 
Gtk::Button revert_button
 
Gtk::ToggleButton audition_both_button
 
Gtk::ToggleButton audition_left_dry_button
 
Gtk::ToggleButton audition_left_button
 
Gtk::ToggleButton audition_right_dry_button
 
Gtk::ToggleButton audition_right_button
 
Gtk::ToggleButton preroll_button
 
Gtk::ToggleButton postroll_button
 
Gtk::HBox roll_box
 
double miny
 
double maxy
 
Gtk::Table fade_in_table
 
Gtk::Table fade_out_table
 
Gtk::RadioButton select_in_button
 
Gtk::RadioButton select_out_button
 
Gtk::HBox curve_button_box
 
Gtk::HBox audition_box
 
PBD::ScopedConnection_peaks_ready_connection
 
PBD::ScopedConnection state_connection
 

Additional Inherited Members

- Protected Attributes inherited from ARDOUR::SessionHandlePtr
ARDOUR::Session_session
 
PBD::ScopedConnectionList _session_connections
 

Detailed Description

Definition at line 50 of file crossfade_edit.h.

Member Typedef Documentation

typedef std::list<Preset*> CrossfadeEditor::Presets

Definition at line 81 of file crossfade_edit.h.

Member Enumeration Documentation

Enumerator
Both 
Left 
Right 

Definition at line 205 of file crossfade_edit.h.

Enumerator
In 
Out 

Definition at line 128 of file crossfade_edit.h.

Constructor & Destructor Documentation

CrossfadeEditor::CrossfadeEditor ( ARDOUR::Session ,
boost::shared_ptr< ARDOUR::Crossfade >  ,
double  miny,
double  maxy 
)

Definition at line 78 of file crossfade_edit.cc.

CrossfadeEditor::~CrossfadeEditor ( )

Definition at line 300 of file crossfade_edit.cc.

Member Function Documentation

void CrossfadeEditor::_apply_to ( boost::shared_ptr< ARDOUR::Crossfade >  xf)
private

Definition at line 801 of file crossfade_edit.cc.

void CrossfadeEditor::add_control_point ( double  x,
double  y 
)
private

Definition at line 477 of file crossfade_edit.cc.

void CrossfadeEditor::apply ( )

Definition at line 782 of file crossfade_edit.cc.

void CrossfadeEditor::apply_preset ( Preset preset)
private

Definition at line 749 of file crossfade_edit.cc.

void CrossfadeEditor::audition ( Audition  which)
private

Definition at line 1204 of file crossfade_edit.cc.

void CrossfadeEditor::audition_both ( )
private

Definition at line 1286 of file crossfade_edit.cc.

void CrossfadeEditor::audition_left ( )
private

Definition at line 1308 of file crossfade_edit.cc.

void CrossfadeEditor::audition_left_dry ( )
private

Definition at line 1292 of file crossfade_edit.cc.

void CrossfadeEditor::audition_left_dry_toggled ( )
private

Definition at line 1402 of file crossfade_edit.cc.

void CrossfadeEditor::audition_left_toggled ( )
private

Definition at line 1387 of file crossfade_edit.cc.

void CrossfadeEditor::audition_right ( )
private

Definition at line 1330 of file crossfade_edit.cc.

void CrossfadeEditor::audition_right_dry ( )
private

Definition at line 1314 of file crossfade_edit.cc.

void CrossfadeEditor::audition_right_dry_toggled ( )
private

Definition at line 1372 of file crossfade_edit.cc.

void CrossfadeEditor::audition_right_toggled ( )
private

Definition at line 1357 of file crossfade_edit.cc.

void CrossfadeEditor::audition_state_changed ( bool  yn)
private

Definition at line 324 of file crossfade_edit.cc.

void CrossfadeEditor::audition_toggled ( )
private

Definition at line 1342 of file crossfade_edit.cc.

void CrossfadeEditor::build_presets ( )
private

Definition at line 878 of file crossfade_edit.cc.

void CrossfadeEditor::cancel_audition ( )
private

Definition at line 1336 of file crossfade_edit.cc.

void CrossfadeEditor::canvas_allocation ( Gtk::Allocation &  )
private

Definition at line 525 of file crossfade_edit.cc.

bool CrossfadeEditor::canvas_event ( GdkEvent *  event)
private

Definition at line 440 of file crossfade_edit.cc.

void CrossfadeEditor::clear ( )
private

Definition at line 857 of file crossfade_edit.cc.

bool CrossfadeEditor::curve_event ( GdkEvent *  event)
private

Definition at line 384 of file crossfade_edit.cc.

void CrossfadeEditor::curve_select_clicked ( WhichFade  wf)
private

Definition at line 1059 of file crossfade_edit.cc.

void CrossfadeEditor::dump ( )
private

Definition at line 316 of file crossfade_edit.cc.

double CrossfadeEditor::effective_height ( ) const
inlineprivate

Definition at line 168 of file crossfade_edit.h.

double CrossfadeEditor::effective_width ( ) const
inlineprivate

Definition at line 167 of file crossfade_edit.h.

gint CrossfadeEditor::event_handler ( GdkEvent *  )
private
CrossfadeEditor::Point * CrossfadeEditor::make_point ( )
private

Definition at line 460 of file crossfade_edit.cc.

void CrossfadeEditor::make_waves ( boost::shared_ptr< ARDOUR::AudioRegion region,
WhichFade  which 
)
private

Definition at line 1135 of file crossfade_edit.cc.

bool CrossfadeEditor::on_key_press_event ( GdkEventKey *  )
protected

Definition at line 1417 of file crossfade_edit.cc.

bool CrossfadeEditor::on_key_release_event ( GdkEventKey *  ev)
protected

Definition at line 1423 of file crossfade_edit.cc.

void CrossfadeEditor::peaks_ready ( boost::weak_ptr< ARDOUR::AudioRegion r,
WhichFade  which 
)
private

Definition at line 1185 of file crossfade_edit.cc.

bool CrossfadeEditor::point_event ( GdkEvent *  event,
Point point 
)
private

Definition at line 392 of file crossfade_edit.cc.

void CrossfadeEditor::redraw ( )
private

Definition at line 649 of file crossfade_edit.cc.

void CrossfadeEditor::reset ( )
private

Definition at line 869 of file crossfade_edit.cc.

void CrossfadeEditor::set ( const ARDOUR::AutomationList alist,
WhichFade  which 
)
private

Definition at line 338 of file crossfade_edit.cc.

void CrossfadeEditor::setup ( boost::shared_ptr< ARDOUR::Crossfade >  )
private

Definition at line 848 of file crossfade_edit.cc.

double CrossfadeEditor::x_coordinate ( double &  xfract) const
private

Definition at line 1117 of file crossfade_edit.cc.

void CrossfadeEditor::xfade_changed ( const PBD::PropertyChange )
private

Definition at line 642 of file crossfade_edit.cc.

double CrossfadeEditor::y_coordinate ( double &  yfract) const
private

Definition at line 1126 of file crossfade_edit.cc.

Member Data Documentation

PBD::ScopedConnection* CrossfadeEditor::_peaks_ready_connection
private

Definition at line 194 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::audition_both_button
private

Definition at line 145 of file crossfade_edit.h.

Gtk::HBox CrossfadeEditor::audition_box
private

Definition at line 185 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::audition_left_button
private

Definition at line 147 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::audition_left_dry_button
private

Definition at line 146 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::audition_right_button
private

Definition at line 149 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::audition_right_dry_button
private

Definition at line 148 of file crossfade_edit.h.

Gtk::Button* CrossfadeEditor::cancel_button

Definition at line 63 of file crossfade_edit.h.

ArdourCanvas::GtkCanvas* CrossfadeEditor::canvas
private

Definition at line 115 of file crossfade_edit.h.

const double CrossfadeEditor::canvas_border = 10
static

Definition at line 58 of file crossfade_edit.h.

Gtk::Button CrossfadeEditor::clear_button
private

Definition at line 142 of file crossfade_edit.h.

WhichFade CrossfadeEditor::current
private

Definition at line 134 of file crossfade_edit.h.

Gtk::HBox CrossfadeEditor::curve_button_box
private

Definition at line 184 of file crossfade_edit.h.

Half CrossfadeEditor::fade[2]
private

Definition at line 133 of file crossfade_edit.h.

std::vector<Gtk::Button*> CrossfadeEditor::fade_in_buttons
private

Definition at line 138 of file crossfade_edit.h.

CrossfadeEditor::Presets * CrossfadeEditor::fade_in_presets = 0
static

Definition at line 83 of file crossfade_edit.h.

Gtk::Table CrossfadeEditor::fade_in_table
private

Definition at line 176 of file crossfade_edit.h.

std::vector<Gtk::Button*> CrossfadeEditor::fade_out_buttons
private

Definition at line 137 of file crossfade_edit.h.

CrossfadeEditor::Presets * CrossfadeEditor::fade_out_presets = 0
static

Definition at line 84 of file crossfade_edit.h.

Gtk::Table CrossfadeEditor::fade_out_table
private

Definition at line 177 of file crossfade_edit.h.

double CrossfadeEditor::maxy
private

Definition at line 174 of file crossfade_edit.h.

double CrossfadeEditor::miny
private

Definition at line 173 of file crossfade_edit.h.

Gtk::Button* CrossfadeEditor::ok_button

Definition at line 64 of file crossfade_edit.h.

bool CrossfadeEditor::point_grabbed
private

Definition at line 136 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::postroll_button
private

Definition at line 152 of file crossfade_edit.h.

Gtk::ToggleButton CrossfadeEditor::preroll_button
private

Definition at line 151 of file crossfade_edit.h.

Gtk::Button CrossfadeEditor::revert_button
private

Definition at line 143 of file crossfade_edit.h.

Gtk::HBox CrossfadeEditor::roll_box
private

Definition at line 154 of file crossfade_edit.h.

Gtk::RadioButton CrossfadeEditor::select_in_button
private

Definition at line 182 of file crossfade_edit.h.

Gtk::RadioButton CrossfadeEditor::select_out_button
private

Definition at line 183 of file crossfade_edit.h.

PBD::ScopedConnection CrossfadeEditor::state_connection
private

Definition at line 195 of file crossfade_edit.h.

ArdourCanvas::Rectangle* CrossfadeEditor::toplevel
private

Definition at line 114 of file crossfade_edit.h.

Gtk::VBox CrossfadeEditor::vpacker
private

Definition at line 93 of file crossfade_edit.h.

Gtk::VBox CrossfadeEditor::vpacker2
private

Definition at line 140 of file crossfade_edit.h.

boost::shared_ptr<ARDOUR::Crossfade> CrossfadeEditor::xfade
private

Definition at line 91 of file crossfade_edit.h.


The documentation for this class was generated from the following files: