1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// found in the LICENSE file. 4424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "media/base/user_input_monitor.h" 6424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 7424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include <ApplicationServices/ApplicationServices.h> 8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)namespace media { 10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)namespace { 11424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 12424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)class UserInputMonitorMac : public UserInputMonitor { 13424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) public: 14424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) UserInputMonitorMac(); 15424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) virtual ~UserInputMonitorMac(); 16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 17424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) virtual size_t GetKeyPressCount() const OVERRIDE; 18424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) private: 20424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) virtual void StartKeyboardMonitoring() OVERRIDE; 21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) virtual void StopKeyboardMonitoring() OVERRIDE; 22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual void StartMouseMonitoring() OVERRIDE; 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual void StopMouseMonitoring() OVERRIDE; 24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 25424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(UserInputMonitorMac); 26424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}; 27424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 28424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)UserInputMonitorMac::UserInputMonitorMac() {} 29424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 30424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)UserInputMonitorMac::~UserInputMonitorMac() {} 31424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 32424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)size_t UserInputMonitorMac::GetKeyPressCount() const { 33424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // Use |kCGEventSourceStateHIDSystemState| since we only want to count 34424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // hardware generated events. 35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return CGEventSourceCounterForEventType(kCGEventSourceStateHIDSystemState, 36424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) kCGEventKeyDown); 37424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 38424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)void UserInputMonitorMac::StartKeyboardMonitoring() {} 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)void UserInputMonitorMac::StopKeyboardMonitoring() {} 42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 43424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// TODO(jiayl): add the impl. 44424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)void UserInputMonitorMac::StartMouseMonitoring() { NOTIMPLEMENTED(); } 45424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 46424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// TODO(jiayl): add the impl. 47424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)void UserInputMonitorMac::StopMouseMonitoring() { NOTIMPLEMENTED(); } 48424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 49424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} // namespace 50424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 51424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)scoped_ptr<UserInputMonitor> UserInputMonitor::Create( 52424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const scoped_refptr<base::SingleThreadTaskRunner>& input_task_runner, 53424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner) { 54424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return scoped_ptr<UserInputMonitor>(new UserInputMonitorMac()); 55424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 56424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 57424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} // namespace media 58