mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
highlight send-panner
This commit is contained in:
parent
472d0ad2c6
commit
1f46e75ac9
9 changed files with 62 additions and 2 deletions
|
|
@ -1900,6 +1900,7 @@ MixerStrip::show_send (boost::shared_ptr<Send> send)
|
|||
panner_ui().set_panner (_current_delivery->panner_shell(), _current_delivery->panner());
|
||||
panner_ui().set_available_panners(PannerManager::instance().PannerManager::get_available_panners(in, out));
|
||||
panner_ui().setup_pan ();
|
||||
panner_ui().set_send_drawing_mode (true);
|
||||
panner_ui().show_all ();
|
||||
|
||||
input_button.set_sensitive (false);
|
||||
|
|
@ -1935,6 +1936,7 @@ MixerStrip::revert_to_default_display ()
|
|||
panner_ui().set_panner (_route->main_outs()->panner_shell(), _route->main_outs()->panner());
|
||||
update_panner_choices();
|
||||
panner_ui().setup_pan ();
|
||||
panner_ui().set_send_drawing_mode (false);
|
||||
|
||||
if (has_audio_outputs ()) {
|
||||
panners.show_all ();
|
||||
|
|
|
|||
|
|
@ -158,6 +158,10 @@ MonoPanner::on_expose_event (GdkEventExpose*)
|
|||
t = 0x606060ff;
|
||||
}
|
||||
|
||||
if (_send_mode) {
|
||||
b = rgba_from_style("SendStripBase",
|
||||
UINT_RGBA_R(b), UINT_RGBA_G(b), UINT_RGBA_B(b), 255, "fg");
|
||||
}
|
||||
/* background */
|
||||
context->set_source_rgba (UINT_RGBA_R_FLT(b), UINT_RGBA_G_FLT(b), UINT_RGBA_B_FLT(b), UINT_RGBA_A_FLT(b));
|
||||
context->rectangle (0, 0, width, height);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ Panner2d::Panner2d (boost::shared_ptr<PannerShell> p, int32_t h)
|
|||
, height (h)
|
||||
, last_width (0)
|
||||
, have_elevation (false)
|
||||
, _send_mode (false)
|
||||
{
|
||||
panner_shell->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&Panner2d::handle_state_change, this), gui_context());
|
||||
|
||||
|
|
@ -378,6 +379,15 @@ Panner2d::find_closest_object (gdouble x, gdouble y, bool& is_signal)
|
|||
return closest;
|
||||
}
|
||||
|
||||
void
|
||||
Panner2d::set_send_drawing_mode (bool onoff)
|
||||
{
|
||||
if (_send_mode != onoff) {
|
||||
_send_mode = onoff;
|
||||
queue_draw ();
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
Panner2d::on_motion_notify_event (GdkEventMotion *ev)
|
||||
{
|
||||
|
|
@ -412,10 +422,16 @@ Panner2d::on_expose_event (GdkEventExpose *event)
|
|||
/* background */
|
||||
|
||||
cairo_rectangle (cr, event->area.x, event->area.y, event->area.width, event->area.height);
|
||||
|
||||
float r, g, b;
|
||||
r = g = b = 0.1;
|
||||
if (_send_mode) {
|
||||
rgba_p_from_style("SendStripBase", &r, &g, &b, "fg");
|
||||
}
|
||||
if (!panner_shell->bypassed()) {
|
||||
cairo_set_source_rgba (cr, 0.1, 0.1, 0.1, 1.0);
|
||||
cairo_set_source_rgba (cr, r, g, b, 1.0);
|
||||
} else {
|
||||
cairo_set_source_rgba (cr, 0.1, 0.1, 0.1, 0.2);
|
||||
cairo_set_source_rgba (cr, r, g, b , 0.2);
|
||||
}
|
||||
cairo_fill_preserve (cr);
|
||||
cairo_clip (cr);
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ class Panner2d : public Gtk::DrawingArea
|
|||
int add_signal (const char* text, const PBD::AngularVector&);
|
||||
void move_signal (int which, const PBD::AngularVector&);
|
||||
void reset (uint32_t n_inputs);
|
||||
void set_send_drawing_mode (bool);
|
||||
|
||||
boost::shared_ptr<ARDOUR::PannerShell> get_panner_shell() const { return panner_shell; }
|
||||
|
||||
|
|
@ -117,6 +118,7 @@ class Panner2d : public Gtk::DrawingArea
|
|||
double last_width;
|
||||
bool did_move;
|
||||
bool have_elevation;
|
||||
bool _send_mode;
|
||||
|
||||
Target *find_closest_object (gdouble x, gdouble y, bool& is_signal);
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ using namespace Gtkmm2ext;
|
|||
PannerInterface::PannerInterface (boost::shared_ptr<Panner> p)
|
||||
: _panner (p)
|
||||
, _tooltip (this)
|
||||
, _send_mode (false)
|
||||
, _editor (0)
|
||||
{
|
||||
set_flags (Gtk::CAN_FOCUS);
|
||||
|
|
@ -109,6 +110,14 @@ PannerInterface::edit ()
|
|||
_editor->show ();
|
||||
}
|
||||
|
||||
void
|
||||
PannerInterface::set_send_drawing_mode(bool onoff) {
|
||||
if (_send_mode != onoff) {
|
||||
_send_mode = onoff;
|
||||
queue_draw ();
|
||||
}
|
||||
}
|
||||
|
||||
PannerPersistentTooltip::PannerPersistentTooltip (Gtk::Widget* w)
|
||||
: PersistentTooltip (w)
|
||||
, _dragging (false)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ public:
|
|||
}
|
||||
|
||||
void edit ();
|
||||
void set_send_drawing_mode (bool);
|
||||
|
||||
protected:
|
||||
virtual void set_tooltip () = 0;
|
||||
|
|
@ -74,6 +75,8 @@ protected:
|
|||
boost::shared_ptr<ARDOUR::Panner> _panner;
|
||||
PannerPersistentTooltip _tooltip;
|
||||
|
||||
bool _send_mode;
|
||||
|
||||
private:
|
||||
virtual PannerEditor* editor () = 0;
|
||||
PannerEditor* _editor;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ PannerUI::PannerUI (Session* s)
|
|||
: _current_nouts (-1)
|
||||
, _current_nins (-1)
|
||||
, _current_uri ("")
|
||||
, _send_mode (false)
|
||||
, pan_automation_style_button ("")
|
||||
, pan_automation_state_button ("")
|
||||
, _panner_list()
|
||||
|
|
@ -251,6 +252,7 @@ PannerUI::setup_pan ()
|
|||
|
||||
_stereo_panner = new StereoPanner (_panshell);
|
||||
_stereo_panner->set_size_request (-1, pan_bar_height);
|
||||
_stereo_panner->set_send_drawing_mode (_send_mode);
|
||||
pan_vbox.pack_start (*_stereo_panner, false, false);
|
||||
|
||||
boost::shared_ptr<AutomationControl> ac;
|
||||
|
|
@ -286,6 +288,7 @@ PannerUI::setup_pan ()
|
|||
_mono_panner->signal_button_release_event().connect (sigc::mem_fun(*this, &PannerUI::pan_button_event));
|
||||
|
||||
_mono_panner->set_size_request (-1, pan_bar_height);
|
||||
_mono_panner->set_send_drawing_mode (_send_mode);
|
||||
|
||||
update_pan_sensitive ();
|
||||
pan_vbox.pack_start (*_mono_panner, false, false);
|
||||
|
|
@ -305,6 +308,7 @@ PannerUI::setup_pan ()
|
|||
big_window->reset (nins);
|
||||
}
|
||||
twod_panner->set_size_request (-1, 61);
|
||||
twod_panner->set_send_drawing_mode (_send_mode);
|
||||
|
||||
/* and finally, add it to the panner frame */
|
||||
|
||||
|
|
@ -323,6 +327,19 @@ PannerUI::setup_pan ()
|
|||
pan_vbox.show_all ();
|
||||
}
|
||||
|
||||
void
|
||||
PannerUI::set_send_drawing_mode (bool onoff)
|
||||
{
|
||||
if (_stereo_panner) {
|
||||
_stereo_panner->set_send_drawing_mode (onoff);
|
||||
} else if (_mono_panner) {
|
||||
_mono_panner->set_send_drawing_mode (onoff);
|
||||
} else if (twod_panner) {
|
||||
twod_panner->set_send_drawing_mode (onoff);
|
||||
}
|
||||
_send_mode = onoff;
|
||||
}
|
||||
|
||||
void
|
||||
PannerUI::start_touch (boost::weak_ptr<AutomationControl> wac)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
|
|||
void set_width (Width);
|
||||
void setup_pan ();
|
||||
void set_available_panners(std::map<std::string,std::string>);
|
||||
void set_send_drawing_mode (bool);
|
||||
|
||||
void effective_pan_display ();
|
||||
|
||||
|
|
@ -97,6 +98,7 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
|
|||
int _current_nouts;
|
||||
int _current_nins;
|
||||
std::string _current_uri;
|
||||
bool _send_mode;
|
||||
|
||||
static const int pan_bar_height;
|
||||
|
||||
|
|
|
|||
|
|
@ -178,6 +178,11 @@ StereoPanner::on_expose_event (GdkEventExpose*)
|
|||
r = 0x606060ff;
|
||||
}
|
||||
|
||||
if (_send_mode) {
|
||||
b = rgba_from_style("SendStripBase",
|
||||
UINT_RGBA_R(b), UINT_RGBA_G(b), UINT_RGBA_B(b), 255,
|
||||
"fg");
|
||||
}
|
||||
/* background */
|
||||
|
||||
context->set_source_rgba (UINT_RGBA_R_FLT(b), UINT_RGBA_G_FLT(b), UINT_RGBA_B_FLT(b), UINT_RGBA_A_FLT(b));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue