Wiimote: Fixed the speaker status bar status, the status is [Green] [Blue] [Green] that means [On/Off] [Muted/Unmuted] [Activity]

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2142 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
John Peterson 2009-02-08 12:27:04 +00:00
parent e926bc61d1
commit ca0e807db6
6 changed files with 36 additions and 29 deletions

View File

@ -400,33 +400,32 @@ void CWII_IPC_HLE_WiiMote::ShowStatus(const void* _pData)
int speaker_bits = 0; int speaker_bits = 0;
if (SpeakersOn) { if (SpeakersOn)
{
u8 Bits = 0; u8 Bits = 0;
switch (data[1]) { // Enable and disable speakers switch (data[1])
case 0x14: {
// Get the value case 0x14: // Enable and disable speakers
if (data[2] == 0x02) if (data[2] == 0x02) // Off
Bits = 0; Bits = 0;
else if (data[2] == 0x06) else if (data[2] == 0x06) // On
Bits = 1; Bits = 1;
Host_UpdateSpeakerStatus(0, Bits); Host_UpdateSpeakerStatus(0, Bits);
break; break;
case 0x19: // Mute and unmute case 0x19: // Mute and unmute
// Get the value // Get the value
if (data[2] == 0x02) if (data[2] == 0x02) // Unmute
Bits = 0;
else if (data[2] == 0x06)
Bits = 1; Bits = 1;
Host_UpdateSpeakerStatus(0, Bits); else if (data[2] == 0x06) // Mute
Bits = 0;
Host_UpdateSpeakerStatus(1, Bits);
break; break;
// Write to speaker registry, or write sound
case 0x16: case 0x16:
if (data[1] == 0x16) // Write to speaker registry case 0x18:
{ // Turn on the activity light
// Don't care what it does, call all activity Host_UpdateSpeakerStatus(2, 1);
Host_UpdateSpeakerStatus(0, 1);
}
break; break;
} }
} }

View File

@ -306,7 +306,7 @@ wxBitmap CFrame::CreateBitmapForSpeakers(int BitmapType, bool On)
switch(BitmapType) switch(BitmapType)
{ {
case 0: case 0: // Speaker on
{ {
// Set outline and fill colors // Set outline and fill colors
dc.SetPen(On ? *wxMEDIUM_GREY_PEN : *wxMEDIUM_GREY_PEN); dc.SetPen(On ? *wxMEDIUM_GREY_PEN : *wxMEDIUM_GREY_PEN);
@ -317,7 +317,7 @@ wxBitmap CFrame::CreateBitmapForSpeakers(int BitmapType, bool On)
dc.SelectObject(wxNullBitmap); dc.SelectObject(wxNullBitmap);
return bitmap; return bitmap;
} }
case 1: case 1: // Speaker unmuted
{ {
// Set outline and fill colors // Set outline and fill colors
dc.SetPen(On ? *wxMEDIUM_GREY_PEN : *wxMEDIUM_GREY_PEN); dc.SetPen(On ? *wxMEDIUM_GREY_PEN : *wxMEDIUM_GREY_PEN);
@ -328,7 +328,7 @@ wxBitmap CFrame::CreateBitmapForSpeakers(int BitmapType, bool On)
dc.SelectObject(wxNullBitmap); dc.SelectObject(wxNullBitmap);
return bitmap; return bitmap;
} }
case 2: case 2: // Speaker activity
{ {
// Set outline and fill colors // Set outline and fill colors
dc.SetPen(On ? *wxMEDIUM_GREY_PEN : *wxMEDIUM_GREY_PEN); dc.SetPen(On ? *wxMEDIUM_GREY_PEN : *wxMEDIUM_GREY_PEN);

View File

@ -385,7 +385,8 @@ void Host_UpdateBreakPointView()
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////
/* Update Wiimote status bar */ /* Update Wiimote status bar */
// ¯¯¯¯¯¯¯¯¯ // ¯¯¯¯¯¯¯¯¯
void Host_UpdateLeds(int led_bits) { void Host_UpdateLeds(int led_bits)
{
// Convert it to a simpler byte format // Convert it to a simpler byte format
main_frame->g_Leds[0] = led_bits >> 0; main_frame->g_Leds[0] = led_bits >> 0;
main_frame->g_Leds[1] = led_bits >> 1; main_frame->g_Leds[1] = led_bits >> 1;
@ -395,7 +396,8 @@ void Host_UpdateLeds(int led_bits) {
main_frame->UpdateLeds(); main_frame->UpdateLeds();
} }
void Host_UpdateSpeakerStatus(int index, int speaker_bits) { void Host_UpdateSpeakerStatus(int index, int speaker_bits)
{
main_frame->g_Speakers[index] = speaker_bits; main_frame->g_Speakers[index] = speaker_bits;
main_frame->UpdateSpeakers(); main_frame->UpdateSpeakers();
} }
@ -411,6 +413,7 @@ void Host_UpdateStatus()
if(memcmp(main_frame->g_Speakers_, main_frame->g_Speakers, if(memcmp(main_frame->g_Speakers_, main_frame->g_Speakers,
sizeof(main_frame->g_Speakers))) sizeof(main_frame->g_Speakers)))
{ {
// Turn off the activity light again
main_frame->g_Speakers[2] = 0; main_frame->g_Speakers[2] = 0;
main_frame->UpdateSpeakers(); main_frame->UpdateSpeakers();
memcpy(main_frame->g_Speakers_, main_frame->g_Speakers, sizeof(main_frame->g_Speakers)); memcpy(main_frame->g_Speakers_, main_frame->g_Speakers, sizeof(main_frame->g_Speakers));

View File

@ -115,13 +115,14 @@ void HidOutputReport(u16 _channelID, wm_report* sr) {
case WM_WRITE_DATA: // 0x16 case WM_WRITE_DATA: // 0x16
WmWriteData(_channelID, (wm_write_data*)sr->data); WmWriteData(_channelID, (wm_write_data*)sr->data);
break; break;
case WM_SPEAKER_ENABLE: // 0x14 case WM_SPEAKER_ENABLE: // 0x14
LOGV(WII_IPC_WIIMOTE, 1, " WM Speaker Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]); LOGV(WII_IPC_WIIMOTE, 1, " WM Speaker Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
//Console::Print("Speaker Enable/Disable 0x%02x: 0x%02x\n", sr->channel, sr->data[0]); //Console::Print("Speaker Enable/Disable 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
if(sr->data[0] == 0x02) g_Speaker = 0; if(sr->data[0] == 0x02) g_Speaker = 0;
else if(sr->data[0] == 0x06) g_Speaker = 1; else if(sr->data[0] == 0x06) g_Speaker = 1;
break; break;
case WM_SPEAKER_MUTE: case WM_SPEAKER_MUTE: // 0x19
LOGV(WII_IPC_WIIMOTE, 1, " WM Mute Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]); LOGV(WII_IPC_WIIMOTE, 1, " WM Mute Enable 0x%02x: 0x%02x", sr->channel, sr->data[0]);
//Console::Print("Speaker Mute/Unmute 0x%02x: 0x%02x\n", sr->channel, sr->data[0]); //Console::Print("Speaker Mute/Unmute 0x%02x: 0x%02x\n", sr->channel, sr->data[0]);
if(sr->data[0] == 0x02) g_SpeakerVoice = 0; // g_SpeakerVoice if(sr->data[0] == 0x02) g_SpeakerVoice = 0; // g_SpeakerVoice
@ -129,6 +130,7 @@ void HidOutputReport(u16 _channelID, wm_report* sr) {
break; break;
case WM_WRITE_SPEAKER_DATA: // 0x18 case WM_WRITE_SPEAKER_DATA: // 0x18
break; break;
default: default:
PanicAlert("HidOutputReport: Unknown channel 0x%02x", sr->channel); PanicAlert("HidOutputReport: Unknown channel 0x%02x", sr->channel);
return; return;

View File

@ -250,9 +250,6 @@ void FillReportInfo(wm_core& _core)
memset(&_core, 0x00, sizeof(wm_core)); memset(&_core, 0x00, sizeof(wm_core));
#ifdef _WIN32 #ifdef _WIN32
// These keys are reserved for the recording
if ( GetAsyncKeyState(VK_SHIFT) || GetAsyncKeyState(VK_CONTROL) ) return;
// Check that Dolphin is in focus // Check that Dolphin is in focus
if (!IsFocus()) return; if (!IsFocus()) return;

View File

@ -457,9 +457,9 @@ void ReadDebugging(bool Emu, const void* _pData, int Size)
if ((data[4] == 0x10 || data[4] == 0x20 || data[4] == 0x50) && data[5] == 0x00 && (data[6] == 0xfa || data[6] == 0xfe)) if ((data[4] == 0x10 || data[4] == 0x20 || data[4] == 0x50) && data[5] == 0x00 && (data[6] == 0xfa || data[6] == 0xfe))
{ {
if(data[4] == 0x10) if(data[4] == 0x10)
Console::Print("\n\nGame got the encrypted extension ID: %02x%02x\n", data[7], data[8]); TmpData.append(StringFromFormat("Game got the encrypted extension ID: %02x%02x\n", data[7], data[8]));
else if(data[4] == 0x50) else if(data[4] == 0x50)
Console::Print("\n\nGame got the encrypted extension ID: %02x%02x%02x%02x%02x%02x\n", data[7], data[8], data[9], data[10], data[11], data[12]); TmpData.append(StringFromFormat("Game got the encrypted extension ID: %02x%02x%02x%02x%02x%02x\n", data[7], data[8], data[9], data[10], data[11], data[12]));
// We have already sent the data report so we can safely decrypt it now // We have already sent the data report so we can safely decrypt it now
if(WiiMoteEmu::g_Encryption) if(WiiMoteEmu::g_Encryption)
@ -479,6 +479,7 @@ void ReadDebugging(bool Emu, const void* _pData, int Size)
g_Config.Save(); g_Config.Save();
WiiMoteEmu::UpdateEeprom(); WiiMoteEmu::UpdateEeprom();
if (frame) frame->UpdateGUI(); if (frame) frame->UpdateGUI();
Console::Print("%s", TmpData.c_str());
Console::Print("Game got the decrypted extension ID: %02x%02x\n\n", data[7], data[8]); Console::Print("Game got the decrypted extension ID: %02x%02x\n\n", data[7], data[8]);
} }
else if(data[4] == 0x50) else if(data[4] == 0x50)
@ -489,6 +490,7 @@ void ReadDebugging(bool Emu, const void* _pData, int Size)
g_Config.Save(); g_Config.Save();
WiiMoteEmu::UpdateEeprom(); WiiMoteEmu::UpdateEeprom();
if (frame) frame->UpdateGUI(); if (frame) frame->UpdateGUI();
Console::Print("%s", TmpData.c_str());
Console::Print("Game got the decrypted extension ID: %02x%02x%02x%02x%02x%02x\n\n", data[7], data[8], data[9], data[10], data[11], data[12]); Console::Print("Game got the decrypted extension ID: %02x%02x%02x%02x%02x%02x\n\n", data[7], data[8], data[9], data[10], data[11], data[12]);
} }
} }
@ -756,6 +758,10 @@ void InterruptDebugging(bool Emu, const void* _pData)
case WM_SPEAKER_MUTE: // 0x19 case WM_SPEAKER_MUTE: // 0x19
if (g_DebugComm) Name.append("WM_SPEAKER"); if (g_DebugComm) Name.append("WM_SPEAKER");
size = 1; size = 1;
if(data[1] == 0x14)
Console::Print("\nSpeaker %s\n\n", (data[2] == 0x06) ? "On" : "Off");
else if(data[1] == 0x19)
Console::Print("\nSpeaker %s\n\n", (data[2] == 0x06) ? "Muted" : "Unmuted");
break; break;
case WM_WRITE_SPEAKER_DATA: // 0x18 case WM_WRITE_SPEAKER_DATA: // 0x18
if (g_DebugComm) Name.append("WM_SPEAKER_DATA"); if (g_DebugComm) Name.append("WM_SPEAKER_DATA");
@ -851,13 +857,13 @@ void DoInitialize()
// ---------------------------------------- // ----------------------------------------
// Debugging window // Debugging window
// ---------- // ----------
/*Console::Open(130, 1000, "Wiimote"); // give room for 20 rows /**/Console::Open(130, 1000, "Wiimote"); // give room for 20 rows
Console::Print("\n\nWiimote console opened\n"); Console::Print("\n\nWiimote console opened\n");
// Move window // Move window
//MoveWindow(Console::GetHwnd(), 0,400, 100*8,10*14, true); // small window //MoveWindow(Console::GetHwnd(), 0,400, 100*8,10*14, true); // small window
//MoveWindow(Console::GetHwnd(), 400,0, 100*8,70*14, true); // big window //MoveWindow(Console::GetHwnd(), 400,0, 100*8,70*14, true); // big window
MoveWindow(Console::GetHwnd(), 200,0, 130*8,70*14, true); // big wide window*/ MoveWindow(Console::GetHwnd(), 200,0, 130*8,70*14, true); // big wide window
// --------------- // ---------------
// Load config settings // Load config settings