| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /*
- *
- * Copyright (c) 2020 Project CHIP Authors
- * Copyright (c) 2018 Nest Labs, Inc.
- * All rights reserved.
- *
- * 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 Display.h
- *
- * This describes helper APIs for the M5Stack's Display
- *
- */
- #pragma once
- #include "esp_system.h"
- #if CONFIG_HAVE_DISPLAY
- #if CONFIG_DEVICE_TYPE_M5STACK
- #define INVERT_DISPLAY INVERT_ON
- #elif CONFIG_DEVICE_TYPE_ESP32_WROVER_KIT
- #define INVERT_DISPLAY INVERT_OFF
- #endif
- extern "C" {
- #include "tft.h"
- #include "tftspi.h"
- } // extern "C"
- // To reduce wear (and heat) on the screen, the display will always go off after a few seconds
- #define DISPLAY_TIMEOUT_MS 30000
- extern uint16_t DisplayHeight;
- extern uint16_t DisplayWidth;
- /**
- * @brief
- * Initialize the M5Stack's display driver and set the default bright control and timeout
- *
- * @return esp_err_t 0 if the display driver was initialized correctly
- */
- extern esp_err_t InitDisplay();
- /**
- * @brief
- * Clear the display by setting the whole screen to black
- */
- extern void ClearDisplay();
- /**
- * @brief
- * Clear a portion of the display by drawing a black rectangle based on the given arguments
- *
- * Calling this with default arguments is the same as calling `ClearDisplay()`.
- *
- * @param x_percent_start The starting x coordinate specified as a percentage of the screen's width.
- * @param y_percent_start The starting y coordinate specified as a percentage of the screen's height.
- * @param x_percent_end The end x coordinate specified as a percentage of the screen's width.
- * @param y_percent_end The end y coordinate specified as a percentage of the screen's height.
- */
- extern void ClearRect(uint16_t x_percent_start = 0, uint16_t y_percent_start = 0, uint16_t x_percent_end = 100,
- uint16_t y_percent_end = 100);
- /**
- * @brief
- * Display a status message at a given vertical position
- *
- * The status message will be drawn from the left edge of the screen
- *
- * @param msg The message to display
- * @param vpos The vertical position(0-100 percent) of the message. Where 0 is the top of the screen
- */
- extern void DisplayStatusMessage(char * msg, uint16_t vpos);
- /**
- * @brief
- * Reset the display timeout and set the brightness back up to default values
- *
- * @return true If the display was woken
- */
- extern bool WakeDisplay();
- #endif // #if CONFIG_HAVE_DISPLAY
|