mirror of
https://github.com/sudoxnym/open-hyperion.git
synced 2026-04-14 11:36:31 +00:00
Add function to save universe map as a json file
This commit is contained in:
parent
c43c2c9813
commit
05362ae8a7
3 changed files with 63 additions and 0 deletions
|
|
@ -5,6 +5,8 @@
|
|||
#include <QLineEdit>
|
||||
#include <QSignalMapper>
|
||||
|
||||
#include <fstream>
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <unistd.h>
|
||||
#define closesocket ::close
|
||||
|
|
@ -681,3 +683,55 @@ void OpenRGBE131ReceiverDialog::on_ButtonAutoMap_clicked()
|
|||
\*-----------------------------------------------------*/
|
||||
UpdateTreeView();
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::on_ButtonSaveMap_clicked()
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| Create a JSON structure to hold the universe map |
|
||||
\*-----------------------------------------------------*/
|
||||
json universe_map;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Loop through the universe list and add universe fields|
|
||||
\*-----------------------------------------------------*/
|
||||
for(unsigned int universe_index = 0; universe_index < universe_list.size(); universe_index++)
|
||||
{
|
||||
universe_entry universe = universe_list[universe_index];
|
||||
|
||||
universe_map["universes"][universe_index]["universe"] = universe.universe;
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Loop through all members and add info fields |
|
||||
\*-----------------------------------------------------*/
|
||||
for(unsigned int member_index = 0; member_index < universe.members.size(); member_index++)
|
||||
{
|
||||
universe_member member = universe.members[member_index];
|
||||
|
||||
universe_map["universes"][universe_index]["members"][member_index]["start_channel"] = member.start_channel;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["start_led"] = member.start_led;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["num_leds"] = member.num_leds;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["update"] = member.update;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["controller_name"] = member.controller->name;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["controller_description"] = member.controller->description;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["controller_location"] = member.controller->location;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["controller_serial"] = member.controller->serial;
|
||||
universe_map["universes"][universe_index]["members"][member_index]["controller_led_count"] = member.controller->colors.size();
|
||||
}
|
||||
}
|
||||
|
||||
std::ofstream universe_file("E131UniverseMap.json", std::ios::out | std::ios::binary);
|
||||
|
||||
if(universe_file)
|
||||
{
|
||||
try
|
||||
{
|
||||
universe_file << universe_map.dump(4);
|
||||
}
|
||||
catch(std::exception e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
universe_file.close();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ private slots:
|
|||
|
||||
void on_ButtonAutoMap_clicked();
|
||||
|
||||
void on_ButtonSaveMap_clicked();
|
||||
|
||||
private:
|
||||
ResourceManager* resource_manager;
|
||||
Ui::OpenRGBE131ReceiverDialog *ui;
|
||||
|
|
|
|||
|
|
@ -142,6 +142,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QPushButton" name="ButtonSaveMap">
|
||||
<property name="text">
|
||||
<string>Save Map</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue