-#ifdef ENABLE_ACCEL
-#include <accel_sensor.h>
-#endif
-#ifdef ENABLE_GYRO
-#include <gyro_sensor.h>
-#endif
-#ifdef ENABLE_PROXI
-#include <proxi_sensor.h>
-#endif
-#ifdef ENABLE_LIGHT
-#include <light_sensor.h>
-#endif
-#ifdef ENABLE_GEO
-#include <geo_sensor.h>
-#endif
-#ifdef ENABLE_AUTO_ROTATION
-#include <auto_rotation_sensor.h>
-#endif
-#ifdef ENABLE_PRESSURE
-#include <pressure_sensor.h>
-#endif
-#ifdef ENABLE_TEMPERATURE
-#include <temperature_sensor.h>
-#endif
-#ifdef ENABLE_ULTRAVIOLET
-#include <ultraviolet_sensor.h>
-#endif
-#ifdef ENABLE_BIO_LED_RED
-#include <bio_led_red_sensor.h>
-#endif
-#ifdef ENABLE_SENSOR_FUSION
-#include <fusion_sensor.h>
-#endif
-#ifdef ENABLE_ORIENTATION
-#include <orientation_sensor.h>
-#endif
-#ifdef ENABLE_GEOMAGNETIC_RV
-#include <geomagnetic_rv_sensor.h>
-#endif
-#ifdef ENABLE_GAMING_RV
-#include <gaming_rv_sensor.h>
-#endif
-#ifdef ENABLE_TILT
-#include <tilt_sensor.h>
-#endif
-#ifdef ENABLE_UNCAL_GYRO
-#include <uncal_gyro_sensor.h>
-#endif
-#ifdef ENABLE_GRAVITY
-#include <gravity_sensor.h>
-#endif
-#ifdef ENABLE_LINEAR_ACCEL
-#include <linear_accel_sensor.h>
-#endif
-#ifdef ENABLE_RV
-#include <rv_sensor.h>
-#endif
-#ifdef ENABLE_RV_RAW
-#include <rv_raw_sensor.h>
-#endif
-
-extern "C" sensor_module* create(void)
-{
- sensor_module *module = new(std::nothrow) sensor_module;
- retvm_if(!module, NULL, "Failed to allocate memory");
-
-#ifdef ENABLE_ACCEL
- accel_sensor *accel_sensor_ptr = NULL;
- try {
- accel_sensor_ptr = new(std::nothrow) accel_sensor;
- } catch (int err) {
- ERR("Failed to create accel_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (accel_sensor_ptr != NULL) {
- module->sensors.push_back(accel_sensor_ptr);
- }
-#endif
-
-#ifdef ENABLE_AUTO_ROTATION
- auto_rotation_sensor *auto_rotation_sensor_ptr = NULL;
- try {
- auto_rotation_sensor_ptr = new(std::nothrow) auto_rotation_sensor;
- } catch (int err) {
- ERR("Failed to create auto_rotation_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (auto_rotation_sensor_ptr != NULL)
- module->sensors.push_back(auto_rotation_sensor_ptr);
-#endif
-
-#ifdef ENABLE_GYRO
- gyro_sensor *gyro_sensor_ptr = NULL;
- try {
- gyro_sensor_ptr = new(std::nothrow) gyro_sensor;
- } catch (int err) {
- ERR("Failed to create gyro_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (gyro_sensor_ptr != NULL)
- module->sensors.push_back(gyro_sensor_ptr);
-#endif
-
-#ifdef ENABLE_PROXI
- proxi_sensor *proxi_sensor_ptr = NULL;
- try {
- proxi_sensor_ptr = new(std::nothrow) proxi_sensor;
- } catch (int err) {
- ERR("Failed to create proxi_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (proxi_sensor_ptr != NULL)
- module->sensors.push_back(proxi_sensor_ptr);
-#endif
-
-#ifdef ENABLE_LIGHT
- light_sensor *light_sensor_ptr = NULL;
- try {
- light_sensor_ptr = new(std::nothrow) light_sensor;
- } catch (int err) {
- ERR("Failed to create light_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (light_sensor_ptr != NULL)
- module->sensors.push_back(light_sensor_ptr);
-#endif
-
-#ifdef ENABLE_GEO
- geo_sensor *geo_sensor_ptr = NULL;
- try {
- geo_sensor_ptr = new(std::nothrow) geo_sensor;
- } catch (int err) {
- ERR("Failed to create geo_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (geo_sensor_ptr != NULL)
- module->sensors.push_back(geo_sensor_ptr);
-#endif
-
-#ifdef ENABLE_PRESSURE
- pressure_sensor *pressure_sensor_ptr = NULL;
- try {
- pressure_sensor_ptr = new(std::nothrow) pressure_sensor;
- } catch (int err) {
- ERR("Failed to create pressure_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (pressure_sensor_ptr != NULL)
- module->sensors.push_back(pressure_sensor_ptr);
-#endif
-
-#ifdef ENABLE_TEMPERATURE
- temperature_sensor *temperature_sensor_ptr = NULL;
- try {
- temperature_sensor_ptr = new(std::nothrow) temperature_sensor;
- } catch (int err) {
- ERR("Failed to create temperature_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (temperature_sensor_ptr != NULL)
- module->sensors.push_back(temperature_sensor_ptr);
-#endif
-
-#ifdef ENABLE_ULTRAVIOLET
- ultraviolet_sensor *ultraviolet_sensor_ptr = NULL;
- try {
- ultraviolet_sensor_ptr = new(std::nothrow) ultraviolet_sensor;
- } catch (int err) {
- ERR("Failed to create ultraviolet_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (ultraviolet_sensor_ptr != NULL)
- module->sensors.push_back(ultraviolet_sensor_ptr);
-#endif
-
-#ifdef ENABLE_SENSOR_FUSION
- fusion_sensor *fusion_sensor_ptr = NULL;
- try {
- fusion_sensor_ptr = new(std::nothrow) fusion_sensor;
- } catch (int err) {
- ERR("Failed to create fusion_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (fusion_sensor_ptr != NULL)
- module->sensors.push_back(fusion_sensor_ptr);
-#endif
-
-#ifdef ENABLE_ORIENTATION
- orientation_sensor *orientation_sensor_ptr = NULL;
- try {
- orientation_sensor_ptr = new(std::nothrow) orientation_sensor;
- } catch (int err) {
- ERR("Failed to create orientation_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (orientation_sensor_ptr != NULL)
- module->sensors.push_back(orientation_sensor_ptr);
-#endif
-
-#ifdef ENABLE_GRAVITY
- gravity_sensor *gravity_sensor_ptr = NULL;
- try {
- gravity_sensor_ptr = new(std::nothrow) gravity_sensor;
- } catch (int err) {
- ERR("Failed to create gravity_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (gravity_sensor_ptr != NULL)
- module->sensors.push_back(gravity_sensor_ptr);
-#endif
-
-#ifdef ENABLE_LINEAR_ACCEL
- linear_accel_sensor *linear_accel_sensor_ptr = NULL;
- try {
- linear_accel_sensor_ptr = new(std::nothrow) linear_accel_sensor;
- } catch (int err) {
- ERR("Failed to create linear_accel_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (linear_accel_sensor_ptr != NULL)
- module->sensors.push_back(linear_accel_sensor_ptr);
-#endif
-
-#ifdef ENABLE_GEOMAGNETIC_RV
- geomagnetic_rv_sensor *geomagnetic_rv_sensor_ptr = NULL;
- try {
- geomagnetic_rv_sensor_ptr = new(std::nothrow) geomagnetic_rv_sensor;
- } catch (int err) {
- ERR("Failed to create geomagnetic_rv_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (geomagnetic_rv_sensor_ptr != NULL)
- module->sensors.push_back(geomagnetic_rv_sensor_ptr);
-#endif
-
-#ifdef ENABLE_GAMING_RV
- gaming_rv_sensor *gaming_rv_sensor_ptr = NULL;
- try {
- gaming_rv_sensor_ptr = new(std::nothrow) gaming_rv_sensor;
- } catch (int err) {
- ERR("Failed to create gaming_rv_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (gaming_rv_sensor_ptr != NULL)
- module->sensors.push_back(gaming_rv_sensor_ptr);
-#endif
-
-#ifdef ENABLE_RV
- rv_sensor *rv_sensor_ptr = NULL;
- try {
- rv_sensor_ptr = new(std::nothrow) rv_sensor;
- } catch (int err) {
- ERR("Failed to create rv_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (rv_sensor_ptr != NULL)
- module->sensors.push_back(rv_sensor_ptr);
-#endif
-
-#ifdef ENABLE_TILT
- tilt_sensor *tilt_sensor_ptr = NULL;
- try {
- tilt_sensor_ptr = new(std::nothrow) tilt_sensor;
- } catch (int err) {
- ERR("Failed to create tilt_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (tilt_sensor_ptr != NULL)
- module->sensors.push_back(tilt_sensor_ptr);
-#endif
-
-#ifdef ENABLE_UNCAL_GYRO
- uncal_gyro_sensor *uncal_gyro_sensor_ptr = NULL;
- try {
- uncal_gyro_sensor_ptr = new(std::nothrow) uncal_gyro_sensor;
- } catch (int err) {
- ERR("Failed to create uncal_gyro_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (uncal_gyro_sensor_ptr != NULL)
- module->sensors.push_back(uncal_gyro_sensor_ptr);
-#endif
-
-#ifdef ENABLE_BIO_LED_RED
- bio_led_red_sensor *bio_led_red_sensor_ptr = NULL;
- try {
- bio_led_red_sensor_ptr = new(std::nothrow) bio_led_red_sensor;
- } catch (int err) {
- ERR("Failed to create bio_led_red_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (bio_led_red_sensor_ptr != NULL)
- module->sensors.push_back(bio_led_red_sensor_ptr);
-#endif
-
-#ifdef ENABLE_RV_RAW
- rv_raw_sensor *rv_raw_sensor_ptr = NULL;
- try {
- rv_raw_sensor_ptr = new(std::nothrow) rv_raw_sensor;
- } catch (int err) {
- ERR("Failed to create rv_raw_sensor module, err: %d, cause: %s", err, strerror(err));
- }
- if (rv_raw_sensor_ptr != NULL)
- module->sensors.push_back(rv_raw_sensor_ptr);
-#endif
-
- return module;
-}