mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
Revert "MixerScenes: implement 'undo' function for mixer scene recalls (libardour)"
This reverts commita40c8d8e9a. This reverts commit01c7e14c6e. This reverts commit162a8c00b3.
This commit is contained in:
parent
162a8c00b3
commit
235d51a723
4 changed files with 12 additions and 46 deletions
|
|
@ -125,6 +125,7 @@ Mixer_UI::instance ()
|
||||||
Mixer_UI::Mixer_UI ()
|
Mixer_UI::Mixer_UI ()
|
||||||
: Tabbable (_content, _("Mixer"), X_("mixer"))
|
: Tabbable (_content, _("Mixer"), X_("mixer"))
|
||||||
, plugin_search_clear_button (Stock::CLEAR)
|
, plugin_search_clear_button (Stock::CLEAR)
|
||||||
|
, _mixer_scene_release (0)
|
||||||
, no_track_list_redisplay (false)
|
, no_track_list_redisplay (false)
|
||||||
, in_group_row_change (false)
|
, in_group_row_change (false)
|
||||||
, track_menu (0)
|
, track_menu (0)
|
||||||
|
|
@ -446,6 +447,7 @@ Mixer_UI::~Mixer_UI ()
|
||||||
delete _plugin_selector;
|
delete _plugin_selector;
|
||||||
delete track_menu;
|
delete track_menu;
|
||||||
delete _group_tabs;
|
delete _group_tabs;
|
||||||
|
delete _mixer_scene_release;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MixerStripSorter {
|
struct MixerStripSorter {
|
||||||
|
|
@ -4113,16 +4115,16 @@ Mixer_UI::scene_button_press (GdkEventButton* ev, int idx)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_mixer_scene_momentary = false;
|
|
||||||
|
|
||||||
if (Keyboard::is_context_menu_event (ev)) {
|
if (Keyboard::is_context_menu_event (ev)) {
|
||||||
popup_scene_menu (ev, idx);
|
popup_scene_menu (ev, idx);
|
||||||
} else if (Keyboard::is_delete_event (ev)) {
|
} else if (Keyboard::is_delete_event (ev)) {
|
||||||
clear_mixer_scene (idx, true);
|
clear_mixer_scene (idx, true);
|
||||||
} else if (Keyboard::is_momentary_push_event (ev)) {
|
} else if (Keyboard::is_momentary_push_event (ev)) {
|
||||||
/* momentary */
|
/* momentary */
|
||||||
_mixer_scene_momentary = true;
|
delete _mixer_scene_release; // .. or keep existing?
|
||||||
recall_mixer_scene(idx, false);
|
_mixer_scene_release = new MixerScene (*_session);
|
||||||
|
_mixer_scene_release->snapshot (); // TODO; prevent changed signal
|
||||||
|
recall_mixer_scene (idx, false);
|
||||||
return false;
|
return false;
|
||||||
} else if (ev->button == 1) {
|
} else if (ev->button == 1) {
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -4134,12 +4136,10 @@ Mixer_UI::scene_button_press (GdkEventButton* ev, int idx)
|
||||||
bool
|
bool
|
||||||
Mixer_UI::scene_button_release (GdkEventButton* ev, int idx)
|
Mixer_UI::scene_button_release (GdkEventButton* ev, int idx)
|
||||||
{
|
{
|
||||||
if (!_session) {
|
if (_mixer_scene_release) {
|
||||||
return false;
|
_mixer_scene_release->apply ();
|
||||||
}
|
delete _mixer_scene_release;
|
||||||
if (_mixer_scene_momentary) {
|
_mixer_scene_release = 0;
|
||||||
_session->apply_mixer_scene_undo();
|
|
||||||
_mixer_scene_momentary = false;
|
|
||||||
} else if (ev->button == 1) {
|
} else if (ev->button == 1) {
|
||||||
recall_mixer_scene (idx);
|
recall_mixer_scene (idx);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -215,7 +215,7 @@ private:
|
||||||
|
|
||||||
std::vector<ArdourWidgets::ArdourButton*> _mixer_scene_buttons;
|
std::vector<ArdourWidgets::ArdourButton*> _mixer_scene_buttons;
|
||||||
std::vector<Gtk::Label*> _mixer_scene_labels;
|
std::vector<Gtk::Label*> _mixer_scene_labels;
|
||||||
bool _mixer_scene_momentary;
|
ARDOUR::MixerScene* _mixer_scene_release;
|
||||||
|
|
||||||
void popup_scene_menu (GdkEventButton* ev, int);
|
void popup_scene_menu (GdkEventButton* ev, int);
|
||||||
bool scene_button_press (GdkEventButton*, int);
|
bool scene_button_press (GdkEventButton*, int);
|
||||||
|
|
|
||||||
|
|
@ -1219,7 +1219,6 @@ public:
|
||||||
void store_nth_mixer_scene (size_t);
|
void store_nth_mixer_scene (size_t);
|
||||||
bool nth_mixer_scene_valid (size_t) const;
|
bool nth_mixer_scene_valid (size_t) const;
|
||||||
size_t last_touched_mixer_scene_idx () {return _last_touched_mixer_scene_idx;}
|
size_t last_touched_mixer_scene_idx () {return _last_touched_mixer_scene_idx;}
|
||||||
void apply_mixer_scene_undo ();
|
|
||||||
|
|
||||||
boost::shared_ptr<MixerScene> nth_mixer_scene (size_t, bool create_if_missing = false);
|
boost::shared_ptr<MixerScene> nth_mixer_scene (size_t, bool create_if_missing = false);
|
||||||
std::vector<boost::shared_ptr<MixerScene>> mixer_scenes () const;
|
std::vector<boost::shared_ptr<MixerScene>> mixer_scenes () const;
|
||||||
|
|
@ -1439,11 +1438,7 @@ private:
|
||||||
bool _session_range_is_free;
|
bool _session_range_is_free;
|
||||||
bool _silent;
|
bool _silent;
|
||||||
samplecnt_t _remaining_latency_preroll;
|
samplecnt_t _remaining_latency_preroll;
|
||||||
|
size_t _last_touched_mixer_scene_idx;
|
||||||
void stash_mixer_scene_undo ();
|
|
||||||
ARDOUR::MixerScene* _mixer_scene_undo;
|
|
||||||
size_t _mixer_scene_undo_idx;
|
|
||||||
size_t _last_touched_mixer_scene_idx;
|
|
||||||
|
|
||||||
// varispeed playback -- TODO: move out of session to backend.
|
// varispeed playback -- TODO: move out of session to backend.
|
||||||
double _engine_speed;
|
double _engine_speed;
|
||||||
|
|
|
||||||
|
|
@ -198,8 +198,6 @@ Session::Session (AudioEngine &eng,
|
||||||
, _session_range_is_free (true)
|
, _session_range_is_free (true)
|
||||||
, _silent (false)
|
, _silent (false)
|
||||||
, _remaining_latency_preroll (0)
|
, _remaining_latency_preroll (0)
|
||||||
, _mixer_scene_undo_idx (0)
|
|
||||||
, _mixer_scene_undo (0)
|
|
||||||
, _last_touched_mixer_scene_idx (std::numeric_limits<size_t>::max())
|
, _last_touched_mixer_scene_idx (std::numeric_limits<size_t>::max())
|
||||||
, _engine_speed (1.0)
|
, _engine_speed (1.0)
|
||||||
, _signalled_varispeed (0)
|
, _signalled_varispeed (0)
|
||||||
|
|
@ -818,8 +816,6 @@ Session::destroy ()
|
||||||
|
|
||||||
delete midi_clock;
|
delete midi_clock;
|
||||||
|
|
||||||
delete _mixer_scene_undo;
|
|
||||||
|
|
||||||
/* clear event queue, the session is gone, nobody is interested in
|
/* clear event queue, the session is gone, nobody is interested in
|
||||||
* those anymore, but they do leak memory if not removed
|
* those anymore, but they do leak memory if not removed
|
||||||
*/
|
*/
|
||||||
|
|
@ -7527,32 +7523,9 @@ Session::nth_mixer_scene_valid (size_t nth) const
|
||||||
return !_mixer_scenes[nth]->empty ();
|
return !_mixer_scenes[nth]->empty ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
Session::stash_mixer_scene_undo ()
|
|
||||||
{
|
|
||||||
delete _mixer_scene_undo; // .. or keep existing?
|
|
||||||
_mixer_scene_undo = new MixerScene (*this);
|
|
||||||
_mixer_scene_undo->snapshot ();
|
|
||||||
_mixer_scene_undo_idx = _last_touched_mixer_scene_idx;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
Session::apply_mixer_scene_undo ()
|
|
||||||
{
|
|
||||||
if (_mixer_scene_undo) {
|
|
||||||
_mixer_scene_undo->apply ();
|
|
||||||
delete _mixer_scene_undo;
|
|
||||||
_mixer_scene_undo = 0;
|
|
||||||
_last_touched_mixer_scene_idx = _mixer_scene_undo_idx;
|
|
||||||
}
|
|
||||||
MixerScene::Change();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Session::apply_nth_mixer_scene (size_t nth)
|
Session::apply_nth_mixer_scene (size_t nth)
|
||||||
{
|
{
|
||||||
stash_mixer_scene_undo();
|
|
||||||
|
|
||||||
boost::shared_ptr<MixerScene> scene;
|
boost::shared_ptr<MixerScene> scene;
|
||||||
{
|
{
|
||||||
Glib::Threads::RWLock::ReaderLock lm (_mixer_scenes_lock);
|
Glib::Threads::RWLock::ReaderLock lm (_mixer_scenes_lock);
|
||||||
|
|
@ -7573,8 +7546,6 @@ Session::apply_nth_mixer_scene (size_t nth)
|
||||||
bool
|
bool
|
||||||
Session::apply_nth_mixer_scene (size_t nth, RouteList const& rl)
|
Session::apply_nth_mixer_scene (size_t nth, RouteList const& rl)
|
||||||
{
|
{
|
||||||
stash_mixer_scene_undo();
|
|
||||||
|
|
||||||
boost::shared_ptr<MixerScene> scene;
|
boost::shared_ptr<MixerScene> scene;
|
||||||
{
|
{
|
||||||
Glib::Threads::RWLock::ReaderLock lm (_mixer_scenes_lock);
|
Glib::Threads::RWLock::ReaderLock lm (_mixer_scenes_lock);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue