Skip to content

Commit 5729a4f

Browse files
committed
Detect more motionplus modes
1 parent 00d0378 commit 5729a4f

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

src/input/api/Wiimote/WiimoteControllerProvider.cpp

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,28 +1030,37 @@ bool WiimoteControllerProvider::identify_extension(WiimoteState& state, size_t c
10301030
state.m_extension = NunchuckData{};
10311031
return true;
10321032
case kExtensionClassic:
1033-
wiimote_log( "Extension Type Received: Classic");
1033+
wiimote_log("Extension Type Received: Classic");
10341034
state.m_extension = ClassicData{};
10351035
return true;
10361036
case kExtensionClassicPro:
1037-
wiimote_log( "Extension Type Received: Classic Pro");
1037+
wiimote_log("Extension Type Received: Classic Pro");
10381038
return true;
10391039
case kExtensionGuitar:
1040-
wiimote_log( "Extension Type Received: Guitar");
1040+
wiimote_log("Extension Type Received: Guitar");
10411041
return true;
10421042
case kExtensionDrums:
1043-
wiimote_log( "Extension Type Received: Drums");
1043+
wiimote_log("Extension Type Received: Drums");
10441044
return true;
10451045
case kExtensionBalanceBoard:
1046-
wiimote_log( "Extension Type Received: Balance Board");
1046+
wiimote_log("Extension Type Received: Balance Board");
10471047
return true;
1048+
case kExtensionMotionPlusBuiltin:
10481049
case kExtensionMotionPlus:
1049-
wiimote_log( "Extension Type Received: MotionPlus");
1050+
wiimote_log("Extension Type Received: MotionPlus");
10501051
set_motion_plus(controllerIndex, true);
10511052
state.m_motion_plus = MotionPlusData{};
10521053
return true;
1053-
case kExtensionPartialyInserted:
1054-
wiimote_log( "Extension only partially inserted");
1054+
case kExtensionMotionPlusDeactivated:
1055+
wiimote_log("Extension Type Received: MotionPlus deactivated by other extension");
1056+
return true;
1057+
case kExtensionMotionPlusActivated:
1058+
wiimote_log("Extension Type Received: Activated MotionPlus");
1059+
if (!state.m_motion_plus)
1060+
state.m_motion_plus = MotionPlusData{};
1061+
return true;
1062+
case kExtensionPartiallyInserted:
1063+
wiimote_log("Extension only partially inserted");
10551064
state.m_extension = {};
10561065
request_status(controllerIndex);
10571066
return true;

src/input/api/Wiimote/WiimoteMessages.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,13 @@ enum ExtensionType : uint64
5252
kExtensionGuitar = 0x0000A4200103,
5353
kExtensionDrums = 0x0100A4200103,
5454
kExtensionBalanceBoard = 0x2A2C,
55+
kExtensionMotionPlusBuiltin = 0xA4200005,
56+
kExtensionMotionPlusActivated = 0xA4200405,
5557

56-
kExtensionMotionPlus = 0xa6200005,
58+
kExtensionMotionPlus = 0xA6200005,
59+
kExtensionMotionPlusDeactivated = 0xA6200405,
5760

58-
kExtensionPartialyInserted = 0xffffffffffff,
61+
kExtensionPartiallyInserted = 0xFFFFFFFFFFFF
5962
};
6063

6164
enum MemoryType : uint8

0 commit comments

Comments
 (0)