• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "media/base/user_input_monitor.h"
6 
7 #include <ApplicationServices/ApplicationServices.h>
8 
9 namespace media {
10 namespace {
11 
12 class UserInputMonitorMac : public UserInputMonitor {
13  public:
14   UserInputMonitorMac();
15   virtual ~UserInputMonitorMac();
16 
17   virtual size_t GetKeyPressCount() const OVERRIDE;
18 
19  private:
20   virtual void StartKeyboardMonitoring() OVERRIDE;
21   virtual void StopKeyboardMonitoring() OVERRIDE;
22   virtual void StartMouseMonitoring() OVERRIDE;
23   virtual void StopMouseMonitoring() OVERRIDE;
24 
25   DISALLOW_COPY_AND_ASSIGN(UserInputMonitorMac);
26 };
27 
UserInputMonitorMac()28 UserInputMonitorMac::UserInputMonitorMac() {}
29 
~UserInputMonitorMac()30 UserInputMonitorMac::~UserInputMonitorMac() {}
31 
GetKeyPressCount() const32 size_t UserInputMonitorMac::GetKeyPressCount() const {
33   // Use |kCGEventSourceStateHIDSystemState| since we only want to count
34   // hardware generated events.
35   return CGEventSourceCounterForEventType(kCGEventSourceStateHIDSystemState,
36                                           kCGEventKeyDown);
37 }
38 
StartKeyboardMonitoring()39 void UserInputMonitorMac::StartKeyboardMonitoring() {}
40 
StopKeyboardMonitoring()41 void UserInputMonitorMac::StopKeyboardMonitoring() {}
42 
43 // TODO(jiayl): add the impl.
StartMouseMonitoring()44 void UserInputMonitorMac::StartMouseMonitoring() { NOTIMPLEMENTED(); }
45 
46 // TODO(jiayl): add the impl.
StopMouseMonitoring()47 void UserInputMonitorMac::StopMouseMonitoring() { NOTIMPLEMENTED(); }
48 
49 }  // namespace
50 
Create(const scoped_refptr<base::SingleThreadTaskRunner> & input_task_runner,const scoped_refptr<base::SingleThreadTaskRunner> & ui_task_runner)51 scoped_ptr<UserInputMonitor> UserInputMonitor::Create(
52     const scoped_refptr<base::SingleThreadTaskRunner>& input_task_runner,
53     const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner) {
54   return scoped_ptr<UserInputMonitor>(new UserInputMonitorMac());
55 }
56 
57 }  // namespace media
58