Skip to content

Commit 623b214

Browse files
joelfcscoelhoReenigneArcher
authored andcommitted
fix: add latest_player_led/latest_mic_led switch cases and tests
Signed-off-by: Joel Coelho <joelfernandocscoelho@gmail.com>
1 parent b8e56dc commit 623b214

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

tests/unit/test_virtualhid_control_model.cpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,12 +198,16 @@ TEST(VirtualHidControlModelTest, SummarizesOutputState) {
198198
state.latest_rgb_led->red = 1;
199199
state.latest_rgb_led->green = 2;
200200
state.latest_rgb_led->blue = 3;
201+
state.latest_player_led = output(player_led);
202+
state.latest_player_led->player_led = 31;
203+
state.latest_mic_led = output(mic_led);
204+
state.latest_mic_led->mic_led = 2;
201205
state.latest_adaptive_triggers = output(adaptive_triggers);
202206
state.latest_adaptive_triggers->adaptive_trigger_flags = 4;
203207

204208
EXPECT_EQ(
205209
control::output_summary(state, dualsense),
206-
L"Output: rumble low=10 high=20 | trigger rumble L=30 R=40 | RGB 1,2,3 | adaptive flags=4"
210+
L"Output: rumble low=10 high=20 | trigger rumble L=30 R=40 | RGB 1,2,3 | player LEDs=31 | mic LED=2 | adaptive flags=4"
207211
);
208212
}
209213

@@ -251,3 +255,21 @@ TEST(VirtualHidControlModelTest, RecordsOutputsAndMaintainsLatestSummaryFields)
251255
ASSERT_TRUE(state.latest_raw_report.has_value());
252256
EXPECT_EQ(state.latest_raw_report->raw_report, (std::vector<std::uint8_t> {0x12, 0x34}));
253257
}
258+
259+
TEST(VirtualHidControlModelTest, RecordsPlayerAndMicLedOutputs) {
260+
control::OutputState state;
261+
auto next_sequence = std::uint64_t {1};
262+
263+
auto player = output(lvh::GamepadOutputKind::player_led);
264+
player.player_led = 0x1F;
265+
control::record_output(state, player, next_sequence, 8);
266+
267+
auto mic = output(lvh::GamepadOutputKind::mic_led);
268+
mic.mic_led = 2;
269+
control::record_output(state, mic, next_sequence, 8);
270+
271+
ASSERT_TRUE(state.latest_player_led.has_value());
272+
EXPECT_EQ(state.latest_player_led->player_led, 0x1F);
273+
ASSERT_TRUE(state.latest_mic_led.has_value());
274+
EXPECT_EQ(state.latest_mic_led->mic_led, 2);
275+
}

tools/virtualhid_control_model.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,16 @@ namespace lvh::tools::virtualhid_control {
215215
<< static_cast<unsigned>(state.latest_rgb_led->blue);
216216
wrote = true;
217217
}
218+
if (state.latest_player_led) {
219+
append_summary_separator(stream, wrote);
220+
stream << L"player LEDs=" << static_cast<unsigned>(state.latest_player_led->player_led);
221+
wrote = true;
222+
}
223+
if (state.latest_mic_led) {
224+
append_summary_separator(stream, wrote);
225+
stream << L"mic LED=" << static_cast<unsigned>(state.latest_mic_led->mic_led);
226+
wrote = true;
227+
}
218228
if (state.latest_adaptive_triggers) {
219229
append_summary_separator(stream, wrote);
220230
stream << L"adaptive flags=" << static_cast<unsigned>(state.latest_adaptive_triggers->adaptive_trigger_flags);
@@ -284,6 +294,12 @@ namespace lvh::tools::virtualhid_control {
284294
case rgb_led:
285295
state.latest_rgb_led = output;
286296
break;
297+
case player_led:
298+
state.latest_player_led = output;
299+
break;
300+
case mic_led:
301+
state.latest_mic_led = output;
302+
break;
287303
case adaptive_triggers:
288304
state.latest_adaptive_triggers = output;
289305
break;

tools/virtualhid_control_model.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ namespace lvh::tools::virtualhid_control {
5555
std::optional<GamepadOutput> latest_rumble;
5656
std::optional<GamepadOutput> latest_trigger_rumble;
5757
std::optional<GamepadOutput> latest_rgb_led;
58+
std::optional<GamepadOutput> latest_player_led;
59+
std::optional<GamepadOutput> latest_mic_led;
5860
std::optional<GamepadOutput> latest_adaptive_triggers;
5961
std::optional<GamepadOutput> latest_raw_report;
6062
};

0 commit comments

Comments
 (0)