@@ -137,6 +137,40 @@ static s32 __wpad_onreset(s32 final)
137137 return 1 ;
138138}
139139
140+ u32 __WPADClearActiveList (void )
141+ {
142+ u32 level ,ret ;
143+
144+ _CPU_ISR_Disable (level );
145+
146+ if (CONF_GetPadDevices (& __wpad_devs ) < 0 ) {
147+ ret = 1 ;
148+ goto err ;
149+ }
150+
151+ __wpads_active = 0 ;
152+ __wpads_used = 0 ;
153+ memset (__wpad_devs .active ,0 ,sizeof (__wpad_devs .active ));
154+ memset (& __wpad_guests ,0 ,sizeof (__wpad_guests ));
155+ memset (__wpad_guest_keys ,0 ,sizeof (__wpad_guest_keys ));
156+
157+ if (CONF_SetPadDevices (& __wpad_devs ) < 0 ) {
158+ ret = 1 ;
159+ goto err ;
160+ }
161+
162+ if (CONF_SetPadGuestDevices (& __wpad_guests ) < 0 ) {
163+ ret = 1 ;
164+ goto err ;
165+ }
166+
167+ ret = CONF_SaveChanges ();
168+
169+ err :
170+ _CPU_ISR_Restore (level );
171+ return ret ;
172+ }
173+
140174static void __wpad_def_powcb (s32 chan )
141175{
142176 SYS_DoPowerCB ();
@@ -939,7 +973,7 @@ static s8 __wpad_connreqCB(void *arg,struct bd_addr *pad_addr,u8 *cod,u8 link_ty
939973 int slot = WPAD_MAX_DEVICES ;
940974 int confslot = CONF_PAD_MAX_ACTIVE ;
941975 struct bd_addr bdaddr ;
942- u8 * name = NULL ;
976+ const u8 * name = NULL ;
943977
944978 WIIUSE_DEBUG ("__wpad_connreqCB" );
945979 _CPU_ISR_Disable (level );
@@ -950,7 +984,7 @@ static s8 __wpad_connreqCB(void *arg,struct bd_addr *pad_addr,u8 *cod,u8 link_ty
950984 confslot = GetActiveSlot (pad_addr );
951985 if (confslot < CONF_PAD_MAX_ACTIVE ) {
952986 BD_ADDR_FROM_BYTES (& bdaddr ,__wpad_devs .active [confslot ].bdaddr );
953- name = (u8 * )__wpad_devs .active [confslot ].name ;
987+ name = (const u8 * )__wpad_devs .active [confslot ].name ;
954988 WIIUSE_DEBUG ("Active pad '%s' found in slot %d" , name , confslot );
955989 if (!(__wpads_used & (1 <<confslot )) || bd_addr_cmp (pad_addr ,& bdaddr ))
956990 slot = confslot ;
@@ -962,7 +996,7 @@ static s8 __wpad_connreqCB(void *arg,struct bd_addr *pad_addr,u8 *cod,u8 link_ty
962996 for (i = 0 ; i < CONF_PAD_MAX_REGISTERED ; i ++ ) {
963997 BD_ADDR_FROM_BYTES (& bdaddr ,__wpad_devs .registered [i ].bdaddr );
964998 if (bd_addr_cmp (pad_addr ,& bdaddr )) {
965- name = (u8 * )__wpad_devs .registered [i ].name ;
999+ name = (const u8 * )__wpad_devs .registered [i ].name ;
9661000 WIIUSE_DEBUG ("Registered pad '%s' found in slot %d" , name , i );
9671001
9681002 // Not active, try to make active
0 commit comments