configuration.cpp revision 5f7979993979466c79ab4f38d83c6f2aca361662
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 10408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getUiModeType(AConfiguration* config) { 10508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return config->uiMode&ResTable_config::MASK_UI_MODE_TYPE; 10608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 10708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 10808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_getUiModeNight(AConfiguration* config) { 10908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return (config->uiMode&ResTable_config::MASK_UI_MODE_NIGHT) 11008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn >> ResTable_config::SHIFT_UI_MODE_NIGHT; 11108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 11208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 11308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 11469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornint32_t AConfiguration_getScreenWidthDp(AConfiguration* config) { 11569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn return config->screenWidthDp; 11669cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 11769cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 11869cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornint32_t AConfiguration_getScreenHeightDp(AConfiguration* config) { 11969cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn return config->screenHeightDp; 12069cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 12169cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 12269cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornint32_t AConfiguration_getSmallestScreenWidthDp(AConfiguration* config) { 12369cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn return config->smallestScreenWidthDp; 12469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 12569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 1265f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglioint32_t AConfiguration_getLayoutDirection(AConfiguration* config) { 1275f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio return (config->screenLayout&ResTable_config::MASK_LAYOUTDIR) 1285f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio >> ResTable_config::SHIFT_LAYOUTDIR; 1295f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio} 1305f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio 13108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn// ---------------------------------------------------------------------- 13208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 13308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setMcc(AConfiguration* config, int32_t mcc) { 13408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->mcc = mcc; 13508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 13608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 13708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setMnc(AConfiguration* config, int32_t mnc) { 13808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->mnc = mnc; 13908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 14008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 14108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setLanguage(AConfiguration* config, const char* language) { 14208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->language[0] = language[0]; 14308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->language[1] = language[1]; 14408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 14508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 14608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setCountry(AConfiguration* config, const char* country) { 14708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->country[0] = country[0]; 14808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->country[1] = country[1]; 14908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 15008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 15108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setOrientation(AConfiguration* config, int32_t orientation) { 15208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->orientation = orientation; 15308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 15408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 15508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setTouchscreen(AConfiguration* config, int32_t touchscreen) { 15608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->touchscreen = touchscreen; 15708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 15808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 15908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setDensity(AConfiguration* config, int32_t density) { 16008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->density = density; 16108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 16208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 16308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setKeyboard(AConfiguration* config, int32_t keyboard) { 16408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->keyboard = keyboard; 16508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 16608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 16708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setNavigation(AConfiguration* config, int32_t navigation) { 16808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->navigation = navigation; 16908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 17008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 17108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setKeysHidden(AConfiguration* config, int32_t keysHidden) { 17208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->inputFlags = (config->inputFlags&~ResTable_config::MASK_KEYSHIDDEN) 17308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | (keysHidden&ResTable_config::MASK_KEYSHIDDEN); 17408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 17508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 17608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setNavHidden(AConfiguration* config, int32_t navHidden) { 17708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->inputFlags = (config->inputFlags&~ResTable_config::MASK_NAVHIDDEN) 17808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | ((navHidden<<ResTable_config::SHIFT_NAVHIDDEN)&ResTable_config::MASK_NAVHIDDEN); 17908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 18008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 18108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setSdkVersion(AConfiguration* config, int32_t sdkVersion) { 18208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->sdkVersion = sdkVersion; 18308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 18408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 18508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setScreenSize(AConfiguration* config, int32_t screenSize) { 18608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENSIZE) 18708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | (screenSize&ResTable_config::MASK_SCREENSIZE); 18808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 18908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 19008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setScreenLong(AConfiguration* config, int32_t screenLong) { 19108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENLONG) 19208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | ((screenLong<<ResTable_config::SHIFT_SCREENLONG)&ResTable_config::MASK_SCREENLONG); 19308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 19408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 19508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setUiModeType(AConfiguration* config, int32_t uiModeType) { 19608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_TYPE) 19708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | (uiModeType&ResTable_config::MASK_UI_MODE_TYPE); 19808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 19908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 20008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setUiModeNight(AConfiguration* config, int32_t uiModeNight) { 20108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_NIGHT) 20208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn | ((uiModeNight<<ResTable_config::SHIFT_UI_MODE_NIGHT)&ResTable_config::MASK_UI_MODE_NIGHT); 20308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 20408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 20508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 20669cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornvoid AConfiguration_setScreenWidthDp(AConfiguration* config, int32_t value) { 20769cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn config->screenWidthDp = value; 20869cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 20969cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 21069cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornvoid AConfiguration_setScreenHeightDp(AConfiguration* config, int32_t value) { 21169cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn config->screenHeightDp = value; 21269cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 21369cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 21469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackbornvoid AConfiguration_setSmallestScreenWidthDp(AConfiguration* config, int32_t value) { 21569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn config->smallestScreenWidthDp = value; 21669cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn} 21769cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn 2185f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Megliovoid AConfiguration_setLayoutDirection(AConfiguration* config, int32_t value) { 2195f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio config->screenLayout = (config->screenLayout&~ResTable_config::MASK_LAYOUTDIR) 2205f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio | ((value<<ResTable_config::SHIFT_LAYOUTDIR)&ResTable_config::MASK_LAYOUTDIR); 2215f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio} 2225f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio 22308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn// ---------------------------------------------------------------------- 22408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 22508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_diff(AConfiguration* config1, AConfiguration* config2) { 22608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return (config1->diff(*config2)); 22708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 22808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 22908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_match(AConfiguration* base, AConfiguration* requested) { 23008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return base->match(*requested); 23108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 23208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn 23308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test, 23408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn AConfiguration* requested) { 23508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn return base->isBetterThan(*test, requested); 23608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn} 237