| Index: trunk/src/media/base/user_input_monitor.h
|
| ===================================================================
|
| --- trunk/src/media/base/user_input_monitor.h (revision 217773)
|
| +++ trunk/src/media/base/user_input_monitor.h (working copy)
|
| @@ -1,99 +0,0 @@
|
| -// Copyright 2013 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 MEDIA_BASE_USER_INPUT_MONITOR_H_
|
| -#define MEDIA_BASE_USER_INPUT_MONITOR_H_
|
| -
|
| -#include <set>
|
| -
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "media/base/media_export.h"
|
| -#include "ui/base/events/event_constants.h"
|
| -#include "ui/base/keycodes/keyboard_codes.h"
|
| -
|
| -struct SkIPoint;
|
| -
|
| -namespace base {
|
| -class SingleThreadTaskRunner;
|
| -} // namespace base
|
| -
|
| -namespace media {
|
| -
|
| -// Monitors and notifies about mouse movements and keyboard events.
|
| -// Thread safe. The thread on which the listenters are called is not guaranteed.
|
| -// The callers should not perform expensive/blocking tasks in the callback since
|
| -// it might be called on the browser UI/IO threads.
|
| -class MEDIA_EXPORT UserInputMonitor {
|
| - public:
|
| - // The interface to receive mouse movement events.
|
| - class MEDIA_EXPORT MouseEventListener {
|
| - public:
|
| - // |position| is the new mouse position.
|
| - virtual void OnMouseMoved(const SkIPoint& position) = 0;
|
| -
|
| - protected:
|
| - virtual ~MouseEventListener() {}
|
| - };
|
| - // The interface to receive key stroke events.
|
| - class MEDIA_EXPORT KeyStrokeListener {
|
| - public:
|
| - // Called when any key is pressed. Called only once until the key is
|
| - // released, i.e. holding down a key for a long period will generate one
|
| - // callback just when the key is pressed down.
|
| - virtual void OnKeyStroke() = 0;
|
| -
|
| - protected:
|
| - virtual ~KeyStrokeListener() {}
|
| - };
|
| -
|
| - virtual ~UserInputMonitor();
|
| -
|
| - // Creates a platform-specific instance of UserInputMonitor.
|
| - // |io_task_runner| is the task runner for an IO thread.
|
| - // |ui_task_runner| is the task runner for a UI thread.
|
| - static scoped_ptr<UserInputMonitor> Create(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner);
|
| -
|
| - // The same |listener| should only be added once.
|
| - // The clients should make sure to call Remove*Listener before |listener| is
|
| - // destroyed.
|
| - void AddMouseListener(MouseEventListener* listener);
|
| - void RemoveMouseListener(MouseEventListener* listener);
|
| - void AddKeyStrokeListener(KeyStrokeListener* listener);
|
| - void RemoveKeyStrokeListener(KeyStrokeListener* listener);
|
| -
|
| - protected:
|
| - UserInputMonitor();
|
| -
|
| - // Called by the platform-specific sub-classes to propagate the events to the
|
| - // listeners.
|
| - void OnMouseEvent(const SkIPoint& position);
|
| - void OnKeyboardEvent(ui::EventType event, ui::KeyboardCode key_code);
|
| -
|
| - private:
|
| - virtual void StartMouseMonitoring() = 0;
|
| - virtual void StopMouseMonitoring() = 0;
|
| - virtual void StartKeyboardMonitoring() = 0;
|
| - virtual void StopKeyboardMonitoring() = 0;
|
| -
|
| - base::Lock lock_;
|
| - ObserverList<MouseEventListener, true> mouse_listeners_;
|
| - ObserverList<KeyStrokeListener, true> key_stroke_listeners_;
|
| - bool monitoring_mouse_;
|
| - bool monitoring_keyboard_;
|
| - // The set of keys currently held down. Used for convering raw keyboard events
|
| - // into KeyStrokeListener callbacks.
|
| - std::set<ui::KeyboardCode> pressed_keys_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(UserInputMonitor);
|
| -};
|
| -
|
| -} // namespace media
|
| -
|
| -#endif // MEDIA_BASE_USER_INPUT_MONITOR_H_
|
|
|