JoyStick implementation with GLUT

Is there any function which can detect
JoyStick’s data change and call the renderscene
again.
Like glutKeyboardFunc can detect the Keyboard’s
data changed .
I checked all the GLUT Callback Registration
function, but found nothing about JoyStick.
Anyone helps?
Thanks A Lot!!!

Just poll it in another callback, joystick input is not generally event driven.

You don’t need a callback called “handle_joystick”.

Your question suggests architectural flaws. Event driven rendering is OK fo rsome GUI applications, but you really want a rendering loop with ongoing updates and rendering for animation, polling a joystick in the midst of this need not invok erendering, merely act as an input to the update function, motion and animation through rendering will happen with or without a change in joystick input.

Hi Neru

Few years ago,I wrote a program to read the joystick using an extension of glut called
gameglut.It should be part of glut 3.7 according
to Q41 of the glut FAQ section.

Here’s the code I used:

int   button1 = 0;
int   button2 = 0;
int   button3 = 0;
int   button4 = 0;
int   button5 = 0;
int   button6 = 0;
int   button7 = 0;
int   button8 = 0;
int   x_axis  = 0;
int   y_axis  = 0;
int   z_axis  = 0;

void joystick(unsigned int buttonmask, int x, int y, int z)
{
     x_axis  = x;
     y_axis  = y;
     z_axis  = z;
    
   if (buttonmask & 0x01)  button1 = 1;
   else  button1 = 0;
 
   if (buttonmask & 0x02) button2 = 1;
   else button2 = 0;

   if (buttonmask & 0x04) button3 = 1;
   else button3 = 0;

   if (buttonmask & 0x08) button4 = 1;
   else button4 = 0;

   if (buttonmask & 0x10) button5 = 1;
   else button5 = 0;

   if (buttonmask & 0x20) button6 = 1;
   else button6 = 0;

   if (buttonmask & 0x40) button7 = 1;
   else button7 = 0;

   if (buttonmask & 0x80) button8 = 1;
   else button8 = 0;

}   

  
glutJoystickFunc(joystick, 25);

25 is the # of msec between each sampling of the
joystick.

Hope it helps.
Claude