Example #1
0
static
void
handleJoyMotion(const SDL_JoyAxisEvent &event)
{
  int joy=event.which;
  assert(joyDevMap);
  if ((joy<0)||(joy>=(int)joyDevMap->size())) return;
  
  int dev=(*joyDevMap)[joy];
  assert(devState);
  if ((dev<0)||(dev>=(int)devState->size())) return;
  
  Input::DevState &m_state((*devState)[dev]);
  Input::DevState old(m_state);

  switch (event.axis) {
  case 0: 
    m_state.x=joyScale(event.value);
    break;
  case 1:
    m_state.y=joyScale(-event.value);
    break;
  }

  if (m_state!=old)
    Input::devStateHandler(m_state);
}
// onDrawScene
void DlgSplineTest::onDrawScene()
{
	// draw spline
	D3DPaint().setFill(RGBA(0, 1, 0));
	D3DPaint().splinePath(m_path);

	m_state();
}
Example #3
0
//! \return true if it was a device key (the key was handled)  
static
bool
handleDevKey(const SDL_KeyboardEvent &e, int keyDev)
{
  // map keyboard dev no to real dev no
  assert((keyDev>=0)&&(keyDev<2));
  int dev=keyDevMap[keyDev];
  assert(devState);
  assert((dev>=0)&&(dev<(int)devState->size()));
  
  Input::DevState &m_state((*devState)[dev]);
  Input::DevState old(m_state);
  bool pressed=e.state==SDL_PRESSED;
  SDLKey k(e.keysym.sym);
  if (k==keys[keyDev][0]) {
    // up
    if (pressed) m_state.y=1;
    else if (m_state.y==1) m_state.y=0;
  }else if (k==keys[keyDev][1]) {
    // down
    if (pressed) m_state.y=-1;
    else if (m_state.y==-1) m_state.y=0;
  }else if (k==keys[keyDev][2]) {
    // left 
    if (pressed) m_state.x=-1;
    else if (m_state.x==-1) m_state.x=0;
  }else if (k==keys[keyDev][3]) {
    // right
    if (pressed) m_state.x=1;
    else if (m_state.x==1) m_state.x=0;
  }else if (k==keys[keyDev][4]) {
    // button 1
    if (pressed) m_state.buttons|=1;
    else m_state.buttons&=~1;
  }else if (k==keys[keyDev][5]) {
    // button 1
    if (pressed) m_state.buttons|=2;
    else m_state.buttons&=~2;
  }
  if (m_state!=old) {
    Input::devStateHandler(m_state);
    return true;
  }
  return false;
}
Example #4
0
static
void
handleJoyButton(const SDL_JoyButtonEvent &e)
{
  int joy=e.which;
  assert(joyDevMap);
  if ((joy<0)||(joy>=(int)joyDevMap->size())) return;
  
  int dev=(*joyDevMap)[joy];
  assert(devState);
  if ((dev<0)||(dev>=(int)devState->size())) return;
  
  Input::DevState &m_state((*devState)[dev]);
  Input::DevState old(m_state);

  if (e.state==SDL_PRESSED)
    m_state.buttons|=1<<e.button;
  else
    m_state.buttons&=~(1<<e.button);

  if (m_state!=old)
    Input::devStateHandler(m_state);
}