@@ -89,3 +89,204 @@ void Ui::OpenRGBE131SettingsEntry::on_TypeComboBox_currentIndexChanged(int index
8989 HideMatrixSettings ();
9090 }
9191}
92+
93+ void OpenRGBE131SettingsEntry::loadFromSettings (const json& data)
94+ {
95+ if (data.contains (" name" ))
96+ {
97+ ui->NameEdit ->setText (QString::fromStdString (data[" name" ]));
98+ }
99+
100+ if (data.contains (" ip" ))
101+ {
102+ ui->IPEdit ->setText (QString::fromStdString (data[" ip" ]));
103+ }
104+
105+ if (data.contains (" start_universe" ))
106+ {
107+ ui->StartUniverseEdit ->setText (QString::number ((int )data[" start_universe" ]));
108+ }
109+
110+ if (data.contains (" start_channel" ))
111+ {
112+ ui->StartChannelEdit ->setText (QString::number ((int )data[" start_channel" ]));
113+ }
114+
115+ if (data.contains (" num_leds" ))
116+ {
117+ ui->NumLEDsEdit ->setText (QString::number ((int )data[" num_leds" ]));
118+ }
119+
120+ if (data.contains (" type" ))
121+ {
122+ if (data[" type" ].is_string ())
123+ {
124+ std::string type_val = data[" type" ];
125+
126+ if (type_val == " SINGLE" )
127+ {
128+ ui->TypeComboBox ->setCurrentIndex (0 );
129+ }
130+ else if (type_val == " LINEAR" )
131+ {
132+ ui->TypeComboBox ->setCurrentIndex (1 );
133+ }
134+ else if (type_val == " MATRIX" )
135+ {
136+ ui->TypeComboBox ->setCurrentIndex (2 );
137+ }
138+ }
139+ else
140+ {
141+ ui->TypeComboBox ->setCurrentIndex (data[" type" ]);
142+ }
143+ }
144+
145+ if (data.contains (" rgb_order" ))
146+ {
147+ if (data[" rgb_order" ].is_string ())
148+ {
149+ std::string rgb_order_val = data[" rgb_order" ];
150+
151+ if (rgb_order_val == " RGB" )
152+ {
153+ ui->RGBOrderComboBox ->setCurrentIndex (0 );
154+ }
155+ else if (rgb_order_val == " RBG" )
156+ {
157+ ui->RGBOrderComboBox ->setCurrentIndex (1 );
158+ }
159+ else if (rgb_order_val == " GRB" )
160+ {
161+ ui->RGBOrderComboBox ->setCurrentIndex (2 );
162+ }
163+ else if (rgb_order_val == " GBR" )
164+ {
165+ ui->RGBOrderComboBox ->setCurrentIndex (3 );
166+ }
167+ else if (rgb_order_val == " BRG" )
168+ {
169+ ui->RGBOrderComboBox ->setCurrentIndex (4 );
170+ }
171+ else if (rgb_order_val == " BGR" )
172+ {
173+ ui->RGBOrderComboBox ->setCurrentIndex (5 );
174+ }
175+ }
176+ else
177+ {
178+ ui->RGBOrderComboBox ->setCurrentIndex (data[" rgb_order" ]);
179+ }
180+ }
181+
182+ if (data.contains (" matrix_width" ))
183+ {
184+ ui->MatrixWidthEdit ->setText (QString::number ((int )data[" matrix_width" ]));
185+ }
186+
187+ if (data.contains (" matrix_height" ))
188+ {
189+ ui->MatrixHeightEdit ->setText (QString::number ((int )data[" matrix_height" ]));
190+ }
191+
192+ if (data.contains (" matrix_order" ))
193+ {
194+ if (data[" matrix_order" ].is_string ())
195+ {
196+ std::string matrix_order_val = data[" matrix_order" ];
197+
198+ if (matrix_order_val == " HORIZONTAL_TOP_LEFT" )
199+ {
200+ ui->MatrixOrderComboBox ->setCurrentIndex (0 );
201+ }
202+ else if (matrix_order_val == " HORIZONTAL_TOP_RIGHT" )
203+ {
204+ ui->MatrixOrderComboBox ->setCurrentIndex (1 );
205+ }
206+ else if (matrix_order_val == " HORIZONTAL_BOTTOM_LEFT" )
207+ {
208+ ui->MatrixOrderComboBox ->setCurrentIndex (2 );
209+ }
210+ else if (matrix_order_val == " HORIZONTAL_BOTTOM_RIGHT" )
211+ {
212+ ui->MatrixOrderComboBox ->setCurrentIndex (3 );
213+ }
214+ else if (matrix_order_val == " VERTICAL_TOP_LEFT" )
215+ {
216+ ui->MatrixOrderComboBox ->setCurrentIndex (4 );
217+ }
218+ else if (matrix_order_val == " VERTICAL_TOP_RIGHT" )
219+ {
220+ ui->MatrixOrderComboBox ->setCurrentIndex (5 );
221+ }
222+ else if (matrix_order_val == " VERTICAL_BOTTOM_LEFT" )
223+ {
224+ ui->MatrixOrderComboBox ->setCurrentIndex (6 );
225+ }
226+ else if (matrix_order_val == " VERTICAL_BOTTOM_RIGHT" )
227+ {
228+ ui->MatrixOrderComboBox ->setCurrentIndex (7 );
229+ }
230+ }
231+ else
232+ {
233+ ui->MatrixOrderComboBox ->setCurrentIndex (data[" matrix_order" ]);
234+ }
235+ }
236+
237+ if (data.contains (" universe_size" ))
238+ {
239+ ui->UniverseSizeEdit ->setText (QString::number ((int )data[" universe_size" ]));
240+ }
241+
242+ if (data.contains (" keepalive_time" ))
243+ {
244+ ui->KeepaliveTimeEdit ->setText (QString::number ((int )data[" keepalive_time" ]));
245+ }
246+ }
247+
248+ json OpenRGBE131SettingsEntry::saveSettings ()
249+ {
250+ json result;
251+ /* -------------------------------------------------*\
252+ | Required parameters |
253+ \*-------------------------------------------------*/
254+ result[" name" ] = ui->NameEdit ->text ().toStdString ();
255+ result[" start_universe" ] = ui->StartUniverseEdit ->text ().toUInt ();
256+ result[" start_channel" ] = ui->StartChannelEdit ->text ().toUInt ();
257+ result[" num_leds" ] = ui->NumLEDsEdit ->text ().toUInt ();
258+ result[" type" ] = ui->TypeComboBox ->currentIndex ();
259+ result[" rgb_order" ] = ui->RGBOrderComboBox ->currentIndex ();
260+
261+ /* -------------------------------------------------*\
262+ | Optional parameters |
263+ \*-------------------------------------------------*/
264+ if (ui->IPEdit ->text () != " " )
265+ {
266+ result[" ip" ] = ui->IPEdit ->text ().toStdString ();
267+ }
268+
269+ if (result[" type" ] == 2 )
270+ {
271+ result[" matrix_width" ] = ui->MatrixWidthEdit ->text ().toUInt ();
272+ result[" matrix_height" ] = ui->MatrixHeightEdit ->text ().toUInt ();
273+ result[" matrix_order" ] = ui->MatrixOrderComboBox ->currentIndex ();
274+ }
275+
276+ if (ui->UniverseSizeEdit ->text () != " " )
277+ {
278+ result[" universe_size" ] = ui->UniverseSizeEdit ->text ().toUInt ();
279+ }
280+
281+ if (ui->KeepaliveTimeEdit ->text () != " " )
282+ {
283+ result[" keepalive_time" ] = ui->KeepaliveTimeEdit ->text ().toUInt ();
284+ }
285+
286+ return result;
287+ }
288+
289+ const char * OpenRGBE131SettingsEntry::settingsSection ()
290+ {
291+ return " E131Devices" ;
292+ }
0 commit comments