179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/*
279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Copyright (C) 2010 The Android Open Source Project
379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn *
479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * you may not use this file except in compliance with the License.
679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * You may obtain a copy of the License at
779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn *
879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn *
1079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Unless required by applicable law or agreed to in writing, software
1179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
1279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * See the License for the specific language governing permissions and
1479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * limitations under the License.
1579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
1679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
1779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn#ifndef ANDROID_CONFIGURATION_H
1879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn#define ANDROID_CONFIGURATION_H
1979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
2079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn#include <android/asset_manager.h>
2179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
2290887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turner#ifdef __cplusplus
2390887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turnerextern "C" {
2490887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turner#endif
2579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
2679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornstruct AConfiguration;
2779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborntypedef struct AConfiguration AConfiguration;
2879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
2979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornenum {
3079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_ORIENTATION_ANY  = 0x0000,
3179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_ORIENTATION_PORT = 0x0001,
3279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_ORIENTATION_LAND = 0x0002,
3379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_ORIENTATION_SQUARE = 0x0003,
3479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
3579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_TOUCHSCREEN_ANY  = 0x0000,
3679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_TOUCHSCREEN_NOTOUCH  = 0x0001,
3779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_TOUCHSCREEN_STYLUS  = 0x0002,
3879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_TOUCHSCREEN_FINGER  = 0x0003,
3979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
4079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_DENSITY_DEFAULT = 0,
4179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_DENSITY_LOW = 120,
4279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_DENSITY_MEDIUM = 160,
4379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_DENSITY_HIGH = 240,
4479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_DENSITY_NONE = 0xffff,
4579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
4679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYBOARD_ANY  = 0x0000,
4779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYBOARD_NOKEYS  = 0x0001,
4879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYBOARD_QWERTY  = 0x0002,
4979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYBOARD_12KEY  = 0x0003,
5079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
5179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVIGATION_ANY  = 0x0000,
5279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVIGATION_NONAV  = 0x0001,
5379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVIGATION_DPAD  = 0x0002,
5479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVIGATION_TRACKBALL  = 0x0003,
5579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVIGATION_WHEEL  = 0x0004,
5679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
5779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYSHIDDEN_ANY = 0x0000,
5879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYSHIDDEN_NO = 0x0001,
5979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYSHIDDEN_YES = 0x0002,
6079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYSHIDDEN_SOFT = 0x0003,
6179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
6279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVHIDDEN_ANY = 0x0000,
6379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVHIDDEN_NO = 0x0001,
6479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVHIDDEN_YES = 0x0002,
6579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
6679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENSIZE_ANY  = 0x00,
6779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENSIZE_SMALL = 0x01,
6879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENSIZE_NORMAL = 0x02,
6979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENSIZE_LARGE = 0x03,
7079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENSIZE_XLARGE = 0x04,
7179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
7279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENLONG_ANY = 0x00,
7379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENLONG_NO = 0x1,
7479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREENLONG_YES = 0x2,
7579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
7679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_UI_MODE_TYPE_ANY = 0x00,
7779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_UI_MODE_TYPE_NORMAL = 0x01,
7879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_UI_MODE_TYPE_DESK = 0x02,
7979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_UI_MODE_TYPE_CAR = 0x03,
8079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
8179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_UI_MODE_NIGHT_ANY = 0x00,
823ec1cec3b7cfaacee5db2d738e02e49b30319ac0Jeff Brown    ACONFIGURATION_UI_MODE_NIGHT_NO = 0x1,
833ec1cec3b7cfaacee5db2d738e02e49b30319ac0Jeff Brown    ACONFIGURATION_UI_MODE_NIGHT_YES = 0x2,
8479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
8579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_MCC = 0x0001,
8679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_MNC = 0x0002,
8779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_LOCALE = 0x0004,
8879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_TOUCHSCREEN = 0x0008,
8979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYBOARD = 0x0010,
9079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_KEYBOARD_HIDDEN = 0x0020,
9179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_NAVIGATION = 0x0040,
9279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_ORIENTATION = 0x0080,
9379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_DENSITY = 0x0100,
9479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREEN_SIZE = 0x0200,
9579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_VERSION = 0x0400,
9679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_SCREEN_LAYOUT = 0x0800,
9779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn    ACONFIGURATION_UI_MODE = 0x1000,
9879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn};
9979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
10079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
10179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Create a new AConfiguration, initialized with no values set.
10279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
10379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne HackbornAConfiguration* AConfiguration_new();
10479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
10579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
10679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Free an AConfiguration that was previously created with
10779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * AConfiguration_new().
10879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
10979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_delete(AConfiguration* config);
11079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
11179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
11279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Create and return a new AConfiguration based on the current configuration in
11379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * use in the given AssetManager.
11479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
11579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_fromAssetManager(AConfiguration* out, AAssetManager* am);
11679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
11779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
11879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Copy the contents of 'src' to 'dest'.
11979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
12079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_copy(AConfiguration* dest, AConfiguration* src);
12179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
12279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
12379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current MCC set in the configuration.  0 if not set.
12479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
12579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getMcc(AConfiguration* config);
12679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
12779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
12879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current MCC in the configuration.  0 to clear.
12979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
13079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setMcc(AConfiguration* config, int32_t mcc);
13179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
13279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
13379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current MNC set in the configuration.  0 if not set.
13479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
13579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getMnc(AConfiguration* config);
13679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
13779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
13879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current MNC in the configuration.  0 to clear.
13979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
14079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setMnc(AConfiguration* config, int32_t mnc);
14179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
14279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
14379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current language code set in the configuration.  The output will
14479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * be filled with an array of two characters.  They are not 0-terminated.  If
14579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * a language is not set, they will be 0.
14679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
14779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_getLanguage(AConfiguration* config, char* outLanguage);
14879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
14979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
15079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current language code in the configuration, from the first two
15179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * characters in the string.
15279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
15379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setLanguage(AConfiguration* config, const char* language);
15479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
15579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
15679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current country code set in the configuration.  The output will
15779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * be filled with an array of two characters.  They are not 0-terminated.  If
15879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * a country is not set, they will be 0.
15979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
16079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_getCountry(AConfiguration* config, char* outCountry);
16179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
16279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
16379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current country code in the configuration, from the first two
16479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * characters in the string.
16579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
16679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setCountry(AConfiguration* config, const char* country);
16779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
16879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
16979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_ORIENTATION_* set in the configuration.
17079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
17179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getOrientation(AConfiguration* config);
17279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
17379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
17479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current orientation in the configuration.
17579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
17679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setOrientation(AConfiguration* config, int32_t orientation);
17779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
17879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
17979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_TOUCHSCREEN_* set in the configuration.
18079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
18179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getTouchscreen(AConfiguration* config);
18279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
18379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
18479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current touchscreen in the configuration.
18579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
18679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setTouchscreen(AConfiguration* config, int32_t touchscreen);
18779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
18879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
18979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_DENSITY_* set in the configuration.
19079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
19179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getDensity(AConfiguration* config);
19279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
19379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
19479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current density in the configuration.
19579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
19679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setDensity(AConfiguration* config, int32_t density);
19779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
19879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
19979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_KEYBOARD_* set in the configuration.
20079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
20179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getKeyboard(AConfiguration* config);
20279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
20379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
20479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current keyboard in the configuration.
20579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
20679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setKeyboard(AConfiguration* config, int32_t keyboard);
20779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
20879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
20979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_NAVIGATION_* set in the configuration.
21079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
21179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getNavigation(AConfiguration* config);
21279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
21379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
21479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current navigation in the configuration.
21579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
21679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setNavigation(AConfiguration* config, int32_t navigation);
21779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
21879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
21979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_KEYSHIDDEN_* set in the configuration.
22079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
22179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getKeysHidden(AConfiguration* config);
22279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
22379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
22479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current keys hidden in the configuration.
22579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
22679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setKeysHidden(AConfiguration* config, int32_t keysHidden);
22779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
22879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
22979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_NAVHIDDEN_* set in the configuration.
23079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
23179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getNavHidden(AConfiguration* config);
23279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
23379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
23479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current nav hidden in the configuration.
23579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
23679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setNavHidden(AConfiguration* config, int32_t navHidden);
23779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
23879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
23979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current SDK (API) version set in the configuration.
24079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
24179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getSdkVersion(AConfiguration* config);
24279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
24379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
24479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current SDK version in the configuration.
24579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
24679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setSdkVersion(AConfiguration* config, int32_t sdkVersion);
24779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
24879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
24979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_SCREENSIZE_* set in the configuration.
25079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
25179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getScreenSize(AConfiguration* config);
25279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
25379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
25479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current screen size in the configuration.
25579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
25679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setScreenSize(AConfiguration* config, int32_t screenSize);
25779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
25879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
25979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_SCREENLONG_* set in the configuration.
26079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
26179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getScreenLong(AConfiguration* config);
26279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
26379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
26479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current screen long in the configuration.
26579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
26679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setScreenLong(AConfiguration* config, int32_t screenLong);
26779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
26879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
26979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_UI_MODE_TYPE_* set in the configuration.
27079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
27179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getUiModeType(AConfiguration* config);
27279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
27379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
27479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current UI mode type in the configuration.
27579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
27679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setUiModeType(AConfiguration* config, int32_t uiModeType);
27779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
27879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
27979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Return the current ACONFIGURATION_UI_MODE_NIGHT_* set in the configuration.
28079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
28179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_getUiModeNight(AConfiguration* config);
28279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
28379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
28479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Set the current UI mode night in the configuration.
28579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
28679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornvoid AConfiguration_setUiModeNight(AConfiguration* config, int32_t uiModeNight);
28779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
28879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
28979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Perform a diff between two configurations.  Returns a bit mask of
29079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * ACONFIGURATION_* constants, each bit set meaning that configuration element
29179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * is different between them.
29279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
29379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_diff(AConfiguration* config1, AConfiguration* config2);
29479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
29579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
29679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Determine whether 'base' is a valid configuration for use within the
29779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * environment 'requested'.  Returns 0 if there are any values in 'base'
29879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * that conflict with 'requested'.  Returns 1 if it does not conflict.
29979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
30079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_match(AConfiguration* base, AConfiguration* requested);
30179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
30279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn/**
30379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * Determine whether the configuration in 'test' is better than the existing
30479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * configuration in 'base'.  If 'requested' is non-NULL, this decision is based
30579b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * on the overall configuration given there.  If it is NULL, this decision is
30679b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * simply based on which configuration is more specific.  Returns non-0 if
30779b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * 'test' is better than 'base'.
30879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn *
30979b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * This assumes you have already filtered the configurations with
31079b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn * AConfiguration_match().
31179b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn */
31279b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackbornint32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test,
31379b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn        AConfiguration* requested);
31479b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
31590887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turner#ifdef __cplusplus
31690887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turner};
31790887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turner#endif
31879b946e8f2ccb552e1a3fe8222f660b9a76cc001Dianne Hackborn
31990887627f185ea795fd8620bb916bd14a9f51041David 'Digit' Turner#endif // ANDROID_CONFIGURATION_H
320