123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*
- ChibiOS - Copyright (C) 2006..2018 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 */
- /** @} */
|