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
2008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn#include <utils/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
11408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn// ----------------------------------------------------------------------
11508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
11608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setMcc(AConfiguration* config, int32_t mcc) {
11708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->mcc = mcc;
11808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
11908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
12008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setMnc(AConfiguration* config, int32_t mnc) {
12108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->mnc = mnc;
12208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
12308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
12408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setLanguage(AConfiguration* config, const char* language) {
12508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->language[0] = language[0];
12608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->language[1] = language[1];
12708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
12808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
12908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setCountry(AConfiguration* config, const char* country) {
13008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->country[0] = country[0];
13108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->country[1] = country[1];
13208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
13308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
13408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setOrientation(AConfiguration* config, int32_t orientation) {
13508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->orientation = orientation;
13608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
13708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
13808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setTouchscreen(AConfiguration* config, int32_t touchscreen) {
13908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->touchscreen = touchscreen;
14008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
14108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
14208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setDensity(AConfiguration* config, int32_t density) {
14308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->density = density;
14408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
14508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
14608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setKeyboard(AConfiguration* config, int32_t keyboard) {
14708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->keyboard = keyboard;
14808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
14908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
15008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setNavigation(AConfiguration* config, int32_t navigation) {
15108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->navigation = navigation;
15208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
15308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
15408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setKeysHidden(AConfiguration* config, int32_t keysHidden) {
15508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->inputFlags = (config->inputFlags&~ResTable_config::MASK_KEYSHIDDEN)
15608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn            | (keysHidden&ResTable_config::MASK_KEYSHIDDEN);
15708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
15808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
15908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setNavHidden(AConfiguration* config, int32_t navHidden) {
16008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->inputFlags = (config->inputFlags&~ResTable_config::MASK_NAVHIDDEN)
16108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn            | ((navHidden<<ResTable_config::SHIFT_NAVHIDDEN)&ResTable_config::MASK_NAVHIDDEN);
16208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
16308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
16408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setSdkVersion(AConfiguration* config, int32_t sdkVersion) {
16508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->sdkVersion = sdkVersion;
16608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
16708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
16808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setScreenSize(AConfiguration* config, int32_t screenSize) {
16908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENSIZE)
17008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn            | (screenSize&ResTable_config::MASK_SCREENSIZE);
17108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
17208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
17308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setScreenLong(AConfiguration* config, int32_t screenLong) {
17408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENLONG)
17508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn            | ((screenLong<<ResTable_config::SHIFT_SCREENLONG)&ResTable_config::MASK_SCREENLONG);
17608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
17708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
17808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setUiModeType(AConfiguration* config, int32_t uiModeType) {
17908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_TYPE)
18008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn            | (uiModeType&ResTable_config::MASK_UI_MODE_TYPE);
18108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
18208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
18308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornvoid AConfiguration_setUiModeNight(AConfiguration* config, int32_t uiModeNight) {
18408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_NIGHT)
18508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn            | ((uiModeNight<<ResTable_config::SHIFT_UI_MODE_NIGHT)&ResTable_config::MASK_UI_MODE_NIGHT);
18608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
18708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
18808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
18908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn// ----------------------------------------------------------------------
19008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
19108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_diff(AConfiguration* config1, AConfiguration* config2) {
19208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    return (config1->diff(*config2));
19308d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
19408d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
19508d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_match(AConfiguration* base, AConfiguration* requested) {
19608d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    return base->match(*requested);
19708d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
19808d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn
19908d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackbornint32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test,
20008d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn        AConfiguration* requested) {
20108d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn    return base->isBetterThan(*test, requested);
20208d5b8fad8d46ccb64db2fdcb4d66972ec87bf48Dianne Hackborn}
203