From daec03bd352db1654c3bf456bbeeed2eb9f87d03 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Sun, 3 May 2026 23:08:56 +0300 Subject: [PATCH] add canvas_buffer to api --- CHANGELOG.md | 3 ++- applications/services/gui/canvas.c | 1 + applications/services/gui/canvas.h | 16 ++++++++++++++++ applications/services/gui/canvas_i.h | 16 ---------------- targets/f7/api_symbols.csv | 6 ++++-- 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a194a1f4..3d26747d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ## Main changes -- Current API: 87.7 +- Current API: 87.8 * SubGHz: Add support for **42+ Keeloq based systems** (with partial Add Manually support) (see [Full list](/documentation/SubGHzSupportedSystems.md)) (by @zero-mega, @xMasterX, ARF Team) * SubGHz: Add **Allstar Firefly 318ALD31K** protocol (18 bits, Static) (PR #989 | by @jlaughter) * SubGHz: Add **Nord ICE** protocol (33 bits, Static) @@ -17,6 +17,7 @@ * OFW PR 4369: NFC: Fix stack buffer overflows in MFUL FAST_READ and DESFire file settings parsers (by @qp-x-qp) * Apps: Build tag (**29apr2026**) - **Check out more Apps updates and fixes by following** [this link](https://github.com/xMasterX/all-the-plugins/commits/dev) ## Other changes +* UI: Add `canvas_get_buffer`, `canvas_get_buffer_size` to public API * HID App: PTT improvements (PR #996 | by @hryamzik) * UI: Wording changes to be more clear (PR #994 | by @SkeletonMan03) * SubGHz: Fix duplicate code in RAW protocol diff --git a/applications/services/gui/canvas.c b/applications/services/gui/canvas.c index 337789dd3..581bc9312 100644 --- a/applications/services/gui/canvas.c +++ b/applications/services/gui/canvas.c @@ -1,4 +1,5 @@ #include "canvas_i.h" +#include "canvas.h" #include "icon_animation_i.h" #include diff --git a/applications/services/gui/canvas.h b/applications/services/gui/canvas.h index efd314687..3bbdde83d 100644 --- a/applications/services/gui/canvas.h +++ b/applications/services/gui/canvas.h @@ -85,6 +85,22 @@ typedef enum { /** Canvas anonymous structure */ typedef struct Canvas Canvas; +/** Get canvas buffer. + * + * @param canvas Canvas instance + * + * @return pointer to buffer + */ +uint8_t* canvas_get_buffer(Canvas* canvas); + +/** Get canvas buffer size. + * + * @param canvas Canvas instance + * + * @return size of canvas in bytes + */ +size_t canvas_get_buffer_size(const Canvas* canvas); + /** Reset canvas drawing tools configuration * * @param canvas Canvas instance diff --git a/applications/services/gui/canvas_i.h b/applications/services/gui/canvas_i.h index cc918f8df..30c96b45d 100644 --- a/applications/services/gui/canvas_i.h +++ b/applications/services/gui/canvas_i.h @@ -61,22 +61,6 @@ Canvas* canvas_init(void); */ void canvas_free(Canvas* canvas); -/** Get canvas buffer. - * - * @param canvas Canvas instance - * - * @return pointer to buffer - */ -uint8_t* canvas_get_buffer(Canvas* canvas); - -/** Get canvas buffer size. - * - * @param canvas Canvas instance - * - * @return size of canvas in bytes - */ -size_t canvas_get_buffer_size(const Canvas* canvas); - /** Set drawing region relative to real screen buffer * * @param canvas Canvas instance diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index c1c6cbcef..3b6b8417d 100755 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,87.7,, +Version,+,87.8,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/applications.h,, Header,+,applications/services/bt/bt_service/bt.h,, @@ -880,6 +880,8 @@ Function,+,canvas_draw_str_aligned,void,"Canvas*, int32_t, int32_t, Align, Align Function,+,canvas_draw_triangle,void,"Canvas*, int32_t, int32_t, size_t, size_t, CanvasDirection" Function,+,canvas_draw_xbm,void,"Canvas*, int32_t, int32_t, size_t, size_t, const uint8_t*" Function,+,canvas_draw_xbm_ex,void,"Canvas*, int32_t, int32_t, size_t, size_t, IconRotation, const uint8_t*" +Function,+,canvas_get_buffer,uint8_t*,Canvas* +Function,+,canvas_get_buffer_size,size_t,const Canvas* Function,+,canvas_get_font_params,const CanvasFontParameters*,"const Canvas*, Font" Function,+,canvas_glyph_width,size_t,"Canvas*, uint16_t" Function,+,canvas_height,size_t,const Canvas* @@ -3734,8 +3736,8 @@ Function,+,subghz_protocol_encoder_raw_stop,void,void* Function,+,subghz_protocol_encoder_raw_yield,LevelDuration,void* Function,+,subghz_protocol_faac_slh_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint32_t, uint32_t, const char*, SubGhzRadioPreset*" Function,+,subghz_protocol_jarolift_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*" -Function,+,subghz_protocol_keeloq_seed_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, uint32_t, const char*, SubGhzRadioPreset*" Function,+,subghz_protocol_keeloq_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, const char*, SubGhzRadioPreset*" +Function,+,subghz_protocol_keeloq_seed_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, uint32_t, const char*, SubGhzRadioPreset*" Function,+,subghz_protocol_kinggates_stylo_4k_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*" Function,+,subghz_protocol_nice_flor_s_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*, _Bool" Function,+,subghz_protocol_phoenix_v2_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint16_t, SubGhzRadioPreset*"