Ejemplo n.º 1
0
bool MxGamePadDX::poll( const double deltaSeconds )
{
    if( _pDIDevice == 0 )
        return( false );

    HRESULT rc = _pDIDevice->Poll();
    if( ( rc != DI_OK ) && ( rc != DI_NOEFFECT ) )
    {
        osg::notify( osg::WARN ) << "MxGamePadDX::poll: failure." << std::endl;
        _pDIDevice->Acquire();            // try to reacquire device if lost it
        return( false );
    }

    // read the raw device state information in DirectInput format.
    DIJOYSTATE2 devState;
    if( _pDIDevice->GetDeviceState( sizeof( DIJOYSTATE2 ), &devState ) != DI_OK )
    {
        osg::notify( osg::WARN ) << "MxGamePadDX::poll: GetDeviceState failed." << std::endl;
        return( false ); // Something went wrong.
    }

    // Button pressed or not pressed could alter behavior of sticks/dpad,
    // so process buttons first.
    processButtons( devState, deltaSeconds );
    processSticks( devState, deltaSeconds );
    processDPad( devState );

    return( true ); // Success.
}
Ejemplo n.º 2
0
void MenuStack::process() {
#ifdef DEBUG_MENU_STACK_VERBOSE
    Serial.println("menu stack process - begin");
#endif
    processButtons();
    performUpdateMenu();
#ifdef DEBUG_MENU_STACK_VERBOSE
    Serial.println("menu stack process - end");
#endif
}
Ejemplo n.º 3
0
void buttons_update()
{
	static millis8_t lastUpdate;

	millis8_t now = millis();
	if((millis8_t)(now - lastUpdate) >= 10)
	{
		lastUpdate = now;
		processButtons();
	}		
}
Ejemplo n.º 4
0
void SerialThrustMasterBase::decode(const std::vector<unsigned char>& data) {
    forwardBackwardPivot.setValue(data[0]);
    twist.setValue(data[1]);
    leftRightPivot.setValue(data[2]);
    leftRightTranslation.setValue(data[3]);
    upDownTranslation.setValue(data[4]);
    forwardBackwardTranslation.setValue(data[5]);
    trigger.setValue(data[8] & 1 ? 1 : data[8] & 2 ? -1 : 0);

    processButtons(data[8]);
}
Ejemplo n.º 5
0
bool TraktorF1MK2::read()
{
  Transfer input;

  if (!readFromDeviceHandle(input, kF1MK2_epInput))
  {
    return false;
  }
  else if (input && input[0] == 0x01)
  {
    processButtons(input);
  }

  return true;
}
Ejemplo n.º 6
0
void Controller::processControllerState( const ::vr::VRControllerState_t& state )
{
	// Skip if the packet number is the same
	if( mPacketNum == state.unPacketNum ) {
		return;
	}

	// Update packet number
	mPacketNum = state.unPacketNum;

	// Process it all
	processButtons( state );
	processTriggers( state );
	processAxes( state );
}
Ejemplo n.º 7
0
/*******************************************************************************
* Function Name: int  main( void )
********************************************************************************/
int main(void)
{
    uint32  i;
    
    CyGlobalIntEnable; /* Enable global interrupts. */

    EZI2C_Start();
    #ifdef ENABLE_TUNER
    EZI2C_EzI2CSetBuffer1(sizeof(CapSense_dsRam), sizeof(CapSense_dsRam),(uint8 *)&CapSense_dsRam);        
    #else
    EZI2C_EzI2CSetBuffer1(sizeof(I2Cbuf), RW, (void *) &I2Cbuf);     
    #endif   
    
    SmartIO_Start();    
    VDAC_Start();
    PVref_ALS_Start();
    Opamp_ALS1_Start();
    Opamp_ALS2_Start();
    PVref_Therm_Start();
    Opamp_Therm_Start();    
    ADC_Start();
    ADC_IRQ_Enable();
    
    CapSense_Start();   
    /* Over-ride IDAC values for buttons but keep auto for Prox and Humidity */
    CapSense_BUTTON0_IDAC_MOD0_VALUE =          7u;
    CapSense_BUTTON0_SNS0_IDAC_COMP0_VALUE =    6u;
    CapSense_BUTTON1_IDAC_MOD0_VALUE =          7u;
    CapSense_BUTTON1_SNS0_IDAC_COMP0_VALUE =    7u;
    CapSense_BUTTON2_IDAC_MOD0_VALUE =          9u;
    CapSense_BUTTON2_SNS0_IDAC_COMP0_VALUE =    7u;
    CapSense_BUTTON3_IDAC_MOD0_VALUE =          9u;
    CapSense_BUTTON3_SNS0_IDAC_COMP0_VALUE =    8u;
    /* Setup first widget and run the scan */    
    CapSense_SetupWidget(CapSense_BUTTON0_WDGT_ID);
    CapSense_Scan();      
    
    /* Start SysTick Timer to give a 1ms interrupt */
    CySysTickStart();
    /* Find unused callback slot and assign the callback. */
    for (i = 0u; i < CY_SYS_SYST_NUM_OF_CALLBACKS; ++i)
    {
        if (CySysTickGetCallback(i) == NULL)
        {
            /* Set callback */
            CySysTickSetCallback(i, SysTickISRCallback);
            break;
        }
    }
    
    /* Initialize I2C and local data registers to 0's */
    I2Cbuf.dacVal = 0.0;
    I2Cbuf.ledVal = 0x00;
    I2Cbuf.ledControl = 0x00;
    I2Cbuf.buttonVal = 0x00;
    I2Cbuf.temperature = 0.0;
    I2Cbuf.humidity = 0.0;
    I2Cbuf.illuminance = 0.0;
    I2Cbuf.potVal = 0.0;
    
    LocData.dacVal = 0.0;
    LocData.ledVal = 0x00;
    LocData.ledControl = 0x00;
    LocData.buttonVal = 0x00;
    LocData.temperature = 0.0;
    LocData.humidity = 0.0;
    LocData.illuminance = 0.0;
    LocData.potVal = 0.0;
    
    for(;;)
    {
        processButtons();  /* Mechanical buttons and bootloader entry */
        processCapSense(); /* CapSense Scanning */
        processDAC();      /* VDAC output voltage setting */
        processADC();      /* Process ADC results after each scan completes */
        processI2C();      /* Copy date between I2C registers and local operating registers */
    }
} /* End of main */