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