| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #pragma once
- #include "stdint.h"
- #include "stdbool.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct NotificationApp NotificationApp;
- typedef struct {
- float frequency;
- float volume;
- } NotificationMessageDataSound;
- typedef struct {
- uint8_t value;
- } NotificationMessageDataLed;
- typedef struct {
- bool on;
- } NotificationMessageDataVibro;
- typedef struct {
- uint32_t length;
- } NotificationMessageDataDelay;
- typedef struct {
- float speaker_volume;
- bool vibro;
- float display_brightness;
- } NotificationMessageDataForcedSettings;
- typedef union {
- NotificationMessageDataSound sound;
- NotificationMessageDataLed led;
- NotificationMessageDataVibro vibro;
- NotificationMessageDataDelay delay;
- NotificationMessageDataForcedSettings forced_settings;
- } NotificationMessageData;
- typedef enum {
- NotificationMessageTypeVibro,
- NotificationMessageTypeSoundOn,
- NotificationMessageTypeSoundOff,
- NotificationMessageTypeLedRed,
- NotificationMessageTypeLedGreen,
- NotificationMessageTypeLedBlue,
- NotificationMessageTypeDelay,
- NotificationMessageTypeLedDisplay,
- NotificationMessageTypeLedDisplayLock,
- NotificationMessageTypeLedDisplayUnlock,
- NotificationMessageTypeDoNotReset,
- NotificationMessageTypeForceSpeakerVolumeSetting,
- NotificationMessageTypeForceVibroSetting,
- NotificationMessageTypeForceDisplayBrightnessSetting,
- } NotificationMessageType;
- typedef struct {
- NotificationMessageType type;
- NotificationMessageData data;
- } NotificationMessage;
- typedef const NotificationMessage* NotificationSequence[];
- void notification_message(NotificationApp* app, const NotificationSequence* sequence);
- void notification_message_block(NotificationApp* app, const NotificationSequence* sequence);
- /**
- * @brief Send internal (apply to permanent layer) notification message. Think twice before use.
- *
- * @param app notification record content
- * @param sequence notification sequence
- */
- void notification_internal_message(NotificationApp* app, const NotificationSequence* sequence);
- /**
- * @brief Send internal (apply to permanent layer) notification message and wait for notification end. Think twice before use.
- *
- * @param app notification record content
- * @param sequence notification sequence
- */
- void notification_internal_message_block(
- NotificationApp* app,
- const NotificationSequence* sequence);
- #ifdef __cplusplus
- }
- #endif
|