Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Release nyx-lib 2.0.0-rc1 to the public

  • Loading branch information...
commit ee1d7d8b3062a5cfe0073ae3b162ec9c156e5065 0 parents
Damian Kowalewski authored
Showing with 9,561 additions and 0 deletions.
  1. +18 −0 .gitignore
  2. +26 −0 README.md
  3. +173 −0 doc/Doxyfile
  4. +5 −0 doc/create_docs.sh
  5. +107 −0 include/nyx/client/nyx_battery.h
  6. +62 −0 include/nyx/client/nyx_bluetooth_input_detect.h
  7. +128 −0 include/nyx/client/nyx_charger.h
  8. +78 −0 include/nyx/client/nyx_device_info.h
  9. +52 −0 include/nyx/client/nyx_display.h
  10. +127 −0 include/nyx/client/nyx_firmware_update.h
  11. +130 −0 include/nyx/client/nyx_haptics.h
  12. +100 −0 include/nyx/client/nyx_keys.h
  13. +72 −0 include/nyx/client/nyx_led.h
  14. +98 −0 include/nyx/client/nyx_led_controller.h
  15. +383 −0 include/nyx/client/nyx_led_controller_core_configuration.h
  16. +62 −0 include/nyx/client/nyx_sensor_acceleration.h
  17. +61 −0 include/nyx/client/nyx_sensor_als.h
  18. +63 −0 include/nyx/client/nyx_sensor_angular_velocity.h
  19. +83 −0 include/nyx/client/nyx_sensor_bearing.h
  20. +63 −0 include/nyx/client/nyx_sensor_gravity.h
  21. +63 −0 include/nyx/client/nyx_sensor_linear_acceleration.h
  22. +63 −0 include/nyx/client/nyx_sensor_magnetic_field.h
  23. +85 −0 include/nyx/client/nyx_sensor_orientation.h
  24. +63 −0 include/nyx/client/nyx_sensor_proximity.h
  25. +63 −0 include/nyx/client/nyx_sensor_rotation.h
  26. +63 −0 include/nyx/client/nyx_sensor_shake.h
  27. +234 −0 include/nyx/client/nyx_system.h
  28. +143 −0 include/nyx/client/nyx_touchpanel.h
  29. +75 −0 include/nyx/common/nyx_battery_common.h
  30. +65 −0 include/nyx/common/nyx_bluetooth_input_detect_common.h
  31. +94 −0 include/nyx/common/nyx_charger_common.h
  32. +93 −0 include/nyx/common/nyx_core.h
  33. +323 −0 include/nyx/common/nyx_device.h
  34. +78 −0 include/nyx/common/nyx_device_info_common.h
  35. +48 −0 include/nyx/common/nyx_display_common.h
  36. +74 −0 include/nyx/common/nyx_error.h
  37. +77 −0 include/nyx/common/nyx_event.h
  38. +66 −0 include/nyx/common/nyx_firmware_update_common.h
  39. +82 −0 include/nyx/common/nyx_haptics_common.h
  40. +98 −0 include/nyx/common/nyx_keys_common.h
  41. +104 −0 include/nyx/common/nyx_led_controller_common.h
  42. +152 −0 include/nyx/common/nyx_led_controller_core_configuration_common.h
  43. +49 −0 include/nyx/common/nyx_macros.h
  44. +56 −0 include/nyx/common/nyx_sensor_acceleration_common.h
  45. +57 −0 include/nyx/common/nyx_sensor_angular_velocity_common.h
  46. +65 −0 include/nyx/common/nyx_sensor_bearing_common.h
  47. +58 −0 include/nyx/common/nyx_sensor_gravity_common.h
  48. +59 −0 include/nyx/common/nyx_sensor_linear_acceleration_common.h
  49. +59 −0 include/nyx/common/nyx_sensor_magnetic_field_common.h
  50. +77 −0 include/nyx/common/nyx_sensor_orientation_common.h
  51. +74 −0 include/nyx/common/nyx_sensor_rotation_common.h
  52. +61 −0 include/nyx/common/nyx_sensor_shake_common.h
  53. +111 −0 include/nyx/common/nyx_system_common.h
  54. +90 −0 include/nyx/common/nyx_touchpanel_common.h
  55. +43 −0 include/nyx/module/nyx_device_device_info_internal.h
  56. +38 −0 include/nyx/module/nyx_device_display_internal.h
  57. +43 −0 include/nyx/module/nyx_device_haptics_internal.h
  58. +205 −0 include/nyx/module/nyx_device_internal.h
  59. +111 −0 include/nyx/module/nyx_event_internal.h
  60. +43 −0 include/nyx/module/nyx_event_sensor_als_internal.h
  61. +42 −0 include/nyx/module/nyx_event_sensor_proximity_internal.h
  62. +42 −0 include/nyx/module/nyx_event_touchpanel_internal.h
  63. +86 −0 include/nyx/module/nyx_log.h
  64. +115 −0 include/nyx/module/nyx_module_internal.h
  65. +71 −0 include/nyx/module/nyx_utils.h
  66. +67 −0 include/nyx/nyx_client.h
  67. +63 −0 include/nyx/nyx_module.h
  68. +93 −0 src/CMakeLists.txt
  69. +43 −0 src/CMakeModules/FindGlib2.cmake
  70. +121 −0 src/CMakeModules/LibFindMacros.cmake
  71. +24 −0 src/config/nyx_config.h.in
  72. +25 −0 src/config/nyx_version.h.in
  73. +31 −0 src/core/CMakeLists.txt
  74. +146 −0 src/core/nyx_core_impl.c
  75. +38 −0 src/core/nyx_core_impl.h
  76. +76 −0 src/core/nyx_impl.c
  77. +29 −0 src/core/nyx_impl.h
  78. +50 −0 src/device/CMakeLists.txt
  79. +51 −0 src/device/nyx_battery_impl.c
  80. +39 −0 src/device/nyx_bluetooth_input_detect_impl.c
  81. +33 −0 src/device/nyx_bluetooth_input_detect_impl.h
  82. +60 −0 src/device/nyx_charger_impl.c
  83. +458 −0 src/device/nyx_device_impl.c
  84. +69 −0 src/device/nyx_device_impl.h
  85. +44 −0 src/device/nyx_device_info_impl.c
  86. +35 −0 src/device/nyx_device_info_impl.h
  87. +41 −0 src/device/nyx_display_impl.c
  88. +33 −0 src/device/nyx_display_impl.h
  89. +55 −0 src/device/nyx_firmware_update_impl.c
  90. +34 −0 src/device/nyx_firmware_update_impl.h
  91. +82 −0 src/device/nyx_haptics_impl.c
  92. +35 −0 src/device/nyx_haptics_impl.h
  93. +62 −0 src/device/nyx_keys_impl.c
  94. +34 −0 src/device/nyx_keys_impl.h
  95. +304 −0 src/device/nyx_led_controller_core_configuration_impl.c
  96. +34 −0 src/device/nyx_led_controller_core_configuration_impl.h
  97. +49 −0 src/device/nyx_led_controller_impl.c
  98. +33 −0 src/device/nyx_led_controller_impl.h
  99. +39 −0 src/device/nyx_led_impl.c
  100. +34 −0 src/device/nyx_led_impl.h
  101. +41 −0 src/device/nyx_sensor_acceleration_impl.c
  102. +40 −0 src/device/nyx_sensor_als_impl.c
  103. +41 −0 src/device/nyx_sensor_angular_velocity_impl.c
  104. +65 −0 src/device/nyx_sensor_bearing_impl.c
  105. +41 −0 src/device/nyx_sensor_gravity_impl.c
  106. +41 −0 src/device/nyx_sensor_linear_acceleration_impl.c
  107. +40 −0 src/device/nyx_sensor_magnetic_field_impl.c
  108. +66 −0 src/device/nyx_sensor_orientation_impl.c
  109. +40 −0 src/device/nyx_sensor_proximity_impl.c
  110. +41 −0 src/device/nyx_sensor_rotation_impl.c
  111. +41 −0 src/device/nyx_sensor_shake_impl.c
  112. +81 −0 src/device/nyx_system_impl.c
  113. +123 −0 src/device/nyx_touchpanel_impl.c
  114. +34 −0 src/device/nyx_touchpanel_impl.h
  115. +65 −0 src/lib.cmake
  116. +66 −0 src/nyx.cmake
  117. +28 −0 src/target/rockhopper/CMakeLists.txt
  118. +29 −0 src/target/ubuntu/CMakeLists.txt
  119. +21 −0 src/utils/CMakeLists.txt
  120. +95 −0 src/utils/nyx_async.c
  121. +83 −0 src/utils/nyx_file_io.c
  122. +223 −0 src/utils/nyx_log.c
18 .gitignore
@@ -0,0 +1,18 @@
+cscope.out
+*.so
+*.o
+*.d
+*.so
+.cscope.files
+.sc_status
+*.swp
+Debug/
+.project
+.cproject
+/patches
+build*
+BUILD-*
+doc/html
+*.DS_Store
+include/nyx/common/nyx_version.h
+src/config/nyx_config.h
26 README.md
@@ -0,0 +1,26 @@
+nyx-lib
+=======
+
+Nyx is the webOS portability layer used to isolate the remainder of webOS from dependencies on the hardware and core OS upon which it is running. It is implemented as a shared library that exposes a uniform client API and that expects to call into a series of platform-dependent modules that implement the API for a particular device.
+
+This is the repository for nyx-lib, the shared library.
+
+# Copyright and License Information
+
+All content, including all source code files and documentation files in this repository are:
+
+ Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+
+All content, including all source code files and documentation files in this repository are:
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this content except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
173 doc/Doxyfile
@@ -0,0 +1,173 @@
+# Doxyfile 0.1
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = NYX
+PROJECT_NUMBER = 2.0.0
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+EXTRACT_LOCAL_CLASSES = NO
+EXTRACT_LOCAL_METHODS = NO
+HIDE_UNDOC_MEMBERS = YES
+HIDE_UNDOC_CLASSES = YES
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+STRIP_CODE_COMMENTS = YES
+CASE_SENSE_NAMES = YES
+SHORT_NAMES = NO
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = YES
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 4
+GENERATE_TODOLIST = NO
+GENERATE_TESTLIST = NO
+GENERATE_BUGLIST = NO
+ALIASES =
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+OPTIMIZE_OUTPUT_FOR_C = YES
+SHOW_USED_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = YES
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT =
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = ../include/nyx
+FILE_PATTERNS = *.c *.h
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_PATTERNS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = NO
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT =
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+GENERATE_CHI = NO
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 1
+GENERATE_TREEVIEW = YES
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT =
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT =
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = ../include/nyx
+INCLUDE_FILE_PATTERNS = *.h
+PREDEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+PERL_PATH =
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+HAVE_DOT = YES
+DOT_TRANSPARENT = YES
+CALL_GRAPH = YES
+CLASS_GRAPH = YES
+GROUP_GRAPHS = YES
+COLLABORATION_GRAPH = YES
+TEMPLATE_RELATIONS = YES
+HIDE_UNDOC_RELATIONS = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+GENERATE_LEGEND = YES
+DOT_PATH =
+DOTFILE_DIRS =
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = YES
5 doc/create_docs.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+echo "Generating doxygen docs..."
+doxygen ./Doxyfile &> /dev/null
+echo "Done!"
107 include/nyx/client/nyx_battery.h
@@ -0,0 +1,107 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_battery.h
+ *
+ * @brief Nyx's public battery API.
+ *
+ */
+
+#ifndef _NYX_BATTERY_H_
+#define _NYX_BATTERY_H_
+
+#include <nyx/common/nyx_battery_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_battery_public Battery
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * @brief Query battery status.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] status_out_ptr - current battery readings (needs to be allocated by caller)
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_battery_query_battery_status(nyx_device_handle_t handle, nyx_battery_status_t *status_out_ptr);
+
+
+/**
+ * @brief Register callback function for any change in battery status.
+ *
+ * @param[in] handle - the event handle
+ * @param[in] callback_func - the callback function to handle the event
+ * @param[in] context - for callback function
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_battery_register_battery_status_callback(nyx_device_handle_t handle, nyx_device_callback callback_func, void *context);
+
+
+/**
+ * @brief Authenticate battery.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] result - authentication result (true/false).
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+
+NYX_API_EXPORT nyx_error_t nyx_battery_authenticate_battery(nyx_device_handle_t handle, bool *result);
+
+/**
+ * @brief Get CTIA parameters for the battery.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] param - CTIA parameters
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+
+NYX_API_EXPORT nyx_error_t nyx_battery_get_ctia_parameters(nyx_device_handle_t handle, nyx_battery_ctia_t *param);
+
+/**
+ * @brief Set battery percentage at which to wake up the device if it suspends.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] percentage - battery percentage at which to wake up
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+
+NYX_API_EXPORT nyx_error_t nyx_battery_set_wakeup_percentage(nyx_device_handle_t handle, int32_t percentage);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_BATTERY_H_ */
62 include/nyx/client/nyx_bluetooth_input_detect.h
@@ -0,0 +1,62 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_bluetooth_input_detect.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a bluetooth input detection device
+ * and the events it generates.
+ *
+ */
+
+#ifndef _NYX_BLUETOOTH_INPUT_DETECT_H_
+#define _NYX_BLUETOOTH_INPUT_DETECT_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_bluetooth_input_detect_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_bluetooth_input_detect_public Bluetooth Input Detection
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the data associated with the nyx_bluetooth_input_detect event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] item_out_ptr - pointer to bluetooth_input_detect_event_item of ALS event
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_bluetooth_input_detect_event_get_data(nyx_event_handle_t handle, nyx_bluetooth_input_detect_event_item_t* item_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_BLUETOOTH_INPUT_DETECT_H_ */
128 include/nyx/client/nyx_charger.h
@@ -0,0 +1,128 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_charger.h
+ *
+ */
+
+/**
+ * @brief Nyx's public charging API.
+ *
+ */
+
+#ifndef _NYX_CHARGER_H_
+#define _NYX_CHARGER_H_
+
+#include <nyx/common/nyx_charger_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_charger_public Charging
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * @brief Query charger status.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] status_out_ptr - (max) charger status (needs to be allocated by caller)
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+
+NYX_API_EXPORT nyx_error_t nyx_charger_query_charger_status(nyx_device_handle_t handle, nyx_charger_status_t *status_out_ptr);
+
+
+/**
+ * @brief Register callback function for any change in charger status.
+ *
+ * @param[in] handle - the event handle
+ * @param[in] callback_func - the callback function to handle the event
+ * @param[in] context - for callback function
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+
+NYX_API_EXPORT nyx_error_t nyx_charger_register_charger_status_callback(nyx_device_handle_t handle, nyx_device_callback callback_func, void *context);
+
+
+/**
+ * @brief Enable device charging.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] status - charger information used for enabling charging
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_charger_enable_charging(nyx_device_handle_t handle, nyx_charger_status_t *status);
+
+/**
+ * @brief Disable device charging.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] status - charger information used for disabling charging
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_charger_disable_charging(nyx_device_handle_t handle, nyx_charger_status_t *status);
+
+/**
+ * @brief Register callback function for any change in charging state.
+ *
+ * @param[in] handle - the event handle
+ * @param[in] callback_func - the callback function to handle the event
+ * @param[in] context - for callback function
+ *
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_charger_register_state_change_callback(nyx_device_handle_t handle, nyx_device_callback callback_func, void *context);
+
+/**
+ * @brief Query charging event.
+ *
+ * This API needs to be called every time the callback function registered with
+ * the "nyx_charger_register_state_change_callback" function is called. The
+ * "event" parameter returned is the ORed value of all the pending events, so
+ * even if this API is called once after multiple callbacks, it returns back
+ * all the pending events, and only then clears these events in charger module.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event - ORing of all the pending charging events
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_charger_query_charger_event(nyx_device_handle_t handle, nyx_charger_event_t *event);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_CHARGER_H_ */
78 include/nyx/client/nyx_device_info.h
@@ -0,0 +1,78 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_device_info.h
+ *
+ */
+
+ /**
+ * @brief Nyx's public API for accessing device info.
+ *
+ */
+
+#ifndef _NYX_DEVICE_INFO_H_
+#define _NYX_DEVICE_INFO_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_device_info_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_device_info_public Device Info
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * @brief Get the hardware identification number.
+ * This helps in identifying the hardware type of the device in use
+ * from among the different available types.
+ *
+ * @param[in] handle - handle to the device
+ * @param[out] hw_id_out_ptr - hardware type id
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_device_info_get_hardware_id(nyx_device_handle_t handle, int32_t* hw_id_out_ptr);
+
+/**
+ * @brief Get the device information.
+ *
+ * @param[in] handle - handle to the device
+ * @param[in] type - type of information to retrieve
+ * @param[out] dest - location into which the string information is copied; it will always be NULL-terminated
+ * @param[in] dest_len - length of destination string (non-zero)
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful);
+ * returns NYX_ERROR_VALUE_OUT_OF_RANGE if 'dest_len' is too small.
+ */
+NYX_API_EXPORT nyx_error_t nyx_device_info_get_info(nyx_device_handle_t handle, nyx_device_info_type_t type, char* dest, size_t dest_len);
+
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_DEVICE_INFO_H_ */
52 include/nyx/client/nyx_display.h
@@ -0,0 +1,52 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_display.h
+ *
+ */
+
+#ifndef _NYX_DISPLAY_H_
+#define _NYX_DISPLAY_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_display_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Get the display metrics: pixels, dpi, aspect ratio.
+ *
+ * @param[in] handle - handle to the device.
+ * @param[out] metrics_out_ptr - the structure, which contains display related metrics.
+ *
+ * @return error that will be NYX_ERROR_NONE if operation is
+ * successful or an actual error if operation did not succeed.
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_display_get_metrics(nyx_device_handle_t handle, nyx_display_metrics_t* metrics_out_ptr);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_DISPLAY_H_ */
127 include/nyx/client/nyx_firmware_update.h
@@ -0,0 +1,127 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_firmware_update.h
+ *
+ * @brief Nyx's public API for accessing and updating firmware on a device.
+ *
+ */
+
+
+#ifndef _NYX_FIRMWARE_UPDATE_H_
+#define _NYX_FIRMWARE_UPDATE_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_firmware_update_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_firmware__update_public Firmware Update
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Query the device and return the current firmware version.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] version_out_ptr - firmware version on device
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_firmware_update_query_current_version(nyx_device_handle_t handle, char** version_out_ptr);
+
+
+/**
+ * Get an iterator to all firmware images that are available to flash.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] iterator_out_ptr - an iterator to the list of available
+ * firmware images for thedevice
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_firmware_update_get_available_versions_iterator(nyx_device_handle_t handle, nyx_firmware_update_iterator_handle_t* iterator_out_ptr);
+
+/**
+ * Get the version of the next firmware image that is available. Note that
+ * the versions are returned in reverse order, so that the latest firmware
+ * version will be returned on the first call.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] iterator - iterator to list of available firmware images
+ * @param[out] version_out_ptr - firmware version that is available to flash
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_firmware_update_get_next_available_version(nyx_device_handle_t handle, nyx_firmware_update_iterator_handle_t iterator, nyx_firmware_version_info_t* version_out_ptr);
+
+/**
+ * Release memory and any other resources associated with a specified iterator.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] iterator - iterator to be released
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_firmware_update_release_available_versions_iterator(nyx_device_handle_t handle, nyx_firmware_update_iterator_handle_t iterator);
+
+/**
+ * Update the device's firmware to a specific version.
+ * The firmware image that corresponds to the version specified will first be
+ * verified. After the image is updated, it will be verified that the firmware
+ * was updated correctly.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] version - firmware version info of image to flash. If NULL,
+ * then update the device to the latest available version.
+ * @param[in] force - if false, then the firmware will only be updated with
+ * a newer version; if true, firmware will be updated regardless of
+ * version (version check is skipped).
+ * @param[out] fd_out_ptr - the output from the flash command will be returned
+ * into this buffer. If this parameter is NULL, then the output will
+ * be discarded. If specified, then the caller is responsible for
+ * reading data from this file descriptor and closing it when finished.
+ * @param[in] done_callback - function that will be called when the flash
+ * update has ended. If this parameter is specified, then the API call
+ * will return and run asynchronously. If this parameter is NULL, then
+ * this routine will block until the flash update is complete.
+ * @param[in] context - An opaque pointer to user-supplied data. This data
+ * will be passed to @p done_callback when it is called.
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_firmware_update_flash(nyx_device_handle_t handle, nyx_firmware_version_info_t version, bool force, int32_t* fd_out_ptr, nyx_device_callback done_callback, void* context);
+
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_FIRMWARE_UPDATE_H_ */
130 include/nyx/client/nyx_haptics.h
@@ -0,0 +1,130 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_haptics.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a haptics device.
+ *
+ */
+
+#ifndef _NYX_HAPTICS_H_
+#define _NYX_HAPTICS_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_haptics_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_haptics_public Haptics
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Vibrate according to a specified configuration.
+ * The configuration should either identify the type of effect (launching
+ * an effect that the device already has preconfigured), or contain values
+ * for the period, duration, and direction fields.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] configuration - structure containing effect data
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_haptics_vibrate(nyx_device_handle_t handle, nyx_haptics_configuration_t configuration);
+
+/**
+ * Cancel a specified haptics effect.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] haptics_id - id of the haptics effect to cancel
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_haptics_cancel(nyx_device_handle_t handle, int32_t haptics_id);
+
+/**
+ * Cancel all haptics effects.
+ *
+ * @param[in] handle - the device handle
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_haptics_cancel_all(nyx_device_handle_t handle);
+
+/**
+ * Get the haptics effect id associated with this device.
+ *
+ * @param[in] handle - the device handle.
+ * @param[out] haptics_effect_id_out_ptr - pointer to store the haptics effect id
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_haptics_get_effect_id(nyx_device_handle_t handle, int32_t* haptics_effect_id_out_ptr);
+
+/**
+ * Set the dampening factor associated with this device handle.
+ * The dampening factor is a single value to tone down the magnitude of haptics
+ * effects. When the device is initially opened, the dampening factor is 100,
+ * signifying 100% of the magnitude specified. If the dampening factor is set
+ * to 50, the magnitude of the effect will be 50% of the originally specified
+ * magnitude. This can be used for tuning the effect.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] dampening_factor - value of new dampening factor
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_haptics_set_dampening_factor(nyx_device_handle_t handle, int32_t dampening_factor);
+
+/**
+ * Get the dampening factor associated with this device handle.
+ * The dampening factor is a single value to tone down the magnitude of haptics
+ * effects. When the device is initially opened, the dampening factor is 100,
+ * signifying 100% of the magnitude specified. If the dampening factor is set
+ * to 50, the magnitude of the effect will be 50% of the originally specified
+ * magnitude. This can be used for tuning the effect.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] dampening_factor_out_ptr - pointer to store value
+ * of dampening factor
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_haptics_get_dampening_factor(nyx_device_handle_t handle, int32_t* dampening_factor_out_ptr);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_HAPTICS_H_ */
100 include/nyx/client/nyx_keys.h
@@ -0,0 +1,100 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_keys.h
+ *
+ * @brief Nyx's public API for accessing a keyboard device and the events
+ * it generates.
+ *
+ */
+
+#ifndef _NYX_KEYS_H_
+#define _NYX_KEYS_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_keys_common.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_keys_public Keys
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the key for the current event.
+ * If the key type is standard, then the keyCode is returned and left to caller
+ * to look up in keymap.
+ * No keys are consumed.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] key_out_ptr - pointer to store key value
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_keys_event_get_key(nyx_event_handle_t handle, int32_t* key_out_ptr);
+
+/**
+ * Get the key type for the current event.
+ * Key type will be standard or custom (webOS-specific type)
+ *
+ * @param[in] handle - the event handle
+ * @param[out] key_type_out_ptr - pointer to store key type
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_keys_event_get_key_type(nyx_event_handle_t handle, nyx_key_type_t* key_type_out_ptr);
+
+/**
+ * Get the is_key_press value for the current event.
+ * Value is 1 if it is a down event; 0 if it is an up event
+ *
+ * @param[in] handle - the event handle
+ * @param[out] key_is_press_out_ptr - pointer to store is_press value
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_keys_event_get_key_is_press(nyx_event_handle_t handle, bool* key_is_press_out_ptr);
+
+/**
+ * Get the is_auto_repeat value for the current event.
+ * If is_auto_repeat is true for the current key, it means this key was
+ * previously in a down state and the new event is the same key in a down state.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] key_is_auto_repeat_out_ptr - pointer to store is_auto_repeat value
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_keys_event_get_key_is_auto_repeat(nyx_event_handle_t handle, bool* key_is_auto_repeat_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_KEYS_H_ */
72 include/nyx/client/nyx_led.h
@@ -0,0 +1,72 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_led.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing an LED device.
+ *
+ */
+
+#ifndef _NYX_LED_H_
+#define _NYX_LED_H_
+
+#include <nyx/common/nyx_device.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_led_public LED
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Set the brightness of the LED device. The range is 0-100%.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] brightness - brightness to set
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_set_brightness(nyx_device_handle_t handle, int32_t brightness);
+
+/**
+ * Get the brightness of the LED device. The range is 0-100%.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] brightness_out_ptr - pointer to store current brightness of the LED device
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_get_brightness(nyx_device_handle_t handle, int32_t *brightness_out_ptr);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_LED_H_ */
98 include/nyx/client/nyx_led_controller.h
@@ -0,0 +1,98 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_led_controller.h
+ *
+ */
+
+/**
+ * @brief Nyx's public LED Controller API.
+ */
+
+#ifndef _NYX_LED_CONTROLLER_H_
+#define _NYX_LED_CONTROLLER_H_
+
+#include <nyx/client/nyx_led_controller_core_configuration.h>
+#include <nyx/common/nyx_led_controller_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_led_controller_public LED Controller
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Execute an effect on the LED controller.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] effect - effect description and parameters
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_execute_effect(nyx_device_handle_t handle, nyx_led_controller_effect_t effect);
+
+/**
+ * Stop effect(s) on given LEDs.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] led - LED mask for LEDs to stop
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_stop(nyx_device_handle_t handle, nyx_led_controller_led_t led);
+
+/**
+ * Get the state of LEDs.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] led - LED whose state you want to get
+ * @param[out] state_out_ptr - pointer to hold state of LED
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_get_state(nyx_device_handle_t handle,
+ nyx_led_controller_led_t led, nyx_led_controller_state_t* state_out_ptr);
+
+
+/**
+ * Set the state of abl -- enabled or disabled for LED.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] led - LED whose abl state you want to set
+ * @param[in] abl_state - state to set to
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_set_abl_state(nyx_device_handle_t handle,
+ nyx_led_controller_led_t led, nyx_led_controller_abl_state_t abl_state);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_LED_CONTROLLER_H_ */
383 include/nyx/client/nyx_led_controller_core_configuration.h
@@ -0,0 +1,383 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_led_controller_core_configuration.h
+ *
+ */
+
+
+#ifndef _NYX_LED_CONTROLLER_CORE_CONFIGURATION_H_
+#define _NYX_LED_CONTROLLER_CORE_CONFIGURATION_H_
+
+#include <nyx/common/nyx_led_controller_core_configuration_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_led_controller_core_configuration_public LED Controller Core Configuration
+* @ingroup nyx_public
+* @brief Nyx's public LED Controller Core Configuration API.
+* @{
+*/
+
+/**
+ * Create an LED core configuration.
+ *
+ * @param[in] effect_type - effect type for core configuration
+ * @param[out] handle_ptr - pointer to a handle to store handle for the
+ * newly created configuration
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_core_configuration_create(nyx_led_controller_effect_type_t effect_type,
+ nyx_led_controller_core_configuration_handle_t* handle_ptr);
+
+/*
+ * Set a parameter in an LED core configuration.
+ *
+ * The following parameters are required for each effect:
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LED_FADE
+ * fade leds in the following pattern:
+ *
+ * brightness
+ * v
+ * center_fade_in --> /\
+ * (in ms) / \
+ * / \ <-center_fade_out
+ * CenterLED _____________/ \ (in ms)
+ * \
+ * \____(brightness = 0)
+ *
+ * brightness
+ * v
+ * side_fade_in --> /\
+ * (in ms) / \
+ * / \ <-side_fade_out
+ * SideLED _____________/ \ (in ms)
+ * \
+ * \____(brightness = 0)
+ * requires:
+ * brightness,
+ * center_fade_in
+ * center_fade_out
+ * side_fade_in,
+ * side_fade_out
+ *
+ * default values:
+ * center_fade_in = 200
+ * center_fade_out = 300
+ * side_fade_in = 200
+ * side_fade_out = 600
+ *
+ *
+ * NYX_LED_CONTROLLER_EFFECT_FULL_FADE
+ * fade left, right, center leds:
+ *
+ * brightness
+ * v
+ * first_in --> /\
+ * (in ms) / \
+ * / \ <-first_out
+ * (Led1) _____________/ \ (in ms)
+ * \
+ * \____(brightness = 0)
+ *
+ *
+ * brightness
+ * v
+ * second_in --> /\
+ * (in ms) / \
+ * / \ <-second_out
+ * (CenterLed)____________/ \ (in ms)
+ * \
+ * \____(brightness = 0)
+ *
+ * \
+ * \
+ * \ <-third_out
+ * (Led3) \ (in ms)
+ * \
+ * \____(brightness = 0)
+ *
+ *
+ * requires:
+ * brightness,
+ * first_in,
+ * first_out,
+ * second_in,
+ * second_out,
+ * third_out,
+ * direction -- if direction is LEFT, then Led1 is LeftLED and Led3 is RightLED.
+ * -- if direction is RIGHT, then Led1 is RightLED and Led3 is LeftLED.
+ *
+ *
+ * default values:
+ * first_in = 100
+ * first_out = 500
+ * second_in = 100
+ * second_out = 400
+ * third_out = 300
+ * direction = NYX_LED_CONTROLLER_DIRECTION_LEFT
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LED_PULSATE
+ * Pulses the specific LED in the following manner:
+ *
+ * brightness
+ * ________v_______
+ * fade_in --> / fade_delay \
+ * (in ms) / (in ms) \
+ * / \ <-fade_out
+ * _____________________/ \ (in ms)
+ * start_delay \
+ * (in ms) \
+ * \
+ * \ brightness = 0
+ * \__________________
+ * repeat_delay
+ * (in ms)
+ *
+ * requires:
+ * brightness,
+ * start_delay,
+ * fade_in,
+ * fade_out,
+ * duration,
+ * repeat_delay,
+ * repeat
+ *
+ * default values:
+ * start_delay = 0
+ * fade_in = 1500
+ * fade_out = 1500
+ * duration = 200
+ * repeat_delay = 4000
+ * repeat = 1
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LED_DOUBLE_PULSE
+ * pulse the led twice in the following manner:
+ *
+ * brightness brightness
+ * ________v_______ ________v_______
+ * pulse_ramp->/ pulse_duration \ pulse_ramp / pulse_duration \
+ * (in ms) / (in ms) \ L> / (in ms) \
+ * / \ <-pulse_ramp / \ <-pulse_ramp
+ * __/ \ (in ms) / \
+ * \ / \
+ * \ brightness = 0 / \
+ * \________________/ \______________
+ * pulse_delay repeat_delay
+ * (in ms) (in ms)
+ * requires:
+ * brightness,
+ * pulse_ramp,
+ * pulse_duration,
+ * pulse_delay,
+ * repeat_delay,
+ * repeat
+ *
+ * default values:
+ * pulse_ramp = 150
+ * pulse_duration = 100
+ * pulse_delay = 100
+ * repeat_delay = 3000
+ * repeat = 1
+ *
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LED_RAMP_TO
+ * set led from current brightness level to specified brightness in duration (ms) using a linear slope.
+ *
+ * __ brightness
+ * /
+ * /
+ * / <-- duration (in ms)
+ * /
+ * /
+ *
+ * requires:
+ * brightness
+ * duration
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LED_SET
+ * set led to specified brightness
+ * requires:
+ * brightness
+ *
+ * NYX_LED_CONTROLLER_EFFECT_WATERDROP
+ * This creates a squence of the center fading in, then fading out while the
+ * side leds fade in and out. If reversed, the center led will us side_fade_in/side_fade_out
+ * and vice versa
+ * brightness
+ * v
+ * center_fade_in /\
+ * (in ms) / \
+ * / \ <-center_fade_out
+ * (LED 1) _____________/ \ (in ms)
+ * \
+ * \____(brightness = 0)
+ *
+ * brightness
+ * v
+ * side_fade_in--> /\
+ * (in ms) / \
+ * / \ <-side_fade_out
+ * (LED 2 starts when LED 1__________/ \ (in ms)
+ * finishes first ramp) \
+ * \____(brightness = 0)
+ * requires:
+ * brightness,
+ * center_fade_in
+ * center_fade_out
+ * side_fade_in
+ * side_fade_out
+ * direction
+ *
+ * NYX_LED_CONTROLLER_EFFECT_SEESAW
+ * A series of 4 serial ramps:
+ * RAMP 1: LED1 ramps to brightness in duration (ms), then triggers
+ * RAMP 2: LED2 ramps to brightness in duration (ms), then triggers
+ * RAMP 3: LED1 ramps to (brightness = 0) in duration (ms), then triggers
+ * RAMP 4: LED2 ramps to (brightness = 0) in duration (ms)
+ * if direction is not reverse, then LED1 = center led, LED2 = side leds
+ * if direction is reverse, then LED1 = side leds, LED2 = center led
+ *
+ * requires:
+ * brightness,
+ * duration,
+ * direction
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LIGHTBAR_SWIPE
+ * A series of 4 sets of serial ramps:
+ * RAMP1: LED1 ramps from brightness to (brightness = 0) in duration (ms), then triggers
+ * RAMP2: LED1 ramps from (brightness = 0) to brightness in duration (ms), LED2 ramps from brightness to (brightness = 0) in duration, then
+ * RAMP3: LED2 ramps from (brightness = 0) to brightness in duration (ms), LED3 ramps from brightness to (brightness = 0) in duration, then
+ * RAMP4: LED3 ramps from (brightness = 0) to brightness in duration (ms).
+ * if direction is left, then LED1 = right, LED2 = center, LED3 = left
+ * if direction is not left, then LED1 = left, LED2 = center, LED3 = right
+ *
+ * requires:
+ * brightness,
+ * duration,
+ * direction
+ *
+ * NYX_LED_CONTROLLER_EFFECT_LIGHTBAR_FULL_SWIPE
+ * A series of 5 sets of serial ramps:
+ * RAMP1: LED1 ramps from brightness to (brightness = 0) in duration (ms)
+ * RAMP2: LED2 ramps from brightness to (brightness = 0) in duration (ms), then triggers
+ * RAMP3: LED1 ramps from (brightness = 0) to brightness in duration (ms), LED3 ramps from brightness to (brightness = 0) in duration, then
+ * RAMP4: LED2 ramps from (brightness = 0) to brightness in duration (ms)
+ * RAMP5: LED3 ramps from (brightness = 0) to brightness in duration (ms).
+ * if direction is left, then LED1 = right, LED2 = center, LED3 = left
+ * if direction is not left, then LED1 = left, LED2 = center, LED3 = right
+ * requires:
+ * brightness,
+ * duration,
+ * direction
+ *
+ * NYX_LED_CONTROLLER_EFFECT_SWIPE
+ * A series of 4 sets of serial ramps:
+ * RAMP1: LED1 ramps from (brightness = 0) to brightness in duration (ms), then triggers
+ * RAMP2: LED1 ramps from brightness to (brightness = 0) in duration (ms), LED2 ramps from (brightness = 0) to brightness in duration, then
+ * RAMP3: LED2 ramps from brightness to (brightness = 0) in duration (ms), LED3 ramps from (brightness = 0) to brightness in duration, then
+ * RAMP4: LED3 ramps from brightness to (brightness = 0) in duration (ms).
+ * if direction is left, then LED1 = right, LED2 = center, LED3 = left
+ * if direction is not left, then LED1 = left, LED2 = center, LED3 = right
+ *
+ * requires:
+ * brightness,
+ * duration,
+ * direction
+ *
+ * NYX_LED_CONTROLLER_EFFECT_FULL_SWIPE
+ * A series of 5 sets of serial ramps:
+ * RAMP1: LED1 ramps from (brightness = 0) to brightness in duration (ms)
+ * RAMP2: LED2 ramps from (brightness = 0) to brightness in duration (ms), then triggers
+ * RAMP3: LED1 ramps from brightness to (brightness = 0) in duration (ms), LED3 ramps from (brightness = 0) to brightness in duration, then
+ * RAMP4: LED2 ramps from brightness to (brightness = 0) in duration (ms)
+ * RAMP5: LED3 ramps from brightness to (brightness = 0) in duration (ms).
+ * if direction is left, then LED1 = right, LED2 = center, LED3 = left
+ * if direction is not left, then LED1 = left, LED2 = center, LED3 = right
+ * requires:
+ * brightness,
+ * duration,
+ * direction
+ *
+ * NYX_LED_CONTROLLER_EFFECT_FADE_OFF
+ * A series of 3 serial ramps:
+ * RAMP1: LED1 ramps from brightness to (brightness = 0) in duration (ms)
+ * RAMP2: LED2 ramps from brightness to (brightness = 0) in duration (ms)
+ * RAMP3: LED3 ramps from brightness to (brightness = 0) in duration (ms)
+ * if direction is left, then LED1 = right, LED2 = center, LED3 = left
+ * if direction is not left, then LED1 = left, LED2 = center, LED3 = right
+ * requires:
+ * requires:
+ * brightness,
+ * duration,
+ * direction
+ */
+/**
+ * @brief Set a parameter in an LED core configuration.
+ *
+ * @param[in] handle - the configuration handle
+ * @param[in] param - the parameter to modify
+ * @param[in] new_value - the new value to set parameter to
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_core_configuration_set_param(
+ nyx_led_controller_core_configuration_handle_t handle, nyx_led_controller_parameter_type_t param, int32_t new_value);
+
+/**
+ * Finalize an LED core configuration.
+ * Meant to be a potential optimization point.
+ * An LED core execute command cannot be completed unless the configuration
+ * is finalized.
+ *
+ * @param[in] handle - the configuration handle
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_core_configuration_finalize(
+ nyx_led_controller_core_configuration_handle_t handle);
+
+/**
+ * Release memory associated with a handle.
+ * Should be called when the handle is no longer needed.
+ *
+ * @param[in] handle - the configuration handle
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_led_controller_core_configuration_release(
+ nyx_led_controller_core_configuration_handle_t handle);
+
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_LED_CONTROLLER_CORE_CONFIGURATION_H_ */
62 include/nyx/client/nyx_sensor_acceleration.h
@@ -0,0 +1,62 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_acceleration.h
+ *
+ * @brief Nyx's public API for accessing an acceleration sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_ACCELERATION_H_
+#define _NYX_SENSOR_ACCELERATION_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_acceleration_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_acceleration_public Acceleration Sensor
+* @ingroup nyx_public
+* @brief Nyx's public API for accessing an acceleration sensor
+* device and the events it generates.
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the acceleration event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_acceleration_event_get_item(nyx_event_handle_t handle, nyx_sensor_acceleration_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_ACCELERATION_H_ */
61 include/nyx/client/nyx_sensor_als.h
@@ -0,0 +1,61 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_als.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing an ambient light sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_ALS_H_
+#define _NYX_SENSOR_ALS_H_
+
+#include <nyx/common/nyx_device.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_als_public Ambient Light Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the light intensity value of the ambient light sensor (ALS) event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] intensity_in_lux_out_ptr - pointer to light intensity value (in lux) of the ALS event
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_als_event_get_intensity(nyx_event_handle_t handle, int32_t* intensity_in_lux_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NYX_SENSOR_ALS_H_ */
63 include/nyx/client/nyx_sensor_angular_velocity.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_angular_velocity.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing an angular velocity sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_ANGULAR_VELOCITY_H_
+#define _NYX_SENSOR_ANGULAR_VELOCITY_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_angular_velocity_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_angular_velocity_public Angular Velocity Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event item for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the angular_velocity event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_angular_velocity_event_get_item(nyx_event_handle_t handle, nyx_sensor_angular_velocity_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_ANGULAR_VELOCITY_H_ */
83 include/nyx/client/nyx_sensor_bearing.h
@@ -0,0 +1,83 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_bearing.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a bearing sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_BEARING_H_
+#define _NYX_SENSOR_BEARING_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_bearing_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_bearing_public Bearing Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle.
+ * @param[out] event_out_ptr - pointer to the bearing event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_bearing_event_get_item(nyx_event_handle_t handle, nyx_sensor_bearing_event_item_t *event_out_ptr);
+
+/**
+ * Get the device's global location.
+ *
+ * @param[in] handle the device handle.
+ * @param[out] location the device's location as defined in @ref nyx_sensor_bearing_location_t
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_bearing_get_location(nyx_device_handle_t handle, nyx_sensor_bearing_location_t* location);
+
+/**
+ * Set the device's global location.
+ *
+ * @param[in] handle the device handle.
+ * @param[in] location the device's location as defined in @ref nyx_sensor_bearing_location_t
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_bearing_set_location(nyx_device_handle_t handle, nyx_sensor_bearing_location_t* new_location);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_BEARING_H_ */
63 include/nyx/client/nyx_sensor_gravity.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_gravity.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a gravity sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_GRAVITY_H_
+#define _NYX_SENSOR_GRAVITY_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_gravity_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_gravity_public Gravity Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event item for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the gravity event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_gravity_event_get_item(nyx_event_handle_t handle, nyx_sensor_gravity_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_GRAVITY_H_ */
63 include/nyx/client/nyx_sensor_linear_acceleration.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_linear_acceleration.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a linear acceleration sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_LINEAR_ACCELERATION_H_
+#define _NYX_SENSOR_LINEAR_ACCELERATION_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_linear_acceleration_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_linear_acceleration_public Linear Acceleration Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the linear_acceleration event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_linear_acceleration_event_get_item(nyx_event_handle_t handle, nyx_sensor_linear_acceleration_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_LINEAR_ACCELERATION_H_ */
63 include/nyx/client/nyx_sensor_magnetic_field.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_magnetic_field.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a magnetic field sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_MAGNETIC_FIELD_H_
+#define _NYX_SENSOR_MAGNETIC_FIELD_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_magnetic_field_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_magnetic_field_public Magnetic Field Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the magnetic_field event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_magnetic_field_event_get_item(nyx_event_handle_t handle, nyx_sensor_magnetic_field_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_MAGNETIC_FIELD_H_ */
85 include/nyx/client/nyx_sensor_orientation.h
@@ -0,0 +1,85 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_orientation.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing an orientation sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_ORIENTATION_H_
+#define _NYX_SENSOR_ORIENTATION_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_orientation_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_orientation_public Orientation Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the orientation event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_orientation_event_get_item(nyx_event_handle_t handle, nyx_sensor_orientation_event_item_t *event_out_ptr);
+
+/**
+ * Get the threshold values for the orientation sensor.
+ *
+ * @param[in] handle - the device handle
+ * @param[out] threshold - orientation threshold values as defined by @ref nyx_sensor_orientation_threshold_t
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_orientation_get_threshold(nyx_device_handle_t handle, nyx_sensor_orientation_threshold_t* threshold);
+
+/**
+ * Set the threshold values for the orientation sensor.
+ *
+ * @param[in] handle - the device handle
+ * @param[in] new_threshold - orientation threshold values to set as defined by @ref nyx_sensor_orientation_threshold_t
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_orientation_set_threshold(nyx_device_handle_t handle, nyx_sensor_orientation_threshold_t* new_threshold);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+
+#endif /* _NYX_SENSOR_ORIENTATION_H_ */
63 include/nyx/client/nyx_sensor_proximity.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_proximity.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a proximity sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_PROXIMITY_H_
+#define _NYX_SENSOR_PROXIMITY_H_
+
+#include <nyx/common/nyx_device.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_proximity_public Proximity Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] present_out_ptr - pointer to the proximity presence value of the proximity event
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_proximity_event_get_presence(nyx_event_handle_t handle, int32_t* present_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_PROXIMITY_H_ */
63 include/nyx/client/nyx_sensor_rotation.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_rotation.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a rotation sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_ROTATION_H_
+#define _NYX_SENSOR_ROTATION_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_rotation_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_rotation_public Rotation Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the rotation event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_rotation_event_get_item(nyx_event_handle_t handle, nyx_sensor_rotation_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_ROTATION_H_ */
63 include/nyx/client/nyx_sensor_shake.h
@@ -0,0 +1,63 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* LICENSE@@@ */
+
+/**
+ * @file nyx_sensor_shake.h
+ *
+ */
+
+/**
+ * @brief Nyx's public API for accessing a shake sensor
+ * device and the events it generates.
+ *
+ */
+
+#ifndef _NYX_SENSOR_SHAKE_H_
+#define _NYX_SENSOR_SHAKE_H_
+
+#include <nyx/common/nyx_device.h>
+#include <nyx/common/nyx_sensor_shake_common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+* @defgroup nyx_sensor_shake_public Shake Sensor
+* @ingroup nyx_public
+* @{
+*/
+
+/**
+ * Get the event items for the current event.
+ *
+ * @param[in] handle - the event handle
+ * @param[out] event_out_ptr - pointer to the shake event item
+ *
+ * @return error code (NYX_ERROR_NONE if operation is successful)
+ *
+ */
+NYX_API_EXPORT nyx_error_t nyx_sensor_shake_event_get_item(nyx_event_handle_t handle, nyx_sensor_shake_event_item_t *event_out_ptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _NYX_SENSOR_SHAKE_H_ */
234 include/nyx/client/nyx_system.h
@@ -0,0 +1,234 @@
+/* @@@LICENSE
+*
+* Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,