void Vibration::vibrate(const unsigned long& time) { if (!time) { cancelVibration(); return; } m_pattern.append(time); m_timerStart.startOneShot(0); }
void Vibration::suspendVibration() { if (!m_isVibrating) return; m_pattern.insert(0, m_timerStop.nextFireInterval()); m_timerStop.stop(); cancelVibration(); }
void Vibration::vibrate(const VibrationPattern& pattern) { int length = pattern.size(); // Cancel the pre-existing instance of vibration patterns, if the pattern is 0 or an empty list. if (!length || (length == 1 && !pattern[0])) { cancelVibration(); return; } if (m_isVibrating) cancelVibration(); if (m_timerStart.isActive()) m_timerStart.stop(); m_pattern = pattern; m_timerStart.startOneShot(0); }
bool NavigatorVibration::vibrate(const VibrationPattern& pattern) { VibrationPattern sanitized = pattern; size_t length = sanitized.size(); // If the pattern is too long then truncate it. if (length > kVibrationPatternLengthMax) { sanitized.shrink(kVibrationPatternLengthMax); length = kVibrationPatternLengthMax; } // If any pattern entry is too long then truncate it. for (size_t i = 0; i < length; ++i) { if (sanitized[i] > blink::kVibrationDurationMax) sanitized[i] = blink::kVibrationDurationMax; } // If the last item in the pattern is a pause then discard it. if (length && !(length % 2)) sanitized.removeLast(); // Cancelling clears the stored pattern so do it before setting the new one. if (m_isVibrating) cancelVibration(); m_pattern = sanitized; if (m_timerStart.isActive()) m_timerStart.stop(); if (!m_pattern.size()) return true; if (m_pattern.size() == 1 && !m_pattern[0]) { m_pattern.clear(); return true; } m_timerStart.startOneShot(0, FROM_HERE); m_isVibrating = true; return true; }
bool NavigatorVibration::vibrate(const VibrationPattern& pattern) { size_t length = pattern.size(); // If the pattern is too long then abort. if (length > kVibrationPatternLengthMax) return false; // If any pattern entry is too long then abort. for (size_t i = 0; i < length; ++i) { if (pattern[i] > kVibrationDurationMax) return false; } // Cancelling clears the pattern so do this before setting the new pattern. if (m_isVibrating) cancelVibration(); // If the last item in the pattern is a pause then discard it. if (length && !(length % 2)) { VibrationPattern tempPattern = pattern; tempPattern.removeLast(); m_pattern = tempPattern; } else { m_pattern = pattern; } if (m_timerStart.isActive()) m_timerStart.stop(); if (!m_pattern.size()) return true; if (m_pattern.size() == 1 && !m_pattern[0]) { m_pattern.clear(); return true; } m_timerStart.startOneShot(0); return true; }
bool NavigatorVibration::vibrate(const VibrationPattern& pattern) { // Cancelling clears the stored pattern so do it before setting the new one. if (m_isVibrating) cancelVibration(); m_pattern = sanitizeVibrationPatternInternal(pattern); if (m_timerStart.isActive()) m_timerStart.stop(); if (!m_pattern.size()) return true; if (m_pattern.size() == 1 && !m_pattern[0]) { m_pattern.clear(); return true; } m_timerStart.startOneShot(0, FROM_HERE); m_isVibrating = true; return true; }
void VibrationClientBlackBerry::vibrationDestroyed() { cancelVibration(); delete this; }
NavigatorVibration::~NavigatorVibration() { if (m_isVibrating) cancelVibration(); }
void NavigatorVibration::didCommitLoad(LocalFrame* frame) { // A new load has been committed, which means the current page will be // unloaded. Cancel all running vibrations. cancelVibration(); }
void NavigatorVibration::pageVisibilityChanged() { if (page()->visibilityState() != PageVisibilityStateVisible) cancelVibration(); }
void WebVibrationProxy::invalidate() { cancelVibration(); m_provider.initialize(0); }
void NavigatorVibration::pageVisibilityChanged() { if (!page()->isPageVisible()) cancelVibration(); }