| Index: content/browser/gamepad/gamepad_provider.h
|
| diff --git a/content/browser/gamepad/gamepad_provider.h b/content/browser/gamepad/gamepad_provider.h
|
| deleted file mode 100644
|
| index 916138986aa57bec04e4ef94199cf4d00199dff5..0000000000000000000000000000000000000000
|
| --- a/content/browser/gamepad/gamepad_provider.h
|
| +++ /dev/null
|
| @@ -1,168 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CONTENT_BROWSER_GAMEPAD_GAMEPAD_PROVIDER_H_
|
| -#define CONTENT_BROWSER_GAMEPAD_GAMEPAD_PROVIDER_H_
|
| -
|
| -#include <memory>
|
| -#include <utility>
|
| -#include <vector>
|
| -
|
| -#include "base/callback_forward.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/shared_memory.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "base/system_monitor/system_monitor.h"
|
| -#include "content/common/content_export.h"
|
| -#include "third_party/WebKit/public/platform/WebGamepads.h"
|
| -
|
| -namespace base {
|
| -class SingleThreadTaskRunner;
|
| -class Thread;
|
| -}
|
| -
|
| -namespace content {
|
| -
|
| -class GamepadDataFetcher;
|
| -struct GamepadHardwareBuffer;
|
| -
|
| -class CONTENT_EXPORT GamepadProvider :
|
| - public base::SystemMonitor::DevicesChangedObserver {
|
| - public:
|
| - GamepadProvider();
|
| -
|
| - // Manually specifies the data fetcher. Used for testing.
|
| - explicit GamepadProvider(std::unique_ptr<GamepadDataFetcher> fetcher);
|
| -
|
| - ~GamepadProvider() override;
|
| -
|
| - // Returns the shared memory handle of the gamepad data duplicated into the
|
| - // given process.
|
| - base::SharedMemoryHandle GetSharedMemoryHandleForProcess(
|
| - base::ProcessHandle renderer_process);
|
| -
|
| - void GetCurrentGamepadData(blink::WebGamepads* data);
|
| -
|
| - // Pause and resume the background polling thread. Can be called from any
|
| - // thread.
|
| - void Pause();
|
| - void Resume();
|
| -
|
| - // Registers the given closure for calling when the user has interacted with
|
| - // the device. This callback will only be issued once.
|
| - void RegisterForUserGesture(const base::Closure& closure);
|
| -
|
| - // base::SystemMonitor::DevicesChangedObserver implementation.
|
| - void OnDevicesChanged(base::SystemMonitor::DeviceType type) override;
|
| -
|
| - private:
|
| - void Initialize(std::unique_ptr<GamepadDataFetcher> fetcher);
|
| -
|
| - // Method for setting up the platform-specific data fetcher. Takes ownership
|
| - // of |fetcher|.
|
| - void DoInitializePollingThread(std::unique_ptr<GamepadDataFetcher> fetcher);
|
| -
|
| - // Method for sending pause hints to the low-level data fetcher. Runs on
|
| - // polling_thread_.
|
| - void SendPauseHint(bool paused);
|
| -
|
| - // Method for polling a GamepadDataFetcher. Runs on the polling_thread_.
|
| - void DoPoll();
|
| - void ScheduleDoPoll();
|
| -
|
| - void OnGamepadConnectionChange(bool connected,
|
| - int index,
|
| - const blink::WebGamepad& pad);
|
| - void DispatchGamepadConnectionChange(bool connected,
|
| - int index,
|
| - const blink::WebGamepad& pad);
|
| -
|
| - GamepadHardwareBuffer* SharedMemoryAsHardwareBuffer();
|
| -
|
| - // Checks the gamepad state to see if the user has interacted with it.
|
| - void CheckForUserGesture();
|
| -
|
| - enum { kDesiredSamplingIntervalMs = 16 };
|
| -
|
| - // Keeps track of when the background thread is paused. Access to is_paused_
|
| - // must be guarded by is_paused_lock_.
|
| - base::Lock is_paused_lock_;
|
| - bool is_paused_;
|
| -
|
| - // Keep track of when a polling task is schedlued, so as to prevent us from
|
| - // accidentally scheduling more than one at any time, when rapidly toggling
|
| - // |is_paused_|.
|
| - bool have_scheduled_do_poll_;
|
| -
|
| - // Lists all observers registered for user gestures, and the thread which
|
| - // to issue the callbacks on. Since we always issue the callback on the
|
| - // thread which the registration happened, and this class lives on the I/O
|
| - // thread, the message loop proxies will normally just be the I/O thread.
|
| - // However, this will be the main thread for unit testing.
|
| - base::Lock user_gesture_lock_;
|
| - struct ClosureAndThread {
|
| - ClosureAndThread(const base::Closure& c,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& m);
|
| - ClosureAndThread(const ClosureAndThread& other);
|
| - ~ClosureAndThread();
|
| -
|
| - base::Closure closure;
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner;
|
| - };
|
| - typedef std::vector<ClosureAndThread> UserGestureObserverVector;
|
| - UserGestureObserverVector user_gesture_observers_;
|
| -
|
| - // Updated based on notification from SystemMonitor when the system devices
|
| - // have been updated, and this notification is passed on to the data fetcher
|
| - // to enable it to avoid redundant (and possibly expensive) is-connected
|
| - // tests. Access to devices_changed_ must be guarded by
|
| - // devices_changed_lock_.
|
| - base::Lock devices_changed_lock_;
|
| - bool devices_changed_;
|
| -
|
| - bool ever_had_user_gesture_;
|
| -
|
| - class PadState {
|
| - public:
|
| - PadState() {
|
| - SetDisconnected();
|
| - }
|
| -
|
| - bool Match(const blink::WebGamepad& pad) const;
|
| - void SetPad(const blink::WebGamepad& pad);
|
| - void SetDisconnected();
|
| - void AsWebGamepad(blink::WebGamepad* pad);
|
| -
|
| - bool connected() const { return connected_; }
|
| -
|
| - private:
|
| - bool connected_;
|
| - unsigned axes_length_;
|
| - unsigned buttons_length_;
|
| - blink::WebUChar id_[blink::WebGamepad::idLengthCap];
|
| - blink::WebUChar mapping_[blink::WebGamepad::mappingLengthCap];
|
| - };
|
| -
|
| - // Used to detect connections and disconnections.
|
| - std::unique_ptr<PadState[]> pad_states_;
|
| -
|
| - // Only used on the polling thread.
|
| - std::unique_ptr<GamepadDataFetcher> data_fetcher_;
|
| -
|
| - base::Lock shared_memory_lock_;
|
| - base::SharedMemory gamepad_shared_memory_;
|
| -
|
| - // Polling is done on this background thread.
|
| - std::unique_ptr<base::Thread> polling_thread_;
|
| -
|
| - static GamepadProvider* instance_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(GamepadProvider);
|
| -};
|
| -
|
| -} // namespace content
|
| -
|
| -#endif // CONTENT_BROWSER_GAMEPAD_GAMEPAD_PROVIDER_H_
|
|
|