27 m_oscReceiver.addListener(
this);
32 m_oscReceiver.removeListener(
this);
33 m_oscReceiver.disconnect();
41 m_oscReceiver.disconnect();
45 m_oscReceiver.connect(port);
49 const juce::String& address)
51 m_addresses[
static_cast<int>(param)] = address;
56 return m_addresses[
static_cast<int>(param)];
59void OscController::oscMessageReceived(
const juce::OSCMessage& message)
61 auto address = message.getAddressPattern().toString();
62 if (message.isEmpty() || !message[0].isFloat32())
65 auto rawValue = message[0].getFloat32();
69 if (m_addresses[i] == address)
73 auto domainValue = juce::jlimit(minVal, maxVal, rawValue);
juce::String getAddress(UmsciExternalControlComponent::UpmixMidiParam param) const
std::function< void(UmsciExternalControlComponent::UpmixMidiParam, float)> onParamValueChanged
~OscController() override
void setAddress(UmsciExternalControlComponent::UpmixMidiParam param, const juce::String &address)
static const juce::String s_oscDefaultAddresses[UpmixMidiParam_COUNT]
Default OSC address for each parameter, indexed by UpmixMidiParam.
static const std::array< std::pair< float, float >, UpmixMidiParam_COUNT > s_paramRanges
Natural parameter ranges for normalised MIDI→domain mapping. Indexed by UpmixMidiParam.
UpmixMidiParam
Identifies each controllable upmix transform parameter.