add everyNLamp parameter
This commit is contained in:
@ -222,6 +222,13 @@ ColumnLayout {
|
||||
realValue: 60
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
id: advanceEveryNLamp
|
||||
Layout.preferredWidth: 120
|
||||
from: 1
|
||||
value: 2
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
id: generateSteps
|
||||
Layout.preferredWidth: 120
|
||||
@ -233,7 +240,7 @@ ColumnLayout {
|
||||
|
||||
Button {
|
||||
text: qsTr('Rainbow')
|
||||
onPressed: patternMaker.setRainbow(0, phaseAdvanceSlider.realValue / 360.)
|
||||
onPressed: patternMaker.setRainbow(0, phaseAdvanceSlider.realValue / 360., advanceEveryNLamp.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ void PatternMaker::setPattern(int n, int k, DeviceTypeRegisterType registerType,
|
||||
m_controller->setSliderStates(std::move(sliderStates));
|
||||
}
|
||||
|
||||
void PatternMaker::setRainbow(float phase, float advancePerLamp)
|
||||
void PatternMaker::setRainbow(float phase, float advancePerLamp, int advanceEveryNLamp)
|
||||
{
|
||||
if (!m_controller)
|
||||
{
|
||||
@ -157,8 +157,6 @@ void PatternMaker::setRainbow(float phase, float advancePerLamp)
|
||||
int i{};
|
||||
for (const auto &device : devices)
|
||||
{
|
||||
const auto current_i = i++;
|
||||
|
||||
const auto color = QColor::fromHsvF(fmod(phase,1.),1.,1.);
|
||||
|
||||
std::vector<quint8> sliderState;
|
||||
@ -192,7 +190,13 @@ void PatternMaker::setRainbow(float phase, float advancePerLamp)
|
||||
}
|
||||
|
||||
sliderStates.push_back(std::move(sliderState));
|
||||
phase += advancePerLamp;
|
||||
|
||||
//qWarning() << "i=" << i << " advanceEveryNLamp=" << advanceEveryNLamp << " phase=" << phase;
|
||||
|
||||
if(++i >= advanceEveryNLamp){
|
||||
i = 0;
|
||||
phase += advancePerLamp;
|
||||
}
|
||||
}
|
||||
|
||||
m_controller->setSliderStates(std::move(sliderStates));
|
||||
|
@ -21,7 +21,7 @@ public:
|
||||
Q_INVOKABLE void setAllFadersLow();
|
||||
Q_INVOKABLE void setAllFadersMax();
|
||||
Q_INVOKABLE void setPattern(int n, int k, DeviceTypeRegisterType registerType, quint8 value);
|
||||
Q_INVOKABLE void setRainbow(float phase, float advancePerLamp);
|
||||
Q_INVOKABLE void setRainbow(float phase, float advancePerLamp, int advanceEveryNLamp);
|
||||
|
||||
signals:
|
||||
void controllerChanged(DmxController *controller);
|
||||
|
Reference in New Issue
Block a user