Matheus Afonso Martins Moreira 01312c2deb faces/clock: move structure definition
Instances of the clock state structure
are only passed to the clock face itself
and only via the opaque context pointer.
No other code uses it.

Thus there is no need to expose it in a header file.
So make it an implementation detail of the watch face
by localizing it inside the translation unit.
2024-02-25 15:24:14 -03:00

55 lines
2.0 KiB
C

/*
* MIT License
*
* Copyright (c) 2022 Joey Castillo
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#ifndef CLOCK_FACE_H_
#define CLOCK_FACE_H_
/*
* CLOCK FACE
*
* Displays the current local time, just like the original watch.
* This is the default display mode in most watch configurations.
*
* Long-press ALARM to toggle the hourly chime.
*
*/
#include "movement.h"
void clock_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr);
void clock_face_activate(movement_settings_t *settings, void *context);
bool clock_face_loop(movement_event_t event, movement_settings_t *settings, void *context);
void clock_face_resign(movement_settings_t *settings, void *context);
bool clock_face_wants_background_task(movement_settings_t *settings, void *context);
#define clock_face ((const watch_face_t) { \
clock_face_setup, \
clock_face_activate, \
clock_face_loop, \
clock_face_resign, \
clock_face_wants_background_task, \
})
#endif // CLOCK_FACE_H_