more code rearrangement ... old gcc/mingw does not allow Enum::Value

This commit is contained in:
Paul Davis 2020-04-07 18:32:45 -06:00
parent 595be0e5e9
commit 3f30a0ad39
7 changed files with 82 additions and 119 deletions

View File

@ -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>());
}
}

View File

@ -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 ();

View File

@ -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

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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__ */

View File

@ -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__ */