mirror of
https://github.com/google/pebble.git
synced 2025-03-17 01:21:21 +00:00
182 lines
4.6 KiB
C
182 lines
4.6 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/app_smartstrap_private.h"
|
|
#include "applib/graphics/graphics.h"
|
|
#include "applib/ui/animation_private.h"
|
|
#include "applib/ui/click_internal.h"
|
|
#include "applib/ui/layer.h"
|
|
#include "applib/ui/window_stack_private.h"
|
|
#include "applib/unobstructed_area_service_private.h"
|
|
#include "process_state/app_state/app_state.h"
|
|
#include "services/normal/app_glances/app_glance_service.h"
|
|
#include "util/attributes.h"
|
|
#include "util/heap.h"
|
|
|
|
static Heap s_app_heap;
|
|
|
|
bool app_state_configure(MemorySegment *app_state_ram,
|
|
ProcessAppSDKType sdk_type,
|
|
int16_t obstruction_origin_y) {
|
|
return true;
|
|
}
|
|
|
|
void app_state_init(void) {
|
|
}
|
|
|
|
void app_state_deinit(void) {
|
|
}
|
|
|
|
struct tm *app_state_get_gmtime_tm(void) {
|
|
static struct tm gmtime_tm = {0};
|
|
return &gmtime_tm;
|
|
}
|
|
|
|
struct tm *app_state_get_localtime_tm(void) {
|
|
static struct tm localtime_tm = {0};
|
|
return &localtime_tm;
|
|
}
|
|
|
|
char *app_state_get_localtime_zone(void) {
|
|
static char localtime_zone[TZ_LEN] = {0};
|
|
return localtime_zone;
|
|
}
|
|
|
|
LocaleInfo *app_state_get_locale_info(void) {
|
|
return NULL;
|
|
}
|
|
|
|
GContext *s_app_state_get_graphics_context;
|
|
GContext* app_state_get_graphics_context(void) {
|
|
return s_app_state_get_graphics_context;
|
|
}
|
|
|
|
Heap* app_state_get_heap(void) {
|
|
return &s_app_heap;
|
|
}
|
|
|
|
static AnimationState s_stub_app_animation_state;
|
|
|
|
AnimationState* app_state_get_animation_state(void) {
|
|
return &s_stub_app_animation_state;
|
|
}
|
|
|
|
static AnimationState s_stub_kernel_animation_state;
|
|
|
|
AnimationState* kernel_applib_get_animation_state(void) {
|
|
return &s_stub_kernel_animation_state;
|
|
}
|
|
|
|
GBitmap* app_state_legacy2_get_2bit_framebuffer(void) {
|
|
// Shouldn't be used, only for backwards compatibility
|
|
return NULL;
|
|
}
|
|
|
|
|
|
static Layer *s_layer_tree_stack[LAYER_TREE_STACK_SIZE];
|
|
|
|
Layer** app_state_get_layer_tree_stack(void) {
|
|
return s_layer_tree_stack;
|
|
}
|
|
|
|
Layer** kernel_applib_get_layer_tree_stack(void) {
|
|
return s_layer_tree_stack;
|
|
}
|
|
|
|
static WindowStack s_window_stack;
|
|
|
|
WindowStack *app_state_get_window_stack(void) {
|
|
return &s_window_stack;
|
|
}
|
|
|
|
static SmartstrapConnectionState s_smartstrap_state;
|
|
|
|
SmartstrapConnectionState *app_state_get_smartstrap_state(void) {
|
|
return &s_smartstrap_state;
|
|
}
|
|
|
|
static ClickManager click_manager;
|
|
|
|
ClickManager *app_state_get_click_manager(void) {
|
|
return &click_manager;
|
|
}
|
|
|
|
static void *s_user_data;
|
|
void app_state_set_user_data(void *data) {
|
|
s_user_data = data;
|
|
}
|
|
|
|
void *app_state_get_user_data(void) {
|
|
return s_user_data;
|
|
}
|
|
|
|
static RockyRuntimeContext *s_rocky_runtime_context = NULL;
|
|
static uint8_t *s_runtime_context_buffer = NULL;
|
|
void app_state_set_rocky_runtime_context(uint8_t *unaligned_buffer,
|
|
RockyRuntimeContext *rocky_runtime_context) {
|
|
s_rocky_runtime_context = rocky_runtime_context;
|
|
s_runtime_context_buffer = unaligned_buffer;
|
|
}
|
|
|
|
uint8_t *app_state_get_rocky_runtime_context_buffer(void) {
|
|
return s_runtime_context_buffer;
|
|
}
|
|
|
|
RockyRuntimeContext *app_state_get_rocky_runtime_context(void) {
|
|
return s_rocky_runtime_context;
|
|
}
|
|
|
|
static RockyMemoryAPIContext *s_rocky_memory_api_context = NULL;
|
|
void app_state_set_rocky_memory_api_context(RockyMemoryAPIContext *context) {
|
|
s_rocky_memory_api_context = context;
|
|
}
|
|
|
|
RockyMemoryAPIContext *app_state_get_rocky_memory_api_context(void) {
|
|
return s_rocky_memory_api_context;
|
|
}
|
|
|
|
UnobstructedAreaState s_stub_unobstructed_area_state;
|
|
|
|
UnobstructedAreaState *app_state_get_unobstructed_area_state(void) {
|
|
return &s_stub_unobstructed_area_state;
|
|
}
|
|
|
|
AppGlance s_app_glance;
|
|
|
|
AppGlance *app_state_get_glance(void) {
|
|
return &s_app_glance;
|
|
}
|
|
|
|
static bool s_text_perimeter_debugging_enabled;
|
|
bool app_state_get_text_perimeter_debugging_enabled(void) {
|
|
return s_text_perimeter_debugging_enabled;
|
|
}
|
|
|
|
void app_state_set_text_perimeter_debugging_enabled(bool enabled) {
|
|
s_text_perimeter_debugging_enabled = enabled;
|
|
}
|
|
|
|
TextRenderState *app_state_get_text_render_state(void) {
|
|
static TextRenderState s_state = {0};
|
|
return &s_state;
|
|
}
|
|
|
|
FrameBuffer *s_app_state_framebuffer;
|
|
FrameBuffer * WEAK app_state_get_framebuffer(void) {
|
|
return s_app_state_framebuffer;
|
|
}
|