mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 06:44:57 +01:00
globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
This commit is contained in:
parent
297e80e020
commit
4dc63966f0
774 changed files with 7919 additions and 7919 deletions
|
|
@ -49,14 +49,14 @@ class AddRouteDialog : public ArdourDialog
|
||||||
AddRouteDialog ();
|
AddRouteDialog ();
|
||||||
~AddRouteDialog ();
|
~AddRouteDialog ();
|
||||||
|
|
||||||
enum TypeWanted {
|
enum TypeWanted {
|
||||||
AudioTrack,
|
AudioTrack,
|
||||||
MidiTrack,
|
MidiTrack,
|
||||||
MixedTrack,
|
MixedTrack,
|
||||||
AudioBus
|
AudioBus
|
||||||
};
|
};
|
||||||
TypeWanted type_wanted() const;
|
TypeWanted type_wanted() const;
|
||||||
|
|
||||||
ARDOUR::ChanCount channels ();
|
ARDOUR::ChanCount channels ();
|
||||||
int count ();
|
int count ();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -310,7 +310,7 @@ AnalysisWindow::analyze_data (Gtk::Button * /*button*/)
|
||||||
newrow[tlcols.visible] = true;
|
newrow[tlcols.visible] = true;
|
||||||
newrow[tlcols.color] = rui->color();
|
newrow[tlcols.color] = rui->color();
|
||||||
newrow[tlcols.graph] = res;
|
newrow[tlcols.graph] = res;
|
||||||
}
|
}
|
||||||
} else if (source_selection_regions_rb.get_active()) {
|
} else if (source_selection_regions_rb.get_active()) {
|
||||||
RegionSelection ars = s.regions;
|
RegionSelection ars = s.regions;
|
||||||
// std::cerr << "Analyzing selected regions" << std::endl;
|
// std::cerr << "Analyzing selected regions" << std::endl;
|
||||||
|
|
|
||||||
|
|
@ -197,7 +197,7 @@ ArdourButton::set_alignment (const float xa, const float ya)
|
||||||
/* TODO make this a dedicated function elsewhere.
|
/* TODO make this a dedicated function elsewhere.
|
||||||
*
|
*
|
||||||
* Option 1:
|
* Option 1:
|
||||||
* virtual ArdourButton::render_vector_icon()
|
* virtual ArdourButton::render_vector_icon()
|
||||||
* ArdourIconButton::render_vector_icon
|
* ArdourIconButton::render_vector_icon
|
||||||
*
|
*
|
||||||
* Option 2:
|
* Option 2:
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ ArdourDialog::~ArdourDialog ()
|
||||||
{
|
{
|
||||||
if (_splash_pushed) {
|
if (_splash_pushed) {
|
||||||
Splash* spl = Splash::instance();
|
Splash* spl = Splash::instance();
|
||||||
|
|
||||||
if (spl) {
|
if (spl) {
|
||||||
spl->pop_front();
|
spl->pop_front();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -584,7 +584,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||||
void transport_record (bool roll);
|
void transport_record (bool roll);
|
||||||
void transport_roll ();
|
void transport_roll ();
|
||||||
void transport_play_selection();
|
void transport_play_selection();
|
||||||
void transport_play_preroll();
|
void transport_play_preroll();
|
||||||
void transport_forward (int option);
|
void transport_forward (int option);
|
||||||
void transport_rewind (int option);
|
void transport_rewind (int option);
|
||||||
void transport_loop ();
|
void transport_loop ();
|
||||||
|
|
@ -640,7 +640,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||||
SessionOptionEditor* create_session_option_editor ();
|
SessionOptionEditor* create_session_option_editor ();
|
||||||
BundleManager* create_bundle_manager ();
|
BundleManager* create_bundle_manager ();
|
||||||
AddVideoDialog* create_add_video_dialog ();
|
AddVideoDialog* create_add_video_dialog ();
|
||||||
BigClockWindow* create_big_clock_window();
|
BigClockWindow* create_big_clock_window();
|
||||||
GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType);
|
GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType);
|
||||||
|
|
||||||
ARDOUR::SystemExec *video_server_process;
|
ARDOUR::SystemExec *video_server_process;
|
||||||
|
|
@ -733,7 +733,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||||
void loading_message (const std::string& msg);
|
void loading_message (const std::string& msg);
|
||||||
|
|
||||||
PBD::ScopedConnectionList forever_connections;
|
PBD::ScopedConnectionList forever_connections;
|
||||||
PBD::ScopedConnection halt_connection;
|
PBD::ScopedConnection halt_connection;
|
||||||
|
|
||||||
void step_edit_status_change (bool);
|
void step_edit_status_change (bool);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -343,7 +343,7 @@ ARDOUR_UI::setup_transport ()
|
||||||
alert_box.pack_start (feedback_alert_button, true, true);
|
alert_box.pack_start (feedback_alert_button, true, true);
|
||||||
|
|
||||||
/* all transport buttons should be the same size vertically and
|
/* all transport buttons should be the same size vertically and
|
||||||
* horizontally
|
* horizontally
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Glib::RefPtr<SizeGroup> transport_button_size_group = SizeGroup::create (SIZE_GROUP_BOTH);
|
Glib::RefPtr<SizeGroup> transport_button_size_group = SizeGroup::create (SIZE_GROUP_BOTH);
|
||||||
|
|
|
||||||
|
|
@ -204,8 +204,8 @@ ARDOUR_UI::set_session (Session *s)
|
||||||
transport_tearoff_hbox.remove (editor_meter_peak_display);
|
transport_tearoff_hbox.remove (editor_meter_peak_display);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_session &&
|
if (_session &&
|
||||||
_session->master_out() &&
|
_session->master_out() &&
|
||||||
_session->master_out()->n_outputs().n(DataType::AUDIO) > 0) {
|
_session->master_out()->n_outputs().n(DataType::AUDIO) > 0) {
|
||||||
|
|
||||||
if (!ARDOUR::Profile->get_trx()) {
|
if (!ARDOUR::Profile->get_trx()) {
|
||||||
|
|
|
||||||
|
|
@ -412,7 +412,7 @@ ARDOUR_UI::parameter_changed (std::string p)
|
||||||
transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false);
|
transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false);
|
||||||
meter_box.show();
|
meter_box.show();
|
||||||
editor_meter_peak_display.show();
|
editor_meter_peak_display.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (p == "waveform-scale") {
|
} else if (p == "waveform-scale") {
|
||||||
ArdourCanvas::WaveView::set_global_logscaled (UIConfiguration::instance().get_waveform_scale() == Logarithmic);
|
ArdourCanvas::WaveView::set_global_logscaled (UIConfiguration::instance().get_waveform_scale() == Logarithmic);
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ ArdourWindow::init ()
|
||||||
/* ArdourWindows are not dialogs (they have no "OK" or "Close" button) but
|
/* ArdourWindows are not dialogs (they have no "OK" or "Close" button) but
|
||||||
they should be considered part of the same "window level" as a dialog. This
|
they should be considered part of the same "window level" as a dialog. This
|
||||||
works on X11 and Quartz, in that:
|
works on X11 and Quartz, in that:
|
||||||
|
|
||||||
(a) utility & dialog windows are considered to be part of the same level
|
(a) utility & dialog windows are considered to be part of the same level
|
||||||
(b) they will float above normal windows without any particular effort
|
(b) they will float above normal windows without any particular effort
|
||||||
(c) present()-ing them will make a utility float over a dialog or
|
(c) present()-ing them will make a utility float over a dialog or
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -78,9 +78,9 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
|
||||||
framepos_t current_time (framepos_t position = 0) const;
|
framepos_t current_time (framepos_t position = 0) const;
|
||||||
framepos_t current_duration (framepos_t position = 0) const;
|
framepos_t current_duration (framepos_t position = 0) const;
|
||||||
void set_session (ARDOUR::Session *s);
|
void set_session (ARDOUR::Session *s);
|
||||||
void set_negative_allowed (bool yn);
|
void set_negative_allowed (bool yn);
|
||||||
|
|
||||||
/** Alter cairo scaling during rendering.
|
/** Alter cairo scaling during rendering.
|
||||||
*
|
*
|
||||||
* Used by clocks that resize themselves
|
* Used by clocks that resize themselves
|
||||||
* to fit any given space. Can lead
|
* to fit any given space. Can lead
|
||||||
|
|
@ -175,7 +175,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
|
||||||
|
|
||||||
/* this maps the number of input characters/digits when editing
|
/* this maps the number of input characters/digits when editing
|
||||||
to a cursor position. insert_map[N] = index of character/digit
|
to a cursor position. insert_map[N] = index of character/digit
|
||||||
where the cursor should be after N chars/digits. it is
|
where the cursor should be after N chars/digits. it is
|
||||||
mode specific and so it is filled during set_mode().
|
mode specific and so it is filled during set_mode().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1040,8 +1040,8 @@ AudioRegionView::set_colors ()
|
||||||
RegionView::set_colors();
|
RegionView::set_colors();
|
||||||
|
|
||||||
if (gain_line) {
|
if (gain_line) {
|
||||||
gain_line->set_line_color (audio_region()->envelope_active() ?
|
gain_line->set_line_color (audio_region()->envelope_active() ?
|
||||||
UIConfiguration::instance().color ("gain line") :
|
UIConfiguration::instance().color ("gain line") :
|
||||||
UIConfiguration::instance().color_mod ("gain line inactive", "gain line inactive"));
|
UIConfiguration::instance().color_mod ("gain line inactive", "gain line inactive"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1216,7 +1216,7 @@ AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* first waveview starts at 1.0, not 0.0 since that will overlap the
|
/* first waveview starts at 1.0, not 0.0 since that will overlap the
|
||||||
* frame
|
* frame
|
||||||
*/
|
*/
|
||||||
|
|
||||||
gdouble yoff = which * ht;
|
gdouble yoff = which * ht;
|
||||||
|
|
@ -1471,8 +1471,8 @@ void
|
||||||
AudioRegionView::envelope_active_changed ()
|
AudioRegionView::envelope_active_changed ()
|
||||||
{
|
{
|
||||||
if (gain_line) {
|
if (gain_line) {
|
||||||
gain_line->set_line_color (audio_region()->envelope_active() ?
|
gain_line->set_line_color (audio_region()->envelope_active() ?
|
||||||
UIConfiguration::instance().color ("gain line") :
|
UIConfiguration::instance().color ("gain line") :
|
||||||
UIConfiguration::instance().color_mod ("gain line inactive", "gain line inactive"));
|
UIConfiguration::instance().color_mod ("gain line inactive", "gain line inactive"));
|
||||||
update_envelope_visibility ();
|
update_envelope_visibility ();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ void
|
||||||
AutomationLine::hide ()
|
AutomationLine::hide ()
|
||||||
{
|
{
|
||||||
/* leave control points setting unchanged, we are just hiding the
|
/* leave control points setting unchanged, we are just hiding the
|
||||||
overall line
|
overall line
|
||||||
*/
|
*/
|
||||||
|
|
||||||
set_visibility (AutomationLine::VisibleAspects (_visible & ~Line));
|
set_visibility (AutomationLine::VisibleAspects (_visible & ~Line));
|
||||||
|
|
@ -521,13 +521,13 @@ struct ControlPointSorter
|
||||||
bool operator() (ControlPoint const * a, ControlPoint const * b) const {
|
bool operator() (ControlPoint const * a, ControlPoint const * b) const {
|
||||||
if (floateq (a->get_x(), b->get_x(), 1)) {
|
if (floateq (a->get_x(), b->get_x(), 1)) {
|
||||||
return a->view_index() < b->view_index();
|
return a->view_index() < b->view_index();
|
||||||
}
|
}
|
||||||
return a->get_x() < b->get_x();
|
return a->get_x() < b->get_x();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AutomationLine::ContiguousControlPoints::ContiguousControlPoints (AutomationLine& al)
|
AutomationLine::ContiguousControlPoints::ContiguousControlPoints (AutomationLine& al)
|
||||||
: line (al), before_x (0), after_x (DBL_MAX)
|
: line (al), before_x (0), after_x (DBL_MAX)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -539,7 +539,7 @@ AutomationLine::ContiguousControlPoints::compute_x_bounds (PublicEditor& e)
|
||||||
if (sz > 0 && sz < line.npoints()) {
|
if (sz > 0 && sz < line.npoints()) {
|
||||||
const TempoMap& map (e.session()->tempo_map());
|
const TempoMap& map (e.session()->tempo_map());
|
||||||
|
|
||||||
/* determine the limits on x-axis motion for this
|
/* determine the limits on x-axis motion for this
|
||||||
contiguous range of control points
|
contiguous range of control points
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -573,8 +573,8 @@ AutomationLine::ContiguousControlPoints::compute_x_bounds (PublicEditor& e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double
|
double
|
||||||
AutomationLine::ContiguousControlPoints::clamp_dx (double dx)
|
AutomationLine::ContiguousControlPoints::clamp_dx (double dx)
|
||||||
{
|
{
|
||||||
if (empty()) {
|
if (empty()) {
|
||||||
return dx;
|
return dx;
|
||||||
|
|
@ -594,14 +594,14 @@ AutomationLine::ContiguousControlPoints::clamp_dx (double dx)
|
||||||
cp = front();
|
cp = front();
|
||||||
}
|
}
|
||||||
|
|
||||||
tx = cp->get_x() + dx; // new possible position if we just add the motion
|
tx = cp->get_x() + dx; // new possible position if we just add the motion
|
||||||
tx = max (tx, before_x); // can't move later than following point
|
tx = max (tx, before_x); // can't move later than following point
|
||||||
tx = min (tx, after_x); // can't move earlier than preceeding point
|
tx = min (tx, after_x); // can't move earlier than preceeding point
|
||||||
return tx - cp->get_x ();
|
return tx - cp->get_x ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AutomationLine::ContiguousControlPoints::move (double dx, double dy)
|
AutomationLine::ContiguousControlPoints::move (double dx, double dy)
|
||||||
{
|
{
|
||||||
for (std::list<ControlPoint*>::iterator i = begin(); i != end(); ++i) {
|
for (std::list<ControlPoint*>::iterator i = begin(); i != end(); ++i) {
|
||||||
(*i)->move_to ((*i)->get_x() + dx, (*i)->get_y() - line.height() * dy, ControlPoint::Full);
|
(*i)->move_to ((*i)->get_x() + dx, (*i)->get_y() - line.height() * dy, ControlPoint::Full);
|
||||||
|
|
@ -645,7 +645,7 @@ AutomationLine::drag_motion (double const x, float fraction, bool ignore_x, bool
|
||||||
|
|
||||||
if (!_drag_had_movement) {
|
if (!_drag_had_movement) {
|
||||||
|
|
||||||
/* "first move" ... do some stuff that we don't want to do if
|
/* "first move" ... do some stuff that we don't want to do if
|
||||||
no motion ever took place, but need to do before we handle
|
no motion ever took place, but need to do before we handle
|
||||||
motion.
|
motion.
|
||||||
*/
|
*/
|
||||||
|
|
@ -680,8 +680,8 @@ AutomationLine::drag_motion (double const x, float fraction, bool ignore_x, bool
|
||||||
/* OK, now on to the stuff related to *this* motion event. First, for
|
/* OK, now on to the stuff related to *this* motion event. First, for
|
||||||
* each contiguous range, figure out the maximum x-axis motion we are
|
* each contiguous range, figure out the maximum x-axis motion we are
|
||||||
* allowed (because of neighbouring points that are not moving.
|
* allowed (because of neighbouring points that are not moving.
|
||||||
*
|
*
|
||||||
* if we are moving forwards with push, we don't need to do this,
|
* if we are moving forwards with push, we don't need to do this,
|
||||||
* since all later points will move too.
|
* since all later points will move too.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -1260,7 +1260,7 @@ AutomationLine::interpolation_changed (AutomationList::InterpolationStyle style)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AutomationLine::add_visible_control_point (uint32_t view_index, uint32_t pi, double tx, double ty,
|
AutomationLine::add_visible_control_point (uint32_t view_index, uint32_t pi, double tx, double ty,
|
||||||
AutomationList::iterator model, uint32_t npoints)
|
AutomationList::iterator model, uint32_t npoints)
|
||||||
{
|
{
|
||||||
ControlPoint::ShapeType shape;
|
ControlPoint::ShapeType shape;
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ protected:
|
||||||
bool _our_time_converter;
|
bool _our_time_converter;
|
||||||
|
|
||||||
VisibleAspects _visible;
|
VisibleAspects _visible;
|
||||||
|
|
||||||
bool _uses_gain_mapping;
|
bool _uses_gain_mapping;
|
||||||
bool terminal_points_can_slide;
|
bool terminal_points_can_slide;
|
||||||
bool update_pending;
|
bool update_pending;
|
||||||
|
|
|
||||||
|
|
@ -909,8 +909,8 @@ AutomationTimeAxisView::state_id() const
|
||||||
if (_automatable != _route && _control) {
|
if (_automatable != _route && _control) {
|
||||||
return string_compose ("automation %1", _control->id().to_s());
|
return string_compose ("automation %1", _control->id().to_s());
|
||||||
} else if (_parameter) {
|
} else if (_parameter) {
|
||||||
return string_compose ("automation %1 %2/%3/%4",
|
return string_compose ("automation %1 %2/%3/%4",
|
||||||
_route->id(),
|
_route->id(),
|
||||||
_parameter.type(),
|
_parameter.type(),
|
||||||
_parameter.id(),
|
_parameter.id(),
|
||||||
(int) _parameter.channel());
|
(int) _parameter.channel());
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ AxisView::set_marked_for_display (bool yn)
|
||||||
}
|
}
|
||||||
|
|
||||||
GUIObjectState&
|
GUIObjectState&
|
||||||
AxisView::gui_object_state()
|
AxisView::gui_object_state()
|
||||||
{
|
{
|
||||||
return *ARDOUR_UI::instance()->gui_object_state;
|
return *ARDOUR_UI::instance()->gui_object_state;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ class AxisView : public virtual Selectable, public PBD::ScopedConnectionList, pu
|
||||||
property_hashtable.emplace(property_name, s.str());
|
property_hashtable.emplace(property_name, s.str());
|
||||||
gui_object_state().set_property<T> (state_id(), property_name, value);
|
gui_object_state().set_property<T> (state_id(), property_name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cleanup_gui_properties () {
|
void cleanup_gui_properties () {
|
||||||
/* remove related property node from the GUI state */
|
/* remove related property node from the GUI state */
|
||||||
gui_object_state().remove_node (state_id());
|
gui_object_state().remove_node (state_id());
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ using std::min;
|
||||||
using std::string;
|
using std::string;
|
||||||
using namespace ARDOUR_UI_UTILS;
|
using namespace ARDOUR_UI_UTILS;
|
||||||
|
|
||||||
BigClockWindow::BigClockWindow (AudioClock& c)
|
BigClockWindow::BigClockWindow (AudioClock& c)
|
||||||
: ArdourWindow (_("Big Clock"))
|
: ArdourWindow (_("Big Clock"))
|
||||||
, clock (c)
|
, clock (c)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
/** This function must do whatever is necessary to create the right runtime
|
/** This function must do whatever is necessary to create the right runtime
|
||||||
* environment for the GTK2 version of ardour, on a per-platform basis.
|
* environment for the GTK2 version of ardour, on a per-platform basis.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void fixup_bundle_environment (int, char* [], std::string & localedir);
|
void fixup_bundle_environment (int, char* [], std::string & localedir);
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ fixup_bundle_environment (int, char* [], string & localedir)
|
||||||
g_setenv ("FONTCONFIG_FILE", Glib::build_filename (bundle_dir, "Resources/fonts.conf").c_str(), 1);
|
g_setenv ("FONTCONFIG_FILE", Glib::build_filename (bundle_dir, "Resources/fonts.conf").c_str(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void load_custom_fonts()
|
void load_custom_fonts()
|
||||||
{
|
{
|
||||||
/* this code will only compile on OS X 10.6 and above, and we currently do not
|
/* this code will only compile on OS X 10.6 and above, and we currently do not
|
||||||
* need it for earlier versions since we fall back on a non-monospace,
|
* need it for earlier versions since we fall back on a non-monospace,
|
||||||
|
|
|
||||||
|
|
@ -112,8 +112,8 @@ fixup_bundle_environment (int /*argc*/, char* argv[], string & localedir)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
load_custom_fonts()
|
load_custom_fonts()
|
||||||
{
|
{
|
||||||
std::string ardour_mono_file;
|
std::string ardour_mono_file;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -490,7 +490,7 @@ fixup_bundle_environment (int argc, char* argv[], string & localedir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void load_custom_fonts()
|
void load_custom_fonts()
|
||||||
{
|
{
|
||||||
std::string ardour_mono_file;
|
std::string ardour_mono_file;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -132,7 +132,7 @@ ButtonJoiner::render (cairo_t* cr, cairo_rectangle_t*)
|
||||||
Gtkmm2ext::rounded_top_rectangle (cr, 0, 0, (get_width() - 20.0)/2.0 , h, 8);
|
Gtkmm2ext::rounded_top_rectangle (cr, 0, 0, (get_width() - 20.0)/2.0 , h, 8);
|
||||||
cairo_fill_preserve (cr);
|
cairo_fill_preserve (cr);
|
||||||
|
|
||||||
Gtkmm2ext::rounded_top_rectangle (cr, (get_width() - 20.)/2.0 + 20.0, 0.0,
|
Gtkmm2ext::rounded_top_rectangle (cr, (get_width() - 20.)/2.0 + 20.0, 0.0,
|
||||||
(get_width() - 20.0)/2.0 , h, 8);
|
(get_width() - 20.0)/2.0 , h, 8);
|
||||||
cairo_fill_preserve (cr);
|
cairo_fill_preserve (cr);
|
||||||
|
|
||||||
|
|
@ -187,7 +187,7 @@ ButtonJoiner::set_related_action (Glib::RefPtr<Action> act)
|
||||||
if (tact) {
|
if (tact) {
|
||||||
action_toggled ();
|
action_toggled ();
|
||||||
tact->signal_toggled().connect (sigc::mem_fun (*this, &ButtonJoiner::action_toggled));
|
tact->signal_toggled().connect (sigc::mem_fun (*this, &ButtonJoiner::action_toggled));
|
||||||
}
|
}
|
||||||
|
|
||||||
_action->connect_property_changed ("sensitive", sigc::mem_fun (*this, &ButtonJoiner::action_sensitivity_changed));
|
_action->connect_property_changed ("sensitive", sigc::mem_fun (*this, &ButtonJoiner::action_sensitivity_changed));
|
||||||
_action->connect_property_changed ("visible", sigc::mem_fun (*this, &ButtonJoiner::action_visibility_changed));
|
_action->connect_property_changed ("visible", sigc::mem_fun (*this, &ButtonJoiner::action_visibility_changed));
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -331,7 +331,7 @@ gnome_canvas_waveview_class_init (GnomeCanvasWaveViewClass *class)
|
||||||
item_class->draw = gnome_canvas_waveview_draw;
|
item_class->draw = gnome_canvas_waveview_draw;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gnome_canvas_waveview_set_gradient_waveforms (int yn)
|
gnome_canvas_waveview_set_gradient_waveforms (int yn)
|
||||||
{
|
{
|
||||||
_gradient_rendering = yn;
|
_gradient_rendering = yn;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ ControlPoint::move_to (double x, double y, ShapeType shape)
|
||||||
}
|
}
|
||||||
|
|
||||||
ArdourCanvas::Item&
|
ArdourCanvas::Item&
|
||||||
ControlPoint::item() const
|
ControlPoint::item() const
|
||||||
{
|
{
|
||||||
return *_item;
|
return *_item;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public:
|
||||||
EditNoteDialog (MidiRegionView* rv, std::set<NoteBase*> n);
|
EditNoteDialog (MidiRegionView* rv, std::set<NoteBase*> n);
|
||||||
|
|
||||||
void done (int);
|
void done (int);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MidiRegionView* _region_view;
|
MidiRegionView* _region_view;
|
||||||
std::set<NoteBase*> _events;
|
std::set<NoteBase*> _events;
|
||||||
|
|
|
||||||
|
|
@ -235,7 +235,7 @@ pane_size_watcher (Paned* pane)
|
||||||
|
|
||||||
X: hard to access
|
X: hard to access
|
||||||
Quartz: impossible to access
|
Quartz: impossible to access
|
||||||
|
|
||||||
so stop that by preventing it from ever getting too narrow. 35
|
so stop that by preventing it from ever getting too narrow. 35
|
||||||
pixels is basically a rough guess at the tab width.
|
pixels is basically a rough guess at the tab width.
|
||||||
|
|
||||||
|
|
@ -1014,12 +1014,12 @@ Editor::control_unselect ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::control_select (uint32_t rid, Selection::Operation op)
|
Editor::control_select (uint32_t rid, Selection::Operation op)
|
||||||
{
|
{
|
||||||
/* handles the (static) signal from the ControlProtocol class that
|
/* handles the (static) signal from the ControlProtocol class that
|
||||||
* requests setting the selected track to a given RID
|
* requests setting the selected track to a given RID
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!_session) {
|
if (!_session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1190,7 +1190,7 @@ Editor::generic_event_handler (GdkEvent* ev)
|
||||||
case GDK_NOTIFY_UNKNOWN:
|
case GDK_NOTIFY_UNKNOWN:
|
||||||
case GDK_NOTIFY_INFERIOR:
|
case GDK_NOTIFY_INFERIOR:
|
||||||
case GDK_NOTIFY_ANCESTOR:
|
case GDK_NOTIFY_ANCESTOR:
|
||||||
break;
|
break;
|
||||||
case GDK_NOTIFY_VIRTUAL:
|
case GDK_NOTIFY_VIRTUAL:
|
||||||
case GDK_NOTIFY_NONLINEAR:
|
case GDK_NOTIFY_NONLINEAR:
|
||||||
case GDK_NOTIFY_NONLINEAR_VIRTUAL:
|
case GDK_NOTIFY_NONLINEAR_VIRTUAL:
|
||||||
|
|
@ -3068,7 +3068,7 @@ Editor::setup_toolbar ()
|
||||||
&_zoom_tearoff->tearoff_window()));
|
&_zoom_tearoff->tearoff_window()));
|
||||||
_zoom_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
|
_zoom_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
|
||||||
&_zoom_tearoff->tearoff_window(), 0));
|
&_zoom_tearoff->tearoff_window(), 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Profile->get_sae() || Profile->get_mixbus() ) {
|
if (Profile->get_sae() || Profile->get_mixbus() ) {
|
||||||
_zoom_tearoff->set_can_be_torn_off (false);
|
_zoom_tearoff->set_can_be_torn_off (false);
|
||||||
|
|
@ -3600,7 +3600,7 @@ Editor::duplicate_range (bool with_dialog)
|
||||||
} else if (get_smart_mode()) {
|
} else if (get_smart_mode()) {
|
||||||
if (selection->time.length()) {
|
if (selection->time.length()) {
|
||||||
duplicate_selection (times);
|
duplicate_selection (times);
|
||||||
} else
|
} else
|
||||||
duplicate_some_regions (rs, times);
|
duplicate_some_regions (rs, times);
|
||||||
} else {
|
} else {
|
||||||
duplicate_some_regions (rs, times);
|
duplicate_some_regions (rs, times);
|
||||||
|
|
@ -3803,7 +3803,7 @@ Editor::set_visible_track_count (int32_t n)
|
||||||
h = trackviews_height() / n;
|
h = trackviews_height() / n;
|
||||||
str = _("All");
|
str = _("All");
|
||||||
} else {
|
} else {
|
||||||
/* negative value means that the visible track count has
|
/* negative value means that the visible track count has
|
||||||
been overridden by explicit track height changes.
|
been overridden by explicit track height changes.
|
||||||
*/
|
*/
|
||||||
visible_tracks_selector.set_text (X_("*"));
|
visible_tracks_selector.set_text (X_("*"));
|
||||||
|
|
@ -3967,8 +3967,8 @@ Editor::pane_allocation_handler (Allocation &alloc, Paned* which)
|
||||||
void
|
void
|
||||||
Editor::detach_tearoff (Box* /*b*/, Window* /*w*/)
|
Editor::detach_tearoff (Box* /*b*/, Window* /*w*/)
|
||||||
{
|
{
|
||||||
if ((_tools_tearoff->torn_off() || !_tools_tearoff->visible()) &&
|
if ((_tools_tearoff->torn_off() || !_tools_tearoff->visible()) &&
|
||||||
(_mouse_mode_tearoff->torn_off() || !_mouse_mode_tearoff->visible()) &&
|
(_mouse_mode_tearoff->torn_off() || !_mouse_mode_tearoff->visible()) &&
|
||||||
(_zoom_tearoff && (_zoom_tearoff->torn_off() || !_zoom_tearoff->visible()))) {
|
(_zoom_tearoff && (_zoom_tearoff->torn_off() || !_zoom_tearoff->visible()))) {
|
||||||
top_hbox.remove (toolbar_frame);
|
top_hbox.remove (toolbar_frame);
|
||||||
}
|
}
|
||||||
|
|
@ -3998,7 +3998,7 @@ Editor::set_show_measures (bool yn)
|
||||||
|
|
||||||
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), begin, end);
|
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_samples(), begin, end);
|
||||||
draw_measures (begin, end);
|
draw_measures (begin, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
instant_save ();
|
instant_save ();
|
||||||
}
|
}
|
||||||
|
|
@ -4911,7 +4911,7 @@ Editor::get_regions_from_selection_and_edit_point ()
|
||||||
if (!tracks.empty()) {
|
if (!tracks.empty()) {
|
||||||
/* no region selected or entered, but some selected tracks:
|
/* no region selected or entered, but some selected tracks:
|
||||||
* act on all regions on the selected tracks at the edit point
|
* act on all regions on the selected tracks at the edit point
|
||||||
*/
|
*/
|
||||||
framepos_t const where = get_preferred_edit_position ();
|
framepos_t const where = get_preferred_edit_position ();
|
||||||
get_regions_at(regions, where, tracks);
|
get_regions_at(regions, where, tracks);
|
||||||
}
|
}
|
||||||
|
|
@ -4948,7 +4948,7 @@ Editor::get_regions_from_selection_and_mouse (framepos_t pos)
|
||||||
if (!tracks.empty()) {
|
if (!tracks.empty()) {
|
||||||
/* no region selected or entered, but some selected tracks:
|
/* no region selected or entered, but some selected tracks:
|
||||||
* act on all regions on the selected tracks at the edit point
|
* act on all regions on the selected tracks at the edit point
|
||||||
*/
|
*/
|
||||||
get_regions_at(regions, pos, tracks);
|
get_regions_at(regions, pos, tracks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -809,7 +809,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
Gtk::VBox time_bars_vbox;
|
Gtk::VBox time_bars_vbox;
|
||||||
|
|
||||||
ArdourCanvas::Pixbuf *logo_item;
|
ArdourCanvas::Pixbuf *logo_item;
|
||||||
#if 0
|
#if 0
|
||||||
/* these will be needed when we have canvas rulers */
|
/* these will be needed when we have canvas rulers */
|
||||||
ArdourCanvas::Container *minsec_group;
|
ArdourCanvas::Container *minsec_group;
|
||||||
ArdourCanvas::Container *bbt_group;
|
ArdourCanvas::Container *bbt_group;
|
||||||
|
|
@ -1703,7 +1703,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
void remove_metric_marks ();
|
void remove_metric_marks ();
|
||||||
void draw_metric_marks (const ARDOUR::Metrics& metrics);
|
void draw_metric_marks (const ARDOUR::Metrics& metrics);
|
||||||
|
|
||||||
void compute_current_bbt_points (framepos_t left, framepos_t right,
|
void compute_current_bbt_points (framepos_t left, framepos_t right,
|
||||||
ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
|
ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
|
||||||
ARDOUR::TempoMap::BBTPointList::const_iterator& end);
|
ARDOUR::TempoMap::BBTPointList::const_iterator& end);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -725,7 +725,7 @@ Editor::register_actions ()
|
||||||
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
|
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
|
||||||
tact->set_active (true);
|
tact->set_active (true);
|
||||||
|
|
||||||
ActionManager::register_action (editor_actions, X_("toggle-midi-input-active"), _("Toggle MIDI Input Active for Editor-Selected Tracks/Busses"),
|
ActionManager::register_action (editor_actions, X_("toggle-midi-input-active"), _("Toggle MIDI Input Active for Editor-Selected Tracks/Busses"),
|
||||||
sigc::bind (sigc::mem_fun (*this, &Editor::toggle_midi_input_active), false));
|
sigc::bind (sigc::mem_fun (*this, &Editor::toggle_midi_input_active), false));
|
||||||
|
|
||||||
ActionManager::add_action_group (rl_actions);
|
ActionManager::add_action_group (rl_actions);
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,7 @@ Editor::external_audio_dialog ()
|
||||||
if (atv) {
|
if (atv) {
|
||||||
if (atv->is_audio_track()) {
|
if (atv->is_audio_track()) {
|
||||||
audio_track_cnt++;
|
audio_track_cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
MidiTimeAxisView* mtv = dynamic_cast<MidiTimeAxisView*>(*x);
|
MidiTimeAxisView* mtv = dynamic_cast<MidiTimeAxisView*>(*x);
|
||||||
|
|
@ -628,7 +628,7 @@ Editor::embed_sndfiles (vector<string> paths,
|
||||||
|
|
||||||
source = boost::dynamic_pointer_cast<AudioFileSource> (
|
source = boost::dynamic_pointer_cast<AudioFileSource> (
|
||||||
SourceFactory::createExternal (DataType::AUDIO, *_session,
|
SourceFactory::createExternal (DataType::AUDIO, *_session,
|
||||||
path, n,
|
path, n,
|
||||||
(mode == ImportAsTapeTrack
|
(mode == ImportAsTapeTrack
|
||||||
? Source::Destructive
|
? Source::Destructive
|
||||||
: Source::Flag (0)),
|
: Source::Flag (0)),
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ Editor::initialize_canvas ()
|
||||||
*/
|
*/
|
||||||
no_scroll_group = new ArdourCanvas::Container (_track_canvas->root());
|
no_scroll_group = new ArdourCanvas::Container (_track_canvas->root());
|
||||||
|
|
||||||
ArdourCanvas::ScrollGroup* hsg;
|
ArdourCanvas::ScrollGroup* hsg;
|
||||||
ArdourCanvas::ScrollGroup* hg;
|
ArdourCanvas::ScrollGroup* hg;
|
||||||
ArdourCanvas::ScrollGroup* cg;
|
ArdourCanvas::ScrollGroup* cg;
|
||||||
|
|
||||||
|
|
@ -86,7 +86,7 @@ Editor::initialize_canvas ()
|
||||||
CANVAS_DEBUG_NAME (h_scroll_group, "canvas h scroll");
|
CANVAS_DEBUG_NAME (h_scroll_group, "canvas h scroll");
|
||||||
_track_canvas->add_scroller (*hg);
|
_track_canvas->add_scroller (*hg);
|
||||||
|
|
||||||
hv_scroll_group = hsg = new ArdourCanvas::ScrollGroup (_track_canvas->root(),
|
hv_scroll_group = hsg = new ArdourCanvas::ScrollGroup (_track_canvas->root(),
|
||||||
ArdourCanvas::ScrollGroup::ScrollSensitivity (ArdourCanvas::ScrollGroup::ScrollsVertically|
|
ArdourCanvas::ScrollGroup::ScrollSensitivity (ArdourCanvas::ScrollGroup::ScrollsVertically|
|
||||||
ArdourCanvas::ScrollGroup::ScrollsHorizontally));
|
ArdourCanvas::ScrollGroup::ScrollsHorizontally));
|
||||||
CANVAS_DEBUG_NAME (hv_scroll_group, "canvas hv scroll");
|
CANVAS_DEBUG_NAME (hv_scroll_group, "canvas hv scroll");
|
||||||
|
|
@ -136,7 +136,7 @@ Editor::initialize_canvas ()
|
||||||
/* a group to hold stuff while it gets dragged around. Must be the
|
/* a group to hold stuff while it gets dragged around. Must be the
|
||||||
* uppermost (last) group with hv_scroll_group as a parent
|
* uppermost (last) group with hv_scroll_group as a parent
|
||||||
*/
|
*/
|
||||||
_drag_motion_group = new ArdourCanvas::Container (hv_scroll_group);
|
_drag_motion_group = new ArdourCanvas::Container (hv_scroll_group);
|
||||||
CANVAS_DEBUG_NAME (_drag_motion_group, "Canvas Drag Motion");
|
CANVAS_DEBUG_NAME (_drag_motion_group, "Canvas Drag Motion");
|
||||||
|
|
||||||
/* TIME BAR CANVAS */
|
/* TIME BAR CANVAS */
|
||||||
|
|
@ -539,16 +539,16 @@ Editor::maybe_autoscroll (bool allow_horiz, bool allow_vert, bool from_headers)
|
||||||
|
|
||||||
/* the effective width of the autoscroll boundary so
|
/* the effective width of the autoscroll boundary so
|
||||||
that we start scrolling before we hit the edge.
|
that we start scrolling before we hit the edge.
|
||||||
|
|
||||||
this helps when the window is slammed up against the
|
this helps when the window is slammed up against the
|
||||||
right edge of the screen, making it hard to scroll
|
right edge of the screen, making it hard to scroll
|
||||||
effectively.
|
effectively.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (alloc.get_width() > 20) {
|
if (alloc.get_width() > 20) {
|
||||||
alloc.set_width (alloc.get_width() - 20);
|
alloc.set_width (alloc.get_width() - 20);
|
||||||
alloc.set_x (alloc.get_x() + 10);
|
alloc.set_x (alloc.get_x() + 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -633,7 +633,7 @@ Editor::autoscroll_canvas ()
|
||||||
// const double vertical_pos = vertical_adjustment.get_value();
|
// const double vertical_pos = vertical_adjustment.get_value();
|
||||||
const int speed_factor = 10;
|
const int speed_factor = 10;
|
||||||
|
|
||||||
/* vertical */
|
/* vertical */
|
||||||
|
|
||||||
if (y < autoscroll_boundary.y0) {
|
if (y < autoscroll_boundary.y0) {
|
||||||
|
|
||||||
|
|
@ -675,7 +675,7 @@ Editor::autoscroll_canvas ()
|
||||||
/* the motion handler expects events in canvas coordinate space */
|
/* the motion handler expects events in canvas coordinate space */
|
||||||
|
|
||||||
/* we asked for the mouse position above (::get_pointer()) via
|
/* we asked for the mouse position above (::get_pointer()) via
|
||||||
* our own top level window (we being the Editor). Convert into
|
* our own top level window (we being the Editor). Convert into
|
||||||
* coordinates within the canvas window.
|
* coordinates within the canvas window.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -704,7 +704,7 @@ Editor::autoscroll_canvas ()
|
||||||
} else if (no_stop) {
|
} else if (no_stop) {
|
||||||
|
|
||||||
/* not changing visual state but pointer is outside the scrolling boundary
|
/* not changing visual state but pointer is outside the scrolling boundary
|
||||||
* so we still need to deliver a fake motion event
|
* so we still need to deliver a fake motion event
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GdkEventMotion ev;
|
GdkEventMotion ev;
|
||||||
|
|
@ -828,7 +828,7 @@ Editor::ensure_time_axis_view_is_visible (TimeAxisView const & track, bool at_to
|
||||||
double const track_min_y = track.y_position ();
|
double const track_min_y = track.y_position ();
|
||||||
double const track_max_y = track.y_position () + track.effective_height ();
|
double const track_max_y = track.y_position () + track.effective_height ();
|
||||||
|
|
||||||
if (!at_top &&
|
if (!at_top &&
|
||||||
(track_min_y >= current_view_min_y &&
|
(track_min_y >= current_view_min_y &&
|
||||||
track_max_y < current_view_max_y)) {
|
track_max_y < current_view_max_y)) {
|
||||||
/* already visible, and caller did not ask to place it at the
|
/* already visible, and caller did not ask to place it at the
|
||||||
|
|
@ -948,7 +948,7 @@ Editor::color_handler()
|
||||||
/* redraw the whole thing */
|
/* redraw the whole thing */
|
||||||
_track_canvas->set_background_color (UIConfiguration::instance().color ("arrange base"));
|
_track_canvas->set_background_color (UIConfiguration::instance().color ("arrange base"));
|
||||||
_track_canvas->queue_draw ();
|
_track_canvas->queue_draw ();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
redisplay_tempo (true);
|
redisplay_tempo (true);
|
||||||
|
|
||||||
|
|
@ -1147,7 +1147,7 @@ Editor::which_mode_cursor () const
|
||||||
|
|
||||||
hv_scroll_group->add_items_at_point (ArdourCanvas::Duple (x,y), items);
|
hv_scroll_group->add_items_at_point (ArdourCanvas::Duple (x,y), items);
|
||||||
|
|
||||||
// first item will be the upper most
|
// first item will be the upper most
|
||||||
|
|
||||||
if (!items.empty()) {
|
if (!items.empty()) {
|
||||||
const ArdourCanvas::Item* i = items.front();
|
const ArdourCanvas::Item* i = items.front();
|
||||||
|
|
|
||||||
|
|
@ -329,7 +329,7 @@ Editor::canvas_wave_view_event (GdkEvent *event, ArdourCanvas::Item* item, Regio
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
@ -1233,8 +1233,8 @@ Editor::track_canvas_drag_motion (Glib::RefPtr<Gdk::DragContext> const& context,
|
||||||
(boost::dynamic_pointer_cast<MidiRegion> (region) != 0 &&
|
(boost::dynamic_pointer_cast<MidiRegion> (region) != 0 &&
|
||||||
dynamic_cast<MidiTimeAxisView*> (tv.first) != 0)) {
|
dynamic_cast<MidiTimeAxisView*> (tv.first) != 0)) {
|
||||||
|
|
||||||
/* audio to audio
|
/* audio to audio
|
||||||
OR
|
OR
|
||||||
midi to midi
|
midi to midi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ EditorCursor::EditorCursor (Editor& ed)
|
||||||
_track_canvas_item->set_ignore_events (true);
|
_track_canvas_item->set_ignore_events (true);
|
||||||
|
|
||||||
_track_canvas_item->set_x (0);
|
_track_canvas_item->set_x (0);
|
||||||
|
|
||||||
_current_frame = 1; /* force redraw at 0 */
|
_current_frame = 1; /* force redraw at 0 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -404,7 +404,7 @@ Drag::motion_handler (GdkEvent* event, bool from_autoscroll)
|
||||||
_initially_vertical = false;
|
_initially_vertical = false;
|
||||||
}
|
}
|
||||||
/** check constraints for this drag.
|
/** check constraints for this drag.
|
||||||
* Note that the current convention is to use "contains" for
|
* Note that the current convention is to use "contains" for
|
||||||
* key modifiers during motion and "equals" when initiating a drag.
|
* key modifiers during motion and "equals" when initiating a drag.
|
||||||
* In this case we haven't moved yet, so "equals" applies here.
|
* In this case we haven't moved yet, so "equals" applies here.
|
||||||
*/
|
*/
|
||||||
|
|
@ -882,7 +882,7 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move)
|
||||||
|
|
||||||
}
|
}
|
||||||
/* for automation lanes, there is a TimeAxisView but no ->view()
|
/* for automation lanes, there is a TimeAxisView but no ->view()
|
||||||
* if (!tv) -> dropzone
|
* if (!tv) -> dropzone
|
||||||
*/
|
*/
|
||||||
else if (!tv && cur_y >= 0 && _last_pointer_time_axis_view >= 0) {
|
else if (!tv && cur_y >= 0 && _last_pointer_time_axis_view >= 0) {
|
||||||
/* Moving into the drop-zone.. */
|
/* Moving into the drop-zone.. */
|
||||||
|
|
@ -1181,7 +1181,7 @@ RegionMotionDrag::motion (GdkEvent* event, bool first_move)
|
||||||
* We do not use negative _last_pointer_time_axis_view because
|
* We do not use negative _last_pointer_time_axis_view because
|
||||||
* the dropzone is "packed" (the actual track offset is ignored)
|
* the dropzone is "packed" (the actual track offset is ignored)
|
||||||
*
|
*
|
||||||
* As opposed to the actual number
|
* As opposed to the actual number
|
||||||
* of elements in the dropzone (_ndropzone)
|
* of elements in the dropzone (_ndropzone)
|
||||||
* _pdropzone is not constrained. This is necessary
|
* _pdropzone is not constrained. This is necessary
|
||||||
* to allow moving multiple regions with y-distance
|
* to allow moving multiple regions with y-distance
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ bool
|
||||||
Editor::mouse_frame (framepos_t& where, bool& in_track_canvas) const
|
Editor::mouse_frame (framepos_t& where, bool& in_track_canvas) const
|
||||||
{
|
{
|
||||||
/* gdk_window_get_pointer() has X11's XQueryPointer semantics in that it only
|
/* gdk_window_get_pointer() has X11's XQueryPointer semantics in that it only
|
||||||
pays attentions to subwindows. this means that menu windows are ignored, and
|
pays attentions to subwindows. this means that menu windows are ignored, and
|
||||||
if the pointer is in a menu, the return window from the call will be the
|
if the pointer is in a menu, the return window from the call will be the
|
||||||
the regular subwindow *under* the menu.
|
the regular subwindow *under* the menu.
|
||||||
|
|
||||||
|
|
@ -349,7 +349,7 @@ Editor::update_time_selection_display ()
|
||||||
break;
|
break;
|
||||||
case MouseContent:
|
case MouseContent:
|
||||||
/* This handles internal edit.
|
/* This handles internal edit.
|
||||||
Clear everything except points and notes.
|
Clear everything except points and notes.
|
||||||
*/
|
*/
|
||||||
selection->clear_regions();
|
selection->clear_regions();
|
||||||
selection->clear_lines();
|
selection->clear_lines();
|
||||||
|
|
@ -665,7 +665,7 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
Editing::MouseMode eff = effective_mouse_mode ();
|
Editing::MouseMode eff = effective_mouse_mode ();
|
||||||
|
|
||||||
/* special case: allow drag of region fade in/out in object mode with join object/range enabled */
|
/* special case: allow drag of region fade in/out in object mode with join object/range enabled */
|
||||||
if (get_smart_mode()) {
|
if (get_smart_mode()) {
|
||||||
switch (item_type) {
|
switch (item_type) {
|
||||||
case FadeInHandleItem:
|
case FadeInHandleItem:
|
||||||
case FadeInTrimHandleItem:
|
case FadeInTrimHandleItem:
|
||||||
|
|
@ -823,7 +823,7 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
|
|
||||||
case StartCrossFadeItem:
|
case StartCrossFadeItem:
|
||||||
case EndCrossFadeItem:
|
case EndCrossFadeItem:
|
||||||
/* we might allow user to grab inside the fade to trim a region with preserve_fade_anchor. for not this is not fully implemented */
|
/* we might allow user to grab inside the fade to trim a region with preserve_fade_anchor. for not this is not fully implemented */
|
||||||
// if (!clicked_regionview->region()->locked()) {
|
// if (!clicked_regionview->region()->locked()) {
|
||||||
// _drags->set (new TrimDrag (this, item, clicked_regionview, selection->regions.by_layer(), true), event);
|
// _drags->set (new TrimDrag (this, item, clicked_regionview, selection->regions.by_layer(), true), event);
|
||||||
// return true;
|
// return true;
|
||||||
|
|
@ -1106,7 +1106,7 @@ Editor::button_press_handler_2 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
|
Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
|
||||||
{
|
{
|
||||||
|
|
@ -1204,14 +1204,14 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||||
if (!Keyboard::is_context_menu_event (&event->button)) {
|
if (!Keyboard::is_context_menu_event (&event->button)) {
|
||||||
|
|
||||||
/* see if we're finishing a drag */
|
/* see if we're finishing a drag */
|
||||||
|
|
||||||
if (_drags->active ()) {
|
if (_drags->active ()) {
|
||||||
bool const r = _drags->end_grab (event);
|
bool const r = _drags->end_grab (event);
|
||||||
if (r) {
|
if (r) {
|
||||||
/* grab dragged, so do nothing else */
|
/* grab dragged, so do nothing else */
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
were_dragging = true;
|
were_dragging = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1580,7 +1580,7 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
|
|
||||||
/* by the time we reach here, entered_regionview and entered trackview
|
/* by the time we reach here, entered_regionview and entered trackview
|
||||||
* will have already been set as appropriate. Things are done this
|
* will have already been set as appropriate. Things are done this
|
||||||
* way because this method isn't passed a pointer to a variable type of
|
* way because this method isn't passed a pointer to a variable type of
|
||||||
* thing that is entered (which may or may not be canvas item).
|
* thing that is entered (which may or may not be canvas item).
|
||||||
* (e.g. the actual entered regionview)
|
* (e.g. the actual entered regionview)
|
||||||
|
|
@ -1720,7 +1720,7 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent*, ItemType item_type)
|
||||||
|
|
||||||
switch (item_type) {
|
switch (item_type) {
|
||||||
case ControlPointItem:
|
case ControlPointItem:
|
||||||
_verbose_cursor->hide ();
|
_verbose_cursor->hide ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GainLineItem:
|
case GainLineItem:
|
||||||
|
|
|
||||||
|
|
@ -657,8 +657,8 @@ Editor::sequence_regions ()
|
||||||
if (in_command) {
|
if (in_command) {
|
||||||
commit_reversible_command ();
|
commit_reversible_command ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* DISPLAY MOTION */
|
/* DISPLAY MOTION */
|
||||||
|
|
@ -1508,7 +1508,7 @@ Editor::scroll_up_one_track (bool skip_child_views)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find the trackview at the top of the trackview group
|
/* find the trackview at the top of the trackview group
|
||||||
*
|
*
|
||||||
* Note that covers_y_position() is recursive and includes child views
|
* Note that covers_y_position() is recursive and includes child views
|
||||||
*/
|
*/
|
||||||
|
|
@ -1521,7 +1521,7 @@ Editor::scroll_up_one_track (bool skip_child_views)
|
||||||
/* automation lane (one level, non-recursive)
|
/* automation lane (one level, non-recursive)
|
||||||
*
|
*
|
||||||
* - if no automation lane exists -> move to prev tack
|
* - if no automation lane exists -> move to prev tack
|
||||||
* - if no y-axis match is found -> the current track is at the top -> move to prev track
|
* - if no y-axis match is found -> the current track is at the top -> move to prev track
|
||||||
* (actually last automation lane of previous track, see below)
|
* (actually last automation lane of previous track, see below)
|
||||||
* - if first (top-most) lane is at the top -> move to this track
|
* - if first (top-most) lane is at the top -> move to this track
|
||||||
* - else move up one lane
|
* - else move up one lane
|
||||||
|
|
@ -1678,7 +1678,7 @@ Editor::temporal_zoom (framecnt_t fpp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Imposing an arbitrary limit to zoom out as too much zoom out produces
|
// Imposing an arbitrary limit to zoom out as too much zoom out produces
|
||||||
// segfaults for lack of memory. If somebody decides this is not high enough I
|
// segfaults for lack of memory. If somebody decides this is not high enough I
|
||||||
// believe it can be raisen to higher values but some limit must be in place.
|
// believe it can be raisen to higher values but some limit must be in place.
|
||||||
//
|
//
|
||||||
|
|
@ -1891,7 +1891,7 @@ Editor::get_selection_extents ( framepos_t &start, framepos_t &end )
|
||||||
} else if (!selection->time.empty()) {
|
} else if (!selection->time.empty()) {
|
||||||
start = selection->time.start();
|
start = selection->time.start();
|
||||||
end = selection->time.end_frame();
|
end = selection->time.end_frame();
|
||||||
} else
|
} else
|
||||||
ret = false; //no selection found
|
ret = false; //no selection found
|
||||||
|
|
||||||
//range check
|
//range check
|
||||||
|
|
@ -2543,12 +2543,12 @@ Editor::maybe_locate_with_edit_preroll ( framepos_t location )
|
||||||
location -= get_preroll();
|
location -= get_preroll();
|
||||||
|
|
||||||
//don't try to locate before the beginning of time
|
//don't try to locate before the beginning of time
|
||||||
if ( location < 0 )
|
if ( location < 0 )
|
||||||
location = 0;
|
location = 0;
|
||||||
|
|
||||||
//if follow_playhead is on, keep the playhead on the screen
|
//if follow_playhead is on, keep the playhead on the screen
|
||||||
if ( _follow_playhead )
|
if ( _follow_playhead )
|
||||||
if ( location < leftmost_frame )
|
if ( location < leftmost_frame )
|
||||||
location = leftmost_frame;
|
location = leftmost_frame;
|
||||||
|
|
||||||
_session->request_locate( location );
|
_session->request_locate( location );
|
||||||
|
|
@ -4622,7 +4622,7 @@ Editor::cut_copy_ranges (CutCopyOp op)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ts.push_back (entered_track);
|
ts.push_back (entered_track);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (TrackViewList::iterator i = ts.begin(); i != ts.end(); ++i) {
|
for (TrackViewList::iterator i = ts.begin(); i != ts.end(); ++i) {
|
||||||
(*i)->cut_copy_clear (*selection, op);
|
(*i)->cut_copy_clear (*selection, op);
|
||||||
|
|
@ -7408,7 +7408,7 @@ Editor::do_remove_time ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::remove_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt,
|
Editor::remove_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt,
|
||||||
bool ignore_music_glue, bool markers_too, bool glued_markers_too, bool locked_markers_too, bool tempo_too)
|
bool ignore_music_glue, bool markers_too, bool glued_markers_too, bool locked_markers_too, bool tempo_too)
|
||||||
{
|
{
|
||||||
if (Config->get_edit_mode() == Lock) {
|
if (Config->get_edit_mode() == Lock) {
|
||||||
|
|
@ -7596,9 +7596,9 @@ Editor::fit_tracks (TrackViewList & tracks)
|
||||||
|
|
||||||
/* compute the per-track height from:
|
/* compute the per-track height from:
|
||||||
|
|
||||||
total canvas visible height -
|
total canvas visible height -
|
||||||
height that will be taken by visible children of selected
|
height that will be taken by visible children of selected
|
||||||
tracks - height of the ruler/hscroll area
|
tracks - height of the ruler/hscroll area
|
||||||
*/
|
*/
|
||||||
uint32_t h = (uint32_t) floor ((trackviews_height() - child_heights) / visible_tracks);
|
uint32_t h = (uint32_t) floor ((trackviews_height() - child_heights) / visible_tracks);
|
||||||
double first_y_pos = DBL_MAX;
|
double first_y_pos = DBL_MAX;
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ EditorRegions::EditorRegions (Editor* e)
|
||||||
if (ci[i].index > 6) {
|
if (ci[i].index > 6) {
|
||||||
col->set_expand (false);
|
col->set_expand (false);
|
||||||
col->set_alignment (ALIGN_CENTER);
|
col->set_alignment (ALIGN_CENTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_display.set_headers_visible (true);
|
_display.set_headers_visible (true);
|
||||||
|
|
|
||||||
|
|
@ -244,12 +244,12 @@ EditorRouteGroups::button_press_event (GdkEventButton* ev)
|
||||||
|
|
||||||
if (iter) {
|
if (iter) {
|
||||||
group = (*iter)[_columns.routegroup];
|
group = (*iter)[_columns.routegroup];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Keyboard::is_context_menu_event (ev)) {
|
if (Keyboard::is_context_menu_event (ev)) {
|
||||||
_editor->_group_tabs->get_menu(group)->popup (1, ev->time);
|
_editor->_group_tabs->get_menu(group)->popup (1, ev->time);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!p) {
|
if (!p) {
|
||||||
/* cancel selection */
|
/* cancel selection */
|
||||||
|
|
@ -262,7 +262,7 @@ EditorRouteGroups::button_press_event (GdkEventButton* ev)
|
||||||
group = (*iter)[_columns.routegroup];
|
group = (*iter)[_columns.routegroup];
|
||||||
|
|
||||||
switch (GPOINTER_TO_UINT (column->get_data (X_("colnum")))) {
|
switch (GPOINTER_TO_UINT (column->get_data (X_("colnum")))) {
|
||||||
case 0:
|
case 0:
|
||||||
c = (*iter)[_columns.gdkcolor];
|
c = (*iter)[_columns.gdkcolor];
|
||||||
color_dialog.get_colorsel()->set_previous_color (c);
|
color_dialog.get_colorsel()->set_previous_color (c);
|
||||||
color_dialog.get_colorsel()->set_current_color (c);
|
color_dialog.get_colorsel()->set_current_color (c);
|
||||||
|
|
|
||||||
|
|
@ -742,7 +742,7 @@ Editor::set_timecode_ruler_scale (framepos_t lower, framepos_t upper)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fr = _session->frame_rate();
|
fr = _session->frame_rate();
|
||||||
|
|
||||||
if (lower > (spacer = (framepos_t) (128 * Editor::get_current_zoom ()))) {
|
if (lower > (spacer = (framepos_t) (128 * Editor::get_current_zoom ()))) {
|
||||||
lower = lower - spacer;
|
lower = lower - spacer;
|
||||||
|
|
@ -816,7 +816,7 @@ Editor::set_timecode_ruler_scale (framepos_t lower, framepos_t upper)
|
||||||
} else if (range <= 8 * 60 * 60 * fr) { /* 4 - 8 hrs*/
|
} else if (range <= 8 * 60 * 60 * fr) { /* 4 - 8 hrs*/
|
||||||
timecode_ruler_scale = timecode_show_hours;
|
timecode_ruler_scale = timecode_show_hours;
|
||||||
timecode_mark_modulo = 1;
|
timecode_mark_modulo = 1;
|
||||||
timecode_nmarks = 2 + 8;
|
timecode_nmarks = 2 + 8;
|
||||||
} else if (range <= 16 * 60 * 60 * fr) { /* 16-24 hrs*/
|
} else if (range <= 16 * 60 * 60 * fr) { /* 16-24 hrs*/
|
||||||
timecode_ruler_scale = timecode_show_hours;
|
timecode_ruler_scale = timecode_show_hours;
|
||||||
timecode_mark_modulo = 1;
|
timecode_mark_modulo = 1;
|
||||||
|
|
@ -832,7 +832,7 @@ Editor::set_timecode_ruler_scale (framepos_t lower, framepos_t upper)
|
||||||
|
|
||||||
But in this case, where the range defined by lower and uppper can vary
|
But in this case, where the range defined by lower and uppper can vary
|
||||||
substantially (basically anything from 24hrs+ to several billion years)
|
substantially (basically anything from 24hrs+ to several billion years)
|
||||||
trying to decide which tick marks to show does require us to know
|
trying to decide which tick marks to show does require us to know
|
||||||
about the available width.
|
about the available width.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -1002,7 +1002,7 @@ Editor::metric_get_timecode (std::vector<ArdourCanvas::Ruler::Mark>& marks, gdou
|
||||||
mark.position = pos;
|
mark.position = pos;
|
||||||
marks.push_back (mark);
|
marks.push_back (mark);
|
||||||
++n;
|
++n;
|
||||||
}
|
}
|
||||||
/* can't use Timecode::increment_hours() here because we may be traversing thousands of hours
|
/* can't use Timecode::increment_hours() here because we may be traversing thousands of hours
|
||||||
and doing it 1 hour at a time is just stupid (and slow).
|
and doing it 1 hour at a time is just stupid (and slow).
|
||||||
*/
|
*/
|
||||||
|
|
@ -1147,7 +1147,7 @@ Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
edit_last_mark_label (std::vector<ArdourCanvas::Ruler::Mark>& marks, const std::string& newlabel)
|
edit_last_mark_label (std::vector<ArdourCanvas::Ruler::Mark>& marks, const std::string& newlabel)
|
||||||
{
|
{
|
||||||
ArdourCanvas::Ruler::Mark copy = marks.back();
|
ArdourCanvas::Ruler::Mark copy = marks.back();
|
||||||
|
|
@ -1798,7 +1798,7 @@ Editor::set_minsec_ruler_scale (framepos_t lower, framepos_t upper)
|
||||||
|
|
||||||
But in this case, where the range defined by lower and uppper can vary
|
But in this case, where the range defined by lower and uppper can vary
|
||||||
substantially (anything from 24hrs+ to several billion years)
|
substantially (anything from 24hrs+ to several billion years)
|
||||||
trying to decide which tick marks to show does require us to know
|
trying to decide which tick marks to show does require us to know
|
||||||
about the available width.
|
about the available width.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -1853,7 +1853,7 @@ Editor::metric_get_minsec (std::vector<ArdourCanvas::Ruler::Mark>& marks, gdoubl
|
||||||
marks.push_back (mark);
|
marks.push_back (mark);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case minsec_show_seconds:
|
case minsec_show_seconds:
|
||||||
for (n = 0; n < minsec_nmarks; pos += minsec_mark_interval, ++n) {
|
for (n = 0; n < minsec_nmarks; pos += minsec_mark_interval, ++n) {
|
||||||
sample_to_clock_parts (pos, _session->frame_rate(), &hrs, &mins, &secs, &millisecs);
|
sample_to_clock_parts (pos, _session->frame_rate(), &hrs, &mins, &secs, &millisecs);
|
||||||
|
|
@ -1909,7 +1909,7 @@ Editor::metric_get_minsec (std::vector<ArdourCanvas::Ruler::Mark>& marks, gdoubl
|
||||||
marks.push_back (mark);
|
marks.push_back (mark);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case minsec_show_many_hours:
|
case minsec_show_many_hours:
|
||||||
for (n = 0; n < minsec_nmarks; ) {
|
for (n = 0; n < minsec_nmarks; ) {
|
||||||
sample_to_clock_parts (pos, _session->frame_rate(), &hrs, &mins, &secs, &millisecs);
|
sample_to_clock_parts (pos, _session->frame_rate(), &hrs, &mins, &secs, &millisecs);
|
||||||
|
|
|
||||||
|
|
@ -241,7 +241,7 @@ EditorSummary::render (cairo_t* cr, cairo_rectangle_t*)
|
||||||
|
|
||||||
int32_t width = _view_rectangle_x.second - _view_rectangle_x.first;
|
int32_t width = _view_rectangle_x.second - _view_rectangle_x.first;
|
||||||
int32_t height = _view_rectangle_y.second - _view_rectangle_y.first;
|
int32_t height = _view_rectangle_y.second - _view_rectangle_y.first;
|
||||||
cairo_rectangle (cr, _view_rectangle_x.first, _view_rectangle_y.first, width, height);
|
cairo_rectangle (cr, _view_rectangle_x.first, _view_rectangle_y.first, width, height);
|
||||||
cairo_set_source_rgba (cr, 1, 1, 1, 0.1);
|
cairo_set_source_rgba (cr, 1, 1, 1, 0.1);
|
||||||
cairo_fill_preserve (cr);
|
cairo_fill_preserve (cr);
|
||||||
cairo_set_line_width (cr, 1);
|
cairo_set_line_width (cr, 1);
|
||||||
|
|
@ -352,7 +352,7 @@ EditorSummary::centre_on_click (GdkEventButton* ev)
|
||||||
set_editor (ex, ey);
|
set_editor (ex, ey);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EditorSummary::on_enter_notify_event (GdkEventCrossing*)
|
EditorSummary::on_enter_notify_event (GdkEventCrossing*)
|
||||||
{
|
{
|
||||||
grab_focus ();
|
grab_focus ();
|
||||||
|
|
@ -360,7 +360,7 @@ EditorSummary::on_enter_notify_event (GdkEventCrossing*)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EditorSummary::on_leave_notify_event (GdkEventCrossing*)
|
EditorSummary::on_leave_notify_event (GdkEventCrossing*)
|
||||||
{
|
{
|
||||||
/* there are no inferior/child windows, so any leave event means that
|
/* there are no inferior/child windows, so any leave event means that
|
||||||
|
|
@ -489,7 +489,7 @@ EditorSummary::get_editor (pair<double, double>* x, pair<double, double>* y) con
|
||||||
/* We are dragging, and configured not to update the editor window during drags,
|
/* We are dragging, and configured not to update the editor window during drags,
|
||||||
so just return where the editor will be when the drag finishes.
|
so just return where the editor will be when the drag finishes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
*x = _pending_editor_x;
|
*x = _pending_editor_x;
|
||||||
*y = _pending_editor_y;
|
*y = _pending_editor_y;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ private:
|
||||||
TO_LEFT_OR_RIGHT,
|
TO_LEFT_OR_RIGHT,
|
||||||
OTHERWISE_OUTSIDE
|
OTHERWISE_OUTSIDE
|
||||||
};
|
};
|
||||||
|
|
||||||
void on_size_request (Gtk::Requisition *);
|
void on_size_request (Gtk::Requisition *);
|
||||||
bool on_button_press_event (GdkEventButton *);
|
bool on_button_press_event (GdkEventButton *);
|
||||||
bool on_button_release_event (GdkEventButton *);
|
bool on_button_release_event (GdkEventButton *);
|
||||||
|
|
@ -69,8 +69,8 @@ private:
|
||||||
bool on_scroll_event (GdkEventScroll *);
|
bool on_scroll_event (GdkEventScroll *);
|
||||||
bool on_key_press_event (GdkEventKey*);
|
bool on_key_press_event (GdkEventKey*);
|
||||||
bool on_key_release_event (GdkEventKey*);
|
bool on_key_release_event (GdkEventKey*);
|
||||||
bool on_enter_notify_event (GdkEventCrossing*);
|
bool on_enter_notify_event (GdkEventCrossing*);
|
||||||
bool on_leave_notify_event (GdkEventCrossing*);
|
bool on_leave_notify_event (GdkEventCrossing*);
|
||||||
|
|
||||||
void centre_on_click (GdkEventButton *);
|
void centre_on_click (GdkEventButton *);
|
||||||
void render (cairo_t *, cairo_rectangle_t*);
|
void render (cairo_t *, cairo_rectangle_t*);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -280,7 +280,7 @@ ExportDialog::do_export ()
|
||||||
handler->soundcloud_downloadable = soundcloud_selector->downloadable ();
|
handler->soundcloud_downloadable = soundcloud_selector->downloadable ();
|
||||||
|
|
||||||
handler->SoundcloudProgress.connect_same_thread(
|
handler->SoundcloudProgress.connect_same_thread(
|
||||||
*this,
|
*this,
|
||||||
boost::bind(&ExportDialog::soundcloud_upload_progress, this, _1, _2, _3)
|
boost::bind(&ExportDialog::soundcloud_upload_progress, this, _1, _2, _3)
|
||||||
);
|
);
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ namespace ARDOUR {
|
||||||
class ExportTimespanSelector;
|
class ExportTimespanSelector;
|
||||||
class ExportChannelSelector;
|
class ExportChannelSelector;
|
||||||
|
|
||||||
class ExportDialog : public ArdourDialog, public PBD::ScopedConnectionList
|
class ExportDialog : public ArdourDialog, public PBD::ScopedConnectionList
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
#ifdef CARBON_FLAT_HEADERS
|
#ifdef CARBON_FLAT_HEADERS
|
||||||
#include "MacTypes.h"
|
#include "MacTypes.h"
|
||||||
#else
|
#else
|
||||||
#include "/System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h"
|
#include "/System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h"
|
||||||
#endif
|
#endif
|
||||||
#undef Style
|
#undef Style
|
||||||
#undef Fixed
|
#undef Fixed
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ FloatingTextEntry::entry_focus_out (GdkEventFocus* ev)
|
||||||
if (entry_changed) {
|
if (entry_changed) {
|
||||||
use_text (entry.get_text ());
|
use_text (entry.get_text ());
|
||||||
}
|
}
|
||||||
|
|
||||||
delete_when_idle ( this);
|
delete_when_idle ( this);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -91,7 +91,7 @@ FloatingTextEntry::button_press (GdkEventButton* ev)
|
||||||
if (entry_changed) {
|
if (entry_changed) {
|
||||||
use_text (entry.get_text ());
|
use_text (entry.get_text ());
|
||||||
}
|
}
|
||||||
|
|
||||||
delete_when_idle ( this);
|
delete_when_idle ( this);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -123,8 +123,8 @@ FloatingTextEntry::on_hide ()
|
||||||
{
|
{
|
||||||
entry.remove_modal_grab ();
|
entry.remove_modal_grab ();
|
||||||
|
|
||||||
/* No hide button is shown (no decoration on the window),
|
/* No hide button is shown (no decoration on the window),
|
||||||
so being hidden is equivalent to the Escape key or any other
|
so being hidden is equivalent to the Escape key or any other
|
||||||
method of cancelling the edit.
|
method of cancelling the edit.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
|
||||||
peak_display.set_alignment(0.5);
|
peak_display.set_alignment(0.5);
|
||||||
|
|
||||||
/* stuff related to the fact that the peak display is not, in
|
/* stuff related to the fact that the peak display is not, in
|
||||||
fact, supposed to be a text entry.
|
fact, supposed to be a text entry.
|
||||||
*/
|
*/
|
||||||
peak_display.set_events (peak_display.get_events() & ~(Gdk::EventMask (Gdk::LEAVE_NOTIFY_MASK|Gdk::ENTER_NOTIFY_MASK|Gdk::POINTER_MOTION_MASK)));
|
peak_display.set_events (peak_display.get_events() & ~(Gdk::EventMask (Gdk::LEAVE_NOTIFY_MASK|Gdk::ENTER_NOTIFY_MASK|Gdk::POINTER_MOTION_MASK)));
|
||||||
peak_display.signal_map().connect (sigc::bind (sigc::ptr_fun (reset_cursor_to_default), &peak_display));
|
peak_display.signal_map().connect (sigc::bind (sigc::ptr_fun (reset_cursor_to_default), &peak_display));
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ std::size_t length, n = 0;
|
||||||
if (!match_or_digit(s1[n], s2[n]))
|
if (!match_or_digit(s1[n], s2[n]))
|
||||||
break;
|
break;
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -206,7 +206,7 @@ std::size_t s1pos, s2pos, n = 0;
|
||||||
if (!match_or_digit(s1[s1pos], s2[s2pos]) )
|
if (!match_or_digit(s1[s1pos], s2[s2pos]) )
|
||||||
break;
|
break;
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -389,12 +389,12 @@ GenericPluginUI::build ()
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
// A hand-wavy calculation of how similar this control's
|
// A hand-wavy calculation of how similar this control's
|
||||||
// label is to the previous.
|
// label is to the previous.
|
||||||
similarity_scores[i] =
|
similarity_scores[i] =
|
||||||
(float) (
|
(float) (
|
||||||
( matching_chars_at_head(label, previous_label) +
|
( matching_chars_at_head(label, previous_label) +
|
||||||
matching_chars_at_tail(label, previous_label) +
|
matching_chars_at_tail(label, previous_label) +
|
||||||
1
|
1
|
||||||
)
|
)
|
||||||
) / (label.length() + previous_label.length());
|
) / (label.length() + previous_label.length());
|
||||||
if (numbers_in_labels[i] >= 0) {
|
if (numbers_in_labels[i] >= 0) {
|
||||||
similarity_scores[i] += (numbers_in_labels[i] == numbers_in_labels[i-1]);
|
similarity_scores[i] += (numbers_in_labels[i] == numbers_in_labels[i-1]);
|
||||||
|
|
@ -406,7 +406,7 @@ GenericPluginUI::build ()
|
||||||
}
|
}
|
||||||
|
|
||||||
// cerr << "label: " << label << " sim: " << fixed << setprecision(3) << similarity_scores[i] << " num: " << numbers_in_labels[i] << endl;
|
// cerr << "label: " << label << " sim: " << fixed << setprecision(3) << similarity_scores[i] << " num: " << numbers_in_labels[i] << endl;
|
||||||
previous_label = label;
|
previous_label = label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -420,7 +420,7 @@ GenericPluginUI::build ()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now iterate over the list of controls to display them, placing an
|
// Now iterate over the list of controls to display them, placing an
|
||||||
// HSeparator between controls of less than a certain similarity, and
|
// HSeparator between controls of less than a certain similarity, and
|
||||||
// starting a new column when necessary.
|
// starting a new column when necessary.
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
@ -829,7 +829,7 @@ GenericPluginUI::astate_clicked (ControlUI* cui)
|
||||||
automation_menu->popup (1, gtk_get_current_event_time());
|
automation_menu->popup (1, gtk_get_current_event_time());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
GenericPluginUI::set_all_automation (AutoState as)
|
GenericPluginUI::set_all_automation (AutoState as)
|
||||||
{
|
{
|
||||||
for (vector<ControlUI*>::iterator i = input_controls_with_automation.begin(); i != input_controls_with_automation.end(); ++i) {
|
for (vector<ControlUI*>::iterator i = input_controls_with_automation.begin(); i != input_controls_with_automation.end(); ++i) {
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ public:
|
||||||
public:
|
public:
|
||||||
GhostEvent(::NoteBase *, ArdourCanvas::Container *);
|
GhostEvent(::NoteBase *, ArdourCanvas::Container *);
|
||||||
virtual ~GhostEvent ();
|
virtual ~GhostEvent ();
|
||||||
|
|
||||||
NoteBase* event;
|
NoteBase* event;
|
||||||
ArdourCanvas::Item* item;
|
ArdourCanvas::Item* item;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ GUIObjectState::remove_node (const std::string& id)
|
||||||
* @return value of property `prop_name', or empty.
|
* @return value of property `prop_name', or empty.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
string
|
string
|
||||||
GUIObjectState::get_string (const string& id, const string& prop_name, bool* empty)
|
GUIObjectState::get_string (const string& id, const string& prop_name, bool* empty)
|
||||||
{
|
{
|
||||||
XMLNode* child = get_node (&_state, id);
|
XMLNode* child = get_node (&_state, id);
|
||||||
|
|
|
||||||
|
|
@ -47,13 +47,13 @@ public:
|
||||||
s << val;
|
s << val;
|
||||||
child->add_property (prop_name.c_str(), s.str());
|
child->add_property (prop_name.c_str(), s.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::list<std::string> all_ids () const;
|
std::list<std::string> all_ids () const;
|
||||||
|
|
||||||
static XMLNode* get_node (const XMLNode *, const std::string &);
|
static XMLNode* get_node (const XMLNode *, const std::string &);
|
||||||
XMLNode* get_or_add_node (const std::string &);
|
XMLNode* get_or_add_node (const std::string &);
|
||||||
static XMLNode* get_or_add_node (XMLNode *, const std::string &);
|
static XMLNode* get_or_add_node (XMLNode *, const std::string &);
|
||||||
|
|
||||||
void remove_node (const std::string& id);
|
void remove_node (const std::string& id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
using namespace ARDOUR;
|
using namespace ARDOUR;
|
||||||
using namespace ArdourCanvas;
|
using namespace ArdourCanvas;
|
||||||
|
|
||||||
Hit::Hit (MidiRegionView& region, Item* parent, double size, const boost::shared_ptr<NoteType> note, bool with_events)
|
Hit::Hit (MidiRegionView& region, Item* parent, double size, const boost::shared_ptr<NoteType> note, bool with_events)
|
||||||
: NoteBase (region, with_events, note)
|
: NoteBase (region, with_events, note)
|
||||||
{
|
{
|
||||||
_polygon = new ArdourCanvas::Polygon (parent);
|
_polygon = new ArdourCanvas::Polygon (parent);
|
||||||
|
|
|
||||||
|
|
@ -242,7 +242,7 @@ ArdourKeyboard::set_state (const XMLNode& node, int version)
|
||||||
return Keyboard::set_state (node, version);
|
return Keyboard::set_state (node, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Snap and snap delta modifiers may contain each other, so we use the
|
/* Snap and snap delta modifiers may contain each other, so we use the
|
||||||
* following two methods to sort that out:
|
* following two methods to sort that out:
|
||||||
*/
|
*/
|
||||||
bool
|
bool
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
Based on code by Paul Davis, Torben Hohn as part of FST
|
Based on code by Paul Davis, Torben Hohn as part of FST
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
@ -146,13 +146,13 @@ long getXWindowProperty(Window window, Atom atom)
|
||||||
|
|
||||||
XErrorHandler olderrorhandler = XSetErrorHandler(TempErrorHandler);
|
XErrorHandler olderrorhandler = XSetErrorHandler(TempErrorHandler);
|
||||||
|
|
||||||
XGetWindowProperty( LXVST_XDisplay,
|
XGetWindowProperty( LXVST_XDisplay,
|
||||||
window,
|
window,
|
||||||
atom,
|
atom,
|
||||||
0,
|
0,
|
||||||
2,
|
2,
|
||||||
false,
|
false,
|
||||||
AnyPropertyType,
|
AnyPropertyType,
|
||||||
&userType,
|
&userType,
|
||||||
&userSize,
|
&userSize,
|
||||||
&userCount,
|
&userCount,
|
||||||
|
|
@ -195,7 +195,7 @@ dispatch_x_events (XEvent* event, VSTState* vstfx)
|
||||||
when opening a preset manager (you might think that should be spawned as a new window...) */
|
when opening a preset manager (you might think that should be spawned as a new window...) */
|
||||||
|
|
||||||
/*if the size has changed, we flag this so that in lxvst_pluginui.cc we can make the
|
/*if the size has changed, we flag this so that in lxvst_pluginui.cc we can make the
|
||||||
change to the GTK parent window in ardour, from its UI thread*/
|
change to the GTK parent window in ardour, from its UI thread*/
|
||||||
|
|
||||||
if (window == (Window) (vstfx->linux_window)) {
|
if (window == (Window) (vstfx->linux_window)) {
|
||||||
if (width != vstfx->width || height!=vstfx->height) {
|
if (width != vstfx->width || height!=vstfx->height) {
|
||||||
|
|
@ -317,7 +317,7 @@ maybe_set_program (VSTState* vstfx)
|
||||||
vstfx->plugin->dispatcher (vstfx->plugin, 68 /* effEndSetProgram */, 0, 0, NULL, 0);
|
vstfx->plugin->dispatcher (vstfx->plugin, 68 /* effEndSetProgram */, 0, 0, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
vstfx->want_program = -1;
|
vstfx->want_program = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vstfx->want_chunk == 1) {
|
if (vstfx->want_chunk == 1) {
|
||||||
|
|
@ -342,7 +342,7 @@ void* gui_event_loop (void* ptr)
|
||||||
|
|
||||||
while (!gui_quit)
|
while (!gui_quit)
|
||||||
{
|
{
|
||||||
/* handle window creation requests, destroy requests,
|
/* handle window creation requests, destroy requests,
|
||||||
and run idle callbacks */
|
and run idle callbacks */
|
||||||
|
|
||||||
/*Look at the XEvent queue - if there are any XEvents we need to handle them,
|
/*Look at the XEvent queue - if there are any XEvents we need to handle them,
|
||||||
|
|
@ -395,7 +395,7 @@ void* gui_event_loop (void* ptr)
|
||||||
{
|
{
|
||||||
//printf("elapsed %d ms ^= %.2f Hz\n", elapsed_time_ms, 1000.0/(double)elapsed_time_ms); // DEBUG
|
//printf("elapsed %d ms ^= %.2f Hz\n", elapsed_time_ms, 1000.0/(double)elapsed_time_ms); // DEBUG
|
||||||
pthread_mutex_lock (&plugin_mutex);
|
pthread_mutex_lock (&plugin_mutex);
|
||||||
|
|
||||||
again:
|
again:
|
||||||
/*Parse through the linked list of plugins*/
|
/*Parse through the linked list of plugins*/
|
||||||
|
|
||||||
|
|
@ -421,7 +421,7 @@ again:
|
||||||
pthread_mutex_unlock (&vstfx->lock);
|
pthread_mutex_unlock (&vstfx->lock);
|
||||||
|
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Window does not yet exist - scheduled for creation*/
|
/*Window does not yet exist - scheduled for creation*/
|
||||||
|
|
||||||
|
|
@ -446,7 +446,7 @@ again:
|
||||||
|
|
||||||
if (vstfx->dispatcher_wantcall) {
|
if (vstfx->dispatcher_wantcall) {
|
||||||
vstfx->dispatcher_retval = vstfx->plugin->dispatcher (
|
vstfx->dispatcher_retval = vstfx->plugin->dispatcher (
|
||||||
vstfx->plugin,
|
vstfx->plugin,
|
||||||
vstfx->dispatcher_opcode,
|
vstfx->dispatcher_opcode,
|
||||||
vstfx->dispatcher_index,
|
vstfx->dispatcher_index,
|
||||||
vstfx->dispatcher_val,
|
vstfx->dispatcher_val,
|
||||||
|
|
@ -497,7 +497,7 @@ int vstfx_init (void* ptr)
|
||||||
|
|
||||||
pthread_attr_init(&thread_attributes);
|
pthread_attr_init(&thread_attributes);
|
||||||
|
|
||||||
/*Make sure the thread is joinable - this should be the default anyway -
|
/*Make sure the thread is joinable - this should be the default anyway -
|
||||||
so we can join to it on vstfx_exit*/
|
so we can join to it on vstfx_exit*/
|
||||||
|
|
||||||
pthread_attr_setdetachstate(&thread_attributes, PTHREAD_CREATE_JOINABLE);
|
pthread_attr_setdetachstate(&thread_attributes, PTHREAD_CREATE_JOINABLE);
|
||||||
|
|
@ -632,7 +632,7 @@ int vstfx_create_editor (VSTState* vstfx)
|
||||||
/*Select the events we are interested in receiving - we need Substructure notify so that
|
/*Select the events we are interested in receiving - we need Substructure notify so that
|
||||||
if the plugin resizes its window - e.g. Loomer Manifold then we get a message*/
|
if the plugin resizes its window - e.g. Loomer Manifold then we get a message*/
|
||||||
|
|
||||||
XSelectInput(LXVST_XDisplay,
|
XSelectInput(LXVST_XDisplay,
|
||||||
parent_window,
|
parent_window,
|
||||||
SubstructureNotifyMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask);
|
SubstructureNotifyMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -345,7 +345,7 @@ LocationEditRow::set_location (Location *loc)
|
||||||
location->StartChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::start_changed, this), gui_context());
|
location->StartChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::start_changed, this), gui_context());
|
||||||
location->EndChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::end_changed, this), gui_context());
|
location->EndChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::end_changed, this), gui_context());
|
||||||
location->Changed.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::location_changed, this), gui_context());
|
location->Changed.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::location_changed, this), gui_context());
|
||||||
location->FlagsChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::flags_changed, this), gui_context());
|
location->FlagsChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::flags_changed, this), gui_context());
|
||||||
location->LockChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::lock_changed, this), gui_context());
|
location->LockChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::lock_changed, this), gui_context());
|
||||||
location->PositionLockStyleChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::position_lock_style_changed, this), gui_context());
|
location->PositionLockStyleChanged.connect (connections, invalidator (*this), boost::bind (&LocationEditRow::position_lock_style_changed, this), gui_context());
|
||||||
}
|
}
|
||||||
|
|
@ -1132,7 +1132,7 @@ LocationUI::clock_mode_from_session_instant_xml () const
|
||||||
if (!p) {
|
if (!p) {
|
||||||
return ARDOUR_UI::instance()->secondary_clock->mode();
|
return ARDOUR_UI::instance()->secondary_clock->mode();
|
||||||
}
|
}
|
||||||
|
|
||||||
return (AudioClock::Mode) string_2_enum (p->value (), AudioClock::Mode);
|
return (AudioClock::Mode) string_2_enum (p->value (), AudioClock::Mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2004 Paul Davis
|
Copyright (C) 2004 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -133,7 +133,7 @@ LXVSTPluginUI::get_XID ()
|
||||||
pthread_mutex_lock (&(_vst->state()->lock));
|
pthread_mutex_lock (&(_vst->state()->lock));
|
||||||
|
|
||||||
/* The Window may be scheduled for creation
|
/* The Window may be scheduled for creation
|
||||||
but not actually created by the gui_event_loop yet -
|
but not actually created by the gui_event_loop yet -
|
||||||
spin here until it has been activated. Possible
|
spin here until it has been activated. Possible
|
||||||
deadlock if the window never gets activated but
|
deadlock if the window never gets activated but
|
||||||
should not be called here if the window doesn't
|
should not be called here if the window doesn't
|
||||||
|
|
@ -148,7 +148,7 @@ LXVSTPluginUI::get_XID ()
|
||||||
|
|
||||||
pthread_mutex_unlock (&(_vst->state()->lock));
|
pthread_mutex_unlock (&(_vst->state()->lock));
|
||||||
|
|
||||||
/* Finally it might be safe to return the ID -
|
/* Finally it might be safe to return the ID -
|
||||||
problems will arise if we return either a zero ID
|
problems will arise if we return either a zero ID
|
||||||
and GTK tries to socket it or if we return an ID
|
and GTK tries to socket it or if we return an ID
|
||||||
which hasn't yet become real to the server
|
which hasn't yet become real to the server
|
||||||
|
|
@ -162,7 +162,7 @@ static Display *the_gtk_display;
|
||||||
static error_handler_t vstfx_error_handler;
|
static error_handler_t vstfx_error_handler;
|
||||||
static error_handler_t gtk_error_handler;
|
static error_handler_t gtk_error_handler;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
gtk_xerror_handler (Display*, XErrorEvent*)
|
gtk_xerror_handler (Display*, XErrorEvent*)
|
||||||
{
|
{
|
||||||
std::cerr << "** ERROR ** LXVSTPluginUI : Trapped an X Window System Error" << std::endl;
|
std::cerr << "** ERROR ** LXVSTPluginUI : Trapped an X Window System Error" << std::endl;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ MidiChannelDialog::MidiChannelDialog (uint8_t active_channel)
|
||||||
add_button (Stock::OK, RESPONSE_OK);
|
add_button (Stock::OK, RESPONSE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
MidiChannelDialog::active_channel () const
|
MidiChannelDialog::active_channel () const
|
||||||
{
|
{
|
||||||
return selector.get_active_channel();
|
return selector.get_active_channel();
|
||||||
|
|
|
||||||
|
|
@ -396,17 +396,17 @@ MidiChannelSelectorWindow::build ()
|
||||||
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to enable recording all channels"));
|
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to enable recording all channels"));
|
||||||
capture_controls->pack_start (*b);
|
capture_controls->pack_start (*b);
|
||||||
capture_mask_controls.push_back (b);
|
capture_mask_controls.push_back (b);
|
||||||
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::fill_capture_mask));
|
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::fill_capture_mask));
|
||||||
b = manage (new Button (_("None")));
|
b = manage (new Button (_("None")));
|
||||||
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to disable recording all channels"));
|
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to disable recording all channels"));
|
||||||
capture_controls->pack_start (*b);
|
capture_controls->pack_start (*b);
|
||||||
capture_mask_controls.push_back (b);
|
capture_mask_controls.push_back (b);
|
||||||
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::zero_capture_mask));
|
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::zero_capture_mask));
|
||||||
b = manage (new Button (_("Invert")));
|
b = manage (new Button (_("Invert")));
|
||||||
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to invert currently selected recording channels"));
|
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to invert currently selected recording channels"));
|
||||||
capture_controls->pack_start (*b);
|
capture_controls->pack_start (*b);
|
||||||
capture_mask_controls.push_back (b);
|
capture_mask_controls.push_back (b);
|
||||||
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::invert_capture_mask));
|
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::invert_capture_mask));
|
||||||
|
|
||||||
vpacker->pack_start (*capture_controls);
|
vpacker->pack_start (*capture_controls);
|
||||||
|
|
||||||
|
|
@ -432,12 +432,12 @@ MidiChannelSelectorWindow::build ()
|
||||||
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to enable playback of all channels"));
|
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to enable playback of all channels"));
|
||||||
playback_controls->pack_start (*b);
|
playback_controls->pack_start (*b);
|
||||||
playback_mask_controls.push_back (b);
|
playback_mask_controls.push_back (b);
|
||||||
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::fill_playback_mask));
|
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::fill_playback_mask));
|
||||||
b = manage (new Button (_("None")));
|
b = manage (new Button (_("None")));
|
||||||
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to disable playback of all channels"));
|
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to disable playback of all channels"));
|
||||||
playback_controls->pack_start (*b);
|
playback_controls->pack_start (*b);
|
||||||
playback_mask_controls.push_back (b);
|
playback_mask_controls.push_back (b);
|
||||||
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::zero_playback_mask));
|
b->signal_clicked().connect (sigc::mem_fun (*this, &MidiChannelSelectorWindow::zero_playback_mask));
|
||||||
b = manage (new Button (_("Invert")));
|
b = manage (new Button (_("Invert")));
|
||||||
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to invert current selected playback channels"));
|
Gtkmm2ext::UI::instance()->set_tip (*b, _("Click to invert current selected playback channels"));
|
||||||
playback_controls->pack_start (*b);
|
playback_controls->pack_start (*b);
|
||||||
|
|
@ -739,7 +739,7 @@ MidiChannelSelectorWindow::capture_mode_changed ()
|
||||||
|
|
||||||
if (mode != ForceChannel) {
|
if (mode != ForceChannel) {
|
||||||
set_capture_selected_channels (track->get_capture_channel_mask());
|
set_capture_selected_channels (track->get_capture_channel_mask());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode == AllChannels) {
|
if (mode == AllChannels) {
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
@ -50,7 +50,7 @@ using Timecode::BBT_Time;
|
||||||
|
|
||||||
static map<int,std::string> note_length_map;
|
static map<int,std::string> note_length_map;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fill_note_length_map ()
|
fill_note_length_map ()
|
||||||
{
|
{
|
||||||
note_length_map.insert (make_pair<int,string> (BBT_Time::ticks_per_beat, _("Whole")));
|
note_length_map.insert (make_pair<int,string> (BBT_Time::ticks_per_beat, _("Whole")));
|
||||||
|
|
@ -146,7 +146,7 @@ MidiListEditor::MidiListEditor (Session* s, boost::shared_ptr<MidiRegion> r, boo
|
||||||
|
|
||||||
redisplay_model ();
|
redisplay_model ();
|
||||||
|
|
||||||
region->midi_source(0)->model()->ContentsChanged.connect (content_connection, invalidator (*this),
|
region->midi_source(0)->model()->ContentsChanged.connect (content_connection, invalidator (*this),
|
||||||
boost::bind (&MidiListEditor::redisplay_model, this), gui_context());
|
boost::bind (&MidiListEditor::redisplay_model, this), gui_context());
|
||||||
|
|
||||||
buttons.attach (sound_notes_button, 0, 1, 0, 1);
|
buttons.attach (sound_notes_button, 0, 1, 0, 1);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -686,7 +686,7 @@ MidiRegionView::motion (GdkEventMotion* ev)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we may be dragging some non-note object (eg. patch-change, sysex)
|
/* we may be dragging some non-note object (eg. patch-change, sysex)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return editor.drags()->motion_handler ((GdkEvent *) ev, false);
|
return editor.drags()->motion_handler ((GdkEvent *) ev, false);
|
||||||
|
|
@ -1301,7 +1301,7 @@ MidiRegionView::display_sysexes()
|
||||||
if (!UIConfiguration::instance().get_never_display_periodic_midi()) {
|
if (!UIConfiguration::instance().get_never_display_periodic_midi()) {
|
||||||
|
|
||||||
for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
|
for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
|
||||||
const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::Beats> > mev =
|
const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::Beats> > mev =
|
||||||
boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::Beats> > (*i);
|
boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::Beats> > (*i);
|
||||||
|
|
||||||
if (mev) {
|
if (mev) {
|
||||||
|
|
@ -1326,7 +1326,7 @@ MidiRegionView::display_sysexes()
|
||||||
|
|
||||||
if (zoom > (video_frame*4)) {
|
if (zoom > (video_frame*4)) {
|
||||||
display_periodic_messages = false;
|
display_periodic_messages = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
display_periodic_messages = false;
|
display_periodic_messages = false;
|
||||||
|
|
@ -1334,7 +1334,7 @@ MidiRegionView::display_sysexes()
|
||||||
|
|
||||||
for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
|
for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
|
||||||
|
|
||||||
const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::Beats> > mev =
|
const boost::shared_ptr<const Evoral::MIDIEvent<Evoral::Beats> > mev =
|
||||||
boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::Beats> > (*i);
|
boost::static_pointer_cast<const Evoral::MIDIEvent<Evoral::Beats> > (*i);
|
||||||
|
|
||||||
Evoral::Beats time = (*i)->time();
|
Evoral::Beats time = (*i)->time();
|
||||||
|
|
@ -1956,7 +1956,7 @@ patch_applies (const ARDOUR::MidiModel::constPatchChangePtr pc, Evoral::Beats ti
|
||||||
return pc->time() <= time && pc->channel() == channel;
|
return pc->time() <= time && pc->channel() == channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MidiRegionView::get_patch_key_at (Evoral::Beats time, uint8_t channel, MIDI::Name::PatchPrimaryKey& key) const
|
MidiRegionView::get_patch_key_at (Evoral::Beats time, uint8_t channel, MIDI::Name::PatchPrimaryKey& key) const
|
||||||
{
|
{
|
||||||
// The earliest event not before time
|
// The earliest event not before time
|
||||||
|
|
@ -2714,7 +2714,7 @@ MidiRegionView::begin_resizing (bool /*at_front*/)
|
||||||
resize_data->note = note;
|
resize_data->note = note;
|
||||||
|
|
||||||
// create a new SimpleRect from the note which will be the resize preview
|
// create a new SimpleRect from the note which will be the resize preview
|
||||||
ArdourCanvas::Rectangle *resize_rect = new ArdourCanvas::Rectangle (_note_group,
|
ArdourCanvas::Rectangle *resize_rect = new ArdourCanvas::Rectangle (_note_group,
|
||||||
ArdourCanvas::Rect (note->x0(), note->y0(), note->x0(), note->y1()));
|
ArdourCanvas::Rect (note->x0(), note->y0(), note->x0(), note->y1()));
|
||||||
|
|
||||||
// calculate the colors: get the color settings
|
// calculate the colors: get the color settings
|
||||||
|
|
@ -3344,8 +3344,8 @@ MidiRegionView::patch_entered (PatchChange* p)
|
||||||
{
|
{
|
||||||
ostringstream s;
|
ostringstream s;
|
||||||
/* XXX should get patch name if we can */
|
/* XXX should get patch name if we can */
|
||||||
s << _("Bank ") << (p->patch()->bank() + MIDI_BP_ZERO) << '\n'
|
s << _("Bank ") << (p->patch()->bank() + MIDI_BP_ZERO) << '\n'
|
||||||
<< _("Program ") << ((int) p->patch()->program()) + MIDI_BP_ZERO << '\n'
|
<< _("Program ") << ((int) p->patch()->program()) + MIDI_BP_ZERO << '\n'
|
||||||
<< _("Channel ") << ((int) p->patch()->channel() + 1);
|
<< _("Channel ") << ((int) p->patch()->channel() + 1);
|
||||||
show_verbose_cursor (s.str(), 10, 20);
|
show_verbose_cursor (s.str(), 10, 20);
|
||||||
p->item().grab_focus();
|
p->item().grab_focus();
|
||||||
|
|
|
||||||
|
|
@ -344,7 +344,7 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
|
||||||
_midnam_custom_device_mode_selector.show ();
|
_midnam_custom_device_mode_selector.show ();
|
||||||
|
|
||||||
_midi_controls_box.pack_start (_midnam_custom_device_mode_selector, false, false, 2);
|
_midi_controls_box.pack_start (_midnam_custom_device_mode_selector, false, false, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
model_changed(gui_property(X_("midnam-model-name")));
|
model_changed(gui_property(X_("midnam-model-name")));
|
||||||
custom_device_mode_changed(gui_property(X_("midnam-custom-device-mode")));
|
custom_device_mode_changed(gui_property(X_("midnam-custom-device-mode")));
|
||||||
|
|
@ -522,7 +522,7 @@ MidiTimeAxisView::append_extra_display_menu_items ()
|
||||||
|
|
||||||
range_items.push_back (
|
range_items.push_back (
|
||||||
MenuElem (_("Show Full Range"),
|
MenuElem (_("Show Full Range"),
|
||||||
sigc::bind (sigc::mem_fun(*this, &MidiTimeAxisView::set_note_range),
|
sigc::bind (sigc::mem_fun(*this, &MidiTimeAxisView::set_note_range),
|
||||||
MidiStreamView::FullRange, true)));
|
MidiStreamView::FullRange, true)));
|
||||||
|
|
||||||
range_items.push_back (
|
range_items.push_back (
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ MidiTracer::MidiTracer ()
|
||||||
, collect_button (_("Enabled"))
|
, collect_button (_("Enabled"))
|
||||||
, delta_time_button (_("Delta times"))
|
, delta_time_button (_("Delta times"))
|
||||||
{
|
{
|
||||||
ARDOUR::AudioEngine::instance()->PortRegisteredOrUnregistered.connect
|
ARDOUR::AudioEngine::instance()->PortRegisteredOrUnregistered.connect
|
||||||
(_manager_connection, invalidator (*this), boost::bind (&MidiTracer::ports_changed, this), gui_context());
|
(_manager_connection, invalidator (*this), boost::bind (&MidiTracer::ports_changed, this), gui_context());
|
||||||
|
|
||||||
_last_receipt.tv_sec = 0;
|
_last_receipt.tv_sec = 0;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ MidiVelocityDialog::MidiVelocityDialog (uint8_t current_velocity)
|
||||||
spinner.signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &MidiVelocityDialog::response), Gtk::RESPONSE_OK));
|
spinner.signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &MidiVelocityDialog::response), Gtk::RESPONSE_OK));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
MidiVelocityDialog::velocity () const
|
MidiVelocityDialog::velocity () const
|
||||||
{
|
{
|
||||||
return (uint8_t) adjustment.get_value();
|
return (uint8_t) adjustment.get_value();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ MixerActor::register_actions ()
|
||||||
myactions.register_action ("Mixer", "scroll-left", _("Scroll Mixer Window to the left"), sigc::mem_fun (*this, &MixerActor::scroll_left));
|
myactions.register_action ("Mixer", "scroll-left", _("Scroll Mixer Window to the left"), sigc::mem_fun (*this, &MixerActor::scroll_left));
|
||||||
myactions.register_action ("Mixer", "scroll-right", _("Scroll Mixer Window to the left"), sigc::mem_fun (*this, &MixerActor::scroll_right));
|
myactions.register_action ("Mixer", "scroll-right", _("Scroll Mixer Window to the left"), sigc::mem_fun (*this, &MixerActor::scroll_right));
|
||||||
|
|
||||||
myactions.register_action ("Mixer", "toggle-midi-input-active", _("Toggle MIDI Input Active for Mixer-Selected Tracks/Busses"),
|
myactions.register_action ("Mixer", "toggle-midi-input-active", _("Toggle MIDI Input Active for Mixer-Selected Tracks/Busses"),
|
||||||
sigc::bind (sigc::mem_fun (*this, &MixerActor::toggle_midi_input_active), false));
|
sigc::bind (sigc::mem_fun (*this, &MixerActor::toggle_midi_input_active), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ namespace Gtk {
|
||||||
class ActionGroup;
|
class ActionGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
class MixerActor : virtual public sigc::trackable
|
class MixerActor : virtual public sigc::trackable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MixerActor ();
|
MixerActor ();
|
||||||
|
|
|
||||||
|
|
@ -76,11 +76,11 @@ using PBD::Unwinder;
|
||||||
Mixer_UI* Mixer_UI::_instance = 0;
|
Mixer_UI* Mixer_UI::_instance = 0;
|
||||||
|
|
||||||
Mixer_UI*
|
Mixer_UI*
|
||||||
Mixer_UI::instance ()
|
Mixer_UI::instance ()
|
||||||
{
|
{
|
||||||
if (!_instance) {
|
if (!_instance) {
|
||||||
_instance = new Mixer_UI;
|
_instance = new Mixer_UI;
|
||||||
}
|
}
|
||||||
|
|
||||||
return _instance;
|
return _instance;
|
||||||
}
|
}
|
||||||
|
|
@ -357,7 +357,7 @@ Mixer_UI::add_strips (RouteList& routes)
|
||||||
if (mnode) {
|
if (mnode) {
|
||||||
_monitor_section->tearoff().set_state (*mnode);
|
_monitor_section->tearoff().set_state (*mnode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out_packer.pack_end (_monitor_section->tearoff(), false, false);
|
out_packer.pack_end (_monitor_section->tearoff(), false, false);
|
||||||
_monitor_section->set_session (_session);
|
_monitor_section->set_session (_session);
|
||||||
|
|
@ -701,7 +701,7 @@ Mixer_UI::strip_button_release_event (GdkEventButton *ev, MixerStrip *strip)
|
||||||
|
|
||||||
for (list<MixerStrip*>::iterator i = strips.begin(); i != strips.end(); ++i) {
|
for (list<MixerStrip*>::iterator i = strips.begin(); i != strips.end(); ++i) {
|
||||||
if ((*i) == strip) {
|
if ((*i) == strip) {
|
||||||
/* hit clicked strip, start accumulating till we hit the first
|
/* hit clicked strip, start accumulating till we hit the first
|
||||||
selected strip
|
selected strip
|
||||||
*/
|
*/
|
||||||
if (accumulate) {
|
if (accumulate) {
|
||||||
|
|
@ -1059,7 +1059,7 @@ Mixer_UI::track_list_delete (const Gtk::TreeModel::Path&)
|
||||||
{
|
{
|
||||||
/* this happens as the second step of a DnD within the treeview as well
|
/* this happens as the second step of a DnD within the treeview as well
|
||||||
as when a row/route is actually deleted.
|
as when a row/route is actually deleted.
|
||||||
|
|
||||||
if it was a deletion then we have to force a redisplay because
|
if it was a deletion then we have to force a redisplay because
|
||||||
order keys may not have changed.
|
order keys may not have changed.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public AR
|
||||||
|
|
||||||
void initial_track_display ();
|
void initial_track_display ();
|
||||||
void show_track_list_menu ();
|
void show_track_list_menu ();
|
||||||
|
|
||||||
void set_all_strips_visibility (bool yn);
|
void set_all_strips_visibility (bool yn);
|
||||||
void set_all_audio_midi_visibility (int, bool);
|
void set_all_audio_midi_visibility (int, bool);
|
||||||
void track_visibility_changed (std::string const & path);
|
void track_visibility_changed (std::string const & path);
|
||||||
|
|
|
||||||
|
|
@ -147,8 +147,8 @@ MouseCursors::set_cursor_set (const std::string& name)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* these will throw exceptions if their images cannot be found.
|
/* these will throw exceptions if their images cannot be found.
|
||||||
|
|
||||||
the default hotspot coordinates will be overridden by any
|
the default hotspot coordinates will be overridden by any
|
||||||
data found by Gtkmm2ext::Cursors::load_cursor_info(). the values
|
data found by Gtkmm2ext::Cursors::load_cursor_info(). the values
|
||||||
here from the set of cursors used by Ardour; new cursor/icon
|
here from the set of cursors used by Ardour; new cursor/icon
|
||||||
sets should come with a hotspot info file.
|
sets should come with a hotspot info file.
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ public:
|
||||||
Gdk::Cursor* expand_left_right;
|
Gdk::Cursor* expand_left_right;
|
||||||
Gdk::Cursor* expand_up_down;
|
Gdk::Cursor* expand_up_down;
|
||||||
|
|
||||||
/* This cursor is not intended to be used directly, it just
|
/* This cursor is not intended to be used directly, it just
|
||||||
serves as an out-of-bounds value when we need to indicate
|
serves as an out-of-bounds value when we need to indicate
|
||||||
"no cursor". NULL/0 doesn't work for this, because it
|
"no cursor". NULL/0 doesn't work for this, because it
|
||||||
is actually a valid value for a Gdk::Cursor - it indicates
|
is actually a valid value for a Gdk::Cursor - it indicates
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@ NoteBase::set_selected(bool selected)
|
||||||
|
|
||||||
_selected = selected;
|
_selected = selected;
|
||||||
set_fill_color (base_color());
|
set_fill_color (base_color());
|
||||||
|
|
||||||
set_outline_color(calculate_outline(base_color(), _selected));
|
set_outline_color(calculate_outline(base_color(), _selected));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -169,13 +169,13 @@ NoteBase::base_color()
|
||||||
case TrackColor:
|
case TrackColor:
|
||||||
{
|
{
|
||||||
uint32_t color = _region.midi_stream_view()->get_region_color();
|
uint32_t color = _region.midi_stream_view()->get_region_color();
|
||||||
return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (color, opacity),
|
return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (color, opacity),
|
||||||
UIConfiguration::instance().color ("midi note selected"),
|
UIConfiguration::instance().color ("midi note selected"),
|
||||||
0.5);
|
0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
case ChannelColors:
|
case ChannelColors:
|
||||||
return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (NoteBase::midi_channel_colors[_note->channel()], opacity),
|
return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (NoteBase::midi_channel_colors[_note->channel()], opacity),
|
||||||
UIConfiguration::instance().color ("midi note selected"), 0.5);
|
UIConfiguration::instance().color ("midi note selected"), 0.5);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ namespace ArdourCanvas {
|
||||||
* This is not actually a canvas item itself to avoid the dreaded diamond
|
* This is not actually a canvas item itself to avoid the dreaded diamond
|
||||||
* inheritance pattern, since various types of canvas items (Note (rect), Hit
|
* inheritance pattern, since various types of canvas items (Note (rect), Hit
|
||||||
* (diamond), etc) need to share this functionality but can't share an
|
* (diamond), etc) need to share this functionality but can't share an
|
||||||
* ancestor.
|
* ancestor.
|
||||||
*
|
*
|
||||||
* Note: Because of this, derived classes need to manually bounce events to
|
* Note: Because of this, derived classes need to manually bounce events to
|
||||||
* on_event, it won't happen automatically.
|
* on_event, it won't happen automatically.
|
||||||
|
|
@ -147,7 +147,7 @@ protected:
|
||||||
bool _valid;
|
bool _valid;
|
||||||
float _mouse_x_fraction;
|
float _mouse_x_fraction;
|
||||||
float _mouse_y_fraction;
|
float _mouse_y_fraction;
|
||||||
|
|
||||||
void set_mouse_fractions (GdkEvent*);
|
void set_mouse_fractions (GdkEvent*);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ namespace NSM
|
||||||
{
|
{
|
||||||
if ( _st )
|
if ( _st )
|
||||||
stop();
|
stop();
|
||||||
|
|
||||||
if ( _st )
|
if ( _st )
|
||||||
lo_server_thread_free( _st );
|
lo_server_thread_free( _st );
|
||||||
else
|
else
|
||||||
|
|
@ -130,7 +130,7 @@ namespace NSM
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Client::broadcast ( lo_message msg )
|
Client::broadcast ( lo_message msg )
|
||||||
{
|
{
|
||||||
|
|
@ -191,10 +191,10 @@ namespace NSM
|
||||||
lo_address addr = lo_address_new_from_url( nsm_url );
|
lo_address addr = lo_address_new_from_url( nsm_url );
|
||||||
int proto = lo_address_get_protocol( addr );
|
int proto = lo_address_get_protocol( addr );
|
||||||
lo_address_free( addr );
|
lo_address_free( addr );
|
||||||
|
|
||||||
_st = lo_server_thread_new_with_proto( NULL, proto, NULL );
|
_st = lo_server_thread_new_with_proto( NULL, proto, NULL );
|
||||||
_server = lo_server_thread_get_server( _st );
|
_server = lo_server_thread_get_server( _st );
|
||||||
|
|
||||||
if ( ! _server || ! _st )
|
if ( ! _server || ! _st )
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
@ -204,7 +204,7 @@ namespace NSM
|
||||||
lo_server_thread_add_method( _st, "/nsm/client/save", "", &Client::osc_save, this );
|
lo_server_thread_add_method( _st, "/nsm/client/save", "", &Client::osc_save, this );
|
||||||
lo_server_thread_add_method( _st, "/nsm/client/session_is_loaded", "", &Client::osc_session_is_loaded, this );
|
lo_server_thread_add_method( _st, "/nsm/client/session_is_loaded", "", &Client::osc_session_is_loaded, this );
|
||||||
lo_server_thread_add_method( _st, NULL, NULL, &Client::osc_broadcast, this );
|
lo_server_thread_add_method( _st, NULL, NULL, &Client::osc_broadcast, this );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -222,7 +222,7 @@ namespace NSM
|
||||||
Client::osc_save ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
Client::osc_save ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||||
{
|
{
|
||||||
char *out_msg = NULL;
|
char *out_msg = NULL;
|
||||||
|
|
||||||
int r = ((NSM::Client*)user_data)->command_save(&out_msg);
|
int r = ((NSM::Client*)user_data)->command_save(&out_msg);
|
||||||
|
|
||||||
if ( r )
|
if ( r )
|
||||||
|
|
@ -242,12 +242,12 @@ namespace NSM
|
||||||
char *out_msg = NULL;
|
char *out_msg = NULL;
|
||||||
|
|
||||||
NSM::Client *nsm = (NSM::Client*)user_data;
|
NSM::Client *nsm = (NSM::Client*)user_data;
|
||||||
|
|
||||||
nsm->_nsm_client_id = strdup( &argv[2]->s );
|
nsm->_nsm_client_id = strdup( &argv[2]->s );
|
||||||
nsm->_nsm_client_path = strdup( &argv[0]->s );
|
nsm->_nsm_client_path = strdup( &argv[0]->s );
|
||||||
|
|
||||||
int r = ((NSM::Client*)user_data)->command_open( &argv[0]->s, &argv[1]->s, &argv[2]->s, &out_msg);
|
int r = ((NSM::Client*)user_data)->command_open( &argv[0]->s, &argv[1]->s, &argv[2]->s, &out_msg);
|
||||||
|
|
||||||
if ( r )
|
if ( r )
|
||||||
OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") );
|
OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") );
|
||||||
else
|
else
|
||||||
|
|
@ -274,12 +274,12 @@ namespace NSM
|
||||||
{
|
{
|
||||||
if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) )
|
if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) )
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
NSM::Client *nsm = (NSM::Client*)user_data;
|
NSM::Client *nsm = (NSM::Client*)user_data;
|
||||||
|
|
||||||
|
|
||||||
nsm->nsm_is_active = false;
|
nsm->nsm_is_active = false;
|
||||||
|
|
||||||
nsm->command_active( nsm->nsm_is_active );
|
nsm->command_active( nsm->nsm_is_active );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -290,13 +290,13 @@ namespace NSM
|
||||||
{
|
{
|
||||||
if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) )
|
if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) )
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
NSM::Client *nsm = (NSM::Client*)user_data;
|
NSM::Client *nsm = (NSM::Client*)user_data;
|
||||||
|
|
||||||
nsm->nsm_is_active = true;
|
nsm->nsm_is_active = true;
|
||||||
nsm->_session_manager_name = strdup( &argv[2]->s );
|
nsm->_session_manager_name = strdup( &argv[2]->s );
|
||||||
nsm->nsm_addr = lo_address_new_from_url( lo_address_get_url( lo_message_get_source( msg ) ));
|
nsm->nsm_addr = lo_address_new_from_url( lo_address_get_url( lo_message_get_source( msg ) ));
|
||||||
|
|
||||||
nsm->command_active( nsm->nsm_is_active );
|
nsm->command_active( nsm->nsm_is_active );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ namespace NSM
|
||||||
int init ( const char *nsm_url );
|
int init ( const char *nsm_url );
|
||||||
/* init with threading */
|
/* init with threading */
|
||||||
int init_thread ( const char *nsm_url );
|
int init_thread ( const char *nsm_url );
|
||||||
|
|
||||||
/* call this periodically to check for new messages */
|
/* call this periodically to check for new messages */
|
||||||
void check ( int timeout = 0 );
|
void check ( int timeout = 0 );
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -221,7 +221,7 @@ EntryOption::focus_out (GdkEventFocus*)
|
||||||
* @param s Slot to set the variable's value.
|
* @param s Slot to set the variable's value.
|
||||||
*/
|
*/
|
||||||
BoolComboOption::BoolComboOption (
|
BoolComboOption::BoolComboOption (
|
||||||
string const & i, string const & n, string const & t, string const & f,
|
string const & i, string const & n, string const & t, string const & f,
|
||||||
sigc::slot<bool> g, sigc::slot<bool, bool> s
|
sigc::slot<bool> g, sigc::slot<bool, bool> s
|
||||||
)
|
)
|
||||||
: Option (i, n)
|
: Option (i, n)
|
||||||
|
|
@ -265,7 +265,7 @@ BoolComboOption::set_sensitive (bool yn)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FaderOption::FaderOption (string const & i, string const & n, sigc::slot<gain_t> g, sigc::slot<bool, gain_t> s)
|
FaderOption::FaderOption (string const & i, string const & n, sigc::slot<gain_t> g, sigc::slot<bool, gain_t> s)
|
||||||
: Option (i, n)
|
: Option (i, n)
|
||||||
, _db_adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0, 1, 0.01, 0.1)
|
, _db_adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0, 1, 0.01, 0.1)
|
||||||
|
|
@ -450,7 +450,7 @@ OptionEditor::add_option (std::string const & pn, OptionEditorComponent* o)
|
||||||
o->set_state_from_config ();
|
o->set_state_from_config ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Add a new page
|
/** Add a new page
|
||||||
* @param pn Page name (will be created if it doesn't already exist)
|
* @param pn Page name (will be created if it doesn't already exist)
|
||||||
* @param w widget that fills the page
|
* @param w widget that fills the page
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ PatchChangeDialog::PatchChangeDialog (
|
||||||
set_active_bank_combo ();
|
set_active_bank_combo ();
|
||||||
bank_combo_changed ();
|
bank_combo_changed ();
|
||||||
|
|
||||||
_info.Changed.connect (_info_changed_connection, invalidator (*this),
|
_info.Changed.connect (_info_changed_connection, invalidator (*this),
|
||||||
boost::bind (&PatchChangeDialog::instrument_info_changed, this), gui_context());
|
boost::bind (&PatchChangeDialog::instrument_info_changed, this), gui_context());
|
||||||
|
|
||||||
show_all ();
|
show_all ();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
Inspired by code from Ben Loftis @ Harrison Consoles
|
Inspired by code from Ben Loftis @ Harrison Consoles
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
@ -113,10 +113,10 @@ _pingback (void *arg)
|
||||||
curl_global_init (CURL_GLOBAL_NOTHING);
|
curl_global_init (CURL_GLOBAL_NOTHING);
|
||||||
c = curl_easy_init ();
|
c = curl_easy_init ();
|
||||||
|
|
||||||
curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, curl_write_data);
|
curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, curl_write_data);
|
||||||
curl_easy_setopt (c, CURLOPT_WRITEDATA, &return_str);
|
curl_easy_setopt (c, CURLOPT_WRITEDATA, &return_str);
|
||||||
char errbuf[CURL_ERROR_SIZE];
|
char errbuf[CURL_ERROR_SIZE];
|
||||||
curl_easy_setopt (c, CURLOPT_ERRORBUFFER, errbuf);
|
curl_easy_setopt (c, CURLOPT_ERRORBUFFER, errbuf);
|
||||||
|
|
||||||
string url;
|
string url;
|
||||||
|
|
||||||
|
|
@ -206,7 +206,7 @@ _pingback (void *arg)
|
||||||
return_str = "";
|
return_str = "";
|
||||||
|
|
||||||
if (curl_easy_perform (c) == 0) {
|
if (curl_easy_perform (c) == 0) {
|
||||||
long http_status;
|
long http_status;
|
||||||
|
|
||||||
curl_easy_getinfo (c, CURLINFO_RESPONSE_CODE, &http_status);
|
curl_easy_getinfo (c, CURLINFO_RESPONSE_CODE, &http_status);
|
||||||
|
|
||||||
|
|
@ -241,7 +241,7 @@ _pingback (void *arg)
|
||||||
|
|
||||||
namespace ARDOUR {
|
namespace ARDOUR {
|
||||||
|
|
||||||
void pingback (const string& version, const string& announce_path)
|
void pingback (const string& version, const string& announce_path)
|
||||||
{
|
{
|
||||||
ping_call* cm = new ping_call (version, announce_path);
|
ping_call* cm = new ping_call (version, announce_path);
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
Inspired by code from Ben Loftis @ Harrison Consoles
|
Inspired by code from Ben Loftis @ Harrison Consoles
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ PluginSelector::PluginSelector (PluginManager& mgr)
|
||||||
: ArdourDialog (_("Plugin Manager"), true, false)
|
: ArdourDialog (_("Plugin Manager"), true, false)
|
||||||
, filter_button (Stock::CLEAR)
|
, filter_button (Stock::CLEAR)
|
||||||
, manager (mgr)
|
, manager (mgr)
|
||||||
|
|
||||||
{
|
{
|
||||||
set_name ("PluginSelectorWindow");
|
set_name ("PluginSelectorWindow");
|
||||||
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
|
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
|
||||||
|
|
|
||||||
|
|
@ -178,9 +178,9 @@ PluginUIWindow::on_show ()
|
||||||
|
|
||||||
if (_pluginui) {
|
if (_pluginui) {
|
||||||
#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX)
|
#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX)
|
||||||
if (pre_deactivate_x >= 0) {
|
if (pre_deactivate_x >= 0) {
|
||||||
move (pre_deactivate_x, pre_deactivate_y);
|
move (pre_deactivate_x, pre_deactivate_y);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (_pluginui->on_window_show (_title)) {
|
if (_pluginui->on_window_show (_title)) {
|
||||||
|
|
@ -193,7 +193,7 @@ void
|
||||||
PluginUIWindow::on_hide ()
|
PluginUIWindow::on_hide ()
|
||||||
{
|
{
|
||||||
#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX)
|
#if defined (HAVE_AUDIOUNITS) && defined(GTKOSX)
|
||||||
get_position (pre_deactivate_x, pre_deactivate_y);
|
get_position (pre_deactivate_x, pre_deactivate_y);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Window::on_hide ();
|
Window::on_hide ();
|
||||||
|
|
@ -607,7 +607,7 @@ PlugUIBase::add_plugin_setting ()
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (!seen_saving_message) {
|
if (!seen_saving_message) {
|
||||||
seen_saving_message = true;
|
seen_saving_message = true;
|
||||||
show_no_plugin_message();
|
show_no_plugin_message();
|
||||||
|
|
@ -625,7 +625,7 @@ PlugUIBase::save_plugin_setting ()
|
||||||
if (!r.uri.empty ()) {
|
if (!r.uri.empty ()) {
|
||||||
plugin->load_preset (r);
|
plugin->load_preset (r);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (!seen_saving_message) {
|
if (!seen_saving_message) {
|
||||||
seen_saving_message = true;
|
seen_saving_message = true;
|
||||||
show_no_plugin_message();
|
show_no_plugin_message();
|
||||||
|
|
|
||||||
|
|
@ -935,7 +935,7 @@ PortMatrix::visible_ports (int d) const
|
||||||
the TOP_TO_RIGHT arrangement we reverse the order of the vertical
|
the TOP_TO_RIGHT arrangement we reverse the order of the vertical
|
||||||
tabs in setup_notebooks ().
|
tabs in setup_notebooks ().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if (d == _row_index) {
|
if (d == _row_index) {
|
||||||
if (_arrangement == LEFT_TO_BOTTOM) {
|
if (_arrangement == LEFT_TO_BOTTOM) {
|
||||||
|
|
|
||||||
|
|
@ -772,7 +772,7 @@ PluginInsertProcessorEntry::plugin_insert_splitting_changed ()
|
||||||
* This plugin may have unconnected output-ports (currently only in Mixbus,
|
* This plugin may have unconnected output-ports (currently only in Mixbus,
|
||||||
* e.g channelstrip-EQ at the top of a MIDI-channel before the synth).
|
* e.g channelstrip-EQ at the top of a MIDI-channel before the synth).
|
||||||
*
|
*
|
||||||
* The *next* processor below this one will only see the
|
* The *next* processor below this one will only see the
|
||||||
* actual available streams (it cannot know the real outputs
|
* actual available streams (it cannot know the real outputs
|
||||||
* of this plugin).
|
* of this plugin).
|
||||||
*
|
*
|
||||||
|
|
@ -952,7 +952,7 @@ ProcessorEntry::RoutingIcon::on_expose_event (GdkEventExpose* ev)
|
||||||
cairo_stroke (cr);
|
cairo_stroke (cr);
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
} else if (midi_sources != 0 && midi_sinks != 0) {
|
} else if (midi_sources != 0 && midi_sinks != 0) {
|
||||||
PBD::warning << string_compose("Programming error: midi routing display: A %1 -> %2 | M %3 -> %4 | T %5 -> %6",
|
PBD::warning << string_compose("Programming error: midi routing display: A %1 -> %2 | M %3 -> %4 | T %5 -> %6",
|
||||||
audio_sources, audio_sinks, midi_sources, midi_sinks, sources, sinks) << endmsg;
|
audio_sources, audio_sinks, midi_sources, midi_sinks, sources, sinks) << endmsg;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
@ -999,7 +999,7 @@ ProcessorEntry::RoutingIcon::on_expose_event (GdkEventExpose* ev)
|
||||||
cairo_stroke (cr);
|
cairo_stroke (cr);
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
} else if (audio_sources != 0 && audio_sinks != 0) {
|
} else if (audio_sources != 0 && audio_sinks != 0) {
|
||||||
PBD::warning << string_compose("Programming error: audio routing display: A %1 -> %2 | M %3 -> %4 | T %5 -> %6",
|
PBD::warning << string_compose("Programming error: audio routing display: A %1 -> %2 | M %3 -> %4 | T %5 -> %6",
|
||||||
audio_sources, audio_sinks, midi_sources, midi_sinks, sources, sinks) << endmsg;
|
audio_sources, audio_sinks, midi_sources, midi_sinks, sources, sinks) << endmsg;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
@ -1322,7 +1322,7 @@ ProcessorBox::leave_notify (GdkEventCrossing*)
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ProcessorBox::processor_operation (ProcessorOperation op)
|
ProcessorBox::processor_operation (ProcessorOperation op)
|
||||||
{
|
{
|
||||||
ProcSelection targets;
|
ProcSelection targets;
|
||||||
|
|
||||||
|
|
@ -1402,7 +1402,7 @@ ProcessorBox::processor_operation (ProcessorOperation op)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessorWindowProxy*
|
ProcessorWindowProxy*
|
||||||
ProcessorBox::find_window_proxy (boost::shared_ptr<Processor> processor) const
|
ProcessorBox::find_window_proxy (boost::shared_ptr<Processor> processor) const
|
||||||
{
|
{
|
||||||
return processor->window_proxy();
|
return processor->window_proxy();
|
||||||
|
|
@ -1733,7 +1733,7 @@ ProcessorBox::redisplay_processors ()
|
||||||
_visible_prefader_processors = 0;
|
_visible_prefader_processors = 0;
|
||||||
fader_seen = false;
|
fader_seen = false;
|
||||||
|
|
||||||
_route->foreach_processor (sigc::bind (sigc::mem_fun (*this, &ProcessorBox::help_count_visible_prefader_processors),
|
_route->foreach_processor (sigc::bind (sigc::mem_fun (*this, &ProcessorBox::help_count_visible_prefader_processors),
|
||||||
&_visible_prefader_processors, &fader_seen));
|
&_visible_prefader_processors, &fader_seen));
|
||||||
|
|
||||||
_route->foreach_processor (sigc::mem_fun (*this, &ProcessorBox::add_processor_to_display));
|
_route->foreach_processor (sigc::mem_fun (*this, &ProcessorBox::add_processor_to_display));
|
||||||
|
|
@ -2447,7 +2447,7 @@ ProcessorBox::get_editor_window (boost::shared_ptr<Processor> processor, bool us
|
||||||
* will be forced back into a model where the fader controls the main gain.
|
* will be forced back into a model where the fader controls the main gain.
|
||||||
* If the processor is a send, then we map the send controls onto the
|
* If the processor is a send, then we map the send controls onto the
|
||||||
* strip.
|
* strip.
|
||||||
*
|
*
|
||||||
* Plugins and others will return a window for control.
|
* Plugins and others will return a window for control.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -3065,7 +3065,7 @@ ProcessorWindowProxy::processor_going_away ()
|
||||||
}
|
}
|
||||||
|
|
||||||
ARDOUR::SessionHandlePtr*
|
ARDOUR::SessionHandlePtr*
|
||||||
ProcessorWindowProxy::session_handle()
|
ProcessorWindowProxy::session_handle()
|
||||||
{
|
{
|
||||||
/* we don't care */
|
/* we don't care */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -75,14 +75,14 @@ namespace ARDOUR {
|
||||||
|
|
||||||
class ProcessorBox;
|
class ProcessorBox;
|
||||||
|
|
||||||
class ProcessorWindowProxy : public WM::ProxyBase
|
class ProcessorWindowProxy : public WM::ProxyBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>);
|
ProcessorWindowProxy (std::string const &, ProcessorBox *, boost::weak_ptr<ARDOUR::Processor>);
|
||||||
~ProcessorWindowProxy();
|
~ProcessorWindowProxy();
|
||||||
|
|
||||||
Gtk::Window* get (bool create = false);
|
Gtk::Window* get (bool create = false);
|
||||||
|
|
||||||
boost::weak_ptr<ARDOUR::Processor> processor () const {
|
boost::weak_ptr<ARDOUR::Processor> processor () const {
|
||||||
return _processor;
|
return _processor;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -467,7 +467,7 @@ public:
|
||||||
MainMenuDisabler () {
|
MainMenuDisabler () {
|
||||||
/* The global menu bar continues to be accessible to applications
|
/* The global menu bar continues to be accessible to applications
|
||||||
with modal dialogs on mac, which means that we need to desensitize
|
with modal dialogs on mac, which means that we need to desensitize
|
||||||
all items in the menu bar.
|
all items in the menu bar.
|
||||||
*/
|
*/
|
||||||
ActionManager::disable_active_actions ();
|
ActionManager::disable_active_actions ();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include <cairo/cairo.h>
|
#include <cairo/cairo.h>
|
||||||
|
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
#include <gtkmm/liststore.h>
|
#include <gtkmm/liststore.h>
|
||||||
#include <gtkmm/stock.h>
|
#include <gtkmm/stock.h>
|
||||||
|
|
@ -1019,7 +1019,7 @@ private:
|
||||||
class ClipLevelOptions : public OptionEditorBox
|
class ClipLevelOptions : public OptionEditorBox
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ClipLevelOptions ()
|
ClipLevelOptions ()
|
||||||
: _clip_level_adjustment (-.5, -50.0, 0.0, 0.1, 1.0) /* units of dB */
|
: _clip_level_adjustment (-.5, -50.0, 0.0, 0.1, 1.0) /* units of dB */
|
||||||
, _clip_level_slider (_clip_level_adjustment)
|
, _clip_level_slider (_clip_level_adjustment)
|
||||||
{
|
{
|
||||||
|
|
@ -1927,7 +1927,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_loop_is_mode),
|
sigc::mem_fun (*_rc_config, &RCConfiguration::get_loop_is_mode),
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_loop_is_mode)
|
sigc::mem_fun (*_rc_config, &RCConfiguration::set_loop_is_mode)
|
||||||
);
|
);
|
||||||
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
||||||
(_("<b>When enabled</b> the loop button does not start playback but forces playback to always play the loop\n\n"
|
(_("<b>When enabled</b> the loop button does not start playback but forces playback to always play the loop\n\n"
|
||||||
"<b>When disabled</b> the loop button starts playing the loop, but stop then cancels loop playback")));
|
"<b>When disabled</b> the loop button starts playing the loop, but stop then cancels loop playback")));
|
||||||
add_option (_("Transport"), tsf);
|
add_option (_("Transport"), tsf);
|
||||||
|
|
@ -1938,7 +1938,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_recording_on_xrun),
|
sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_recording_on_xrun),
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_recording_on_xrun)
|
sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_recording_on_xrun)
|
||||||
);
|
);
|
||||||
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
||||||
string_compose (_("<b>When enabled</b> %1 will stop recording if an over- or underrun is detected by the audio engine"),
|
string_compose (_("<b>When enabled</b> %1 will stop recording if an over- or underrun is detected by the audio engine"),
|
||||||
PROGRAM_NAME));
|
PROGRAM_NAME));
|
||||||
add_option (_("Transport"), tsf);
|
add_option (_("Transport"), tsf);
|
||||||
|
|
@ -1958,7 +1958,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_at_session_end),
|
sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_at_session_end),
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_at_session_end)
|
sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_at_session_end)
|
||||||
);
|
);
|
||||||
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
||||||
string_compose (_("<b>When enabled</b> if %1 is <b>not recording</b>, it will stop the transport "
|
string_compose (_("<b>When enabled</b> if %1 is <b>not recording</b>, it will stop the transport "
|
||||||
"when it reaches the current session end marker\n\n"
|
"when it reaches the current session end marker\n\n"
|
||||||
"<b>When disabled</b> %1 will continue to roll past the session end marker at all times"),
|
"<b>When disabled</b> %1 will continue to roll past the session end marker at all times"),
|
||||||
|
|
@ -1971,7 +1971,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_seamless_loop),
|
sigc::mem_fun (*_rc_config, &RCConfiguration::get_seamless_loop),
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_seamless_loop)
|
sigc::mem_fun (*_rc_config, &RCConfiguration::set_seamless_loop)
|
||||||
);
|
);
|
||||||
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
|
||||||
string_compose (_("<b>When enabled</b> this will loop by reading ahead and wrapping around at the loop point, "
|
string_compose (_("<b>When enabled</b> this will loop by reading ahead and wrapping around at the loop point, "
|
||||||
"preventing any need to do a transport locate at the end of the loop\n\n"
|
"preventing any need to do a transport locate at the end of the loop\n\n"
|
||||||
"<b>When disabled</b> looping is done by locating back to the start of the loop when %1 reaches the end "
|
"<b>When disabled</b> looping is done by locating back to the start of the loop when %1 reaches the end "
|
||||||
|
|
@ -2014,7 +2014,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_sync_frame_rate),
|
sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_sync_frame_rate),
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_sync_frame_rate)
|
sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_sync_frame_rate)
|
||||||
);
|
);
|
||||||
Gtkmm2ext::UI::instance()->set_tip
|
Gtkmm2ext::UI::instance()->set_tip
|
||||||
(_sync_framerate->tip_widget(),
|
(_sync_framerate->tip_widget(),
|
||||||
string_compose (_("This option controls the value of the video frame rate <i>while chasing</i> an external timecode source.\n\n"
|
string_compose (_("This option controls the value of the video frame rate <i>while chasing</i> an external timecode source.\n\n"
|
||||||
"<b>When enabled</b> the session video frame rate will be changed to match that of the selected external timecode source.\n\n"
|
"<b>When enabled</b> the session video frame rate will be changed to match that of the selected external timecode source.\n\n"
|
||||||
|
|
@ -2030,7 +2030,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_is_synced),
|
sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_is_synced),
|
||||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_is_synced)
|
sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_is_synced)
|
||||||
);
|
);
|
||||||
Gtkmm2ext::UI::instance()->set_tip
|
Gtkmm2ext::UI::instance()->set_tip
|
||||||
(_sync_genlock->tip_widget(),
|
(_sync_genlock->tip_widget(),
|
||||||
string_compose (_("<b>When enabled</b> %1 will never varispeed when slaved to external timecode. "
|
string_compose (_("<b>When enabled</b> %1 will never varispeed when slaved to external timecode. "
|
||||||
"Sync Lock indicates that the selected external timecode source shares clock-sync "
|
"Sync Lock indicates that the selected external timecode source shares clock-sync "
|
||||||
|
|
@ -2732,7 +2732,7 @@ RCOptionEditor::RCOptionEditor ()
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
add_option (_("User interaction"),
|
add_option (_("User interaction"),
|
||||||
new BoolOption (
|
new BoolOption (
|
||||||
"enable-translation",
|
"enable-translation",
|
||||||
string_compose (_("Use translations of %1 messages\n"
|
string_compose (_("Use translations of %1 messages\n"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2012 Paul Davis
|
Copyright (C) 2012 Paul Davis
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue