void CServerDriver_Hydra::ScanForNewControllers( bool bNotifyServer ) { for ( int base = 0; base < sixenseGetMaxBases(); ++base ) { if ( sixenseIsBaseConnected( base ) ) { sixenseSetActiveBase( base ); for ( int i = 0; i < sixenseGetMaxControllers(); ++i ) { if ( sixenseIsControllerEnabled( i ) ) { char buf[256]; GenerateSerialNumber( buf, sizeof( buf ), base, i ); scope_lock lock( m_Mutex ); if ( !FindTrackedDeviceDriver( buf, vr::ITrackedDeviceServerDriver_Version ) ) { DriverLog( "added new device %s\n", buf ); m_vecControllers.push_back( new CHydraHmdLatest( m_pDriverHost, base, i ) ); if ( bNotifyServer && m_pDriverHost ) { m_pDriverHost->TrackedDeviceAdded( m_vecControllers.back()->GetSerialNumber() ); } } } } } } }
void CServerDriver_Leap::ScanForNewControllers( bool bNotifyServer ) { while (m_vecControllers.size() < 2) { char buf[256]; int base = 0; int i = m_vecControllers.size(); GenerateSerialNumber( buf, sizeof( buf ), base, i ); if ( !FindTrackedDeviceDriver( buf ) ) { DriverLog( "added new device %s\n", buf ); m_vecControllers.push_back( new CLeapHmdLatest( m_pDriverHost, base, i ) ); if ( bNotifyServer && m_pDriverHost ) { m_pDriverHost->TrackedDeviceAdded( m_vecControllers.back()->GetSerialNumber() ); } } } }