diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-04-07 18:32:45 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-04-07 18:32:45 -0600 |
commit | 3f30a0ad39bd5e64df9ca01ffd4cd5a5f6b33356 (patch) | |
tree | dfa1779dc7babeae67a1bc2dda19749777697003 | |
parent | 595be0e5e91a25d875c1cbba3d6e5c2cda9f3c6a (diff) |
more code rearrangement ... old gcc/mingw does not allow Enum::Value
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 14 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.h | 2 | ||||
-rw-r--r-- | libs/surfaces/mackie/mcp_buttons.cc | 22 | ||||
-rw-r--r-- | libs/surfaces/mackie/strip.cc | 30 | ||||
-rw-r--r-- | libs/surfaces/mackie/subview.cc | 28 | ||||
-rw-r--r-- | libs/surfaces/mackie/subview.h | 66 | ||||
-rw-r--r-- | libs/surfaces/mackie/subview_modes.h | 39 |
7 files changed, 82 insertions, 119 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 4e71100e5b..1d90b66c73 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -141,7 +141,7 @@ MackieControlProtocol::MackieControlProtocol (Session& session) { DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::MackieControlProtocol\n"); - _subview = Mackie::SubviewFactory::instance()->create_subview(SubViewMode::None, *this, boost::shared_ptr<Stripable>()); + _subview = Mackie::SubviewFactory::instance()->create_subview(Subview::None, *this, boost::shared_ptr<Stripable>()); DeviceInfo::reload_device_info (); DeviceProfile::reload_device_profiles (); @@ -661,7 +661,7 @@ MackieControlProtocol::device_ready () { DEBUG_TRACE (DEBUG::MackieControl, string_compose ("device ready init (active=%1)\n", active())); update_surfaces (); - set_subview_mode (Mackie::SubViewMode::None, boost::shared_ptr<Stripable>()); + set_subview_mode (Mackie::Subview::None, boost::shared_ptr<Stripable>()); set_flip_mode (Normal); } @@ -1723,7 +1723,7 @@ MackieControlProtocol::redisplay_subview_mode () } bool -MackieControlProtocol::set_subview_mode (SubViewMode sm, boost::shared_ptr<Stripable> r) +MackieControlProtocol::set_subview_mode (Subview::Mode sm, boost::shared_ptr<Stripable> r) { DEBUG_TRACE (DEBUG::MackieControl, string_compose ("set subview mode %1 with stripable %2, current flip mode %3\n", sm, (r ? r->name() : string ("null")), _flip_mode)); @@ -1743,7 +1743,7 @@ MackieControlProtocol::set_subview_mode (SubViewMode sm, boost::shared_ptr<Strip if (!surfaces.empty()) { if (!reason_why_subview_not_possible.empty()) { surfaces.front()->display_message_for (reason_why_subview_not_possible, 1000); - if (_subview->subview_mode() != Mackie::SubViewMode::None) { + if (_subview->subview_mode() != Mackie::Subview::None) { /* redisplay current subview mode after that message goes away. */ @@ -1790,7 +1790,7 @@ MackieControlProtocol::set_view_mode (ViewMode m) /* leave subview mode, whatever it was */ DEBUG_TRACE (DEBUG::MackieControl, "\t\t\tsubview mode reset in MackieControlProtocol::set_view_mode \n"); - set_subview_mode (Mackie::SubViewMode::None, boost::shared_ptr<Stripable>()); + set_subview_mode (Mackie::Subview::None, boost::shared_ptr<Stripable>()); display_view_mode (); } @@ -2346,12 +2346,12 @@ MackieControlProtocol::stripable_selection_changed () */ if (!set_subview_mode (_subview->subview_mode(), s)) { - set_subview_mode (Mackie::SubViewMode::None, boost::shared_ptr<Stripable>()); + set_subview_mode (Mackie::Subview::None, boost::shared_ptr<Stripable>()); } } else { // none selected or not on surface - set_subview_mode(Mackie::SubViewMode::None, boost::shared_ptr<Stripable>()); + set_subview_mode(Mackie::Subview::None, boost::shared_ptr<Stripable>()); } } diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 4a23e770a0..aceea338fb 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -142,7 +142,7 @@ class MackieControlProtocol void set_automation_state (ARDOUR::AutoState); void set_view_mode (ViewMode); - bool set_subview_mode (Mackie::SubViewMode, boost::shared_ptr<ARDOUR::Stripable>); + bool set_subview_mode (Mackie::Subview::Mode, boost::shared_ptr<ARDOUR::Stripable>); bool redisplay_subview_mode (); void set_flip_mode (FlipMode); void display_view_mode (); diff --git a/libs/surfaces/mackie/mcp_buttons.cc b/libs/surfaces/mackie/mcp_buttons.cc index b5244b9df3..aea864cd0a 100644 --- a/libs/surfaces/mackie/mcp_buttons.cc +++ b/libs/surfaces/mackie/mcp_buttons.cc @@ -102,7 +102,7 @@ MackieControlProtocol::cmd_alt_release (Button &) LedState MackieControlProtocol::left_press (Button &) { - if (_subview->subview_mode() != Mackie::SubViewMode::None) { + if (_subview->subview_mode() != Mackie::Subview::None) { return none; } @@ -130,7 +130,7 @@ MackieControlProtocol::left_release (Button &) LedState MackieControlProtocol::right_press (Button &) { - if (_subview->subview_mode() != Mackie::SubViewMode::None) { + if (_subview->subview_mode() != Mackie::Subview::None) { return none; } @@ -288,7 +288,7 @@ MackieControlProtocol::channel_left_press (Button &) return on; } - if (_subview->subview_mode() != Mackie::SubViewMode::None) { + if (_subview->subview_mode() != Mackie::Subview::None) { return none; } Sorted sorted = get_sorted_stripables(); @@ -314,7 +314,7 @@ MackieControlProtocol::channel_right_press (Button &) return on; } - if (_subview->subview_mode() != Mackie::SubViewMode::None) { + if (_subview->subview_mode() != Mackie::Subview::None) { return none; } Sorted sorted = get_sorted_stripables(); @@ -628,7 +628,7 @@ MackieControlProtocol::enter_release (Button &) LedState MackieControlProtocol::bank_release (Button& b, uint32_t basic_bank_num) { - if (_subview->subview_mode() != Mackie::SubViewMode::None) { + if (_subview->subview_mode() != Mackie::Subview::None) { return none; } @@ -733,7 +733,7 @@ LedState MackieControlProtocol::pan_press (Button &) { /* XXX eventually pan may have its own subview mode */ - set_subview_mode (Mackie::SubViewMode::None, boost::shared_ptr<Stripable>()); + set_subview_mode (Mackie::Subview::None, boost::shared_ptr<Stripable>()); return none; } LedState @@ -744,7 +744,7 @@ MackieControlProtocol::pan_release (Button &) LedState MackieControlProtocol::plugin_press (Button &) { - set_subview_mode (SubViewMode::Plugin, first_selected_stripable()); + set_subview_mode (Subview::Plugin, first_selected_stripable()); return none; } LedState @@ -757,7 +757,7 @@ MackieControlProtocol::plugin_release (Button &) LedState MackieControlProtocol::eq_press (Button &) { - set_subview_mode (EQ, first_selected_stripable ()); + set_subview_mode (Subview::EQ, first_selected_stripable ()); return none; /* led state handled by set_subview_mode() */ } @@ -769,7 +769,7 @@ MackieControlProtocol::eq_release (Button &) LedState MackieControlProtocol::dyn_press (Button &) { - set_subview_mode (Dynamics, first_selected_stripable ()); + set_subview_mode (Subview::Dynamics, first_selected_stripable ()); return none; /* led state handled by set_subview_mode() */ } @@ -932,7 +932,7 @@ MackieControlProtocol::clearsolo_release (Mackie::Button&) Mackie::LedState MackieControlProtocol::track_press (Mackie::Button&) { - set_subview_mode (TrackView, first_selected_stripable()); + set_subview_mode (Subview::TrackView, first_selected_stripable()); return none; } Mackie::LedState @@ -943,7 +943,7 @@ MackieControlProtocol::track_release (Mackie::Button&) Mackie::LedState MackieControlProtocol::send_press (Mackie::Button&) { - set_subview_mode (Sends, first_selected_stripable()); + set_subview_mode (Subview::Sends, first_selected_stripable()); return none; /* led state handled by set_subview_mode() */ } Mackie::LedState diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index d126ebe22a..e8efc3a662 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -255,7 +255,7 @@ Strip::set_stripable (boost::shared_ptr<Stripable> r, bool /*with_messages*/) _pan_mode = PanAzimuthAutomation; - if (_surface->mcp().subview()->subview_mode() == SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() == Subview::None) { set_vpot_parameter (_pan_mode); } @@ -394,9 +394,9 @@ Strip::update_selection_state () void Strip::show_stripable_name () { - SubViewMode svm = _surface->mcp().subview()->subview_mode(); + Subview::Mode svm = _surface->mcp().subview()->subview_mode(); - if (svm != SubViewMode::None) { + if (svm != Subview::None) { /* subview mode is responsible for upper line */ return; } @@ -512,7 +512,7 @@ Strip::select_event (Button&, ButtonState bs) void Strip::vselect_event (Button&, ButtonState bs) { - if (_surface->mcp().subview()->subview_mode() != SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() != Subview::None) { /* most subview modes: vpot press acts like a button for toggle parameters */ if (bs != press) { return; @@ -899,7 +899,7 @@ Strip::update_meter () return; } - if (_surface->mcp().subview()->subview_mode() != SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() != Subview::None) { return; } @@ -987,7 +987,7 @@ Strip::unlock_controls () string Strip::vpot_mode_string () { - if (_surface->mcp().subview()->subview_mode() != SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() != Subview::None) { return string(); } @@ -1075,7 +1075,7 @@ Strip::return_to_vpot_mode_display () back the mode where it shows what the VPot controls. */ - if (_surface->mcp().subview()->subview_mode() != SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() != Subview::None) { /* do nothing - second line shows value of current subview parameter */ return; } else if (_stripable) { @@ -1106,7 +1106,7 @@ Strip::next_pot_mode () } - if (_surface->mcp().subview()->subview_mode() != SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() != Subview::None) { return; } @@ -1139,7 +1139,7 @@ void Strip::subview_mode_changed () { switch (_surface->mcp().subview()->subview_mode()) { - case SubViewMode::None: + case Subview::None: set_vpot_parameter (_pan_mode); /* need to show strip name again */ show_stripable_name (); @@ -1150,11 +1150,11 @@ Strip::subview_mode_changed () notify_metering_state_changed (); break; - case SubViewMode::EQ: - case SubViewMode::Dynamics: - case SubViewMode::Sends: - case SubViewMode::TrackView: - case SubViewMode::Plugin: + case Subview::EQ: + case Subview::Dynamics: + case Subview::Sends: + case Subview::TrackView: + case Subview::Plugin: _surface->mcp().subview()->setup_vpot(this, _vpot, pending_display); break; } @@ -1219,7 +1219,7 @@ Strip::reset_saved_values () void Strip::notify_metering_state_changed() { - if (_surface->mcp().subview()->subview_mode() != SubViewMode::None) { + if (_surface->mcp().subview()->subview_mode() != Subview::None) { return; } diff --git a/libs/surfaces/mackie/subview.cc b/libs/surfaces/mackie/subview.cc index 65ec570862..7f5dd7ca67 100644 --- a/libs/surfaces/mackie/subview.cc +++ b/libs/surfaces/mackie/subview.cc @@ -61,22 +61,22 @@ SubviewFactory* SubviewFactory::instance() { SubviewFactory::SubviewFactory() {}; boost::shared_ptr<Subview> SubviewFactory::create_subview( - SubViewMode svm, + Subview::Mode svm, MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable) { switch (svm) { - case SubViewMode::EQ: + case Subview::EQ: return boost::make_shared<EQSubview>(mcp, subview_stripable); - case SubViewMode::Dynamics: + case Subview::Dynamics: return boost::make_shared<DynamicsSubview>(mcp, subview_stripable); - case SubViewMode::Sends: + case Subview::Sends: return boost::make_shared<SendsSubview>(mcp, subview_stripable); - case SubViewMode::TrackView: + case Subview::TrackView: return boost::make_shared<TrackViewSubview>(mcp, subview_stripable); - case SubViewMode::Plugin: + case Subview::Plugin: return boost::make_shared<PluginSubview>(mcp, subview_stripable); - case SubViewMode::None: + case Subview::None: default: return boost::make_shared<NoneSubview>(mcp, subview_stripable); } @@ -152,20 +152,20 @@ void Subview::handle_vselect_event(uint32_t global_strip_position) } bool -Subview::subview_mode_would_be_ok (SubViewMode mode, boost::shared_ptr<Stripable> r, std::string& reason_why_not) +Subview::subview_mode_would_be_ok (Subview::Mode mode, boost::shared_ptr<Stripable> r, std::string& reason_why_not) { switch (mode) { - case SubViewMode::None: + case Subview::None: return NoneSubview::subview_mode_would_be_ok(r, reason_why_not); - case SubViewMode::Sends: + case Subview::Sends: return SendsSubview::subview_mode_would_be_ok(r, reason_why_not); - case SubViewMode::EQ: + case Subview::EQ: return EQSubview::subview_mode_would_be_ok(r, reason_why_not); - case SubViewMode::Dynamics: + case Subview::Dynamics: return DynamicsSubview::subview_mode_would_be_ok(r, reason_why_not); - case SubViewMode::TrackView: + case Subview::TrackView: return TrackViewSubview::subview_mode_would_be_ok(r, reason_why_not); - case SubViewMode::Plugin: + case Subview::Plugin: return PluginSubview::subview_mode_would_be_ok(r, reason_why_not); } diff --git a/libs/surfaces/mackie/subview.h b/libs/surfaces/mackie/subview.h index 9c214726e8..eb744fad86 100644 --- a/libs/surfaces/mackie/subview.h +++ b/libs/surfaces/mackie/subview.h @@ -40,38 +40,28 @@ class Pot; class Strip; class Subview; class Surface; - -enum SubViewMode { - None, - EQ, - Dynamics, - Sends, - TrackView, - Plugin, -}; - -class SubviewFactory { - public: - static SubviewFactory* instance(); - - boost::shared_ptr<Subview> create_subview(SubViewMode svm, - MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); - protected: - SubviewFactory(); - private: - static SubviewFactory* _instance; -}; - +class SubviewFactory; /** This implements the subviews of the Mackie control in a Strategy pattern */ class Subview { public: + + enum Mode { + None, + EQ, + Dynamics, + Sends, + TrackView, + Plugin, + }; + + Subview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~Subview(); - virtual SubViewMode subview_mode () const = 0; + virtual Mode subview_mode () const = 0; virtual void update_global_buttons() = 0; virtual bool permit_flipping_faders_and_pots() { return false; } virtual void setup_vpot( @@ -84,7 +74,7 @@ class Subview { // returns true if press was handled in the subview, default is false virtual bool handle_cursor_left_press() { return false; } - static bool subview_mode_would_be_ok (SubViewMode, boost::shared_ptr<ARDOUR::Stripable>, std::string& reason_why_not); + static bool subview_mode_would_be_ok (Subview::Mode, boost::shared_ptr<ARDOUR::Stripable>, std::string& reason_why_not); boost::shared_ptr<ARDOUR::Stripable> subview_stripable() const { return _subview_stripable; } void notify_subview_stripable_deleted (); @@ -117,7 +107,7 @@ class NoneSubview : public Subview { NoneSubview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~NoneSubview(); - virtual SubViewMode subview_mode () const { return SubViewMode::None; } + virtual Mode subview_mode () const { return Subview::None; } static bool subview_mode_would_be_ok (boost::shared_ptr<ARDOUR::Stripable> r, std::string& reason_why_not); virtual void update_global_buttons(); @@ -132,7 +122,7 @@ class EQSubview : public Subview { EQSubview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~EQSubview(); - virtual SubViewMode subview_mode () const { return SubViewMode::EQ; } + virtual Mode subview_mode () const { return Subview::EQ; } static bool subview_mode_would_be_ok (boost::shared_ptr<ARDOUR::Stripable> r, std::string& reason_why_not); virtual void update_global_buttons(); virtual void setup_vpot( @@ -147,7 +137,7 @@ class DynamicsSubview : public Subview { DynamicsSubview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~DynamicsSubview(); - virtual SubViewMode subview_mode () const { return SubViewMode::Dynamics; } + virtual Subview::Mode subview_mode () const { return Subview::Dynamics; } static bool subview_mode_would_be_ok (boost::shared_ptr<ARDOUR::Stripable> r, std::string& reason_why_not); virtual void update_global_buttons(); virtual void setup_vpot( @@ -162,7 +152,7 @@ class SendsSubview : public Subview { SendsSubview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~SendsSubview(); - virtual SubViewMode subview_mode () const { return SubViewMode::Sends; } + virtual Subview::Mode subview_mode () const { return Subview::Sends; } static bool subview_mode_would_be_ok (boost::shared_ptr<ARDOUR::Stripable> r, std::string& reason_why_not); virtual void update_global_buttons(); virtual bool permit_flipping_faders_and_pots() { return true; } @@ -180,7 +170,7 @@ class TrackViewSubview : public Subview { TrackViewSubview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~TrackViewSubview(); - virtual SubViewMode subview_mode () const { return SubViewMode::TrackView; } + virtual Subview::Mode subview_mode () const { return Subview::TrackView; } static bool subview_mode_would_be_ok (boost::shared_ptr<ARDOUR::Stripable> r, std::string& reason_why_not); virtual void update_global_buttons(); virtual void setup_vpot( @@ -197,7 +187,7 @@ class PluginSubview : public Subview { PluginSubview(MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); virtual ~PluginSubview(); - virtual SubViewMode subview_mode () const { return SubViewMode::Plugin; } + virtual Subview::Mode subview_mode () const { return Subview::Plugin; } static bool subview_mode_would_be_ok (boost::shared_ptr<ARDOUR::Stripable> r, std::string& reason_why_not); virtual void update_global_buttons(); virtual bool permit_flipping_faders_and_pots(); @@ -286,7 +276,19 @@ class PluginEdit : public PluginSubviewState { std::vector<uint32_t> _plugin_input_parameter_indices; }; -} -} +class SubviewFactory { + public: + static SubviewFactory* instance(); + + boost::shared_ptr<Subview> create_subview(Subview::Mode svm, + MackieControlProtocol& mcp, boost::shared_ptr<ARDOUR::Stripable> subview_stripable); + protected: + SubviewFactory(); + private: + static SubviewFactory* _instance; +}; + +} /* namespace Mackie */ +} /* namespace ArdourSurface */ #endif /* __ardour_mackie_control_protocol_subview_h__ */ diff --git a/libs/surfaces/mackie/subview_modes.h b/libs/surfaces/mackie/subview_modes.h deleted file mode 100644 index f2b34da52a..0000000000 --- a/libs/surfaces/mackie/subview_modes.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2006-2007 John Anderson - * Copyright (C) 2012-2015 Paul Davis <paul@linuxaudiosystems.com> - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef __ardour_mackie_control_protocol_subview_modes_h__ -#define __ardour_mackie_control_protocol_subview_modes_h__ - -namespace ArdourSurface { - -namespace Mackie { - -enum SubViewMode { - None, - EQ, - Dynamics, - Sends, - TrackView, - Plugin, -}; - -} -} - -#endif /* __ardour_mackie_control_protocol_subview_modes_h__ */ |