Example #1
0
void SG_EXPORT _sgJoystickUpdate(void)
{
    SGenum i, j;
    for(i = 0; i < _sg_joyNum; i++)
        for(j = 0; j < _sg_joyJoys[i]->numbuttons; j++)
            if(_sg_joyJoys[i]->bcurr[j])
                sgEntityEventSignal(1, (SGenum)SG_EVF_JOYSTICKBUTH, i, j);
}
Example #2
0
void SG_CALL _sg_cbJoystickMove(SGuint joy, SGuint axis, float pos)
{
    memcpy(_sg_joyJoys[joy]->aprev, _sg_joyJoys[joy]->acurr, _sg_joyJoys[joy]->numaxis * sizeof(float));
    _sg_joyJoys[joy]->acurr[axis] = pos;
    size_t i;
    for(i = 0; i < _sg_joyJoys[joy]->numaxis; i++)
        _sg_joyJoys[joy]->adelt[i] = _sg_joyJoys[joy]->acurr[i] - _sg_joyJoys[joy]->aprev[i];

    sgEntityEventSignal(1, (SGenum)SG_EVF_JOYSTICKMOVE, joy, _sg_joyJoys[joy]->acurr, _sg_joyJoys[joy]->numaxis);
}
Example #3
0
void SG_EXPORT _sg_cbJoystickMove(void* joystick, float* axis)
{
    SGuint joy = 0;
    if(psgmCoreJoystickGetID != NULL)
        psgmCoreJoystickGetID(joystick, &joy);

    memcpy(_sg_joyJoys[joy]->aprev, _sg_joyJoys[joy]->acurr, _sg_joyJoys[joy]->numaxis * sizeof(float));
    memcpy(_sg_joyJoys[joy]->acurr, axis, _sg_joyJoys[joy]->numaxis * sizeof(float));
    size_t i;
    for(i = 0; i < _sg_joyJoys[joy]->numaxis; i++)
        _sg_joyJoys[joy]->adelt[i] = _sg_joyJoys[joy]->acurr[i] - _sg_joyJoys[joy]->aprev[i];

    sgEntityEventSignal(1, (SGenum)SG_EVF_JOYSTICKMOVE, joy, axis, _sg_joyJoys[joy]->numaxis);
}
Example #4
0
void SG_CALL _sg_cbJoystickButton(SGuint joy, SGuint button, SGbool down)
{
    _sg_joyJoys[joy]->bprev[button] = _sg_joyJoys[joy]->bcurr[button];
    _sg_joyJoys[joy]->bcurr[button] = down;

    SGbool pressed = _sg_joyJoys[joy]->bcurr[button] && !_sg_joyJoys[joy]->bprev[button];

    SGenum evt = 0;
    if(pressed)
        evt = SG_EVF_JOYSTICKBUTP;
    else if(!down)
        evt = SG_EVF_JOYSTICKBUTR;
    else
        return;

    sgEntityEventSignal(1, evt, joy, button);
}
Example #5
0
void SG_EXPORT _sg_cbJoystickButton(void* joystick, SGuint button, SGbool down)
{
    SGuint joy = 0;
    if(psgmCoreJoystickGetID != NULL)
        psgmCoreJoystickGetID(joystick, &joy);

    _sg_joyJoys[joy]->bprev[button] = _sg_joyJoys[joy]->bcurr[button];
    _sg_joyJoys[joy]->bcurr[button] = down;

    SGbool pressed = _sg_joyJoys[joy]->bcurr[button] && !_sg_joyJoys[joy]->bprev[button];

    SGenum evt = 0;
    if(pressed)
        evt = SG_EVF_JOYSTICKBUTP;
    else if(!down)
        evt = SG_EVF_JOYSTICKBUTR;
    else
        return;

    sgEntityEventSignal(1, evt, joy, button);
}