Home | History | Annotate | Download | only in child
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "webkit/child/fling_curve_configuration.h"
      6 
      7 #include "base/logging.h"
      8 #include "third_party/WebKit/public/platform/WebGestureCurve.h"
      9 #include "webkit/child/touch_fling_gesture_curve.h"
     10 
     11 namespace webkit_glue {
     12 
     13 FlingCurveConfiguration::FlingCurveConfiguration() { }
     14 
     15 FlingCurveConfiguration::~FlingCurveConfiguration() { }
     16 
     17 void FlingCurveConfiguration::SetCurveParameters(
     18     const std::vector<float>& new_touchpad,
     19     const std::vector<float>& new_touchscreen) {
     20   DCHECK(new_touchpad.size() >= 3);
     21   DCHECK(new_touchscreen.size() >= 3);
     22   base::AutoLock scoped_lock(lock_);
     23   touchpad_coefs_ = new_touchpad;
     24   touchscreen_coefs_ = new_touchscreen;
     25 }
     26 
     27 blink::WebGestureCurve* FlingCurveConfiguration::CreateCore(
     28     const std::vector<float>& coefs,
     29     const blink::WebFloatPoint& velocity,
     30     const blink::WebSize& cumulativeScroll) {
     31   float p0, p1, p2;
     32 
     33   {
     34     base::AutoLock scoped_lock(lock_);
     35     p0 = coefs[0];
     36     p1 = coefs[1];
     37     p2 = coefs[2];
     38   }
     39 
     40   return TouchFlingGestureCurve::Create(velocity, p0, p1, p2, cumulativeScroll);
     41 }
     42 
     43 blink::WebGestureCurve* FlingCurveConfiguration::CreateForTouchPad(
     44     const blink::WebFloatPoint& velocity,
     45     const blink::WebSize& cumulativeScroll) {
     46   return CreateCore(touchpad_coefs_, velocity, cumulativeScroll);
     47 }
     48 
     49 blink::WebGestureCurve* FlingCurveConfiguration::CreateForTouchScreen(
     50     const blink::WebFloatPoint& velocity,
     51     const blink::WebSize& cumulativeScroll) {
     52   return CreateCore(touchscreen_coefs_, velocity, cumulativeScroll);
     53 }
     54 
     55 } // namespace webkit_glue
     56