Browse Source

BLOCKS: Fix issue identifying master block

tags/2021-05-28
dimitri ed 6 years ago
parent
commit
77993724df
1 changed files with 19 additions and 14 deletions
  1. +19
    -14
      modules/juce_blocks_basics/topology/internal/juce_ConnectedDeviceGroup.cpp

+ 19
- 14
modules/juce_blocks_basics/topology/internal/juce_ConnectedDeviceGroup.cpp View File

@@ -305,7 +305,9 @@ private:
juce::Array<juce::MemoryBlock> incomingPackets;
struct TouchStart { float x, y; };
TouchList<TouchStart> touchStartPositions;
TouchList<TouchStart> touchStartPositions;
Block::UID masterBlock = 0;
//==============================================================================
juce::Time lastTopologyRequestTime, lastTopologyReceiveTime;
@@ -532,25 +534,28 @@ private:
}
//==============================================================================
static juce::Array<DeviceInfo> getArrayOfDeviceInfo (const juce::Array<BlocksProtocol::DeviceStatus>& devices)
juce::Array<DeviceInfo> getArrayOfDeviceInfo (const juce::Array<BlocksProtocol::DeviceStatus>& devices)
{
juce::Array<DeviceInfo> result;
bool isFirst = true; // TODO: First block not always master block! Assumption violated.
for (auto& device : devices)
{
BlocksProtocol::VersionNumber version;
BlocksProtocol::BlockName name;
result.add ({ getBlockUIDFromSerialNumber (device.serialNumber),
device.index,
device.serialNumber,
version,
name,
isFirst });
isFirst = false;
}
BlocksProtocol::BlockName name;
const auto uid = getBlockUIDFromSerialNumber (device.serialNumber);
// For backwards compatibility we assume the first device we see in a group is the master and won't change
if (masterBlock == 0)
masterBlock = uid;
result.add ({ uid,
device.index,
device.serialNumber,
version,
name,
masterBlock == uid });
}
return result;
}


Loading…
Cancel
Save