17777dab0Sopenharmony_ci/* 27777dab0Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 37777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 47777dab0Sopenharmony_ci * you may not use this file except in compliance with the License. 57777dab0Sopenharmony_ci * You may obtain a copy of the License at 67777dab0Sopenharmony_ci * 77777dab0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 87777dab0Sopenharmony_ci * 97777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 107777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 117777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 127777dab0Sopenharmony_ci * See the License for the specific language governing permissions and 137777dab0Sopenharmony_ci * limitations under the License. 147777dab0Sopenharmony_ci */ 157777dab0Sopenharmony_ci 167777dab0Sopenharmony_ci/** 177777dab0Sopenharmony_ci * @addtogroup resourcemanager 187777dab0Sopenharmony_ci * @{ 197777dab0Sopenharmony_ci * 207777dab0Sopenharmony_ci * @brief Provides the c interface to obtain resources, and relies on librawfile.z.so when used. 217777dab0Sopenharmony_ci * 227777dab0Sopenharmony_ci * @since 12 237777dab0Sopenharmony_ci */ 247777dab0Sopenharmony_ci 257777dab0Sopenharmony_ci/** 267777dab0Sopenharmony_ci * @file resmgr_common.h 277777dab0Sopenharmony_ci * 287777dab0Sopenharmony_ci * @brief Provides the structure required by the interface. 297777dab0Sopenharmony_ci * @syscap SystemCapability.Global.ResourceManager 307777dab0Sopenharmony_ci * @library libohresmgr.so 317777dab0Sopenharmony_ci * @kit LocalizationKit 327777dab0Sopenharmony_ci * @since 12 337777dab0Sopenharmony_ci */ 347777dab0Sopenharmony_ci#ifndef GLOBAL_RESMGR_COMMON_H 357777dab0Sopenharmony_ci#define GLOBAL_RESMGR_COMMON_H 367777dab0Sopenharmony_ci 377777dab0Sopenharmony_ci# include <stdint.h> 387777dab0Sopenharmony_ci 397777dab0Sopenharmony_ci#ifdef __cplusplus 407777dab0Sopenharmony_ciextern "C" { 417777dab0Sopenharmony_ci#endif 427777dab0Sopenharmony_ci 437777dab0Sopenharmony_ci/** 447777dab0Sopenharmony_ci * @brief The error code of resource manager. 457777dab0Sopenharmony_ci * 467777dab0Sopenharmony_ci * @since 12 477777dab0Sopenharmony_ci */ 487777dab0Sopenharmony_citypedef enum ResourceManager_ErrorCode { 497777dab0Sopenharmony_ci /** @error Success */ 507777dab0Sopenharmony_ci SUCCESS = 0, 517777dab0Sopenharmony_ci /** @error Invalid input parameter */ 527777dab0Sopenharmony_ci ERROR_CODE_INVALID_INPUT_PARAMETER = 401, 537777dab0Sopenharmony_ci /** @error Invalid resource ID */ 547777dab0Sopenharmony_ci ERROR_CODE_RES_ID_NOT_FOUND = 9001001, 557777dab0Sopenharmony_ci /** @error Invalid resource name */ 567777dab0Sopenharmony_ci ERROR_CODE_RES_NOT_FOUND_BY_ID = 9001002, 577777dab0Sopenharmony_ci /** @error No matching resource is found based on the resource ID */ 587777dab0Sopenharmony_ci ERROR_CODE_RES_NAME_NOT_FOUND = 9001003, 597777dab0Sopenharmony_ci /** @error No matching resource is found based on the resource name */ 607777dab0Sopenharmony_ci ERROR_CODE_RES_NOT_FOUND_BY_NAME = 9001004, 617777dab0Sopenharmony_ci /** @error Invalid relative path */ 627777dab0Sopenharmony_ci ERROR_CODE_RES_PATH_INVALID = 9001005, 637777dab0Sopenharmony_ci /** @error The resource is referenced cyclically */ 647777dab0Sopenharmony_ci ERROR_CODE_RES_REF_TOO_MUCH = 9001006, 657777dab0Sopenharmony_ci /** @error Failed to format the resource obtained based on the resource ID */ 667777dab0Sopenharmony_ci ERROR_CODE_RES_ID_FORMAT_ERROR = 9001007, 677777dab0Sopenharmony_ci /** @error Failed to format the resource obtained based on the resource Name */ 687777dab0Sopenharmony_ci ERROR_CODE_RES_NAME_FORMAT_ERROR = 9001008, 697777dab0Sopenharmony_ci /** @error Failed to access the system resource */ 707777dab0Sopenharmony_ci ERROR_CODE_SYSTEM_RES_MANAGER_GET_FAILED = 9001009, 717777dab0Sopenharmony_ci /** @error Invalid overlay path */ 727777dab0Sopenharmony_ci ERROR_CODE_OVERLAY_RES_PATH_INVALID = 9001010, 737777dab0Sopenharmony_ci /** @error Out of memory */ 747777dab0Sopenharmony_ci ERROR_CODE_OUT_OF_MEMORY = 9001100, 757777dab0Sopenharmony_ci} ResourceManager_ErrorCode; 767777dab0Sopenharmony_ci 777777dab0Sopenharmony_ci/** 787777dab0Sopenharmony_ci * @brief Enumerates screen directions. 797777dab0Sopenharmony_ci * 807777dab0Sopenharmony_ci * @since 12 817777dab0Sopenharmony_ci */ 827777dab0Sopenharmony_citypedef enum ResourceManager_Direction { 837777dab0Sopenharmony_ci /** Indicates the vertical direction. */ 847777dab0Sopenharmony_ci DIRECTION_VERTICAL = 0, 857777dab0Sopenharmony_ci /** Indicates the horizontal direction. */ 867777dab0Sopenharmony_ci DIRECTION_HORIZONTAL = 1, 877777dab0Sopenharmony_ci} ResourceManager_Direction; 887777dab0Sopenharmony_ci 897777dab0Sopenharmony_ci/** 907777dab0Sopenharmony_ci * @brief Enumerates color mode types. 917777dab0Sopenharmony_ci * 927777dab0Sopenharmony_ci * @since 12 937777dab0Sopenharmony_ci */ 947777dab0Sopenharmony_citypedef enum ResourceManager_ColorMode { 957777dab0Sopenharmony_ci /** Indicates dark mode. */ 967777dab0Sopenharmony_ci COLOR_MODE_DARK = 0, 977777dab0Sopenharmony_ci /** Indicates light mode. */ 987777dab0Sopenharmony_ci COLOR_MODE_LIGHT = 1, 997777dab0Sopenharmony_ci} ResourceManager_ColorMode; 1007777dab0Sopenharmony_ci 1017777dab0Sopenharmony_ci/** 1027777dab0Sopenharmony_ci * @brief Enumerates device types. 1037777dab0Sopenharmony_ci * 1047777dab0Sopenharmony_ci * @since 12 1057777dab0Sopenharmony_ci */ 1067777dab0Sopenharmony_citypedef enum ResourceManager_DeviceType { 1077777dab0Sopenharmony_ci /** Indicates a phone. */ 1087777dab0Sopenharmony_ci DEVICE_TYPE_PHONE = 0X00, 1097777dab0Sopenharmony_ci /** Indicates a tablet. */ 1107777dab0Sopenharmony_ci DEVICE_TYPE_TABLET = 0x01, 1117777dab0Sopenharmony_ci /** Indicates a car. */ 1127777dab0Sopenharmony_ci DEVICE_TYPE_CAR = 0x02, 1137777dab0Sopenharmony_ci /** Indicates a PC. */ 1147777dab0Sopenharmony_ci DEVICE_TYPE_PC = 0x03, 1157777dab0Sopenharmony_ci /** Indicates a smart TV. */ 1167777dab0Sopenharmony_ci DEVICE_TYPE_TV = 0x04, 1177777dab0Sopenharmony_ci /** Indicates a wearable device. */ 1187777dab0Sopenharmony_ci DEVICE_TYPE_WEARABLE = 0x06, 1197777dab0Sopenharmony_ci /** Indicates a 2in1 device. */ 1207777dab0Sopenharmony_ci DEVICE_TYPE_2IN1 = 0x07, 1217777dab0Sopenharmony_ci} ResourceManager_DeviceType; 1227777dab0Sopenharmony_ci 1237777dab0Sopenharmony_ci/** 1247777dab0Sopenharmony_ci * @brief Enumerates screen density types. 1257777dab0Sopenharmony_ci * 1267777dab0Sopenharmony_ci * @since 12 1277777dab0Sopenharmony_ci */ 1287777dab0Sopenharmony_citypedef enum ScreenDensity { 1297777dab0Sopenharmony_ci /** Indicates small screen density. */ 1307777dab0Sopenharmony_ci SCREEN_SDPI = 120, 1317777dab0Sopenharmony_ci /** Indicates medium screen density. */ 1327777dab0Sopenharmony_ci SCREEN_MDPI = 160, 1337777dab0Sopenharmony_ci /** Indicates large screen density. */ 1347777dab0Sopenharmony_ci SCREEN_LDPI = 240, 1357777dab0Sopenharmony_ci /** Indicates extra-large screen density. */ 1367777dab0Sopenharmony_ci SCREEN_XLDPI = 320, 1377777dab0Sopenharmony_ci /** Indicates extra-extra-large screen density. */ 1387777dab0Sopenharmony_ci SCREEN_XXLDPI = 480, 1397777dab0Sopenharmony_ci /** Indicates extra-extra-extra-large screen density. */ 1407777dab0Sopenharmony_ci SCREEN_XXXLDPI = 640, 1417777dab0Sopenharmony_ci} ScreenDensity; 1427777dab0Sopenharmony_ci 1437777dab0Sopenharmony_ci/** 1447777dab0Sopenharmony_ci * @brief Enumerates device configuration. 1457777dab0Sopenharmony_ci * 1467777dab0Sopenharmony_ci * @since 12 1477777dab0Sopenharmony_ci */ 1487777dab0Sopenharmony_citypedef struct ResourceManager_Configuration { 1497777dab0Sopenharmony_ci /** Indicates the screen direction of the current device. */ 1507777dab0Sopenharmony_ci ResourceManager_Direction direction; 1517777dab0Sopenharmony_ci /** Indicates the current system language, for example, zh-Hans-CN. */ 1527777dab0Sopenharmony_ci char* locale; 1537777dab0Sopenharmony_ci /** Indicates the device type. */ 1547777dab0Sopenharmony_ci ResourceManager_DeviceType deviceType; 1557777dab0Sopenharmony_ci /** Indicates the screen density. */ 1567777dab0Sopenharmony_ci ScreenDensity screenDensity; 1577777dab0Sopenharmony_ci /** Indicates the color mode. */ 1587777dab0Sopenharmony_ci ResourceManager_ColorMode colorMode; 1597777dab0Sopenharmony_ci /** Indicates the mcc. */ 1607777dab0Sopenharmony_ci uint32_t mcc; 1617777dab0Sopenharmony_ci /** Indicates the mnc. */ 1627777dab0Sopenharmony_ci uint32_t mnc; 1637777dab0Sopenharmony_ci /** Reserved attributes. */ 1647777dab0Sopenharmony_ci uint32_t reserved[20]; 1657777dab0Sopenharmony_ci} ResourceManager_Configuration; 1667777dab0Sopenharmony_ci#ifdef __cplusplus 1677777dab0Sopenharmony_ci}; 1687777dab0Sopenharmony_ci#endif 1697777dab0Sopenharmony_ci 1707777dab0Sopenharmony_ci/** @} */ 1717777dab0Sopenharmony_ci#endif // GLOBAL_RESMGR_COMMON_H 172