lazarus-ccr/bindings/android-ndk/configuration.pas

307 lines
11 KiB
ObjectPascal

(*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*)
unit configuration;
interface
uses ctypes, asset_manager;
const
LibName = 'libandroid.so';
type
PAConfiguration = ^AConfiguration;
AConfiguration = record end;
const
ACONFIGURATION_ORIENTATION_ANY = $0000;
ACONFIGURATION_ORIENTATION_PORT = $0001;
ACONFIGURATION_ORIENTATION_LAND = $0002;
ACONFIGURATION_ORIENTATION_SQUARE = $0003;
ACONFIGURATION_TOUCHSCREEN_ANY = $0000;
ACONFIGURATION_TOUCHSCREEN_NOTOUCH = $0001;
ACONFIGURATION_TOUCHSCREEN_STYLUS = $0002;
ACONFIGURATION_TOUCHSCREEN_FINGER = $0003;
ACONFIGURATION_DENSITY_DEFAULT = 0;
ACONFIGURATION_DENSITY_LOW = 120;
ACONFIGURATION_DENSITY_MEDIUM = 160;
ACONFIGURATION_DENSITY_HIGH = 240;
ACONFIGURATION_DENSITY_NONE = $ffff;
ACONFIGURATION_KEYBOARD_ANY = $0000;
ACONFIGURATION_KEYBOARD_NOKEYS = $0001;
ACONFIGURATION_KEYBOARD_QWERTY = $0002;
ACONFIGURATION_KEYBOARD_12KEY = $0003;
ACONFIGURATION_NAVIGATION_ANY = $0000;
ACONFIGURATION_NAVIGATION_NONAV = $0001;
ACONFIGURATION_NAVIGATION_DPAD = $0002;
ACONFIGURATION_NAVIGATION_TRACKBALL = $0003;
ACONFIGURATION_NAVIGATION_WHEEL = $0004;
ACONFIGURATION_KEYSHIDDEN_ANY = $0000;
ACONFIGURATION_KEYSHIDDEN_NO = $0001;
ACONFIGURATION_KEYSHIDDEN_YES = $0002;
ACONFIGURATION_KEYSHIDDEN_SOFT = $0003;
ACONFIGURATION_NAVHIDDEN_ANY = $0000;
ACONFIGURATION_NAVHIDDEN_NO = $0001;
ACONFIGURATION_NAVHIDDEN_YES = $0002;
ACONFIGURATION_SCREENSIZE_ANY = $00;
ACONFIGURATION_SCREENSIZE_SMALL = $01;
ACONFIGURATION_SCREENSIZE_NORMAL = $02;
ACONFIGURATION_SCREENSIZE_LARGE = $03;
ACONFIGURATION_SCREENSIZE_XLARGE = $04;
ACONFIGURATION_SCREENLONG_ANY = $00;
ACONFIGURATION_SCREENLONG_NO = $1;
ACONFIGURATION_SCREENLONG_YES = $2;
ACONFIGURATION_UI_MODE_TYPE_ANY = $00;
ACONFIGURATION_UI_MODE_TYPE_NORMAL = $01;
ACONFIGURATION_UI_MODE_TYPE_DESK = $02;
ACONFIGURATION_UI_MODE_TYPE_CAR = $03;
ACONFIGURATION_UI_MODE_NIGHT_ANY = $00;
ACONFIGURATION_UI_MODE_NIGHT_NO = $1;
ACONFIGURATION_UI_MODE_NIGHT_YES = $2;
ACONFIGURATION_MCC = $0001;
ACONFIGURATION_MNC = $0002;
ACONFIGURATION_LOCALE = $0004;
ACONFIGURATION_TOUCHSCREEN = $0008;
ACONFIGURATION_KEYBOARD = $0010;
ACONFIGURATION_KEYBOARD_HIDDEN = $0020;
ACONFIGURATION_NAVIGATION = $0040;
ACONFIGURATION_ORIENTATION = $0080;
ACONFIGURATION_DENSITY = $0100;
ACONFIGURATION_SCREEN_SIZE = $0200;
ACONFIGURATION_VERSION = $0400;
ACONFIGURATION_SCREEN_LAYOUT = $0800;
ACONFIGURATION_UI_MODE = $1000;
(**
* Create a new AConfiguration, initialized with no values set.
*)
function AConfiguration_new: PAConfiguration; cdecl; external LibName;
(**
* Free an AConfiguration that was previously created with
* AConfiguration_new().
*)
procedure AConfiguration_delete(config: PAConfiguration); cdecl; external LibName;
(**
* Create and return a new AConfiguration based on the current configuration in
* use in the given AssetManager.
*)
procedure AConfiguration_fromAssetManager(out_: PAConfiguration; am: PAAssetManager); cdecl; external LibName;
(**
* Copy the contents of 'src' to 'dest'.
*)
procedure AConfiguration_copy(dest, src: PAConfiguration); cdecl; external LibName;
(**
* Return the current MCC set in the configuration. 0 if not set.
*)
function AConfiguration_getMcc(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current MCC in the configuration. 0 to clear.
*)
procedure AConfiguration_setMcc(config: PAConfiguration; mcc: cint32); cdecl; external LibName;
(**
* Return the current MNC set in the configuration. 0 if not set.
*)
function AConfiguration_getMnc(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current MNC in the configuration. 0 to clear.
*)
procedure AConfiguration_setMnc(config: PAConfiguration; mnc: cint32); cdecl; external LibName;
(**
* Return the current language code set in the configuration. The output will
* be filled with an array of two characters. They are not 0-terminated. If
* a language is not set, they will be 0.
*)
procedure AConfiguration_getLanguage(config: PAConfiguration; outLanguage: Pchar); cdecl; external LibName;
(**
* Set the current language code in the configuration, from the first two
* characters in the string.
*)
procedure AConfiguration_setLanguage(config: PAConfiguration; language: Pchar); cdecl; external LibName;
(**
* Return the current country code set in the configuration. The output will
* be filled with an array of two characters. They are not 0-terminated. If
* a country is not set, they will be 0.
*)
procedure AConfiguration_getCountry(config: PAConfiguration; outCountry: Pchar); cdecl; external LibName;
(**
* Set the current country code in the configuration, from the first two
* characters in the string.
*)
procedure AConfiguration_setCountry(config: PAConfiguration; country: Pchar); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_ORIENTATION_* set in the configuration.
*)
function AConfiguration_getOrientation(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current orientation in the configuration.
*)
procedure AConfiguration_setOrientation(config: PAConfiguration; orientation: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_TOUCHSCREEN_* set in the configuration.
*)
function AConfiguration_getTouchscreen(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current touchscreen in the configuration.
*)
procedure AConfiguration_setTouchscreen(config: PAConfiguration; touchscreen: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_DENSITY_* set in the configuration.
*)
function AConfiguration_getDensity(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current density in the configuration.
*)
procedure AConfiguration_setDensity(config: PAConfiguration; density: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_KEYBOARD_* set in the configuration.
*)
function AConfiguration_getKeyboard(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current keyboard in the configuration.
*)
procedure AConfiguration_setKeyboard(config: PAConfiguration; keyboard: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_NAVIGATION_* set in the configuration.
*)
function AConfiguration_getNavigation(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current navigation in the configuration.
*)
procedure AConfiguration_setNavigation(config: PAConfiguration; navigation: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_KEYSHIDDEN_* set in the configuration.
*)
function AConfiguration_getKeysHidden(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current keys hidden in the configuration.
*)
procedure AConfiguration_setKeysHidden(config: PAConfiguration; keysHidden: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_NAVHIDDEN_* set in the configuration.
*)
function AConfiguration_getNavHidden(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current nav hidden in the configuration.
*)
procedure AConfiguration_setNavHidden(config: PAConfiguration; navHidden: cint32); cdecl; external LibName;
(**
* Return the current SDK (API) version set in the configuration.
*)
function AConfiguration_getSdkVersion(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current SDK version in the configuration.
*)
procedure AConfiguration_setSdkVersion(config: PAConfiguration; sdkVersion: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_SCREENSIZE_* set in the configuration.
*)
function AConfiguration_getScreenSize(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current screen size in the configuration.
*)
procedure AConfiguration_setScreenSize(config: PAConfiguration; screenSize: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_SCREENLONG_* set in the configuration.
*)
function AConfiguration_getScreenLong(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current screen long in the configuration.
*)
procedure AConfiguration_setScreenLong(config: PAConfiguration; screenLong: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_UI_MODE_TYPE_* set in the configuration.
*)
function AConfiguration_getUiModeType(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current UI mode type in the configuration.
*)
procedure AConfiguration_setUiModeType(config: PAConfiguration; uiModeType: cint32); cdecl; external LibName;
(**
* Return the current ACONFIGURATION_UI_MODE_NIGHT_* set in the configuration.
*)
function AConfiguration_getUiModeNight(config: PAConfiguration): cint32; cdecl; external LibName;
(**
* Set the current UI mode night in the configuration.
*)
procedure AConfiguration_setUiModeNight(config: PAConfiguration; uiModeNight: cint32); cdecl; external LibName;
(**
* Perform a diff between two configurations. Returns a bit mask of
* ACONFIGURATION_* constants, each bit set meaning that configuration element
* is different between them.
*)
function AConfiguration_diff(config1, config2: PAConfiguration): cint32; cdecl; external LibName;
(**
* Determine whether 'base' is a valid configuration for use within the
* environment 'requested'. Returns 0 if there are any values in 'base'
* that conflict with 'requested'. Returns 1 if it does not conflict.
*)
function AConfiguration_match(base, requested: PAConfiguration): cint32; cdecl; external LibName;
(**
* Determine whether the configuration in 'test' is better than the existing
* configuration in 'base'. If 'requested' is non-NULL, this decision is based
* on the overall configuration given there. If it is NULL, this decision is
* simply based on which configuration is more specific. Returns non-0 if
* 'test' is better than 'base'.
*
* This assumes you have already filtered the configurations with
* AConfiguration_match().
*)
function AConfiguration_isBetterThan(base, test, requested: PAConfiguration) : cint32; cdecl; external LibName;
implementation
end.