mirror of
https://github.com/google/pebble
synced 2026-10-17 00:34:11 +02:00
193 lines
6.2 KiB
C
193 lines
6.2 KiB
C
/*
|
|
* Copyright 2024 Google LLC
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "applib/accel_service_private.h"
|
|
#include "applib/app_focus_service.h"
|
|
#include "applib/app_inbox.h"
|
|
#include "applib/app_message/app_message_internal.h"
|
|
#include "applib/app_smartstrap_private.h"
|
|
#include "applib/app_wakeup.h"
|
|
#include "applib/battery_state_service.h"
|
|
#include "applib/battery_state_service_private.h"
|
|
#include "applib/bluetooth/ble_app_support.h"
|
|
#include "applib/compass_service_private.h"
|
|
#include "applib/connection_service.h"
|
|
#include "applib/connection_service_private.h"
|
|
#include "applib/graphics/gtypes.h"
|
|
#include "applib/graphics/text_render.h"
|
|
#include "applib/health_service.h"
|
|
#include "applib/health_service_private.h"
|
|
#include "applib/pbl_std/locale.h"
|
|
#include "applib/plugin_service_private.h"
|
|
#include "applib/tick_timer_service.h"
|
|
#include "applib/tick_timer_service_private.h"
|
|
#include "applib/ui/animation_private.h"
|
|
#include "applib/ui/click_internal.h"
|
|
#include "applib/ui/content_indicator_private.h"
|
|
#include "applib/ui/recognizer/recognizer.h"
|
|
#include "applib/ui/window_stack_private.h"
|
|
#include "applib/unobstructed_area_service_private.h"
|
|
#include "kernel/logging_private.h"
|
|
#include "services/normal/app_glances/app_glance_service.h"
|
|
#include "services/normal/timeline/timeline_actions.h"
|
|
#include "util/heap.h"
|
|
#include "util/list.h"
|
|
|
|
struct _reent;
|
|
|
|
typedef struct ApplibInternalEventsInfo {
|
|
EventServiceInfo will_focus_event;
|
|
EventServiceInfo button_down_event;
|
|
EventServiceInfo button_up_event;
|
|
EventServiceInfo legacy2_status_bar_change_event;
|
|
int minute_of_last_legacy2_statusbar_change;
|
|
} ApplibInternalEventsInfo;
|
|
|
|
typedef struct AppFocusState {
|
|
AppFocusHandlers handlers;
|
|
EventServiceInfo will_focus_info;
|
|
EventServiceInfo did_focus_info;
|
|
} AppFocusState;
|
|
|
|
typedef struct TextRenderState {
|
|
SpecialCodepointHandlerCb special_codepoint_handler_cb;
|
|
void *special_codepoint_handler_context;
|
|
} TextRenderState;
|
|
|
|
|
|
typedef struct AppStateInitParams {
|
|
ProcessAppSDKType sdk_type;
|
|
int16_t obstruction_origin_y;
|
|
} AppStateInitParams;
|
|
|
|
|
|
typedef struct MemorySegment MemorySegment;
|
|
|
|
typedef struct RockyRuntimeContext RockyRuntimeContext;
|
|
typedef struct RockyMemoryAPIContext RockyMemoryAPIContext;
|
|
|
|
//! Allocate memory in the process' address space for AppState data and
|
|
//! perform initial configuration.
|
|
bool app_state_configure(MemorySegment *app_state_ram,
|
|
ProcessAppSDKType sdk_type,
|
|
int16_t obstruction_origin_y);
|
|
|
|
//! Finish initializing AppState from within the running app task.
|
|
void app_state_init(void);
|
|
|
|
//! Clean up after ourselves nicely. Note that this may not be called if the app crashes.
|
|
void app_state_deinit(void);
|
|
|
|
Heap* app_state_get_heap(void);
|
|
|
|
AppInbox **app_state_get_app_message_inbox(void);
|
|
|
|
EventServiceInfo *app_state_get_app_outbox_subscription_info(void);
|
|
|
|
ApplibInternalEventsInfo *app_state_get_applib_internal_events_info(void);
|
|
|
|
AnimationState* app_state_get_animation_state(void);
|
|
|
|
AppMessageCtx *app_state_get_app_message_ctx(void);
|
|
|
|
BLEAppState* app_state_get_ble_app_state(void);
|
|
|
|
ClickManager* app_state_get_click_manager(void);
|
|
|
|
WindowStack* app_state_get_window_stack(void);
|
|
|
|
FrameBuffer* app_state_get_framebuffer(void);
|
|
|
|
GContext* app_state_get_graphics_context(void);
|
|
|
|
EventServiceInfo* app_state_get_event_service_state(void);
|
|
|
|
AccelServiceState* app_state_get_accel_state(void);
|
|
|
|
CompassServiceConfig **app_state_get_compass_config(void);
|
|
|
|
PluginServiceState *app_state_get_plugin_service(void);
|
|
|
|
LogState *app_state_get_log_state(void);
|
|
|
|
BatteryStateServiceState *app_state_get_battery_state_service_state(void);
|
|
|
|
TickTimerServiceState *app_state_get_tick_timer_service_state(void);
|
|
|
|
ConnectionServiceState *app_state_get_connection_service_state(void);
|
|
|
|
LocaleInfo *app_state_get_locale_info(void);
|
|
|
|
SmartstrapConnectionState *app_state_get_smartstrap_state(void);
|
|
|
|
ContentIndicatorsBuffer *app_state_get_content_indicators_buffer(void);
|
|
|
|
HealthServiceState *app_state_get_health_service_state(void);
|
|
|
|
RecognizerList *app_state_get_recognizer_list(void);
|
|
|
|
RockyRuntimeContext *app_state_get_rocky_runtime_context(void);
|
|
|
|
uint8_t *app_state_get_rocky_runtime_context_buffer(void);
|
|
|
|
void app_state_set_rocky_runtime_context(uint8_t *unaligned_buffer,
|
|
RockyRuntimeContext *rocky_runtime_context);
|
|
|
|
RockyMemoryAPIContext *app_state_get_rocky_memory_api_context(void);
|
|
|
|
void app_state_set_rocky_memory_api_context(RockyMemoryAPIContext *context);
|
|
|
|
bool *app_state_get_framebuffer_render_pending();
|
|
|
|
void app_state_set_user_data(void *data);
|
|
void* app_state_get_user_data(void);
|
|
|
|
AppFocusState *app_state_get_app_focus_state(void);
|
|
|
|
UnobstructedAreaState *app_state_get_unobstructed_area_state(void);
|
|
|
|
AppGlance *app_state_get_glance(void);
|
|
|
|
struct Layer;
|
|
typedef struct Layer Layer;
|
|
|
|
Layer** app_state_get_layer_tree_stack(void);
|
|
|
|
WakeupHandler app_state_get_wakeup_handler(void);
|
|
void app_state_set_wakeup_handler(WakeupHandler handler);
|
|
|
|
EventServiceInfo *app_state_get_wakeup_event_info(void);
|
|
|
|
//! Retrieve a preallocated full screen 2bit framebuffer for use with 2.x apps that want to use the
|
|
//! capture_frame_buffer API. Note this memory is only valid when used with 2.x apps.
|
|
GBitmap* app_state_legacy2_get_2bit_framebuffer(void);
|
|
|
|
struct tm *app_state_get_gmtime_tm(void);
|
|
struct tm *app_state_get_localtime_tm(void);
|
|
char *app_state_get_localtime_zone(void);
|
|
|
|
void *app_state_get_rand_ptr(void);
|
|
|
|
TextRenderState *app_state_get_text_render_state(void);
|
|
|
|
bool app_state_get_text_perimeter_debugging_enabled(void);
|
|
void app_state_set_text_perimeter_debugging_enabled(bool enabled);
|
|
|
|
TimelineItemActionSource app_state_get_current_timeline_item_action_source(void);
|
|
void app_state_set_current_timeline_item_action_source(TimelineItemActionSource current_source);
|