Implemented pattern automat
This commit is contained in:
@ -88,7 +88,7 @@ ColumnLayout {
|
|||||||
GridLayout {
|
GridLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
columns: 2
|
columns: 3
|
||||||
|
|
||||||
RegisterGroupModel {
|
RegisterGroupModel {
|
||||||
id: registerGroupModel
|
id: registerGroupModel
|
||||||
@ -104,6 +104,10 @@ ColumnLayout {
|
|||||||
text: qsTr('Von Schieberegler\nunten kopieren');
|
text: qsTr('Von Schieberegler\nunten kopieren');
|
||||||
onPressed: registerGroupModel.copyFromFaders()
|
onPressed: registerGroupModel.copyFromFaders()
|
||||||
}
|
}
|
||||||
|
Item {
|
||||||
|
Layout.rowSpan: 2
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
Button {
|
Button {
|
||||||
text: qsTr('Alle auf\n0 setzen');
|
text: qsTr('Alle auf\n0 setzen');
|
||||||
onPressed: registerGroupModel.setAllFadersLow()
|
onPressed: registerGroupModel.setAllFadersLow()
|
||||||
@ -112,6 +116,37 @@ ColumnLayout {
|
|||||||
text: qsTr('Alle auf\nMaximum setzen');
|
text: qsTr('Alle auf\nMaximum setzen');
|
||||||
onPressed: registerGroupModel.setAllFadersMax()
|
onPressed: registerGroupModel.setAllFadersMax()
|
||||||
}
|
}
|
||||||
|
RowLayout {
|
||||||
|
Layout.columnSpan: 3
|
||||||
|
|
||||||
|
SpinBox {
|
||||||
|
id: nSpinBox
|
||||||
|
Layout.preferredWidth: 120
|
||||||
|
from: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
SpinBox {
|
||||||
|
id: kSpinBox
|
||||||
|
Layout.preferredWidth: 120
|
||||||
|
}
|
||||||
|
|
||||||
|
ComboBox {
|
||||||
|
id: registerTypeComboBox
|
||||||
|
model: DeviceTypeRegisterTypesModel {
|
||||||
|
}
|
||||||
|
textRole: "text"
|
||||||
|
valueRole: "value"
|
||||||
|
}
|
||||||
|
|
||||||
|
DmxSlider {
|
||||||
|
id: valueSlider
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
text: qsTr('Set')
|
||||||
|
onPressed: registerGroupModel.setPattern(nSpinBox.value, kSpinBox.value, registerTypeComboBox.currentValue, valueSlider.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -168,6 +168,47 @@ void RegisterGroupModel::setAllFadersMax()
|
|||||||
m_controller->setSliderStates(std::move(sliderStates));
|
m_controller->setSliderStates(std::move(sliderStates));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RegisterGroupModel::setPattern(int n, int k, DeviceTypeRegisterType registerType, quint8 value)
|
||||||
|
{
|
||||||
|
if (!m_controller)
|
||||||
|
{
|
||||||
|
qDebug() << "hilfe" << __LINE__;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto &devices = m_controller->lightProject().devices;
|
||||||
|
|
||||||
|
sliders_state_t sliderStates;
|
||||||
|
sliderStates.reserve(devices.size());
|
||||||
|
|
||||||
|
int i{};
|
||||||
|
for (const auto &device : devices)
|
||||||
|
{
|
||||||
|
const bool test = i++ % n == k;
|
||||||
|
|
||||||
|
std::vector<quint8> sliderState;
|
||||||
|
|
||||||
|
if (device.deviceTypeId != -1)
|
||||||
|
{
|
||||||
|
const auto deviceTypePtr = m_controller->lightProject().deviceTypes.findById(device.deviceTypeId);
|
||||||
|
if (!deviceTypePtr)
|
||||||
|
qWarning() << "hilfe" << __LINE__;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const auto &deviceType = *deviceTypePtr;
|
||||||
|
sliderState.reserve(deviceType.registers.size());
|
||||||
|
|
||||||
|
for (const auto ®ister_ : deviceType.registers)
|
||||||
|
sliderState.push_back(test && register_.type == registerType ? value : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sliderStates.push_back(std::move(sliderState));
|
||||||
|
}
|
||||||
|
|
||||||
|
m_controller->setSliderStates(std::move(sliderStates));
|
||||||
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
void registrierDenShit()
|
void registrierDenShit()
|
||||||
{
|
{
|
||||||
|
@ -24,6 +24,7 @@ public:
|
|||||||
Q_INVOKABLE void copyToFaders();
|
Q_INVOKABLE void copyToFaders();
|
||||||
Q_INVOKABLE void setAllFadersLow();
|
Q_INVOKABLE void setAllFadersLow();
|
||||||
Q_INVOKABLE void setAllFadersMax();
|
Q_INVOKABLE void setAllFadersMax();
|
||||||
|
Q_INVOKABLE void setPattern(int n, int k, DeviceTypeRegisterType registerType, quint8 value);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void controllerChanged(DmxController *controller);
|
void controllerChanged(DmxController *controller);
|
||||||
|
Reference in New Issue
Block a user