Home | History | Annotate | Download | only in base
      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 
     28 UserInputMonitorMac::UserInputMonitorMac() {}
     29 
     30 UserInputMonitorMac::~UserInputMonitorMac() {}
     31 
     32 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 
     39 void UserInputMonitorMac::StartKeyboardMonitoring() {}
     40 
     41 void UserInputMonitorMac::StopKeyboardMonitoring() {}
     42 
     43 // TODO(jiayl): add the impl.
     44 void UserInputMonitorMac::StartMouseMonitoring() { NOTIMPLEMENTED(); }
     45 
     46 // TODO(jiayl): add the impl.
     47 void UserInputMonitorMac::StopMouseMonitoring() { NOTIMPLEMENTED(); }
     48 
     49 }  // namespace
     50 
     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