Article View: borland.public.cppbuilder.multimedia
Article #394Joystick Button Problems
From: Edward
Date: Thu, 09 Dec 2004 17:25
Date: Thu, 09 Dec 2004 17:25
122 lines
4129 bytes
4129 bytes
Why i can get the butons 5,6,7 and 8 of my USB Joystick?
Best Regards,
Edward.
My code
void __fastcall TFormPrincipal::FormCreate(TObject *Sender)
{
MMRESULT jr;
JOYINFOEX JoyInfo;
int joycount=joyGetNumDevs();
if (joycount=0)
Memo1->Lines->Add("ok 1");
else
{
connect=false;
jr=joyGetPosEx(JOYSTICKID1,&JoyInfo);
if (jr ==JOYERR_NOERROR)
{
connect=true;
jnum= JOYSTICKID1;
}
else
if (jr == MMSYSERR_INVALPARAM)
ShowMessage("deu merda");
else if((jr=joyGetPosEx(JOYSTICKID2,&JoyInfo)) == JOYERR_NOERROR)
{
connect = true;
jnum= JOYSTICKID2;
}
}
joyGetDevCaps(jnum,&JoyCaps, sizeof(JOYCAPS));
if (connect)
Memo1->Lines->Add("Conected") ;
Memo1->Lines->Add("jnum : "+ IntToStr(jnum));
Memo1->Lines->Add("JoyCaps.szPnam : " + AnsiString(JoyCaps.szPname));
Memo1->Lines->Add("JoyCaps.wNumButtons : " +
IntToStr(JoyCaps.wNumButtons));
if (connect)
{
joySetCapture(Handle,jnum,2*JoyCaps.wPeriodMin,FALSE);
}
stepX = (JoyCaps.wXmax - JoyCaps.wXmin) / PaintBox1->Width;
stepY = (JoyCaps.wYmax - JoyCaps.wYmin) / PaintBox1->Height;
}
//---------------------------------------------------------------------------
void __fastcall TFormPrincipal::FormDestroy(TObject *Sender)
{
if (connect)
joyReleaseCapture(jnum);
}
//---------------------------------------------------------------------------
void __fastcall TFormPrincipal::UpdButton(TMessage &msg)
{
Shape1->Visible= (msg.WParam &JOY_BUTTON1);
Shape2->Visible= (msg.WParam &JOY_BUTTON2);
Shape3->Visible= (msg.WParam &JOY_BUTTON3);
Shape4->Visible= (msg.WParam &JOY_BUTTON4);
Shape5->Visible= (msg.WParam &JOY_BUTTON5);
Shape6->Visible= (msg.WParam &JOY_BUTTON6);
Shape7->Visible= (msg.WParam &JOY_BUTTON7);
Shape8->Visible= (msg.WParam &JOY_BUTTON8);
}
//---------------------------------------------------------------------------
void __fastcall TFormPrincipal::UpdCoord(TMessage &msg)
{
JOYINFO JoyInfo;
TCanvas *pCanvas = PaintBox1->Canvas;
pCanvas->Brush->Color=FormPrincipal->Color;
pCanvas->FillRect(Rect(0,0,PaintBox1->Width,PaintBox1->Height));
Pos.x = msg.LParamLo;
Pos.y = msg.LParamHi;
int x=(Pos.x-JoyCaps.wXmin)/stepX-ImageList1->Width/2;
int y=(Pos.y-JoyCaps.wYmin)/stepY-ImageList1->Height/2;
ImageList1->Draw(pCanvas,x,y,0,true);
}
//---------------------------------------------------------------------------
void __fastcall FormDestroy(TObject *Sender);
void __fastcall UpdButton(TMessage &msg);
void __fastcall UpdCoord(TMessage &msg);
.h
private:
int jnum;
bool connect;
int stepX,stepY;
TPoint Pos;
public:
__fastcall TFormPrincipal(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(MM_JOY1BUTTONDOWN,TMessage,UpdButton);
MESSAGE_HANDLER(MM_JOY1BUTTONUP,TMessage,UpdButton);
MESSAGE_HANDLER(MM_JOY1MOVE,TMessage,UpdCoord);
MESSAGE_HANDLER(MM_JOY2BUTTONDOWN,TMessage,UpdButton);
MESSAGE_HANDLER(MM_JOY2BUTTONUP,TMessage,UpdButton);
MESSAGE_HANDLER(MM_JOY2MOVE,TMessage,UpdCoord);
END_MESSAGE_MAP(TForm);
};
Technical Details
Message-ID:
<41b88a74@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 10d0fc,734fce58ab6581e5,start X-Google-Attributes: gid10d0fc,public X-Google-Language: ENGLISH,ASCII-7-bit Reply-To: "Edward" <eduglobo2004@globo.com> From: "Edward" <eduglobo2004@globo.com> Newsgroups: borland.public.cppbuilder.multimedia Subject: Joystick Button Problems Date: Thu, 9 Dec 2004 15:25:06 -0200 Lines: 125 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-RFC2646: Format=Flowed; Original NNTP-Posting-Host: 200.213.54.55 Message-ID: <41b88a74@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1102613108 200.213.54.55 (9 Dec 2004 09:25:08 -0800) Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail