Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Side by Side Diff: media/base/keyboard_event_counter.h

Issue 22801007: Adds the UserInputMonitor implementation for Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 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 #ifndef MEDIA_BASE_KEYBOARD_EVENT_COUNTER_H_
6 #define MEDIA_BASE_KEYBOARD_EVENT_COUNTER_H_
7
8 #include <set>
9
10 #include "base/synchronization/lock.h"
11 #include "ui/base/events/event_constants.h"
12 #include "ui/base/keycodes/keyboard_codes.h"
13
14 namespace media {
15
16 // This class tracks the total number of keypresses based on the OnKeyboardEvent
17 // calls it receives from the client.
18 // Multiple key down events for the same key are counted as one keypress until
19 // the same key is released.
20 // Thread safe.
21 class KeyboardEventCounter {
22 public:
23 KeyboardEventCounter();
24 ~KeyboardEventCounter();
25
26 // Resets the count to 0.
27 void Reset();
28
29 // Returns the total number of keypresses since its creation or last Reset()
30 // call.
31 size_t GetKeyPressCount() const;
32
33 // The client should call this method on key down or key up events.
34 void OnKeyboardEvent(ui::EventType event, ui::KeyboardCode key_code);
35
36 private:
37 // "mutable" for GetKeyPressCount().
38 mutable base::Lock lock_;
39
40 // The set of keys currently held down.
41 std::set<ui::KeyboardCode> pressed_keys_;
42
43 size_t total_key_presses_;
44
45 DISALLOW_COPY_AND_ASSIGN(KeyboardEventCounter);
46 };
47
48 } // namespace media
49
50 #endif // MEDIA_BASE_KEYBOARD_EVENT_COUNTER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698