diff options
-rw-r--r-- | qtmips_gui/peripheralsview.cpp | 8 | ||||
-rw-r--r-- | qtmips_gui/peripheralsview.ui | 21 | ||||
-rw-r--r-- | qtmips_machine/peripspiled.cpp | 18 | ||||
-rw-r--r-- | qtmips_machine/peripspiled.h | 4 |
4 files changed, 50 insertions, 1 deletions
diff --git a/qtmips_gui/peripheralsview.cpp b/qtmips_gui/peripheralsview.cpp index 6c1208d..f90dd53 100644 --- a/qtmips_gui/peripheralsview.cpp +++ b/qtmips_gui/peripheralsview.cpp @@ -43,6 +43,14 @@ void PeripheralsView::setup(const machine::PeripSpiLed *perip_spi_led) { ui->spinBlue->setValue(val - 1); ui->spinBlue->setValue(val); + connect(ui->checkRed, SIGNAL(clicked(bool)), perip_spi_led, SLOT(red_knob_push(bool))); + connect(ui->checkGreen, SIGNAL(clicked(bool)), perip_spi_led, SLOT(green_knob_push(bool))); + connect(ui->checkBlue, SIGNAL(clicked(bool)), perip_spi_led, SLOT(blue_knob_push(bool))); + + ui->checkRed->setChecked(false); + ui->checkGreen->setChecked(false);; + ui->checkBlue->setChecked(false);; + ui->labelRgb1->setAutoFillBackground(true); ui->labelRgb2->setAutoFillBackground(true); diff --git a/qtmips_gui/peripheralsview.ui b/qtmips_gui/peripheralsview.ui index 60726a2..6aa83d6 100644 --- a/qtmips_gui/peripheralsview.ui +++ b/qtmips_gui/peripheralsview.ui @@ -114,6 +114,13 @@ <item> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> + <widget class="QCheckBox" name="checkRed"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item> <widget class="QDial" name="dialRed"> <property name="maximum"> <number>255</number> @@ -161,6 +168,13 @@ <item> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> + <widget class="QCheckBox" name="checkGreen"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item> <widget class="QDial" name="dialGreen"> <property name="maximum"> <number>255</number> @@ -208,6 +222,13 @@ <item> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> + <widget class="QCheckBox" name="checkBlue"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item> <widget class="QDial" name="dialBlue"> <property name="maximum"> <number>255</number> diff --git a/qtmips_machine/peripspiled.cpp b/qtmips_machine/peripspiled.cpp index 0404311..d016f90 100644 --- a/qtmips_machine/peripspiled.cpp +++ b/qtmips_machine/peripspiled.cpp @@ -137,3 +137,21 @@ void PeripSpiLed::blue_knob_update(int val) { spiled_reg_knobs_8bit &= ~(0xff << 0); spiled_reg_knobs_8bit |= (val & 0xff) << 0; } + +void PeripSpiLed::red_knob_push(bool state) { + spiled_reg_knobs_8bit &= ~(1 << 26); + if (state) + spiled_reg_knobs_8bit |= 1 << 26; +} + +void PeripSpiLed::green_knob_push(bool state) { + spiled_reg_knobs_8bit &= ~(1 << 25); + if (state) + spiled_reg_knobs_8bit |= 1 << 25; +} + +void PeripSpiLed::blue_knob_push(bool state) { + spiled_reg_knobs_8bit &= ~(1 << 24); + if (state) + spiled_reg_knobs_8bit |= 1 << 24; +} diff --git a/qtmips_machine/peripspiled.h b/qtmips_machine/peripspiled.h index 2e2be72..8c884e3 100644 --- a/qtmips_machine/peripspiled.h +++ b/qtmips_machine/peripspiled.h @@ -63,7 +63,9 @@ public slots: void red_knob_update(int val); void green_knob_update(int val); void blue_knob_update(int val); - + void red_knob_push(bool state); + void green_knob_push(bool state); + void blue_knob_push(bool state); public: bool wword(std::uint32_t address, std::uint32_t value); std::uint32_t rword(std::uint32_t address, bool debug_access = false) const; |