[FL-2627] Flipper applications: SDK, build and debug system (#1387)
* Added support for running applications from SD card (FAPs - Flipper Application Packages) * Added plugin_dist target for fbt to build FAPs * All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default * Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them * Added debugging support for FAPs with fbt debug & VSCode * Added public firmware API with automated versioning Co-authored-by: hedger <hedger@users.noreply.github.com> Co-authored-by: SG <who.just.the.doctor@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
110
applications/services/notification/notification.h
Normal file
110
applications/services/notification/notification.h
Normal file
@@ -0,0 +1,110 @@
|
||||
#pragma once
|
||||
#include "stdint.h"
|
||||
#include "stdbool.h"
|
||||
#include <furi_hal_resources.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define RECORD_NOTIFICATION "notification"
|
||||
|
||||
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 struct {
|
||||
uint16_t on_time;
|
||||
uint16_t period;
|
||||
Light color;
|
||||
} NotificationMessageDataLedBlink;
|
||||
|
||||
typedef union {
|
||||
NotificationMessageDataSound sound;
|
||||
NotificationMessageDataLed led;
|
||||
NotificationMessageDataLedBlink led_blink;
|
||||
NotificationMessageDataVibro vibro;
|
||||
NotificationMessageDataDelay delay;
|
||||
NotificationMessageDataForcedSettings forced_settings;
|
||||
} NotificationMessageData;
|
||||
|
||||
typedef enum {
|
||||
NotificationMessageTypeVibro,
|
||||
|
||||
NotificationMessageTypeSoundOn,
|
||||
NotificationMessageTypeSoundOff,
|
||||
|
||||
NotificationMessageTypeLedRed,
|
||||
NotificationMessageTypeLedGreen,
|
||||
NotificationMessageTypeLedBlue,
|
||||
|
||||
NotificationMessageTypeLedBlinkStart,
|
||||
NotificationMessageTypeLedBlinkStop,
|
||||
NotificationMessageTypeLedBlinkColor,
|
||||
|
||||
NotificationMessageTypeDelay,
|
||||
|
||||
NotificationMessageTypeLedDisplayBacklight,
|
||||
NotificationMessageTypeLedDisplayBacklightEnforceOn,
|
||||
NotificationMessageTypeLedDisplayBacklightEnforceAuto,
|
||||
|
||||
NotificationMessageTypeDoNotReset,
|
||||
|
||||
NotificationMessageTypeForceSpeakerVolumeSetting,
|
||||
NotificationMessageTypeForceVibroSetting,
|
||||
NotificationMessageTypeForceDisplayBrightnessSetting,
|
||||
|
||||
NotificationMessageTypeLedBrightnessSettingApply,
|
||||
} 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
|
Reference in New Issue
Block a user