package android
foreign import android "system:android"
/** Orientation: not specified. */
ORIENTATION_ANY :: 0x0000
/**
* Orientation: value corresponding to the
* port
* resource qualifier.
*/
ORIENTATION_PORT :: 0x0001
/**
* Orientation: value corresponding to the
* land
* resource qualifier.
*/
ORIENTATION_LAND :: 0x0002
/** @deprecated Not currently supported or used. */
ORIENTATION_SQUARE :: 0x0003
/** Touchscreen: not specified. */
TOUCHSCREEN_ANY :: 0x0000
/**
* Touchscreen: value corresponding to the
* notouch
* resource qualifier.
*/
TOUCHSCREEN_NOTOUCH :: 0x0001
/** @deprecated Not currently supported or used. */
TOUCHSCREEN_STYLUS :: 0x0002
/**
* Touchscreen: value corresponding to the
* finger
* resource qualifier.
*/
TOUCHSCREEN_FINGER :: 0x0003
/** Density: default density. */
DENSITY_DEFAULT :: 0
/**
* Density: value corresponding to the
* ldpi
* resource qualifier.
*/
DENSITY_LOW :: 120
/**
* Density: value corresponding to the
* mdpi
* resource qualifier.
*/
DENSITY_MEDIUM :: 160
/**
* Density: value corresponding to the
* tvdpi
* resource qualifier.
*/
DENSITY_TV :: 213
/**
* Density: value corresponding to the
* hdpi
* resource qualifier.
*/
DENSITY_HIGH :: 240
/**
* Density: value corresponding to the
* xhdpi
* resource qualifier.
*/
DENSITY_XHIGH :: 320
/**
* Density: value corresponding to the
* xxhdpi
* resource qualifier.
*/
DENSITY_XXHIGH :: 480
/**
* Density: value corresponding to the
* xxxhdpi
* resource qualifier.
*/
DENSITY_XXXHIGH :: 640
/** Density: any density. */
DENSITY_ANY :: 0xfffe
/** Density: no density specified. */
DENSITY_NONE :: 0xffff
/** Keyboard: not specified. */
KEYBOARD_ANY :: 0x0000
/**
* Keyboard: value corresponding to the
* nokeys
* resource qualifier.
*/
KEYBOARD_NOKEYS :: 0x0001
/**
* Keyboard: value corresponding to the
* qwerty
* resource qualifier.
*/
KEYBOARD_QWERTY :: 0x0002
/**
* Keyboard: value corresponding to the
* 12key
* resource qualifier.
*/
KEYBOARD_12KEY :: 0x0003
/** Navigation: not specified. */
NAVIGATION_ANY :: 0x0000
/**
* Navigation: value corresponding to the
* nonav
* resource qualifier.
*/
NAVIGATION_NONAV :: 0x0001
/**
* Navigation: value corresponding to the
* dpad
* resource qualifier.
*/
NAVIGATION_DPAD :: 0x0002
/**
* Navigation: value corresponding to the
* trackball
* resource qualifier.
*/
NAVIGATION_TRACKBALL :: 0x0003
/**
* Navigation: value corresponding to the
* wheel
* resource qualifier.
*/
NAVIGATION_WHEEL :: 0x0004
/** Keyboard availability: not specified. */
KEYSHIDDEN_ANY :: 0x0000
/**
* Keyboard availability: value corresponding to the
* keysexposed
* resource qualifier.
*/
KEYSHIDDEN_NO :: 0x0001
/**
* Keyboard availability: value corresponding to the
* keyshidden
* resource qualifier.
*/
KEYSHIDDEN_YES :: 0x0002
/**
* Keyboard availability: value corresponding to the
* keyssoft
* resource qualifier.
*/
KEYSHIDDEN_SOFT :: 0x0003
/** Navigation availability: not specified. */
NAVHIDDEN_ANY :: 0x0000
/**
* Navigation availability: value corresponding to the
* navexposed
* resource qualifier.
*/
NAVHIDDEN_NO :: 0x0001
/**
* Navigation availability: value corresponding to the
* navhidden
* resource qualifier.
*/
NAVHIDDEN_YES :: 0x0002
/** Screen size: not specified. */
SCREENSIZE_ANY :: 0x00
/**
* Screen size: value indicating the screen is at least
* approximately 320x426 dp units corresponding to the
* small
* resource qualifier.
*/
SCREENSIZE_SMALL :: 0x01
/**
* Screen size: value indicating the screen is at least
* approximately 320x470 dp units corresponding to the
* normal
* resource qualifier.
*/
SCREENSIZE_NORMAL :: 0x02
/**
* Screen size: value indicating the screen is at least
* approximately 480x640 dp units corresponding to the
* large
* resource qualifier.
*/
SCREENSIZE_LARGE :: 0x03
/**
* Screen size: value indicating the screen is at least
* approximately 720x960 dp units corresponding to the
* xlarge
* resource qualifier.
*/
SCREENSIZE_XLARGE :: 0x04
/** Screen layout: not specified. */
SCREENLONG_ANY :: 0x00
/**
* Screen layout: value that corresponds to the
* notlong
* resource qualifier.
*/
SCREENLONG_NO :: 0x1
/**
* Screen layout: value that corresponds to the
* long
* resource qualifier.
*/
SCREENLONG_YES :: 0x2
SCREENROUND_ANY :: 0x00
SCREENROUND_NO :: 0x1
SCREENROUND_YES :: 0x2
/** Wide color gamut: not specified. */
WIDE_COLOR_GAMUT_ANY :: 0x00
/**
* Wide color gamut: value that corresponds to
* no
* nowidecg resource qualifier specified.
*/
WIDE_COLOR_GAMUT_NO :: 0x1
/**
* Wide color gamut: value that corresponds to
*
* widecg resource qualifier specified.
*/
WIDE_COLOR_GAMUT_YES :: 0x2
/** HDR: not specified. */
HDR_ANY :: 0x00
/**
* HDR: value that corresponds to
*
* lowdr resource qualifier specified.
*/
HDR_NO :: 0x1
/**
* HDR: value that corresponds to
*
* highdr resource qualifier specified.
*/
HDR_YES :: 0x2
/** UI mode: not specified. */
UI_MODE_TYPE_ANY :: 0x00
/**
* UI mode: value that corresponds to
* no
* UI mode type resource qualifier specified.
*/
UI_MODE_TYPE_NORMAL :: 0x01
/**
* UI mode: value that corresponds to
* desk resource qualifier specified.
*/
UI_MODE_TYPE_DESK :: 0x02
/**
* UI mode: value that corresponds to
* car resource qualifier specified.
*/
UI_MODE_TYPE_CAR :: 0x03
/**
* UI mode: value that corresponds to
* television resource qualifier specified.
*/
UI_MODE_TYPE_TELEVISION :: 0x04
/**
* UI mode: value that corresponds to
* appliance resource qualifier specified.
*/
UI_MODE_TYPE_APPLIANCE :: 0x05
/**
* UI mode: value that corresponds to
* watch resource qualifier specified.
*/
UI_MODE_TYPE_WATCH :: 0x06
/**
* UI mode: value that corresponds to
* vr resource qualifier specified.
*/
UI_MODE_TYPE_VR_HEADSET :: 0x07
/** UI night mode: not specified.*/
UI_MODE_NIGHT_ANY :: 0x00
/**
* UI night mode: value that corresponds to
* notnight resource qualifier specified.
*/
UI_MODE_NIGHT_NO :: 0x1
/**
* UI night mode: value that corresponds to
* night resource qualifier specified.
*/
UI_MODE_NIGHT_YES :: 0x2
/** Screen width DPI: not specified. */
SCREEN_WIDTH_DP_ANY :: 0x0000
/** Screen height DPI: not specified. */
SCREEN_HEIGHT_DP_ANY :: 0x0000
/** Smallest screen width DPI: not specified.*/
SMALLEST_SCREEN_WIDTH_DP_ANY :: 0x0000
/** Layout direction: not specified. */
LAYOUTDIR_ANY :: 0x00
/**
* Layout direction: value that corresponds to
* ldltr resource qualifier specified.
*/
LAYOUTDIR_LTR :: 0x01
/**
* Layout direction: value that corresponds to
* ldrtl resource qualifier specified.
*/
LAYOUTDIR_RTL :: 0x02
/**
* Bit mask for
* mcc
* configuration.
*/
MCC :: 0x0001
/**
* Bit mask for
* mnc
* configuration.
*/
MNC :: 0x0002
/**
* Bit mask for
* locale
* configuration.
*/
LOCALE :: 0x0004
/**
* Bit mask for
* touchscreen
* configuration.
*/
TOUCHSCREEN :: 0x0008
/**
* Bit mask for
* keyboard
* configuration.
*/
KEYBOARD :: 0x0010
/**
* Bit mask for
* keyboardHidden
* configuration.
*/
KEYBOARD_HIDDEN :: 0x0020
/**
* Bit mask for
* navigation
* configuration.
*/
NAVIGATION :: 0x0040
/**
* Bit mask for
* orientation
* configuration.
*/
ORIENTATION :: 0x0080
/**
* Bit mask for
* density
* configuration.
*/
DENSITY :: 0x0100
/**
* Bit mask for
* screen size
* configuration.
*/
SCREEN_SIZE :: 0x0200
/**
* Bit mask for
* platform version
* configuration.
*/
VERSION :: 0x0400
/**
* Bit mask for screen layout configuration.
*/
SCREEN_LAYOUT :: 0x0800
/**
* Bit mask for
* ui mode
* configuration.
*/
UI_MODE :: 0x1000
/**
* Bit mask for
* smallest screen width
* configuration.
*/
SMALLEST_SCREEN_SIZE :: 0x2000
/**
* Bit mask for
* layout direction
* configuration.
*/
LAYOUTDIR :: 0x4000
SCREEN_ROUND :: 0x8000
/**
* Bit mask for
* wide color gamut
* and HDR configurations.
*/
COLOR_MODE :: 0x10000
/**
* Constant used to to represent MNC (Mobile Network Code) zero.
* 0 cannot be used since it is used to represent an undefined MNC.
*/
MNC_ZERO :: 0xffff
/**
* {@link AConfiguration} is an opaque type used to get and set
* various subsystem configurations.
*
* A {@link AConfiguration} pointer can be obtained using:
* - AConfiguration_new()
* - AConfiguration_fromAssetManager()
*/
AConfiguration :: struct{}
foreign android {
/**
* Create a new AConfiguration, initialized with no values set.
*/
AConfiguration_new :: proc() -> ^AConfiguration ---
/**
* Free an AConfiguration that was previously created with
* AConfiguration_new().
*/
AConfiguration_delete :: proc(config: ^AConfiguration) ---
/**
* Create and return a new AConfiguration based on the current configuration in
* use in the given {@link AAssetManager}.
*/
AConfiguration_fromAssetManager :: proc(out: ^AConfiguration, am: ^AAssetManager) ---
/**
* Copy the contents of 'src' to 'dest'.
*/
AConfiguration_copy :: proc(dest: ^AConfiguration, src: ^AConfiguration) ---
/**
* Return the current MCC set in the configuration. 0 if not set.
*/
AConfiguration_getMcc :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current MCC in the configuration. 0 to clear.
*/
AConfiguration_setMcc :: proc(config: ^AConfiguration, mcc: i32) ---
/**
* Return the current MNC set in the configuration. 0 if not set.
*/
AConfiguration_getMnc :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current MNC in the configuration. 0 to clear.
*/
AConfiguration_setMnc :: proc(config: ^AConfiguration, mnc: i32) ---
/**
* 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.
*/
AConfiguration_getLanguage :: proc(config: ^AConfiguration, outLanguage: [^]byte) ---
/**
* Set the current language code in the configuration, from the first two
* characters in the string.
*/
AConfiguration_setLanguage :: proc(config: ^AConfiguration, language: cstring) ---
/**
* 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.
*/
AConfiguration_getCountry :: proc(config: ^AConfiguration, outCountry: [^]byte) ---
/**
* Set the current country code in the configuration, from the first two
* characters in the string.
*/
AConfiguration_setCountry :: proc(config: ^AConfiguration, country: cstring) ---
/**
* Return the current ACONFIGURATION_ORIENTATION_* set in the configuration.
*/
AConfiguration_getOrientation :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current orientation in the configuration.
*/
AConfiguration_setOrientation :: proc(config: ^AConfiguration, orientation: i32) ---
/**
* Return the current ACONFIGURATION_TOUCHSCREEN_* set in the configuration.
*/
AConfiguration_getTouchscreen :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current touchscreen in the configuration.
*/
AConfiguration_setTouchscreen :: proc(config: ^AConfiguration, touchscreen: i32) ---
/**
* Return the current ACONFIGURATION_DENSITY_* set in the configuration.
*/
AConfiguration_getDensity :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current density in the configuration.
*/
AConfiguration_setDensity :: proc(config: ^AConfiguration, density: i32) ---
/**
* Return the current ACONFIGURATION_KEYBOARD_* set in the configuration.
*/
AConfiguration_getKeyboard :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current keyboard in the configuration.
*/
AConfiguration_setKeyboard :: proc(config: ^AConfiguration, keyboard: i32) ---
/**
* Return the current ACONFIGURATION_NAVIGATION_* set in the configuration.
*/
AConfiguration_getNavigation :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current navigation in the configuration.
*/
AConfiguration_setNavigation :: proc(config: ^AConfiguration, navigation: i32) ---
/**
* Return the current ACONFIGURATION_KEYSHIDDEN_* set in the configuration.
*/
AConfiguration_getKeysHidden :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current keys hidden in the configuration.
*/
AConfiguration_setKeysHidden :: proc(config: ^AConfiguration, keysHidden: i32) ---
/**
* Return the current ACONFIGURATION_NAVHIDDEN_* set in the configuration.
*/
AConfiguration_getNavHidden :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current nav hidden in the configuration.
*/
AConfiguration_setNavHidden :: proc(config: ^AConfiguration, navHidden: i32) ---
/**
* Return the current SDK (API) version set in the configuration.
*/
AConfiguration_getSdkVersion :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current SDK version in the configuration.
*/
AConfiguration_setSdkVersion :: proc(config: ^AConfiguration, sdkVersion: i32) ---
/**
* Return the current ACONFIGURATION_SCREENSIZE_* set in the configuration.
*/
AConfiguration_getScreenSize :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current screen size in the configuration.
*/
AConfiguration_setScreenSize :: proc(config: ^AConfiguration, screenSize: i32) ---
/**
* Return the current ACONFIGURATION_SCREENLONG_* set in the configuration.
*/
AConfiguration_getScreenLong :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current screen long in the configuration.
*/
AConfiguration_setScreenLong :: proc(config: ^AConfiguration, screenLong: i32) ---
/**
* Return the current ACONFIGURATION_SCREENROUND_* set in the configuration.
*
* Available since API level 30.
*/
AConfiguration_getScreenRound :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current screen round in the configuration.
*/
AConfiguration_setScreenRound :: proc(config: ^AConfiguration, screenRound: i32) ---
/**
* Return the current ACONFIGURATION_UI_MODE_TYPE_* set in the configuration.
*/
AConfiguration_getUiModeType :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current UI mode type in the configuration.
*/
AConfiguration_setUiModeType :: proc(config: ^AConfiguration, uiModeType: i32) ---
/**
* Return the current ACONFIGURATION_UI_MODE_NIGHT_* set in the configuration.
*/
AConfiguration_getUiModeNight :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the current UI mode night in the configuration.
*/
AConfiguration_setUiModeNight :: proc(config: ^AConfiguration, uiModeNight: i32) ---
/**
* Return the current configuration screen width in dp units, or
* ACONFIGURATION_SCREEN_WIDTH_DP_ANY if not set.
*/
AConfiguration_getScreenWidthDp :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the configuration's current screen width in dp units.
*/
AConfiguration_setScreenWidthDp :: proc(config: ^AConfiguration, value: i32) ---
/**
* Return the current configuration screen height in dp units, or
* ACONFIGURATION_SCREEN_HEIGHT_DP_ANY if not set.
*/
AConfiguration_getScreenHeightDp :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the configuration's current screen width in dp units.
*/
AConfiguration_setScreenHeightDp :: proc(config: ^AConfiguration, value: i32) ---
/**
* Return the configuration's smallest screen width in dp units, or
* ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY if not set.
*/
AConfiguration_getSmallestScreenWidthDp :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the configuration's smallest screen width in dp units.
*/
AConfiguration_setSmallestScreenWidthDp :: proc(config: ^AConfiguration, value: i32) ---
/**
* Return the configuration's layout direction, or
* ACONFIGURATION_LAYOUTDIR_ANY if not set.
*
* Available since API level 17.
*/
AConfiguration_getLayoutDirection :: proc(config: ^AConfiguration) -> i32 ---
/**
* Set the configuration's layout direction.
*
* Available since API level 17.
*/
AConfiguration_setLayoutDirection :: proc(config: ^AConfiguration, value: i32) ---
/**
* Perform a diff between two configurations. Returns a bit mask of
* ACONFIGURATION_* constants, each bit set meaning that configuration element
* is different between them.
*/
AConfiguration_diff :: proc(config1: ^AConfiguration, config2: ^AConfiguration) -> i32 ---
/**
* 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.
*/
AConfiguration_match :: proc(base: ^AConfiguration, requested: ^AConfiguration) -> i32 ---
/**
* 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().
*/
AConfiguration_isBetterThan :: proc(base: ^AConfiguration, test: ^AConfiguration, requested: ^AConfiguration) -> i32 ---
}