Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9009863 authored by Johan Euphrosine's avatar Johan Euphrosine Committed by Gerrit Code Review
Browse files

Merge "frameworks/native: document native types and enums"

parents 38d7f755 bf6d5e01
Loading
Loading
Loading
Loading
+41 −1
Original line number Diff line number Diff line
@@ -14,6 +14,14 @@
 * limitations under the License.
 */

/**
 * @addtogroup Asset
 * @{
 */

/**
 * @file asset_manager.h
 */

#ifndef ANDROID_ASSET_MANAGER_H
#define ANDROID_ASSET_MANAGER_H
@@ -23,19 +31,49 @@ extern "C" {
#endif

struct AAssetManager;
/**
 * {@link AAssetManager} provides access to an application's raw assets by
 * creating {@link AAsset} objects.
 *
 * AAssetManager is a wrapper to the low-level native implementation
 * of the java {@link AAssetManager}, a pointer can be obtained using
 * AAssetManager_fromJava().
 *
 * The asset hierarchy may be examined like a filesystem, using
 * {@link AAssetDir} objects to peruse a single directory.
 *
 * A native {@link AAssetManager} pointer may be shared across multiple threads.
 */
typedef struct AAssetManager AAssetManager;

struct AAssetDir;
/**
 * {@link AAssetDir} provides access to a chunk of the asset hierarchy as if
 * it were a single directory. The contents are populated by the
 * {@link AAssetManager}.
 *
 * The list of files will be sorted in ascending order by ASCII value.
 */
typedef struct AAssetDir AAssetDir;

struct AAsset;
/**
 * {@link AAsset} provides access to a read-only asset.
 *
 * {@link AAsset} objects are NOT thread-safe, and should not be shared across
 * threads.
 */
typedef struct AAsset AAsset;

/* Available modes for opening assets */
/** Available access modes for opening assets with {@link AAssetManager_open} */
enum {
    /** No specific information about how data will be accessed. **/
    AASSET_MODE_UNKNOWN      = 0,
    /** Read chunks, and seek forward and backward. */
    AASSET_MODE_RANDOM       = 1,
    /** Read sequentially, with an occasional forward seek. */
    AASSET_MODE_STREAMING    = 2,
    /** Caller plans to ask for a read-only buffer with all data. */
    AASSET_MODE_BUFFER       = 3
};

@@ -173,3 +211,5 @@ int AAsset_isAllocated(AAsset* asset);
#endif

#endif      // ANDROID_ASSET_MANAGER_H

/** @} */
+10 −0
Original line number Diff line number Diff line
@@ -14,6 +14,14 @@
 * limitations under the License.
 */

/**
 * @addtogroup Asset
 * @{
 */

/**
 * @file asset_manager_jni.h
 */

#ifndef ANDROID_ASSET_MANAGER_JNI_H
#define ANDROID_ASSET_MANAGER_JNI_H
@@ -38,3 +46,5 @@ AAssetManager* AAssetManager_fromJava(JNIEnv* env, jobject assetManager);
#endif

#endif      // ANDROID_ASSET_MANAGER_JNI_H

/** @} */
+38 −8
Original line number Diff line number Diff line
@@ -14,6 +14,15 @@
 * limitations under the License.
 */

/**
 * @addtogroup Bitmap
 * @{
 */

/**
 * @file bitmap.h
 */

#ifndef ANDROID_BITMAP_H
#define ANDROID_BITMAP_H

@@ -24,33 +33,52 @@
extern "C" {
#endif

#define ANDROID_BITMAP_RESULT_SUCCESS            0
#define ANDROID_BITMAP_RESULT_BAD_PARAMETER     -1
#define ANDROID_BITMAP_RESULT_JNI_EXCEPTION     -2
#define ANDROID_BITMAP_RESULT_ALLOCATION_FAILED -3
/** AndroidBitmap functions result code. */
enum {
    /** Operation was successful. */
    ANDROID_BITMAP_RESULT_SUCCESS           = 0,
    /** Bad parameter. */
    ANDROID_BITMAP_RESULT_BAD_PARAMETER     = -1,
    /** JNI exception occured. */
    ANDROID_BITMAP_RESULT_JNI_EXCEPTION     = -2,
    /** Allocation failed. */
    ANDROID_BITMAP_RESULT_ALLOCATION_FAILED = -3,
};

/* Backward compatibility: this macro used to be misspelled. */
/** Backward compatibility: this macro used to be misspelled. */
#define ANDROID_BITMAP_RESUT_SUCCESS ANDROID_BITMAP_RESULT_SUCCESS

/** Bitmap pixel format. */
enum AndroidBitmapFormat {
    /** No format. */
    ANDROID_BITMAP_FORMAT_NONE      = 0,
    /** Red: 8 bits, Green: 8 bits, Blue: 8 bits, Alpha: 8 bits. **/
    ANDROID_BITMAP_FORMAT_RGBA_8888 = 1,
    /** Red: 5 bits, Green: 6 bits, Blue: 5 bits. **/
    ANDROID_BITMAP_FORMAT_RGB_565   = 4,
    /** Red: 4 bits, Green: 4 bits, Blue: 4 bits, Alpha: 4 bits. **/
    ANDROID_BITMAP_FORMAT_RGBA_4444 = 7,
    /** Deprecated. */
    ANDROID_BITMAP_FORMAT_A_8       = 8,
};

/** Bitmap info, see AndroidBitmap_getInfo(). */
typedef struct {
    /** The bitmap width in pixels. */
    uint32_t    width;
    /** The bitmap height in pixels. */
    uint32_t    height;
    /** The number of byte per row. */
    uint32_t    stride;
    /** The bitmap pixel format. See {@link AndroidBitmapFormat} */
    int32_t     format;
    /** Unused. */
    uint32_t    flags;      // 0 for now
} AndroidBitmapInfo;

/**
 * Given a java bitmap object, fill out the AndroidBitmap struct for it.
 * If the call fails, the info parameter will be ignored
 * Given a java bitmap object, fill out the AndroidBitmapInfo struct for it.
 * If the call fails, the info parameter will be ignored.
 */
int AndroidBitmap_getInfo(JNIEnv* env, jobject jbitmap,
                          AndroidBitmapInfo* info);
@@ -71,7 +99,7 @@ int AndroidBitmap_getInfo(JNIEnv* env, jobject jbitmap,
int AndroidBitmap_lockPixels(JNIEnv* env, jobject jbitmap, void** addrPtr);

/**
 * Call this to balanace a successful call to AndroidBitmap_lockPixels
 * Call this to balance a successful call to AndroidBitmap_lockPixels.
 */
int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap);

@@ -80,3 +108,5 @@ int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap);
#endif

#endif

/** @} */
+310 −2
Original line number Diff line number Diff line
@@ -14,6 +14,15 @@
 * limitations under the License.
 */

/**
 * @addtogroup Configuration
 * @{
 */

/**
 * @file configuration.h
 */

#ifndef ANDROID_CONFIGURATION_H
#define ANDROID_CONFIGURATION_H

@@ -24,98 +33,395 @@ extern "C" {
#endif

struct AConfiguration;
/**
 * {@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()
 */
typedef struct AConfiguration AConfiguration;


/**
 * Define flags and constants for various subsystem configurations.
 */
enum {
    /** Orientation: not specified. */
    ACONFIGURATION_ORIENTATION_ANY  = 0x0000,
    /**
     * Orientation: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#OrientationQualifier">port</a>
     * resource qualifier.
     */
    ACONFIGURATION_ORIENTATION_PORT = 0x0001,
    /**
     * Orientation: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#OrientationQualifier">land</a>
     * resource qualifier.
     */
    ACONFIGURATION_ORIENTATION_LAND = 0x0002,
    /** @deprecated Not currently supported or used. */
    ACONFIGURATION_ORIENTATION_SQUARE = 0x0003,

    /** Touchscreen: not specified. */
    ACONFIGURATION_TOUCHSCREEN_ANY  = 0x0000,
    /**
     * Touchscreen: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#TouchscreenQualifier">notouch</a>
     * resource qualifier.
     */
    ACONFIGURATION_TOUCHSCREEN_NOTOUCH  = 0x0001,
    /** @deprecated Not currently supported or used. */
    ACONFIGURATION_TOUCHSCREEN_STYLUS  = 0x0002,
    /**
     * Touchscreen: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#TouchscreenQualifier">finger</a>
     * resource qualifier.
     */
    ACONFIGURATION_TOUCHSCREEN_FINGER  = 0x0003,

    /** Density: default density. */
    ACONFIGURATION_DENSITY_DEFAULT = 0,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">ldpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_LOW = 120,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">mdpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_MEDIUM = 160,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">tvdpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_TV = 213,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">hdpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_HIGH = 240,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">xhdpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_XHIGH = 320,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">xxhdpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_XXHIGH = 480,
    /**
     * Density: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">xxxhdpi</a>
     * resource qualifier.
     */
    ACONFIGURATION_DENSITY_XXXHIGH = 640,
    /** Density: any density. */
    ACONFIGURATION_DENSITY_ANY = 0xfffe,
    /** Density: no density specified. */
    ACONFIGURATION_DENSITY_NONE = 0xffff,

    /** Keyboard: not specified. */
    ACONFIGURATION_KEYBOARD_ANY  = 0x0000,
    /**
     * Keyboard: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">nokeys</a>
     * resource qualifier.
     */
    ACONFIGURATION_KEYBOARD_NOKEYS  = 0x0001,
    /**
     * Keyboard: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">qwerty</a>
     * resource qualifier.
     */
    ACONFIGURATION_KEYBOARD_QWERTY  = 0x0002,
    /**
     * Keyboard: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">12key</a>
     * resource qualifier.
     */
    ACONFIGURATION_KEYBOARD_12KEY  = 0x0003,

    /** Navigation: not specified. */
    ACONFIGURATION_NAVIGATION_ANY  = 0x0000,
    /**
     * Navigation: value corresponding to the
     * <a href="@@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">nonav</a>
     * resource qualifier.
     */
    ACONFIGURATION_NAVIGATION_NONAV  = 0x0001,
    /**
     * Navigation: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">dpad</a>
     * resource qualifier.
     */
    ACONFIGURATION_NAVIGATION_DPAD  = 0x0002,
    /**
     * Navigation: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">trackball</a>
     * resource qualifier.
     */
    ACONFIGURATION_NAVIGATION_TRACKBALL  = 0x0003,
    /**
     * Navigation: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">wheel</a>
     * resource qualifier.
     */
    ACONFIGURATION_NAVIGATION_WHEEL  = 0x0004,

    /** Keyboard availability: not specified. */
    ACONFIGURATION_KEYSHIDDEN_ANY = 0x0000,
    /**
     * Keyboard availability: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keysexposed</a>
     * resource qualifier.
     */
    ACONFIGURATION_KEYSHIDDEN_NO = 0x0001,
    /**
     * Keyboard availability: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyshidden</a>
     * resource qualifier.
     */
    ACONFIGURATION_KEYSHIDDEN_YES = 0x0002,
    /**
     * Keyboard availability: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyssoft</a>
     * resource qualifier.
     */
    ACONFIGURATION_KEYSHIDDEN_SOFT = 0x0003,

    /** Navigation availability: not specified. */
    ACONFIGURATION_NAVHIDDEN_ANY = 0x0000,
    /**
     * Navigation availability: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavAvailQualifier">navexposed</a>
     * resource qualifier.
     */
    ACONFIGURATION_NAVHIDDEN_NO = 0x0001,
    /**
     * Navigation availability: value corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavAvailQualifier">navhidden</a>
     * resource qualifier.
     */
    ACONFIGURATION_NAVHIDDEN_YES = 0x0002,

    /** Screen size: not specified. */
    ACONFIGURATION_SCREENSIZE_ANY  = 0x00,
    /**
     * Screen size: value indicating the screen is at least
     * approximately 320x426 dp units, corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">small</a>
     * resource qualifier.
     */
    ACONFIGURATION_SCREENSIZE_SMALL = 0x01,
    /**
     * Screen size: value indicating the screen is at least
     * approximately 320x470 dp units, corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">normal</a>
     * resource qualifier.
     */
    ACONFIGURATION_SCREENSIZE_NORMAL = 0x02,
    /**
     * Screen size: value indicating the screen is at least
     * approximately 480x640 dp units, corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">large</a>
     * resource qualifier.
     */
    ACONFIGURATION_SCREENSIZE_LARGE = 0x03,
    /**
     * Screen size: value indicating the screen is at least
     * approximately 720x960 dp units, corresponding to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">xlarge</a>
     * resource qualifier.
     */
    ACONFIGURATION_SCREENSIZE_XLARGE = 0x04,

    /** Screen layout: not specified. */
    ACONFIGURATION_SCREENLONG_ANY = 0x00,
    /**
     * Screen layout: value that corresponds to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenAspectQualifier">notlong</a>
     * resource qualifier.
     */
    ACONFIGURATION_SCREENLONG_NO = 0x1,
    /**
     * Screen layout: value that corresponds to the
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenAspectQualifier">long</a>
     * resource qualifier.
     */
    ACONFIGURATION_SCREENLONG_YES = 0x2,

    /** UI mode: not specified. */
    ACONFIGURATION_UI_MODE_TYPE_ANY = 0x00,
    /**
     * UI mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">no
     * UI mode type</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_TYPE_NORMAL = 0x01,
    /**
     * UI mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">desk</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_TYPE_DESK = 0x02,
    /**
     * UI mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">car</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_TYPE_CAR = 0x03,
    /**
     * UI mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">television</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_TYPE_TELEVISION = 0x04,
    /**
     * UI mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">appliance</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_TYPE_APPLIANCE = 0x05,
    /**
     * UI mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">watch</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_TYPE_WATCH = 0x06,

    /** UI night mode: not specified.*/
    ACONFIGURATION_UI_MODE_NIGHT_ANY = 0x00,
    /**
     * UI night mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NightQualifier">notnight</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_NIGHT_NO = 0x1,
    /**
     * UI night mode: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NightQualifier">night</a> resource qualifier specified.
     */
    ACONFIGURATION_UI_MODE_NIGHT_YES = 0x2,

    /** Screen width DPI: not specified. */
    ACONFIGURATION_SCREEN_WIDTH_DP_ANY = 0x0000,

    /** Screen height DPI: not specified. */
    ACONFIGURATION_SCREEN_HEIGHT_DP_ANY = 0x0000,

    /** Smallest screen width DPI: not specified.*/
    ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY = 0x0000,

    /** Layout direction: not specified. */
    ACONFIGURATION_LAYOUTDIR_ANY  = 0x00,
    /**
     * Layout direction: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">ldltr</a> resource qualifier specified.
     */
    ACONFIGURATION_LAYOUTDIR_LTR  = 0x01,
    /**
     * Layout direction: value that corresponds to
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">ldrtl</a> resource qualifier specified.
     */
    ACONFIGURATION_LAYOUTDIR_RTL  = 0x02,

    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#MccQualifier">mcc</a>
     * configuration.
     */
    ACONFIGURATION_MCC = 0x0001,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#MccQualifier">mnc</a>
     * configuration.
     */
    ACONFIGURATION_MNC = 0x0002,
    /**
     * Bit mask for
     * <a href="{@docRoot}guide/topics/resources/providing-resources.html#LocaleQualifier">locale</a>
     * configuration.
     */
    ACONFIGURATION_LOCALE = 0x0004,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#TouchscreenQualifier">touchscreen</a>
     * configuration.
     */
    ACONFIGURATION_TOUCHSCREEN = 0x0008,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">keyboard</a>
     * configuration.
     */
    ACONFIGURATION_KEYBOARD = 0x0010,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyboardHidden</a>
     * configuration.
     */
    ACONFIGURATION_KEYBOARD_HIDDEN = 0x0020,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">navigation</a>
     * configuration.
     */
    ACONFIGURATION_NAVIGATION = 0x0040,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#OrientationQualifier">orientation</a>
     * configuration.
     */
    ACONFIGURATION_ORIENTATION = 0x0080,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">density</a>
     * configuration.
     */
    ACONFIGURATION_DENSITY = 0x0100,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">screen size</a>
     * configuration.
     */
    ACONFIGURATION_SCREEN_SIZE = 0x0200,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#VersionQualifier">platform version</a>
     * configuration.
     */
    ACONFIGURATION_VERSION = 0x0400,
    /**
     * Bit mask for screen layout configuration.
     */
    ACONFIGURATION_SCREEN_LAYOUT = 0x0800,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">ui mode</a>
     * configuration.
     */
    ACONFIGURATION_UI_MODE = 0x1000,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#SmallestScreenWidthQualifier">smallest screen width</a>
     * configuration.
     */
    ACONFIGURATION_SMALLEST_SCREEN_SIZE = 0x2000,
    /**
     * Bit mask for
     * <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">layout direction</a>
     * configuration.
     */
    ACONFIGURATION_LAYOUTDIR = 0x4000,

    /**
     * Constant used to to represent MNC (Mobile Network Code) zero.
     * 0 cannot be used, since it is used to represent an undefined MNC.
     */
    ACONFIGURATION_MNC_ZERO = 0xffff,
};

@@ -132,7 +438,7 @@ void AConfiguration_delete(AConfiguration* config);

/**
 * Create and return a new AConfiguration based on the current configuration in
 * use in the given AssetManager.
 * use in the given {@link AAssetManager}.
 */
void AConfiguration_fromAssetManager(AConfiguration* out, AAssetManager* am);

@@ -383,3 +689,5 @@ int32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test,
#endif

#endif // ANDROID_CONFIGURATION_H

/** @} */
+652 −197

File changed.

Preview size limit exceeded, changes collapsed.

Loading