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