1bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Copyright (c) 2009 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/chromeos/cros/touchpad_library.h" 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "base/message_loop.h" 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/chromeos/cros/cros_library.h" 9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/browser_thread.h" 10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace chromeos { 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass TouchpadLibraryImpl : public TouchpadLibrary { 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen TouchpadLibraryImpl() {} 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual ~TouchpadLibraryImpl() {} 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void SetSensitivity(int value) { 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen if (CrosLibrary::Get()->EnsureLoaded()) { 20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BrowserThread::PostTask( 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BrowserThread::FILE, FROM_HERE, 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen NewRunnableFunction(&SetTouchpadSensitivity, value)); 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void SetTapToClick(bool enabled) { 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen if (CrosLibrary::Get()->EnsureLoaded()) { 28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BrowserThread::PostTask( 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BrowserThread::FILE, FROM_HERE, 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen NewRunnableFunction(&SetTouchpadTapToClick, enabled)); 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen DISALLOW_COPY_AND_ASSIGN(TouchpadLibraryImpl); 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass TouchpadLibraryStubImpl : public TouchpadLibrary { 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen TouchpadLibraryStubImpl() {} 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual ~TouchpadLibraryStubImpl() {} 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void SetSensitivity(int value) {} 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void SetTapToClick(bool enabled) {} 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 45bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen DISALLOW_COPY_AND_ASSIGN(TouchpadLibraryStubImpl); 46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// static 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTouchpadLibrary* TouchpadLibrary::GetImpl(bool stub) { 50bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen if (stub) 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen return new TouchpadLibraryStubImpl(); 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen else 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen return new TouchpadLibraryImpl(); 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} // namespace chromeos 57