/* * Copyright (C) 2016 The Android Open Source Project * * 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. */ #ifndef HEALTHD_ANIMATION_H #define HEALTHD_ANIMATION_H #include #include class GRSurface; struct GRFont; namespace android { #define CENTER_VAL INT_MAX struct animation { struct frame { int disp_time; int min_level; int max_level; GRSurface* surface; }; struct text_field { std::string font_file; int pos_x; int pos_y; int color_r; int color_g; int color_b; int color_a; GRFont* font; }; // When libminui loads PNG images: // - When treating paths as relative paths, it adds ".png" suffix. // - When treating paths as absolute paths, it doesn't add the suffix. Hence, the suffix // is added here. void set_resource_root(const std::string& root) { if (!animation_file.empty()) { animation_file = root + animation_file + ".png"; } if (!fail_file.empty()) { fail_file = root + fail_file + ".png"; } if (!text_clock.font_file.empty()) { text_clock.font_file = root + text_clock.font_file + ".png"; } if (!text_percent.font_file.empty()) { text_percent.font_file = root + text_percent.font_file + ".png"; } } std::string animation_file; std::string fail_file; text_field text_clock; text_field text_percent; bool run; frame* frames = nullptr; int cur_frame; int num_frames; int first_frame_repeats; // Number of times to repeat the first frame in the current cycle int cur_cycle; int num_cycles; // Number of cycles to complete before blanking the screen int cur_level; // current battery level being animated (0-100) int cur_status; // current battery status - see BatteryService.h for BATTERY_STATUS_* ~animation() { delete frames; } }; } #endif // HEALTHD_ANIMATION_H