108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn/* 208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * Copyright (C) 2010 The Android Open Source Project 308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * 408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * you may not use this file except in compliance with the License. 608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * You may obtain a copy of the License at 708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * 808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * 1008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 1108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 1208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * See the License for the specific language governing permissions and 1408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn * limitations under the License. 1508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn */ 1608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 1708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn#define LOG_TAG "Configuration" 1808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn#include <utils/Log.h> 1908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 20b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4Mathias Agopian#include <androidfw/AssetManager.h> 2108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 2208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn#include <android_runtime/android_content_res_Configuration.h> 2308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 2408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornusing namespace android; 2508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 2608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne HackbornAConfiguration* AConfiguration_new() { 2708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn AConfiguration* config = new AConfiguration; 2808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn memset(config, 0, sizeof(AConfiguration)); 2908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config; 3008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 3108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 3208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_delete(AConfiguration* config) { 3308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn delete config; 3408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 3508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 3608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_fromAssetManager(AConfiguration* out, AAssetManager* am) { 3708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn ((AssetManager*)am)->getConfiguration(out); 3808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 3908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 4008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_copy(AConfiguration* dest, AConfiguration* src) { 4108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn *dest = *src; 4208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 4308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 4408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getMcc(AConfiguration* config) { 4508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->mcc; 4608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 4708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 4808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getMnc(AConfiguration* config) { 4908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->mnc; 5008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 5108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 5208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_getLanguage(AConfiguration* config, char* outLanguage) { 5308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn outLanguage[0] = config->language[0]; 5408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn outLanguage[1] = config->language[1]; 5508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 5608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 5708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_getCountry(AConfiguration* config, char* outCountry) { 5808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn outCountry[0] = config->country[0]; 5908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn outCountry[1] = config->country[1]; 6008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 6108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 6208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getOrientation(AConfiguration* config) { 6308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->orientation; 6408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 6508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 6608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getTouchscreen(AConfiguration* config) { 6708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->touchscreen; 6808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 6908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 7008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getDensity(AConfiguration* config) { 7108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->density; 7208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 7308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 7408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getKeyboard(AConfiguration* config) { 7508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->keyboard; 7608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 7708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 7808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getNavigation(AConfiguration* config) { 7908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->navigation; 8008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 8108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 8208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getKeysHidden(AConfiguration* config) { 8308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->inputFlags&ResTable_config::MASK_KEYSHIDDEN; 8408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 8508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 8608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getNavHidden(AConfiguration* config) { 8708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return (config->inputFlags&ResTable_config::MASK_NAVHIDDEN) 8808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn >> ResTable_config::SHIFT_NAVHIDDEN; 8908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 9008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 9108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getSdkVersion(AConfiguration* config) { 9208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->sdkVersion; 9308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 9408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 9508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getScreenSize(AConfiguration* config) { 9608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->screenLayout&ResTable_config::MASK_SCREENSIZE; 9708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 9808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 9908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getScreenLong(AConfiguration* config) { 10008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return (config->screenLayout&ResTable_config::MASK_SCREENLONG) 10108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn >> ResTable_config::SHIFT_SCREENLONG; 10208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 10308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 1042738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinskiint32_t AConfiguration_getScreenRound(AConfiguration* config) { 1052738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski return (config->screenLayout2&ResTable_config::MASK_SCREENROUND); 1062738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski} 1072738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski 10808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getUiModeType(AConfiguration* config) { 10908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->uiMode&ResTable_config::MASK_UI_MODE_TYPE; 11008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 11108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 11208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getUiModeNight(AConfiguration* config) { 11308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return (config->uiMode&ResTable_config::MASK_UI_MODE_NIGHT) 11408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn >> ResTable_config::SHIFT_UI_MODE_NIGHT; 11508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 11608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 11708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 11869cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornint32_t AConfiguration_getScreenWidthDp(AConfiguration* config) { 11969cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn return config->screenWidthDp; 12069cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 12169cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 12269cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornint32_t AConfiguration_getScreenHeightDp(AConfiguration* config) { 12369cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn return config->screenHeightDp; 12469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 12569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 12669cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornint32_t AConfiguration_getSmallestScreenWidthDp(AConfiguration* config) { 12769cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn return config->smallestScreenWidthDp; 12869cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 12969cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 1305f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglioint32_t AConfiguration_getLayoutDirection(AConfiguration* config) { 1315f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio return (config->screenLayout&ResTable_config::MASK_LAYOUTDIR) 1325f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio >> ResTable_config::SHIFT_LAYOUTDIR; 1335f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio} 1345f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio 13508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn// ---------------------------------------------------------------------- 13608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 13708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setMcc(AConfiguration* config, int32_t mcc) { 13808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->mcc = mcc; 13908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 14008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 14108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setMnc(AConfiguration* config, int32_t mnc) { 14208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->mnc = mnc; 14308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 14408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 14508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setLanguage(AConfiguration* config, const char* language) { 14608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->language[0] = language[0]; 14708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->language[1] = language[1]; 14808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 14908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 15008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setCountry(AConfiguration* config, const char* country) { 15108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->country[0] = country[0]; 15208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->country[1] = country[1]; 15308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 15408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 15508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setOrientation(AConfiguration* config, int32_t orientation) { 15608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->orientation = orientation; 15708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 15808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 15908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setTouchscreen(AConfiguration* config, int32_t touchscreen) { 16008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->touchscreen = touchscreen; 16108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 16208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 16308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setDensity(AConfiguration* config, int32_t density) { 16408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->density = density; 16508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 16608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 16708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setKeyboard(AConfiguration* config, int32_t keyboard) { 16808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->keyboard = keyboard; 16908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 17008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 17108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setNavigation(AConfiguration* config, int32_t navigation) { 17208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->navigation = navigation; 17308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 17408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 17508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setKeysHidden(AConfiguration* config, int32_t keysHidden) { 17608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->inputFlags = (config->inputFlags&~ResTable_config::MASK_KEYSHIDDEN) 17708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | (keysHidden&ResTable_config::MASK_KEYSHIDDEN); 17808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 17908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 18008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setNavHidden(AConfiguration* config, int32_t navHidden) { 18108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->inputFlags = (config->inputFlags&~ResTable_config::MASK_NAVHIDDEN) 18208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | ((navHidden<<ResTable_config::SHIFT_NAVHIDDEN)&ResTable_config::MASK_NAVHIDDEN); 18308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 18408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 18508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setSdkVersion(AConfiguration* config, int32_t sdkVersion) { 18608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->sdkVersion = sdkVersion; 18708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 18808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 18908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setScreenSize(AConfiguration* config, int32_t screenSize) { 19008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENSIZE) 19108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | (screenSize&ResTable_config::MASK_SCREENSIZE); 19208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 19308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 19408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setScreenLong(AConfiguration* config, int32_t screenLong) { 19508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENLONG) 19608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | ((screenLong<<ResTable_config::SHIFT_SCREENLONG)&ResTable_config::MASK_SCREENLONG); 19708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 19808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 1992738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinskivoid AConfiguration_setScreenRound(AConfiguration* config, int32_t screenRound) { 2002738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski config->screenLayout2 = (config->screenLayout2&~ResTable_config::MASK_SCREENROUND) 2012738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski | (screenRound&ResTable_config::MASK_SCREENROUND); 2022738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski} 2032738c96d998dedfae5b4670d588d0cd299c4ca0fAdam Lesinski 20408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setUiModeType(AConfiguration* config, int32_t uiModeType) { 20508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_TYPE) 20608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | (uiModeType&ResTable_config::MASK_UI_MODE_TYPE); 20708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 20808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 20908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setUiModeNight(AConfiguration* config, int32_t uiModeNight) { 21008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_NIGHT) 21108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | ((uiModeNight<<ResTable_config::SHIFT_UI_MODE_NIGHT)&ResTable_config::MASK_UI_MODE_NIGHT); 21208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 21308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 21408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 21569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornvoid AConfiguration_setScreenWidthDp(AConfiguration* config, int32_t value) { 21669cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn config->screenWidthDp = value; 21769cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 21869cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 21969cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornvoid AConfiguration_setScreenHeightDp(AConfiguration* config, int32_t value) { 22069cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn config->screenHeightDp = value; 22169cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 22269cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 22369cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornvoid AConfiguration_setSmallestScreenWidthDp(AConfiguration* config, int32_t value) { 22469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn config->smallestScreenWidthDp = value; 22569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 22669cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 2275f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Megliovoid AConfiguration_setLayoutDirection(AConfiguration* config, int32_t value) { 2285f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio config->screenLayout = (config->screenLayout&~ResTable_config::MASK_LAYOUTDIR) 2295f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio | ((value<<ResTable_config::SHIFT_LAYOUTDIR)&ResTable_config::MASK_LAYOUTDIR); 2305f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio} 2315f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio 23208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn// ---------------------------------------------------------------------- 23308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 23408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_diff(AConfiguration* config1, AConfiguration* config2) { 23508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return (config1->diff(*config2)); 23608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 23708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 23808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_match(AConfiguration* base, AConfiguration* requested) { 23908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return base->match(*requested); 24008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 24108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 24208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test, 24308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn AConfiguration* requested) { 24408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return base->isBetterThan(*test, requested); 24508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 246