1*d57664e9SAndroid Build Coastguard Worker /*
2*d57664e9SAndroid Build Coastguard Worker * Copyright (C) 2010 The Android Open Source Project
3*d57664e9SAndroid Build Coastguard Worker *
4*d57664e9SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*d57664e9SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*d57664e9SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*d57664e9SAndroid Build Coastguard Worker *
8*d57664e9SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
9*d57664e9SAndroid Build Coastguard Worker *
10*d57664e9SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*d57664e9SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*d57664e9SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*d57664e9SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*d57664e9SAndroid Build Coastguard Worker * limitations under the License.
15*d57664e9SAndroid Build Coastguard Worker */
16*d57664e9SAndroid Build Coastguard Worker
17*d57664e9SAndroid Build Coastguard Worker #define LOG_TAG "Configuration"
18*d57664e9SAndroid Build Coastguard Worker #include <utils/Log.h>
19*d57664e9SAndroid Build Coastguard Worker
20*d57664e9SAndroid Build Coastguard Worker #include <androidfw/AssetManager2.h>
21*d57664e9SAndroid Build Coastguard Worker
22*d57664e9SAndroid Build Coastguard Worker #include <android_runtime/android_content_res_Configuration.h>
23*d57664e9SAndroid Build Coastguard Worker #include <android_runtime/android_util_AssetManager.h>
24*d57664e9SAndroid Build Coastguard Worker
25*d57664e9SAndroid Build Coastguard Worker using namespace android;
26*d57664e9SAndroid Build Coastguard Worker
AConfiguration_new()27*d57664e9SAndroid Build Coastguard Worker AConfiguration* AConfiguration_new() {
28*d57664e9SAndroid Build Coastguard Worker AConfiguration* config = new AConfiguration;
29*d57664e9SAndroid Build Coastguard Worker memset(config, 0, sizeof(AConfiguration));
30*d57664e9SAndroid Build Coastguard Worker return config;
31*d57664e9SAndroid Build Coastguard Worker }
32*d57664e9SAndroid Build Coastguard Worker
AConfiguration_delete(AConfiguration * config)33*d57664e9SAndroid Build Coastguard Worker void AConfiguration_delete(AConfiguration* config) {
34*d57664e9SAndroid Build Coastguard Worker delete config;
35*d57664e9SAndroid Build Coastguard Worker }
36*d57664e9SAndroid Build Coastguard Worker
AConfiguration_fromAssetManager(AConfiguration * out,AAssetManager * am)37*d57664e9SAndroid Build Coastguard Worker void AConfiguration_fromAssetManager(AConfiguration* out, AAssetManager* am) {
38*d57664e9SAndroid Build Coastguard Worker ScopedLock<AssetManager2> locked_mgr(*AssetManagerForNdkAssetManager(am));
39*d57664e9SAndroid Build Coastguard Worker ResTable_config config = locked_mgr->GetConfigurations()[0];
40*d57664e9SAndroid Build Coastguard Worker
41*d57664e9SAndroid Build Coastguard Worker // AConfiguration is not a virtual subclass, so we can memcpy.
42*d57664e9SAndroid Build Coastguard Worker memcpy(out, &config, sizeof(config));
43*d57664e9SAndroid Build Coastguard Worker }
44*d57664e9SAndroid Build Coastguard Worker
AConfiguration_copy(AConfiguration * dest,AConfiguration * src)45*d57664e9SAndroid Build Coastguard Worker void AConfiguration_copy(AConfiguration* dest, AConfiguration* src) {
46*d57664e9SAndroid Build Coastguard Worker *dest = *src;
47*d57664e9SAndroid Build Coastguard Worker }
48*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getMcc(AConfiguration * config)49*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getMcc(AConfiguration* config) {
50*d57664e9SAndroid Build Coastguard Worker return config->mcc;
51*d57664e9SAndroid Build Coastguard Worker }
52*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getMnc(AConfiguration * config)53*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getMnc(AConfiguration* config) {
54*d57664e9SAndroid Build Coastguard Worker return config->mnc;
55*d57664e9SAndroid Build Coastguard Worker }
56*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getLanguage(AConfiguration * config,char * outLanguage)57*d57664e9SAndroid Build Coastguard Worker void AConfiguration_getLanguage(AConfiguration* config, char* outLanguage) {
58*d57664e9SAndroid Build Coastguard Worker outLanguage[0] = config->language[0];
59*d57664e9SAndroid Build Coastguard Worker outLanguage[1] = config->language[1];
60*d57664e9SAndroid Build Coastguard Worker }
61*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getCountry(AConfiguration * config,char * outCountry)62*d57664e9SAndroid Build Coastguard Worker void AConfiguration_getCountry(AConfiguration* config, char* outCountry) {
63*d57664e9SAndroid Build Coastguard Worker outCountry[0] = config->country[0];
64*d57664e9SAndroid Build Coastguard Worker outCountry[1] = config->country[1];
65*d57664e9SAndroid Build Coastguard Worker }
66*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getOrientation(AConfiguration * config)67*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getOrientation(AConfiguration* config) {
68*d57664e9SAndroid Build Coastguard Worker return config->orientation;
69*d57664e9SAndroid Build Coastguard Worker }
70*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getTouchscreen(AConfiguration * config)71*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getTouchscreen(AConfiguration* config) {
72*d57664e9SAndroid Build Coastguard Worker return config->touchscreen;
73*d57664e9SAndroid Build Coastguard Worker }
74*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getDensity(AConfiguration * config)75*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getDensity(AConfiguration* config) {
76*d57664e9SAndroid Build Coastguard Worker return config->density;
77*d57664e9SAndroid Build Coastguard Worker }
78*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getKeyboard(AConfiguration * config)79*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getKeyboard(AConfiguration* config) {
80*d57664e9SAndroid Build Coastguard Worker return config->keyboard;
81*d57664e9SAndroid Build Coastguard Worker }
82*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getNavigation(AConfiguration * config)83*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getNavigation(AConfiguration* config) {
84*d57664e9SAndroid Build Coastguard Worker return config->navigation;
85*d57664e9SAndroid Build Coastguard Worker }
86*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getKeysHidden(AConfiguration * config)87*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getKeysHidden(AConfiguration* config) {
88*d57664e9SAndroid Build Coastguard Worker return config->inputFlags&ResTable_config::MASK_KEYSHIDDEN;
89*d57664e9SAndroid Build Coastguard Worker }
90*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getNavHidden(AConfiguration * config)91*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getNavHidden(AConfiguration* config) {
92*d57664e9SAndroid Build Coastguard Worker return (config->inputFlags&ResTable_config::MASK_NAVHIDDEN)
93*d57664e9SAndroid Build Coastguard Worker >> ResTable_config::SHIFT_NAVHIDDEN;
94*d57664e9SAndroid Build Coastguard Worker }
95*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getSdkVersion(AConfiguration * config)96*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getSdkVersion(AConfiguration* config) {
97*d57664e9SAndroid Build Coastguard Worker return config->sdkVersion;
98*d57664e9SAndroid Build Coastguard Worker }
99*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getScreenSize(AConfiguration * config)100*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getScreenSize(AConfiguration* config) {
101*d57664e9SAndroid Build Coastguard Worker return config->screenLayout&ResTable_config::MASK_SCREENSIZE;
102*d57664e9SAndroid Build Coastguard Worker }
103*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getScreenLong(AConfiguration * config)104*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getScreenLong(AConfiguration* config) {
105*d57664e9SAndroid Build Coastguard Worker return (config->screenLayout&ResTable_config::MASK_SCREENLONG)
106*d57664e9SAndroid Build Coastguard Worker >> ResTable_config::SHIFT_SCREENLONG;
107*d57664e9SAndroid Build Coastguard Worker }
108*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getScreenRound(AConfiguration * config)109*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getScreenRound(AConfiguration* config) {
110*d57664e9SAndroid Build Coastguard Worker return (config->screenLayout2&ResTable_config::MASK_SCREENROUND);
111*d57664e9SAndroid Build Coastguard Worker }
112*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getUiModeType(AConfiguration * config)113*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getUiModeType(AConfiguration* config) {
114*d57664e9SAndroid Build Coastguard Worker return config->uiMode&ResTable_config::MASK_UI_MODE_TYPE;
115*d57664e9SAndroid Build Coastguard Worker }
116*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getUiModeNight(AConfiguration * config)117*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getUiModeNight(AConfiguration* config) {
118*d57664e9SAndroid Build Coastguard Worker return (config->uiMode&ResTable_config::MASK_UI_MODE_NIGHT)
119*d57664e9SAndroid Build Coastguard Worker >> ResTable_config::SHIFT_UI_MODE_NIGHT;
120*d57664e9SAndroid Build Coastguard Worker
121*d57664e9SAndroid Build Coastguard Worker }
122*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getScreenWidthDp(AConfiguration * config)123*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getScreenWidthDp(AConfiguration* config) {
124*d57664e9SAndroid Build Coastguard Worker return config->screenWidthDp;
125*d57664e9SAndroid Build Coastguard Worker }
126*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getScreenHeightDp(AConfiguration * config)127*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getScreenHeightDp(AConfiguration* config) {
128*d57664e9SAndroid Build Coastguard Worker return config->screenHeightDp;
129*d57664e9SAndroid Build Coastguard Worker }
130*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getSmallestScreenWidthDp(AConfiguration * config)131*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getSmallestScreenWidthDp(AConfiguration* config) {
132*d57664e9SAndroid Build Coastguard Worker return config->smallestScreenWidthDp;
133*d57664e9SAndroid Build Coastguard Worker }
134*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getLayoutDirection(AConfiguration * config)135*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getLayoutDirection(AConfiguration* config) {
136*d57664e9SAndroid Build Coastguard Worker return (config->screenLayout&ResTable_config::MASK_LAYOUTDIR)
137*d57664e9SAndroid Build Coastguard Worker >> ResTable_config::SHIFT_LAYOUTDIR;
138*d57664e9SAndroid Build Coastguard Worker }
139*d57664e9SAndroid Build Coastguard Worker
140*d57664e9SAndroid Build Coastguard Worker // ----------------------------------------------------------------------
141*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setMcc(AConfiguration * config,int32_t mcc)142*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setMcc(AConfiguration* config, int32_t mcc) {
143*d57664e9SAndroid Build Coastguard Worker config->mcc = mcc;
144*d57664e9SAndroid Build Coastguard Worker }
145*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setMnc(AConfiguration * config,int32_t mnc)146*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setMnc(AConfiguration* config, int32_t mnc) {
147*d57664e9SAndroid Build Coastguard Worker config->mnc = mnc;
148*d57664e9SAndroid Build Coastguard Worker }
149*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setLanguage(AConfiguration * config,const char * language)150*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setLanguage(AConfiguration* config, const char* language) {
151*d57664e9SAndroid Build Coastguard Worker config->language[0] = language[0];
152*d57664e9SAndroid Build Coastguard Worker config->language[1] = language[1];
153*d57664e9SAndroid Build Coastguard Worker }
154*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setCountry(AConfiguration * config,const char * country)155*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setCountry(AConfiguration* config, const char* country) {
156*d57664e9SAndroid Build Coastguard Worker config->country[0] = country[0];
157*d57664e9SAndroid Build Coastguard Worker config->country[1] = country[1];
158*d57664e9SAndroid Build Coastguard Worker }
159*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setOrientation(AConfiguration * config,int32_t orientation)160*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setOrientation(AConfiguration* config, int32_t orientation) {
161*d57664e9SAndroid Build Coastguard Worker config->orientation = orientation;
162*d57664e9SAndroid Build Coastguard Worker }
163*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setTouchscreen(AConfiguration * config,int32_t touchscreen)164*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setTouchscreen(AConfiguration* config, int32_t touchscreen) {
165*d57664e9SAndroid Build Coastguard Worker config->touchscreen = touchscreen;
166*d57664e9SAndroid Build Coastguard Worker }
167*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setDensity(AConfiguration * config,int32_t density)168*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setDensity(AConfiguration* config, int32_t density) {
169*d57664e9SAndroid Build Coastguard Worker config->density = density;
170*d57664e9SAndroid Build Coastguard Worker }
171*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setKeyboard(AConfiguration * config,int32_t keyboard)172*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setKeyboard(AConfiguration* config, int32_t keyboard) {
173*d57664e9SAndroid Build Coastguard Worker config->keyboard = keyboard;
174*d57664e9SAndroid Build Coastguard Worker }
175*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setNavigation(AConfiguration * config,int32_t navigation)176*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setNavigation(AConfiguration* config, int32_t navigation) {
177*d57664e9SAndroid Build Coastguard Worker config->navigation = navigation;
178*d57664e9SAndroid Build Coastguard Worker }
179*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setKeysHidden(AConfiguration * config,int32_t keysHidden)180*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setKeysHidden(AConfiguration* config, int32_t keysHidden) {
181*d57664e9SAndroid Build Coastguard Worker config->inputFlags = (config->inputFlags&~ResTable_config::MASK_KEYSHIDDEN)
182*d57664e9SAndroid Build Coastguard Worker | (keysHidden&ResTable_config::MASK_KEYSHIDDEN);
183*d57664e9SAndroid Build Coastguard Worker }
184*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setNavHidden(AConfiguration * config,int32_t navHidden)185*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setNavHidden(AConfiguration* config, int32_t navHidden) {
186*d57664e9SAndroid Build Coastguard Worker config->inputFlags = (config->inputFlags&~ResTable_config::MASK_NAVHIDDEN)
187*d57664e9SAndroid Build Coastguard Worker | ((navHidden<<ResTable_config::SHIFT_NAVHIDDEN)&ResTable_config::MASK_NAVHIDDEN);
188*d57664e9SAndroid Build Coastguard Worker }
189*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setSdkVersion(AConfiguration * config,int32_t sdkVersion)190*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setSdkVersion(AConfiguration* config, int32_t sdkVersion) {
191*d57664e9SAndroid Build Coastguard Worker config->sdkVersion = sdkVersion;
192*d57664e9SAndroid Build Coastguard Worker }
193*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setScreenSize(AConfiguration * config,int32_t screenSize)194*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setScreenSize(AConfiguration* config, int32_t screenSize) {
195*d57664e9SAndroid Build Coastguard Worker config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENSIZE)
196*d57664e9SAndroid Build Coastguard Worker | (screenSize&ResTable_config::MASK_SCREENSIZE);
197*d57664e9SAndroid Build Coastguard Worker }
198*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setScreenLong(AConfiguration * config,int32_t screenLong)199*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setScreenLong(AConfiguration* config, int32_t screenLong) {
200*d57664e9SAndroid Build Coastguard Worker config->screenLayout = (config->screenLayout&~ResTable_config::MASK_SCREENLONG)
201*d57664e9SAndroid Build Coastguard Worker | ((screenLong<<ResTable_config::SHIFT_SCREENLONG)&ResTable_config::MASK_SCREENLONG);
202*d57664e9SAndroid Build Coastguard Worker }
203*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setScreenRound(AConfiguration * config,int32_t screenRound)204*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setScreenRound(AConfiguration* config, int32_t screenRound) {
205*d57664e9SAndroid Build Coastguard Worker config->screenLayout2 = (config->screenLayout2&~ResTable_config::MASK_SCREENROUND)
206*d57664e9SAndroid Build Coastguard Worker | (screenRound&ResTable_config::MASK_SCREENROUND);
207*d57664e9SAndroid Build Coastguard Worker }
208*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setUiModeType(AConfiguration * config,int32_t uiModeType)209*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setUiModeType(AConfiguration* config, int32_t uiModeType) {
210*d57664e9SAndroid Build Coastguard Worker config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_TYPE)
211*d57664e9SAndroid Build Coastguard Worker | (uiModeType&ResTable_config::MASK_UI_MODE_TYPE);
212*d57664e9SAndroid Build Coastguard Worker }
213*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setUiModeNight(AConfiguration * config,int32_t uiModeNight)214*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setUiModeNight(AConfiguration* config, int32_t uiModeNight) {
215*d57664e9SAndroid Build Coastguard Worker config->uiMode = (config->uiMode&~ResTable_config::MASK_UI_MODE_NIGHT)
216*d57664e9SAndroid Build Coastguard Worker | ((uiModeNight<<ResTable_config::SHIFT_UI_MODE_NIGHT)&ResTable_config::MASK_UI_MODE_NIGHT);
217*d57664e9SAndroid Build Coastguard Worker
218*d57664e9SAndroid Build Coastguard Worker }
219*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setScreenWidthDp(AConfiguration * config,int32_t value)220*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setScreenWidthDp(AConfiguration* config, int32_t value) {
221*d57664e9SAndroid Build Coastguard Worker config->screenWidthDp = value;
222*d57664e9SAndroid Build Coastguard Worker }
223*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setScreenHeightDp(AConfiguration * config,int32_t value)224*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setScreenHeightDp(AConfiguration* config, int32_t value) {
225*d57664e9SAndroid Build Coastguard Worker config->screenHeightDp = value;
226*d57664e9SAndroid Build Coastguard Worker }
227*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setSmallestScreenWidthDp(AConfiguration * config,int32_t value)228*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setSmallestScreenWidthDp(AConfiguration* config, int32_t value) {
229*d57664e9SAndroid Build Coastguard Worker config->smallestScreenWidthDp = value;
230*d57664e9SAndroid Build Coastguard Worker }
231*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setLayoutDirection(AConfiguration * config,int32_t value)232*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setLayoutDirection(AConfiguration* config, int32_t value) {
233*d57664e9SAndroid Build Coastguard Worker config->screenLayout = (config->screenLayout&~ResTable_config::MASK_LAYOUTDIR)
234*d57664e9SAndroid Build Coastguard Worker | ((value<<ResTable_config::SHIFT_LAYOUTDIR)&ResTable_config::MASK_LAYOUTDIR);
235*d57664e9SAndroid Build Coastguard Worker }
236*d57664e9SAndroid Build Coastguard Worker
AConfiguration_getGrammaticalGender(AConfiguration * config)237*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_getGrammaticalGender(AConfiguration* config) {
238*d57664e9SAndroid Build Coastguard Worker return config->grammaticalInflection;
239*d57664e9SAndroid Build Coastguard Worker }
240*d57664e9SAndroid Build Coastguard Worker
AConfiguration_setGrammaticalGender(AConfiguration * config,int32_t value)241*d57664e9SAndroid Build Coastguard Worker void AConfiguration_setGrammaticalGender(AConfiguration* config, int32_t value) {
242*d57664e9SAndroid Build Coastguard Worker config->grammaticalInflection = value & ResTable_config::GRAMMATICAL_INFLECTION_GENDER_MASK;
243*d57664e9SAndroid Build Coastguard Worker }
244*d57664e9SAndroid Build Coastguard Worker
245*d57664e9SAndroid Build Coastguard Worker // ----------------------------------------------------------------------
246*d57664e9SAndroid Build Coastguard Worker
AConfiguration_diff(AConfiguration * config1,AConfiguration * config2)247*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_diff(AConfiguration* config1, AConfiguration* config2) {
248*d57664e9SAndroid Build Coastguard Worker return (config1->diff(*config2));
249*d57664e9SAndroid Build Coastguard Worker }
250*d57664e9SAndroid Build Coastguard Worker
AConfiguration_match(AConfiguration * base,AConfiguration * requested)251*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_match(AConfiguration* base, AConfiguration* requested) {
252*d57664e9SAndroid Build Coastguard Worker return base->match(*requested);
253*d57664e9SAndroid Build Coastguard Worker }
254*d57664e9SAndroid Build Coastguard Worker
AConfiguration_isBetterThan(AConfiguration * base,AConfiguration * test,AConfiguration * requested)255*d57664e9SAndroid Build Coastguard Worker int32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test,
256*d57664e9SAndroid Build Coastguard Worker AConfiguration* requested) {
257*d57664e9SAndroid Build Coastguard Worker return base->isBetterThan(*test, requested);
258*d57664e9SAndroid Build Coastguard Worker }
259