Add an option in the MCP .device file to set master position (fixes #6357)
This commit is contained in:
parent
71feea97a0
commit
71ae8d2abe
@ -46,6 +46,7 @@ std::map<std::string,DeviceInfo> DeviceInfo::device_info;
|
|||||||
DeviceInfo::DeviceInfo()
|
DeviceInfo::DeviceInfo()
|
||||||
: _strip_cnt (8)
|
: _strip_cnt (8)
|
||||||
, _extenders (0)
|
, _extenders (0)
|
||||||
|
, _master_position (0)
|
||||||
, _has_two_character_display (true)
|
, _has_two_character_display (true)
|
||||||
, _has_master_fader (true)
|
, _has_master_fader (true)
|
||||||
, _has_timecode_display (true)
|
, _has_timecode_display (true)
|
||||||
@ -241,6 +242,14 @@ DeviceInfo::set_state (const XMLNode& node, int /* version */)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((child = node.child ("MasterPosition")) != 0) {
|
||||||
|
if ((prop = child->property ("value")) != 0) {
|
||||||
|
if ((_master_position = atoi (prop->value().c_str())) == 0) {
|
||||||
|
_master_position = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((child = node.child ("TwoCharacterDisplay")) != 0) {
|
if ((child = node.child ("TwoCharacterDisplay")) != 0) {
|
||||||
if ((prop = child->property ("value")) != 0) {
|
if ((prop = child->property ("value")) != 0) {
|
||||||
_has_two_character_display = string_is_affirmative (prop->value());
|
_has_two_character_display = string_is_affirmative (prop->value());
|
||||||
@ -387,6 +396,12 @@ DeviceInfo::extenders() const
|
|||||||
return _extenders;
|
return _extenders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
DeviceInfo::master_position() const
|
||||||
|
{
|
||||||
|
return _master_position;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
DeviceInfo::has_master_fader() const
|
DeviceInfo::has_master_fader() const
|
||||||
{
|
{
|
||||||
@ -510,6 +525,7 @@ std::ostream& operator<< (std::ostream& os, const Mackie::DeviceInfo& di)
|
|||||||
os << di.name() << ' '
|
os << di.name() << ' '
|
||||||
<< di.strip_cnt() << ' '
|
<< di.strip_cnt() << ' '
|
||||||
<< di.extenders() << ' '
|
<< di.extenders() << ' '
|
||||||
|
<< di.master_position() << ' '
|
||||||
;
|
;
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,7 @@ class DeviceInfo
|
|||||||
|
|
||||||
uint32_t strip_cnt () const;
|
uint32_t strip_cnt () const;
|
||||||
uint32_t extenders() const;
|
uint32_t extenders() const;
|
||||||
|
uint32_t master_position() const;
|
||||||
bool has_two_character_display() const;
|
bool has_two_character_display() const;
|
||||||
bool has_master_fader () const;
|
bool has_master_fader () const;
|
||||||
bool has_timecode_display() const;
|
bool has_timecode_display() const;
|
||||||
@ -88,6 +89,7 @@ class DeviceInfo
|
|||||||
private:
|
private:
|
||||||
uint32_t _strip_cnt;
|
uint32_t _strip_cnt;
|
||||||
uint32_t _extenders;
|
uint32_t _extenders;
|
||||||
|
uint32_t _master_position;
|
||||||
bool _has_two_character_display;
|
bool _has_two_character_display;
|
||||||
bool _has_master_fader;
|
bool _has_master_fader;
|
||||||
bool _has_timecode_display;
|
bool _has_timecode_display;
|
||||||
|
@ -94,8 +94,9 @@ Surface::Surface (MackieControlProtocol& mcp, const std::string& device_name, ui
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* only the first Surface object has global controls */
|
/* only the first Surface object has global controls */
|
||||||
|
/* lets use master_position instead */
|
||||||
if (_number == 0) {
|
uint32_t mp = _mcp.device_info().master_position();
|
||||||
|
if (_number == mp) {
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, "Surface is first. Might have global controls.\n");
|
DEBUG_TRACE (DEBUG::MackieControl, "Surface is first. Might have global controls.\n");
|
||||||
if (_mcp.device_info().has_global_controls()) {
|
if (_mcp.device_info().has_global_controls()) {
|
||||||
init_controls ();
|
init_controls ();
|
||||||
|
Loading…
Reference in New Issue
Block a user