hal/HalSensor.h
author Gregory Szorc <gps@mozilla.com>
Thu, 19 Feb 2015 10:58:41 -0800
changeset 245738 c97c977c92b97c9585011651b13a088f0cd4ed4f
parent 178371 17597c063177b626d27d25b3852d2c21fe68bc5f
child 254935 3e459fb85c8f03d6c5220794ad4602842a79b900
permissions -rw-r--r--
Bug 1132771 - moz.build fixups to enable execution in no config mode Various moz.build files fail to execute when a build config is not present. Many of these are due to assuming certain CONFIG entries are present. This patch attempts to fix that and enable every moz.build to be read without a build config.

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set sw=2 ts=8 et ft=cpp : */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef __HAL_SENSOR_H_
#define __HAL_SENSOR_H_

#include "mozilla/Observer.h"

namespace mozilla {
namespace hal {

/**
 * Enumeration of sensor types.  They are used to specify type while
 * register or unregister an observer for a sensor of given type.
 */
enum SensorType {
  SENSOR_UNKNOWN = -1,
  SENSOR_ORIENTATION,
  SENSOR_ACCELERATION,
  SENSOR_PROXIMITY,
  SENSOR_LINEAR_ACCELERATION,
  SENSOR_GYROSCOPE,
  SENSOR_LIGHT,
  NUM_SENSOR_TYPE
};

class SensorData;

typedef Observer<SensorData> ISensorObserver;

/**
 * Enumeration of sensor accuracy types.
 */
enum SensorAccuracyType {
  SENSOR_ACCURACY_UNKNOWN = -1,
  SENSOR_ACCURACY_UNRELIABLE,
  SENSOR_ACCURACY_LOW,
  SENSOR_ACCURACY_MED,
  SENSOR_ACCURACY_HIGH,
  NUM_SENSOR_ACCURACY_TYPE
};

class SensorAccuracy;

typedef Observer<SensorAccuracy> ISensorAccuracyObserver;

}
}

#include "ipc/IPCMessageUtils.h"

namespace IPC {
  /**
   * Serializer for SensorType
   */
  template <>
  struct ParamTraits<mozilla::hal::SensorType>:
    public ContiguousEnumSerializer<
             mozilla::hal::SensorType,
             mozilla::hal::SENSOR_UNKNOWN,
             mozilla::hal::NUM_SENSOR_TYPE> {
  };

  template <>
  struct ParamTraits<mozilla::hal::SensorAccuracyType>:
    public ContiguousEnumSerializer<
             mozilla::hal::SensorAccuracyType,
             mozilla::hal::SENSOR_ACCURACY_UNKNOWN,
             mozilla::hal::NUM_SENSOR_ACCURACY_TYPE> {

  };
} // namespace IPC

#endif /* __HAL_SENSOR_H_ */