From f8c3221de92eb5f92c045798786b81a3f316044b Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 15 Mar 2016 15:54:43 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9117 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/lib/peripherals/displays/hal_displays.h | 112 +++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 os/hal/lib/peripherals/displays/hal_displays.h (limited to 'os/hal') diff --git a/os/hal/lib/peripherals/displays/hal_displays.h b/os/hal/lib/peripherals/displays/hal_displays.h new file mode 100644 index 000000000..60d11e933 --- /dev/null +++ b/os/hal/lib/peripherals/displays/hal_displays.h @@ -0,0 +1,112 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + 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. +*/ + +/** + * @file hal_displays.h + * @brief Generic display interface header. + * + * @addtogroup HAL_DISPLAYS + * @{ + */ + +#ifndef _HAL_DISPLAYS_H_ +#define _HAL_DISPLAYS_H_ + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief @p BaseDisplay specific methods. + * @note No methods so far, just a common ancestor interface. + */ +#define _base_display_methods_alone + +/** + * @brief @p BaseDisplay specific methods with inherited ones. + */ +#define _base_display_methods \ + _base_display_methods_alone + +/** + * @brief @p BaseDisplay virtual methods table. + */ +struct BaseDisplayVMT { + _base_display_methods +}; + +/** + * @brief @p BaseDisplay specific data. + * @note It is empty because @p BaseDisplay is only an interface + * without implementation. + */ +#define _base_display_data + +/** + * @brief Base display class. + */ +typedef struct { + /** @brief Virtual Methods Table.*/ + const struct BaseDisplayVMT *vmt_basedisplay; + _base_display_data +} BaseDisplay; + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/** + * @name Macro Functions (BaseDisplay) + * @{ + */ +/** + * @brief Sensors get axes number. + * + * @param[in] ip pointer to a @p BaseDisplay or derived class. + * @return The number of axes of the BaseDisplay + * + * @api + */ +#define displayGetType(ip) (ip)->vmt_basedisplay->get_type(ip) +/** @} */ + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _HAL_DISPLAYS_H_ */ + +/** @} */ -- cgit v1.2.3