| Index: media/base/user_input_monitor.h
|
| diff --git a/media/base/user_input_monitor.h b/media/base/user_input_monitor.h
|
| index 9eb82f334f833612a0720367c83c4513ba275bef..567907c76f8fc2cbad0554e060fff22a13c6dcf9 100644
|
| --- a/media/base/user_input_monitor.h
|
| +++ b/media/base/user_input_monitor.h
|
| @@ -5,16 +5,10 @@
|
| #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;
|
|
|
| @@ -28,6 +22,8 @@ namespace media {
|
| // 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.
|
| +// The object must outlive the browser UI/IO threads to make sure the callbacks
|
| +// will not access a deleted object.
|
| class MEDIA_EXPORT UserInputMonitor {
|
| public:
|
| // The interface to receive mouse movement events.
|
| @@ -39,18 +35,8 @@ class MEDIA_EXPORT UserInputMonitor {
|
| 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() {}
|
| - };
|
|
|
| + UserInputMonitor();
|
| virtual ~UserInputMonitor();
|
|
|
| // Creates a platform-specific instance of UserInputMonitor.
|
| @@ -65,16 +51,24 @@ class MEDIA_EXPORT UserInputMonitor {
|
| // destroyed.
|
| void AddMouseListener(MouseEventListener* listener);
|
| void RemoveMouseListener(MouseEventListener* listener);
|
| - void AddKeyStrokeListener(KeyStrokeListener* listener);
|
| - void RemoveKeyStrokeListener(KeyStrokeListener* listener);
|
|
|
| - protected:
|
| - UserInputMonitor();
|
| + // A caller must call EnableKeyPressMonitoring and
|
| + // DisableKeyPressMonitoring in pair.
|
| + void EnableKeyPressMonitoring();
|
| + void DisableKeyPressMonitoring();
|
|
|
| + // Returns the number of keypresses. The starting point from when it is
|
| + // counted is not guaranteed, but consistent within the pair of calls of
|
| + // EnableKeyPressMonitoring and DisableKeyPressMonitoring. So a caller can
|
| + // use the difference between the values returned at two times to get the
|
| + // number of keypresses happened within that time period, but should not make
|
| + // any assumption on the initial value.
|
| + virtual size_t GetKeyPressCount() const = 0;
|
| +
|
| + protected:
|
| // 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;
|
| @@ -84,12 +78,8 @@ class MEDIA_EXPORT UserInputMonitor {
|
|
|
| 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_;
|
| + size_t key_press_counter_references_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(UserInputMonitor);
|
| };
|
|
|