// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_CHROMEOS_DEVICE_UMA_H_
#define CHROME_BROWSER_CHROMEOS_DEVICE_UMA_H_

#include "base/basictypes.h"
#include "base/event_types.h"
#include "base/message_loop/message_loop.h"

template <typename T> struct DefaultSingletonTraits;

namespace chromeos {

// A class to record devices' input event details via the UMA system
class DeviceUMA : public base::MessageLoopForUI::Observer {
 public:
  // Getting instance starts the class automatically if it hasn't been
  // started before.
  static DeviceUMA* GetInstance();

  void Stop();

 private:
  friend struct DefaultSingletonTraits<DeviceUMA>;

  DeviceUMA();
  virtual ~DeviceUMA();

  // Start and stop observing events.
  void AddMessageLoopObserver();
  void RemoveMessageLoopObserver();

  // MessageLoopForUI::Observer overrides.
  virtual base::EventStatus WillProcessEvent(
      const base::NativeEvent& event) OVERRIDE;
  virtual void DidProcessEvent(const base::NativeEvent& event) OVERRIDE;

  // Check CrOS touchpad events to see if the metrics gesture is present
  void CheckTouchpadEvent(const base::NativeEvent& event);

  // Check the incoming events for interesting patterns that we care about.
  void CheckIncomingEvent(const base::NativeEvent& event);

  bool is_observing_;

  DISALLOW_COPY_AND_ASSIGN(DeviceUMA);
};

}  // namespace chromeos

#endif  // CHROME_BROWSER_CHROMEOS_DEVICE_UMA_H_
