Example #1
0
/*
 * Class:     visad_java3d_TrackdJNI
 * Method:    init_trackd_c
 * Signature: (II[I)V
 */
  JNIEXPORT void JNICALL Java_visad_java3d_TrackdJNI_init_1trackd_1c
    (JNIEnv *env, jobject obj, jint tracker_shmkey,
     jint controller_shmkey, jintArray status_j) {

    jint *status = (*env)->GetIntArrayElements(env, status_j, 0);
    tracker = (void *) trackdInitTrackerReader(tracker_shmkey);
    controller = (void *) trackdInitControllerReader(controller_shmkey);
    status[0] = 0;
    if (tracker == NULL) status[0] += 1;
    if (controller == NULL) status[0] += 2;
    (*env)->ReleaseIntArrayElements(env, status_j, status, 0);
  }
Example #2
0
TrackDClient::TrackDClient(
        int                          trackerShMemKey,
        int                          wandShMemKey,
        const Array<std::string>     &trackerEventsToGenerate,
        const double                 &trackerUnitsToRoomUnitsScale,
        const CoordinateFrame        &deviceToRoom,
        const Array<CoordinateFrame> &propToTracker,
        const Array<CoordinateFrame> &finalOffset,
        const Array<std::string>     &buttonEventsToGenerate,
        const Array<std::string>     &valuatorEventsToGenerate)
{
  _tEventNames = trackerEventsToGenerate;
  _trackerUnitsToRoomUnitsScale = trackerUnitsToRoomUnitsScale;
  _deviceToRoom = deviceToRoom;
  _propToTracker = propToTracker;
  _finalOffset = finalOffset;
  _bEventNames = buttonEventsToGenerate;
  _vEventNames = valuatorEventsToGenerate;
  
  _trackerMemory = trackdInitTrackerReader(trackerShMemKey);
  if (_trackerMemory == NULL) {
    cerr << "TrackDClient:: Could not initialize tracker reader." << endl;
    exit(1);
  }
  
  _wandMemory = trackdInitControllerReader(wandShMemKey);
  if (_wandMemory == NULL) {
    cerr << "TrackDClient:: Could not initialize wand reader." << endl;
    exit(1);
  }
  
  _numSensors = trackdGetNumberOfSensors(_trackerMemory);
  _numButtons = trackdGetNumberOfButtons(_wandMemory);
  for (int i=0;i<_numButtons;i++) {
    _buttonStates.append(0);
  }
  _numValuators = trackdGetNumberOfValuators(_wandMemory);
  for (int i=0;i<_numValuators;i++) {
    _valuatorStates.append(0.0);
  }
}