mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 15:54:57 +01:00
TriggerBox: copy over a subset of user-settings into a dropped slot using a static variable (@robin)
This commit is contained in:
parent
8c144d6e69
commit
7a3624af6f
2 changed files with 19 additions and 0 deletions
|
|
@ -643,6 +643,8 @@ class LIBARDOUR_API TriggerBox : public Processor
|
||||||
void request_reload (int32_t slot, void*);
|
void request_reload (int32_t slot, void*);
|
||||||
void set_region (uint32_t slot, boost::shared_ptr<Region> region);
|
void set_region (uint32_t slot, boost::shared_ptr<Region> region);
|
||||||
|
|
||||||
|
void enqueue_trigger_source (PBD::ID queued);
|
||||||
|
|
||||||
/* valid only within the ::run() call tree */
|
/* valid only within the ::run() call tree */
|
||||||
int32_t active_scene() const { return _active_scene; }
|
int32_t active_scene() const { return _active_scene; }
|
||||||
|
|
||||||
|
|
@ -758,6 +760,8 @@ class LIBARDOUR_API TriggerBox : public Processor
|
||||||
|
|
||||||
static std::atomic<int> active_trigger_boxes;
|
static std::atomic<int> active_trigger_boxes;
|
||||||
static std::atomic<bool> _cue_recording;
|
static std::atomic<bool> _cue_recording;
|
||||||
|
|
||||||
|
static std::string _enqueued_drop_source;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TriggerReference
|
class TriggerReference
|
||||||
|
|
|
||||||
|
|
@ -2136,6 +2136,7 @@ TriggerBoxThread* TriggerBox::worker = 0;
|
||||||
CueRecords TriggerBox::cue_records (256);
|
CueRecords TriggerBox::cue_records (256);
|
||||||
std::atomic<bool> TriggerBox::_cue_recording (false);
|
std::atomic<bool> TriggerBox::_cue_recording (false);
|
||||||
PBD::Signal0<void> TriggerBox::CueRecordingChanged;
|
PBD::Signal0<void> TriggerBox::CueRecordingChanged;
|
||||||
|
std::string TriggerBox::_enqueued_drop_source("0");
|
||||||
|
|
||||||
void
|
void
|
||||||
TriggerBox::init ()
|
TriggerBox::init ()
|
||||||
|
|
@ -2206,6 +2207,15 @@ TriggerBox::set_region (uint32_t slot, boost::shared_ptr<Region> region)
|
||||||
|
|
||||||
t->set_region_in_worker_thread (region);
|
t->set_region_in_worker_thread (region);
|
||||||
|
|
||||||
|
/* if we are the target of a drag&drop from another Trigger Slot, we probably want the name, color and other properties to carry over */
|
||||||
|
boost::shared_ptr<Trigger> source = session().trigger_by_id (PBD::ID(_enqueued_drop_source));
|
||||||
|
if (source) {
|
||||||
|
t->set_name(source->name());
|
||||||
|
t->set_color(source->color());
|
||||||
|
t->set_gain(source->gain());
|
||||||
|
_enqueued_drop_source = "0";
|
||||||
|
}
|
||||||
|
|
||||||
//* always preserve the launch-style and cue_isolate status. It's likely to be right, but if it's wrong the user can "see" it's wrong anyway */
|
//* always preserve the launch-style and cue_isolate status. It's likely to be right, but if it's wrong the user can "see" it's wrong anyway */
|
||||||
t->set_launch_style(all_triggers[slot]->launch_style());
|
t->set_launch_style(all_triggers[slot]->launch_style());
|
||||||
t->set_cue_isolated(all_triggers[slot]->cue_isolated());
|
t->set_cue_isolated(all_triggers[slot]->cue_isolated());
|
||||||
|
|
@ -2302,6 +2312,11 @@ TriggerBox::trigger_by_id (PBD::ID check)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
TriggerBox::enqueue_trigger_source (PBD::ID queued)
|
||||||
|
{
|
||||||
|
_enqueued_drop_source = queued.to_s ();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TriggerBox::set_from_selection (uint32_t slot, boost::shared_ptr<Region> region)
|
TriggerBox::set_from_selection (uint32_t slot, boost::shared_ptr<Region> region)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue