Added someone's addition to Wiiuse that allows some Wii balance board features.

http://www.wiiuse.net/forums/viewtopic.php?f=3&t=181&sid=a9460693620dd73fed22b10259a610b4

This is hasn't being built and is untested.

If anyone has the required hid files can they send them to me please on the forum.
Anyway this shouldn't break anything at all.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3304 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
death2droid
2009-06-01 08:39:05 +00:00
parent 2cca6f4a9d
commit fa7daf298b
7 changed files with 299 additions and 2 deletions

View File

@ -56,6 +56,7 @@
#include "nunchuk.h"
#include "classic.h"
#include "guitar_hero_3.h"
#include "wiiboard.h"
#include "events.h"
static void idle_cycle(struct wiimote_t* wm);
@ -635,6 +636,9 @@ static void handle_expansion(struct wiimote_t* wm, byte* msg) {
case EXP_GUITAR_HERO_3:
guitar_hero_3_event(&wm->exp.gh3, msg);
break;
case EXP_WII_BOARD:
wii_board_event(&wm->exp.wb, msg);
break;
default:
break;
}
@ -704,6 +708,12 @@ void handshake_expansion(struct wiimote_t* wm, byte* data, unsigned short len) {
wm->event = WIIUSE_GUITAR_HERO_3_CTRL_INSERTED;
break;
}
case EXP_ID_CODE_WII_BOARD:
{
if (wii_board_handshake(wm, &wm->exp.wb, data, len))
wm->event = WIIUSE_WII_BOARD_CTRL_INSERTED;
break;
}
default:
{
WIIUSE_WARNING("Unknown expansion type. Code: 0x%x", wid);
@ -744,6 +754,10 @@ void disable_expansion(struct wiimote_t* wm) {
guitar_hero_3_disconnected(&wm->exp.gh3);
wm->event = WIIUSE_GUITAR_HERO_3_CTRL_REMOVED;
break;
case EXP_WII_BOARD://Fix me
wii_board_disconnected(&wm->exp.wb);
wm->event = WIIUSE_WII_BOARD_CTRL_REMOVED;
break;
default:
break;
}
@ -794,7 +808,6 @@ static void save_state(struct wiimote_t* wm) {
wm->lstate.exp_r_shoulder = wm->exp.gh3.whammy_bar;
wm->lstate.exp_btns = wm->exp.gh3.btns;
break;
case EXP_NONE:
break;
}
@ -890,6 +903,14 @@ static int state_changed(struct wiimote_t* wm) {
STATE_CHANGED(wm->lstate.exp_btns, wm->exp.gh3.btns);
break;
}
case EXP_WII_BOARD:
{
STATE_CHANGED(wm->exp.wb.ltr,wm->exp.wb.tr);
STATE_CHANGED(wm->exp.wb.ltl,wm->exp.wb.tl);
STATE_CHANGED(wm->exp.wb.lbr,wm->exp.wb.br);
STATE_CHANGED(wm->exp.wb.lbl,wm->exp.wb.bl);
break;
}
case EXP_NONE:
{
break;