57 ChannelLayer
layer = ChannelLayer::Positioned;
70 void setIOCount(
const std::pair<int, int>& ioCount);
75 void paint (Graphics&)
override;
81 void mouseDown(
const juce::MouseEvent& e)
override;
82 void mouseUp(
const MouseEvent& e)
override;
83 void mouseDrag(
const MouseEvent& e)
override;
86 void setInputToOutputStates(
const std::map<std::uint16_t, std::map<std::uint16_t, bool>>& inputToOutputStates);
87 void setInputToOutputLevels(
const std::map<std::uint16_t, std::map<std::uint16_t, float>>& inputToOutputLevels);
90 void setInputPosition(std::uint16_t channel,
const TwoDMultisliderValue& value,
const float& panningSharpness,
const ChannelLayer& layer, juce::NotificationType notification = juce::dontSendNotification);
92 void setInputPositionSharpness(std::uint16_t channel,
const float& sharpness, juce::NotificationType notification = juce::dontSendNotification);
93 void setInputPositionLayer(std::uint16_t channel,
const ChannelLayer& layer, juce::NotificationType notification = juce::dontSendNotification);
94 void selectInput(std::uint16_t channel,
bool selectOn, juce::NotificationType notification = juce::dontSendNotification);
106 void paintCircularLevelIndication(juce::Graphics& g,
const juce::Rectangle<float>& circleArea,
const std::map<
int, juce::Point<float>>& channelLevelMaxPoints,
const juce::Array<juce::AudioChannelSet::ChannelType>& channelsToPaint);
107 void paintSliderKnob(juce::Graphics& g,
const juce::Rectangle<float>& sliderArea,
const float& relXPos,
const float& relYPos,
const int& silderNumber,
bool isSliderOn,
bool isSliderSliding);
110 void rebuildDirectionslessChannelSliders();
111 void configureDirectionlessSliderToRelativeCtrl(
const juce::AudioChannelSet::ChannelType& channelType, JUCEAppBasics::ToggleStateSlider& slider);
114 std::map<juce::AudioChannelSet::ChannelType, std::unique_ptr<JUCEAppBasics::ToggleStateSlider>> m_directionslessChannelSliders;
115 std::map<juce::AudioChannelSet::ChannelType, std::unique_ptr<juce::Label>> m_directionslessChannelLabels;
116 std::map<juce::AudioChannelSet::ChannelType, double> m_directionlessSliderRelRef;
118 std::map<std::uint16_t, std::map<juce::AudioChannelSet::ChannelType, std::pair<bool, float>>> m_inputToOutputVals;
120 std::map<std::uint16_t, TwoDMultisliderSourcePosition> m_inputPositions;
121 std::vector<std::uint16_t> m_inputPositionStackingOrder;
122 std::uint16_t m_currentlySelectedInput = 0;
124 std::unique_ptr<juce::Label> m_sharpnessLabel;
125 std::unique_ptr<JUCEAppBasics::FixedFontTextEditor> m_sharpnessEdit;
127 int m_currentOutputCount = 0;
130 int m_thumbWidth = 0;
131 float m_trackWidth = 0.0f;