mirror of
https://github.com/sudoxnym/open-hyperion.git
synced 2026-05-17 03:09:05 +00:00
Add capability to modify universe and controller mapping
This commit is contained in:
parent
de4f73db55
commit
1bdc603b75
3 changed files with 210 additions and 28 deletions
|
|
@ -95,6 +95,7 @@ void OpenRGBE131ReceiverDialog::DeviceListChanged()
|
|||
{
|
||||
if(resource_manager->GetDetectionPercent() == 100)
|
||||
{
|
||||
ui->ControllersTreeView->clear();
|
||||
ui->E131TreeView->clear();
|
||||
universe_list.clear();
|
||||
|
||||
|
|
@ -161,6 +162,7 @@ void OpenRGBE131ReceiverDialog::DeviceListChanged()
|
|||
}
|
||||
}
|
||||
|
||||
UpdateControllersTreeView();
|
||||
UpdateTreeView();
|
||||
}
|
||||
else
|
||||
|
|
@ -170,6 +172,23 @@ void OpenRGBE131ReceiverDialog::DeviceListChanged()
|
|||
}
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::UpdateControllersTreeView()
|
||||
{
|
||||
ui->ControllersTreeView->clear();
|
||||
|
||||
ui->ControllersTreeView->setColumnCount(1);
|
||||
ui->ControllersTreeView->setHeaderLabels(QStringList() << "Controller");
|
||||
|
||||
for(unsigned int controller_idx = 0; controller_idx < resource_manager->GetRGBControllers().size(); controller_idx++)
|
||||
{
|
||||
RGBController* controller = resource_manager->GetRGBControllers()[controller_idx];
|
||||
|
||||
QTreeWidgetItem* new_controller_entry = new QTreeWidgetItem(ui->ControllersTreeView);
|
||||
|
||||
new_controller_entry->setText(0, QString::fromStdString(controller->name));
|
||||
}
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::UpdateTreeView()
|
||||
{
|
||||
ui->E131TreeView->clear();
|
||||
|
|
@ -520,3 +539,120 @@ void OpenRGBE131ReceiverDialog::on_CheckBox_updated(QObject* checkbox_argument)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::on_ButtonAddController_clicked()
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| Make sure a valid controller is selected on the left |
|
||||
| and a valid universe is selected on the right |
|
||||
\*-----------------------------------------------------*/
|
||||
int selected_controller = ui->ControllersTreeView->indexOfTopLevelItem(ui->ControllersTreeView->currentItem());
|
||||
int selected_universe = ui->E131TreeView->indexOfTopLevelItem(ui->E131TreeView->currentItem());
|
||||
|
||||
if((selected_controller == -1) || (selected_universe == -1))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Add controller to universe |
|
||||
\*-----------------------------------------------------*/
|
||||
universe_member new_member;
|
||||
|
||||
new_member.controller = resource_manager->GetRGBControllers()[selected_controller];
|
||||
new_member.start_channel = 1;
|
||||
new_member.start_led = 0;
|
||||
new_member.num_leds = 0;
|
||||
new_member.update = false;
|
||||
|
||||
universe_list[selected_universe].members.push_back(new_member);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update the universe tree view |
|
||||
\*-----------------------------------------------------*/
|
||||
UpdateTreeView();
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::on_ButtonRemoveController_clicked()
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| Make selected item is not a top-level (universe) |
|
||||
\*-----------------------------------------------------*/
|
||||
int selected_controller = ui->E131TreeView->indexOfTopLevelItem(ui->E131TreeView->currentItem());
|
||||
|
||||
if(selected_controller != -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Get index of universe member |
|
||||
\*-----------------------------------------------------*/
|
||||
selected_controller = ui->E131TreeView->currentIndex().row();
|
||||
int selected_universe = ui->E131TreeView->indexOfTopLevelItem(ui->E131TreeView->currentItem()->parent());
|
||||
|
||||
if(selected_universe == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Remove controller member from universe |
|
||||
\*-----------------------------------------------------*/
|
||||
universe_list[selected_universe].members.erase(universe_list[selected_universe].members.begin() + selected_controller);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update the universe tree view |
|
||||
\*-----------------------------------------------------*/
|
||||
UpdateTreeView();
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::on_ButtonAddUniverse_clicked()
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| Get next universe value |
|
||||
\*-----------------------------------------------------*/
|
||||
unsigned int next_universe = 1;
|
||||
|
||||
if(universe_list.size() > 0)
|
||||
{
|
||||
next_universe = universe_list[universe_list.size() - 1].universe + 1;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Create and add new universe to list |
|
||||
\*-----------------------------------------------------*/
|
||||
universe_entry new_universe;
|
||||
|
||||
new_universe.universe = next_universe;
|
||||
|
||||
universe_list.push_back(new_universe);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update the universe tree view |
|
||||
\*-----------------------------------------------------*/
|
||||
UpdateTreeView();
|
||||
}
|
||||
|
||||
void OpenRGBE131ReceiverDialog::on_ButtonRemoveUniverse_clicked()
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| Get index of universe |
|
||||
\*-----------------------------------------------------*/
|
||||
int selected_universe = ui->E131TreeView->indexOfTopLevelItem(ui->E131TreeView->currentItem());
|
||||
|
||||
if(selected_universe == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Remove universe |
|
||||
\*-----------------------------------------------------*/
|
||||
universe_list.erase(universe_list.begin() + selected_universe);
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
| Update the universe tree view |
|
||||
\*-----------------------------------------------------*/
|
||||
UpdateTreeView();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,14 @@ private slots:
|
|||
|
||||
void on_CheckBox_updated(QObject* checkbox_argument);
|
||||
|
||||
void on_ButtonAddController_clicked();
|
||||
|
||||
void on_ButtonRemoveController_clicked();
|
||||
|
||||
void on_ButtonAddUniverse_clicked();
|
||||
|
||||
void on_ButtonRemoveUniverse_clicked();
|
||||
|
||||
private:
|
||||
ResourceManager* resource_manager;
|
||||
Ui::OpenRGBE131ReceiverDialog *ui;
|
||||
|
|
@ -41,6 +49,7 @@ private:
|
|||
std::thread* E131ReceiverThread;
|
||||
|
||||
void UpdateOnlineStatus();
|
||||
void UpdateControllersTreeView();
|
||||
void UpdateTreeView();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,14 @@
|
|||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="4" column="0" colspan="5">
|
||||
<item row="3" column="4">
|
||||
<widget class="QPushButton" name="ButtonStopReceiver">
|
||||
<property name="text">
|
||||
<string>Stop Receiver</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2" colspan="3">
|
||||
<widget class="QTreeWidget" name="E131TreeView">
|
||||
<column>
|
||||
<property name="text">
|
||||
|
|
@ -29,17 +36,10 @@
|
|||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="PacketsReceivedValue">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="ReceiverStatusLabel">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLabel" name="ReceiverSourceValue">
|
||||
<property name="text">
|
||||
<string>Source</string>
|
||||
<string>Receiver Status:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -50,10 +50,17 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
<widget class="QPushButton" name="ButtonStopReceiver">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="ReceiverSourceLabel">
|
||||
<property name="text">
|
||||
<string>Stop Receiver</string>
|
||||
<string>Receiver Source:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLabel" name="ReceiverSourceValue">
|
||||
<property name="text">
|
||||
<string>Source</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -64,6 +71,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="PacketsReceivedValue">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QPushButton" name="ButtonStartReceiver">
|
||||
<property name="text">
|
||||
|
|
@ -71,20 +85,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="ReceiverStatusLabel">
|
||||
<property name="text">
|
||||
<string>Receiver Status:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="ReceiverSourceLabel">
|
||||
<property name="text">
|
||||
<string>Receiver Source:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QCheckBox" name="EnableMulticastBox">
|
||||
<property name="layoutDirection">
|
||||
|
|
@ -98,6 +98,43 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QTreeWidget" name="ControllersTreeView">
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QPushButton" name="ButtonAddController">
|
||||
<property name="text">
|
||||
<string>Add Controller</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="ButtonRemoveController">
|
||||
<property name="text">
|
||||
<string>Remove Controller</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QPushButton" name="ButtonAddUniverse">
|
||||
<property name="text">
|
||||
<string>Add Universe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QPushButton" name="ButtonRemoveUniverse">
|
||||
<property name="text">
|
||||
<string>Remove Universe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue