void DBusTimeout::recalculateDueTime() { if(dbus_timeout_get_enabled(libdbusTimeout_)) { unsigned int intervalInMs = dbus_timeout_get_interval(libdbusTimeout_); dueTimeInMs_ = getCurrentTimeInMs() + intervalInMs; } else { dueTimeInMs_ = TIMEOUT_INFINITE; } }
/** * Wird aus dem Java-Code aufgerufen, wenn ein Touch-Ereignis aufgetreten ist. * * @param env Die JNI-Umgebung. * @param obj Das aufrufende Objekt. * @param actionType Aktion des Touch-Ereignisses. * @param x x-Koordinate des Touch-Ereignisses. * @param y y-Koordinate des Touch-Ereignisses. */ JNIEXPORT void JNICALL Java_de_fhwedel_vr2_invisiboga_Invisiboga_nativeTouchEvent(JNIEnv*, jobject, jint actionType, jfloat x, jfloat y) { // Touch-Ereignisse nur behandeln, wenn ein Trackable sichtbar ist if (trackableVisible) { // Prüfung, ob das Ereignis den Start einer Druck-Geste ist if (actionType == ACTION_DOWN) { // Start-Parameter speichern touchEvent.lastPosition.data[0] = x; touchEvent.lastPosition.data[1] = y; touchEvent.startPosition.data[0] = x; touchEvent.startPosition.data[1] = y; touchEvent.startTime = getCurrentTimeInMs(); touchEvent.isTap = false; } else { // letzte Position speichern touchEvent.lastPosition = touchEvent.currentPosition; } // Alter und Distanz berechnen, um das Tippen auf dem Bildschirm erkennen zu können unsigned long time = getCurrentTimeInMs(); touchEvent.lifeTime = time - touchEvent.startTime; touchEvent.startPositionLastPositionDistance = vec2FDistance(touchEvent.lastPosition, touchEvent.startPosition); // Prüfung, ob das Touch-Ereignis das Ende einer Druck-Geste beschreibt if (actionType == ACTION_UP) { touchEvent.isActive = false; // Wenn die Dauer der Geste und die zurückgelegte Distanz bestimmte Schwellwerte // nicht überschreiten, war es ein Tipp. if (touchEvent.lifeTime < MAX_TAP_TIME && touchEvent.startPositionLastPositionDistance < MAX_TAP_SQUARED_DISTANCE) { touchEvent.isTap = true; touchEvent.tapPosition = touchEvent.startPosition; } } else { touchEvent.isActive = true; } // aktuelle Paramter speichern touchEvent.actionType = (ActionType)actionType; touchEvent.currentPosition.data[0] = x; touchEvent.currentPosition.data[1] = y; } }
/** * Führt Initialisierungen durch, nachdem das QCAR-Framework erfogreich initialisiert wurde. * * @param env Die JNI-Umgebung. * @param obj Das aufrufende Objekt. */ JNIEXPORT void JNICALL Java_de_fhwedel_vr2_invisiboga_Invisiboga_onQCARInitializedNative( JNIEnv*, jobject) { LOG("Java_de_fhwedel_vr2_invisiboga_Invisiboga_onQCARInitializedNative"); // Spielfeld-Länge initialisieren field.length = 0; // Zeitpunkt des letzten Frames initialisieren lastFrameTime = getCurrentTimeInMs(); // Spiel initialsieren initGame(); // Zufallsgenerator initialisieren srand(time(NULL)); }
void Timestamp::resetTimer() { m_startTime = getCurrentTimeInMs(); }
double Timestamp::getCurrentTimeinS() const { return (double) getCurrentTimeInMs() / 1000.0; }
unsigned long Timestamp::getElapsedTimeInMs() const { return getCurrentTimeInMs() - m_startTime; }
double Timestamp::getElapsedTimeInS() const { return (double) (getCurrentTimeInMs() - m_startTime)/1000; }
gint64 GStreamerWrapper::getCurrentFrameNumber() { m_iCurrentFrameNumber = floor( (double)getCurrentTimeInMs() / 1000.0 * m_fFps ); return m_iCurrentFrameNumber; }