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()28UserInputMonitorMac::UserInputMonitorMac() {} 29 ~UserInputMonitorMac()30UserInputMonitorMac::~UserInputMonitorMac() {} 31 GetKeyPressCount() const32size_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()39void UserInputMonitorMac::StartKeyboardMonitoring() {} 40 StopKeyboardMonitoring()41void UserInputMonitorMac::StopKeyboardMonitoring() {} 42 43 // TODO(jiayl): add the impl. StartMouseMonitoring()44void UserInputMonitorMac::StartMouseMonitoring() { NOTIMPLEMENTED(); } 45 46 // TODO(jiayl): add the impl. StopMouseMonitoring()47void UserInputMonitorMac::StopMouseMonitoring() { NOTIMPLEMENTED(); } 48 49 } // namespace 50 Create(const scoped_refptr<base::SingleThreadTaskRunner> & input_task_runner,const scoped_refptr<base::SingleThreadTaskRunner> & ui_task_runner)51scoped_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