OSDN Git Service

Merge "Add orientation to configuration for layoutlib." into jb-mr2-dev
authorDeepanshu Gupta <deepanshu@google.com>
Wed, 17 Jul 2013 18:38:42 +0000 (18:38 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Wed, 17 Jul 2013 18:38:42 +0000 (18:38 +0000)
282 files changed:
core/java/android/bluetooth/package.html
core/java/android/net/ConnectivityManager.java
core/java/android/net/IConnectivityManager.aidl
core/java/android/net/MobileDataStateTracker.java
core/java/android/net/NetworkStatsHistory.java
core/java/android/view/TextureView.java
core/jni/android_media_AudioSystem.cpp
core/jni/android_media_AudioTrack.cpp
core/res/AndroidManifest.xml
core/res/res/values-af/strings.xml
core/res/res/values-am/strings.xml
core/res/res/values-ar/strings.xml
core/res/res/values-be/strings.xml
core/res/res/values-bg/strings.xml
core/res/res/values-ca/strings.xml
core/res/res/values-cs/strings.xml
core/res/res/values-da/strings.xml
core/res/res/values-de/strings.xml
core/res/res/values-el/strings.xml
core/res/res/values-en-rGB/strings.xml
core/res/res/values-es-rUS/strings.xml
core/res/res/values-es/strings.xml
core/res/res/values-et/strings.xml
core/res/res/values-fa/strings.xml
core/res/res/values-fi/strings.xml
core/res/res/values-fr/strings.xml
core/res/res/values-hi/strings.xml
core/res/res/values-hr/strings.xml
core/res/res/values-hu/strings.xml
core/res/res/values-in/strings.xml
core/res/res/values-it/strings.xml
core/res/res/values-iw/strings.xml
core/res/res/values-ja/strings.xml
core/res/res/values-ko/strings.xml
core/res/res/values-lt/strings.xml
core/res/res/values-lv/strings.xml
core/res/res/values-ms/strings.xml
core/res/res/values-nb/strings.xml
core/res/res/values-nl/strings.xml
core/res/res/values-pl/strings.xml
core/res/res/values-pt-rPT/strings.xml
core/res/res/values-pt/strings.xml
core/res/res/values-rm/strings.xml
core/res/res/values-ro/strings.xml
core/res/res/values-ru/strings.xml
core/res/res/values-sk/strings.xml
core/res/res/values-sl/strings.xml
core/res/res/values-sr/strings.xml
core/res/res/values-sv/strings.xml
core/res/res/values-sw/strings.xml
core/res/res/values-th/strings.xml
core/res/res/values-tl/strings.xml
core/res/res/values-tr/strings.xml
core/res/res/values-uk/strings.xml
core/res/res/values-vi/strings.xml
core/res/res/values-zh-rCN/strings.xml
core/res/res/values-zh-rTW/strings.xml
core/res/res/values-zu/strings.xml
core/res/res/values/config.xml
core/res/res/values/strings.xml
core/res/res/values/symbols.xml
docs/downloads/training/BasicSyncAdapter.zip [new file with mode: 0644]
docs/html/about/about_toc.cs
docs/html/about/dashboards/index.jd
docs/html/about/versions/android-4.0.jd
docs/html/about/versions/android-4.3.jd [new file with mode: 0644]
docs/html/about/versions/jelly-bean.jd
docs/html/channels/io2013.jd
docs/html/design/downloads/index.jd
docs/html/design/index.jd
docs/html/develop/index.jd
docs/html/distribute/distribute_toc.cs
docs/html/distribute/googleplay/edu/about.jd
docs/html/distribute/googleplay/edu/contact.jd
docs/html/distribute/googleplay/edu/guidelines.jd [new file with mode: 0644]
docs/html/distribute/googleplay/edu/start.jd
docs/html/distribute/googleplay/promote/badges.jd
docs/html/distribute/googleplay/promote/brand.jd
docs/html/distribute/googleplay/promote/index.jd
docs/html/distribute/googleplay/promote/linking.jd
docs/html/distribute/googleplay/publish/preparing.jd
docs/html/distribute/googleplay/quality/core.jd
docs/html/distribute/googleplay/quality/index.jd
docs/html/distribute/googleplay/quality/tablet.jd
docs/html/distribute/googleplay/spotlight/index.jd
docs/html/distribute/index.jd
docs/html/distribute/promote/device-art-resources/nexus_7/land_back.png
docs/html/distribute/promote/device-art-resources/nexus_7/land_fore.png
docs/html/distribute/promote/device-art-resources/nexus_7/land_shadow.png
docs/html/distribute/promote/device-art-resources/nexus_7/port_back.png
docs/html/distribute/promote/device-art-resources/nexus_7/port_fore.png
docs/html/distribute/promote/device-art-resources/nexus_7/port_shadow.png
docs/html/distribute/promote/device-art-resources/nexus_7/thumb.png
docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_back.png [new file with mode: 0644]
docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_fore.png [new file with mode: 0644]
docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_shadow.png [new file with mode: 0644]
docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_back.png [new file with mode: 0644]
docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_fore.png [new file with mode: 0644]
docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_shadow.png [new file with mode: 0644]
docs/html/distribute/promote/device-art-resources/nexus_7_2012/thumb.png [new file with mode: 0644]
docs/html/distribute/promote/device-art.jd
docs/html/gms_navtree_data.js
docs/html/google/backup/signup.jd
docs/html/google/index.jd
docs/html/google/play/billing/index.jd
docs/html/guide/appendix/media-formats.jd
docs/html/guide/components/index.jd
docs/html/guide/guide_toc.cs
docs/html/guide/topics/connectivity/bluetooth-le.jd [new file with mode: 0644]
docs/html/guide/topics/connectivity/bluetooth.jd
docs/html/images/brand/ar_generic_rgb_wo_45.png
docs/html/images/brand/ar_generic_rgb_wo_60.png
docs/html/images/gp-edu-optin.png [new file with mode: 0644]
docs/html/images/gp-edu-process.png [new file with mode: 0644]
docs/html/images/tools/clipbounds-normal@2x.png [new file with mode: 0644]
docs/html/images/tools/clipbounds@2x.png [new file with mode: 0644]
docs/html/images/tools/ninepatch_opticalbounds@2x.png [new file with mode: 0644]
docs/html/images/tools/opticalbounds-normal@2x.png [new file with mode: 0644]
docs/html/images/tools/opticalbounds@2x.png [new file with mode: 0644]
docs/html/images/tools/studio_error_eventlog.png [new file with mode: 0644]
docs/html/images/tools/studio_error_gradle5.png [new file with mode: 0644]
docs/html/images/tools/studio_error_supportlib.png [new file with mode: 0644]
docs/html/index.jd
docs/html/reference/com/google/android/gms/R.string.html
docs/html/reference/com/google/android/gms/appstate/AppState.html
docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
docs/html/reference/com/google/android/gms/common/AccountPicker.html
docs/html/reference/com/google/android/gms/common/ConnectionResult.html
docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.html
docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
docs/html/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html [deleted file]
docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
docs/html/reference/com/google/android/gms/common/images/ImageManager.html
docs/html/reference/com/google/android/gms/common/images/package-summary.html
docs/html/reference/com/google/android/gms/common/package-summary.html
docs/html/reference/com/google/android/gms/games/Game.html
docs/html/reference/com/google/android/gms/games/GameBuffer.html
docs/html/reference/com/google/android/gms/games/GameEntity.html
docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
docs/html/reference/com/google/android/gms/games/GamesClient.html
docs/html/reference/com/google/android/gms/games/GamesClientSettings.html [deleted file]
docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
docs/html/reference/com/google/android/gms/games/RealTimeSocket.html
docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
docs/html/reference/com/google/android/gms/games/package-summary.html
docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
docs/html/reference/com/google/android/gms/location/LocationClient.html
docs/html/reference/com/google/android/gms/location/LocationRequest.html
docs/html/reference/com/google/android/gms/maps/MapFragment.html
docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
docs/html/reference/com/google/android/gms/plus/PlusClient.html
docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
docs/html/reference/gms-packages.html
docs/html/reference/gms_lists.js
docs/html/reference/renderscript/annotated.html
docs/html/reference/renderscript/globals.html
docs/html/reference/renderscript/globals_enum.html
docs/html/reference/renderscript/globals_func.html
docs/html/reference/renderscript/globals_type.html
docs/html/reference/renderscript/index.html
docs/html/reference/renderscript/rs__allocation_8rsh.html
docs/html/reference/renderscript/rs__allocation_8rsh_source.html
docs/html/reference/renderscript/rs__atomic_8rsh.html
docs/html/reference/renderscript/rs__atomic_8rsh_source.html
docs/html/reference/renderscript/rs__cl_8rsh.html
docs/html/reference/renderscript/rs__cl_8rsh_source.html
docs/html/reference/renderscript/rs__core_8rsh.html
docs/html/reference/renderscript/rs__core_8rsh_source.html
docs/html/reference/renderscript/rs__debug_8rsh.html
docs/html/reference/renderscript/rs__debug_8rsh_source.html
docs/html/reference/renderscript/rs__element_8rsh.html
docs/html/reference/renderscript/rs__element_8rsh_source.html
docs/html/reference/renderscript/rs__math_8rsh.html
docs/html/reference/renderscript/rs__math_8rsh_source.html
docs/html/reference/renderscript/rs__matrix_8rsh.html
docs/html/reference/renderscript/rs__matrix_8rsh_source.html
docs/html/reference/renderscript/rs__mesh_8rsh.html
docs/html/reference/renderscript/rs__mesh_8rsh_source.html
docs/html/reference/renderscript/rs__object_8rsh.html
docs/html/reference/renderscript/rs__object_8rsh_source.html
docs/html/reference/renderscript/rs__program_8rsh.html
docs/html/reference/renderscript/rs__program_8rsh_source.html
docs/html/reference/renderscript/rs__quaternion_8rsh.html
docs/html/reference/renderscript/rs__quaternion_8rsh_source.html
docs/html/reference/renderscript/rs__sampler_8rsh.html
docs/html/reference/renderscript/rs__sampler_8rsh_source.html
docs/html/reference/renderscript/rs__time_8rsh.html
docs/html/reference/renderscript/rs__time_8rsh_source.html
docs/html/reference/renderscript/rs__types_8rsh.html
docs/html/reference/renderscript/rs__types_8rsh_source.html
docs/html/reference/renderscript/structrs__allocation.html
docs/html/reference/renderscript/structrs__element.html
docs/html/reference/renderscript/structrs__font.html
docs/html/reference/renderscript/structrs__matrix2x2.html
docs/html/reference/renderscript/structrs__matrix3x3.html
docs/html/reference/renderscript/structrs__matrix4x4.html
docs/html/reference/renderscript/structrs__mesh.html
docs/html/reference/renderscript/structrs__path.html
docs/html/reference/renderscript/structrs__program__fragment.html
docs/html/reference/renderscript/structrs__program__raster.html
docs/html/reference/renderscript/structrs__program__store.html
docs/html/reference/renderscript/structrs__program__vertex.html
docs/html/reference/renderscript/structrs__sampler.html
docs/html/reference/renderscript/structrs__script.html
docs/html/reference/renderscript/structrs__script__call.html
docs/html/reference/renderscript/structrs__tm.html
docs/html/reference/renderscript/structrs__type.html
docs/html/sdk/installing/studio-tips.jd
docs/html/sdk/installing/studio.jd
docs/html/tools/extras/oem-usb.jd
docs/html/tools/help/uiautomator/Configurator.jd [new file with mode: 0644]
docs/html/tools/help/uiautomator/IAutomationSupport.jd
docs/html/tools/help/uiautomator/UiAutomatorTestCase.jd
docs/html/tools/help/uiautomator/UiCollection.jd
docs/html/tools/help/uiautomator/UiDevice.jd
docs/html/tools/help/uiautomator/UiObject.jd
docs/html/tools/help/uiautomator/UiObjectNotFoundException.jd
docs/html/tools/help/uiautomator/UiScrollable.jd
docs/html/tools/help/uiautomator/UiSelector.jd
docs/html/tools/help/uiautomator/UiWatcher.jd
docs/html/tools/help/uiautomator/index.jd
docs/html/tools/index.jd
docs/html/tools/tools_toc.cs
docs/html/training/cloudsave/conflict-res.jd [new file with mode: 0644]
docs/html/training/cloudsync/gcm.jd
docs/html/training/index.jd
docs/html/training/location/activity-recognition.jd
docs/html/training/sync-adapters/creating-authenticator.jd [new file with mode: 0644]
docs/html/training/sync-adapters/creating-stub-provider.jd [new file with mode: 0644]
docs/html/training/sync-adapters/creating-sync-adapter.jd [new file with mode: 0644]
docs/html/training/sync-adapters/index.jd [new file with mode: 0644]
docs/html/training/sync-adapters/running-sync-adapter.jd [new file with mode: 0644]
docs/html/training/training_toc.cs
libs/hwui/OpenGLRenderer.cpp
media/java/android/media/AudioManager.java
media/java/android/media/AudioSystem.java
media/java/android/media/AudioTrack.java
packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
packages/SystemUI/res/values-de/strings.xml
packages/SystemUI/res/values/config.xml
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
services/input/EventHub.cpp
services/java/com/android/server/AttributeCache.java
services/java/com/android/server/ConnectivityService.java
services/java/com/android/server/accessibility/AccessibilityManagerService.java
services/java/com/android/server/am/ActivityRecord.java
services/java/com/android/server/power/PowerManagerService.java
services/java/com/android/server/wifi/WifiService.java
services/java/com/android/server/wm/AppTransition.java
services/java/com/android/server/wm/InputMonitor.java
services/java/com/android/server/wm/WindowAnimator.java
services/java/com/android/server/wm/WindowManagerService.java
telephony/java/android/telephony/TelephonyManager.java
telephony/java/com/android/internal/telephony/DctConstants.java
wifi/java/android/net/wifi/WifiManager.java
wifi/java/android/net/wifi/WifiStateMachine.java
wifi/java/android/net/wifi/p2p/WifiP2pService.java

index ba75034..200a21b 100644 (file)
@@ -1,15 +1,20 @@
 <HTML>
 <BODY>
 <p>Provides classes that manage Bluetooth functionality, such as scanning for
-devices, connecting with devices, and managing data transfer between devices.</p>
+devices, connecting with devices, and managing data transfer between devices.
+The Bluetooth API supports both "Classic Bluetooth" and Bluetooth Low Energy.</p>
 
-<p>For more information, see the
-<a href="{@docRoot}guide/topics/connectivity/bluetooth.html">Bluetooth</a> guide.</p>
+<p>For more information about Classic Bluetooth, see the
+<a href="{@docRoot}guide/topics/connectivity/bluetooth.html">Bluetooth</a> guide.
+For more information about Bluetooth Low Energy, see the
+<a href="{@docRoot}guide/topics/connectivity/bluetooth-le.html">
+Bluetooth Low Energy</a> guide.</p>
 {@more}
 
 <p>The Bluetooth APIs let applications:</p>
 <ul>
-  <li>Scan for other Bluetooth devices</li>
+  <li>Scan for other Bluetooth devices (including Bluetooth Low Energy
+    devices)</li>
   <li>Query the local Bluetooth adapter for paired Bluetooth devices</li>
   <li>Establish RFCOMM channels/sockets</li>
   <li>Connect to specified sockets on other devices</li>
index 78bf9af..6487c92 100644 (file)
@@ -25,6 +25,7 @@ import android.os.Binder;
 import android.os.Build.VERSION_CODES;
 import android.os.Messenger;
 import android.os.RemoteException;
+import android.os.ResultReceiver;
 import android.provider.Settings;
 
 import java.net.InetAddress;
@@ -1294,4 +1295,67 @@ public class ConnectivityManager {
         } catch (RemoteException e) {
         }
     }
+
+    /**
+     * The ResultReceiver resultCode for checkMobileProvisioning (CMP_RESULT_CODE)
+     */
+
+    /**
+     * No connection was possible to the network.
+     * {@hide}
+     */
+    public static final int CMP_RESULT_CODE_NO_CONNECTION = 0;
+
+    /**
+     * A connection was made to the internet, all is well.
+     * {@hide}
+     */
+    public static final int CMP_RESULT_CODE_CONNECTABLE = 1;
+
+    /**
+     * A connection was made but there was a redirection, we appear to be in walled garden.
+     * This is an indication of a warm sim on a mobile network.
+     * {@hide}
+     */
+    public static final int CMP_RESULT_CODE_REDIRECTED = 2;
+
+    /**
+     * A connection was made but no dns server was available to resolve a name to address.
+     * This is an indication of a warm sim on a mobile network.
+     *
+     * {@hide}
+     */
+    public static final int CMP_RESULT_CODE_NO_DNS = 3;
+
+    /**
+     * A connection was made but could not open a TCP connection.
+     * This is an indication of a warm sim on a mobile network.
+     * {@hide}
+     */
+    public static final int CMP_RESULT_CODE_NO_TCP_CONNECTION = 4;
+
+    /**
+     * Check mobile provisioning. The resultCode passed to
+     * onReceiveResult will be one of the CMP_RESULT_CODE_xxxx values above.
+     * This may take a minute or more to complete.
+     *
+     * @param sendNotificaiton, when true a notification will be sent to user.
+     * @param suggestedTimeOutMs, timeout in milliseconds
+     * @param resultReceiver needs to  be supplied to receive the result
+     *
+     * @return time out that will be used, maybe less that suggestedTimeOutMs
+     * -1 if an error.
+     *
+     * {@hide}
+     */
+    public int checkMobileProvisioning(boolean sendNotification, int suggestedTimeOutMs,
+            ResultReceiver resultReceiver) {
+        int timeOutMs = -1;
+        try {
+            timeOutMs = mService.checkMobileProvisioning(sendNotification, suggestedTimeOutMs,
+                    resultReceiver);
+        } catch (RemoteException e) {
+        }
+        return timeOutMs;
+    }
 }
index e5d6e51..3dbe078 100644 (file)
@@ -24,6 +24,7 @@ import android.net.ProxyProperties;
 import android.os.IBinder;
 import android.os.Messenger;
 import android.os.ParcelFileDescriptor;
+import android.os.ResultReceiver;
 
 import com.android.internal.net.LegacyVpnInfo;
 import com.android.internal.net.VpnConfig;
@@ -131,4 +132,6 @@ interface IConnectivityManager
     void supplyMessenger(int networkType, in Messenger messenger);
 
     int findConnectionTypeForIface(in String iface);
+
+    int checkMobileProvisioning(boolean sendNotification, int suggestedTimeOutMs, in ResultReceiver resultReceiver);
 }
index e85dbcd..5a1daed 100644 (file)
@@ -494,6 +494,19 @@ public class MobileDataStateTracker implements NetworkStateTracker {
     }
 
     /**
+     * Eanble/disable FailFast
+     *
+     * @param enabled is DctConstants.ENABLED/DISABLED
+     */
+    public void setEnableFailFastMobileData(int enabled) {
+        if (DBG) log("setEnableFailFastMobileData(enabled=" + enabled + ")");
+        final AsyncChannel channel = mDataConnectionTrackerAc;
+        if (channel != null) {
+            channel.sendMessage(DctConstants.CMD_SET_ENABLE_FAIL_FAST_MOBILE_DATA, enabled);
+        }
+    }
+
+    /**
      * carrier dependency is met/unmet
      * @param met
      */
index 382b25e..62d8738 100644 (file)
@@ -639,6 +639,7 @@ public class NetworkStatsHistory implements Parcelable {
         @Deprecated
         public static long[] readFullLongArray(DataInputStream in) throws IOException {
             final int size = in.readInt();
+            if (size < 0) throw new ProtocolException("negative array size");
             final long[] values = new long[size];
             for (int i = 0; i < values.length; i++) {
                 values[i] = in.readLong();
@@ -680,6 +681,7 @@ public class NetworkStatsHistory implements Parcelable {
         public static long[] readVarLongArray(DataInputStream in) throws IOException {
             final int size = in.readInt();
             if (size == -1) return null;
+            if (size < 0) throw new ProtocolException("negative array size");
             final long[] values = new long[size];
             for (int i = 0; i < values.length; i++) {
                 values[i] = readVarLong(in);
index 5c3934d..244dc33 100644 (file)
@@ -108,6 +108,7 @@ public class TextureView extends View {
     private HardwareLayer mLayer;
     private SurfaceTexture mSurface;
     private SurfaceTextureListener mListener;
+    private boolean mHadSurface;
 
     private boolean mOpaque = true;
 
@@ -202,6 +203,11 @@ public class TextureView extends View {
             Log.w(LOG_TAG, "A TextureView or a subclass can only be "
                     + "used with hardware acceleration enabled.");
         }
+
+        if (mHadSurface) {
+            invalidate(true);
+            mHadSurface = false;
+        }
     }
 
     @Override
@@ -241,6 +247,8 @@ public class TextureView extends View {
             if (shouldRelease) mSurface.release();
             mSurface = null;
             mLayer = null;
+
+            mHadSurface = true;
         }
     }
 
index 0827f7c..67c2cfd 100644 (file)
@@ -271,6 +271,17 @@ android_media_AudioSystem_getPrimaryOutputFrameCount(JNIEnv *env, jobject clazz)
     return (jint) AudioSystem::getPrimaryOutputFrameCount();
 }
 
+static jint
+android_media_AudioSystem_getOutputLatency(JNIEnv *env, jobject clazz, jint stream)
+{
+    uint32_t afLatency;
+    if (AudioSystem::getOutputLatency(&afLatency, static_cast <audio_stream_type_t>(stream))
+            != NO_ERROR) {
+        afLatency = -1;
+    }
+    return (jint) afLatency;
+}
+
 // ----------------------------------------------------------------------------
 
 static JNINativeMethod gMethods[] = {
@@ -296,6 +307,7 @@ static JNINativeMethod gMethods[] = {
     {"getDevicesForStream", "(I)I",     (void *)android_media_AudioSystem_getDevicesForStream},
     {"getPrimaryOutputSamplingRate", "()I", (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate},
     {"getPrimaryOutputFrameCount",   "()I", (void *)android_media_AudioSystem_getPrimaryOutputFrameCount},
+    {"getOutputLatency",    "(I)I",     (void *)android_media_AudioSystem_getOutputLatency},
 };
 
 int register_android_media_AudioSystem(JNIEnv *env)
index e2d34c9..3ff9dda 100644 (file)
@@ -728,6 +728,19 @@ static jint android_media_AudioTrack_get_position(JNIEnv *env,  jobject thiz) {
 
 
 // ----------------------------------------------------------------------------
+static jint android_media_AudioTrack_get_latency(JNIEnv *env,  jobject thiz) {
+    sp<AudioTrack> lpTrack = getAudioTrack(env, thiz);
+
+    if (lpTrack == NULL) {
+        jniThrowException(env, "java/lang/IllegalStateException",
+            "Unable to retrieve AudioTrack pointer for latency()");
+        return AUDIOTRACK_ERROR;
+    }
+    return (jint)lpTrack->latency();
+}
+
+
+// ----------------------------------------------------------------------------
 static jint android_media_AudioTrack_set_loop(JNIEnv *env,  jobject thiz,
         jint loopStart, jint loopEnd, jint loopCount) {
     sp<AudioTrack> lpTrack = getAudioTrack(env, thiz);
@@ -854,6 +867,7 @@ static JNINativeMethod gMethods[] = {
                              "()I",      (void *)android_media_AudioTrack_get_pos_update_period},
     {"native_set_position",  "(I)I",     (void *)android_media_AudioTrack_set_position},
     {"native_get_position",  "()I",      (void *)android_media_AudioTrack_get_position},
+    {"native_get_latency",   "()I",      (void *)android_media_AudioTrack_get_latency},
     {"native_set_loop",      "(III)I",   (void *)android_media_AudioTrack_set_loop},
     {"native_reload_static", "()I",      (void *)android_media_AudioTrack_reload},
     {"native_get_output_sample_rate",
index 86e0a2c..4aa540a 100644 (file)
     <protected-broadcast android:name="com.android.server.WifiManager.action.DELAYED_DRIVER_STOP" />
     <protected-broadcast android:name="android.net.wifi.WIFI_STATE_CHANGED" />
     <protected-broadcast android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />
+    <protected-broadcast android:name="android.net.wifi.WIFI_SCAN_AVAILABLE" />
     <protected-broadcast android:name="android.net.wifi.SCAN_RESULTS" />
     <protected-broadcast android:name="android.net.wifi.RSSI_CHANGED" />
     <protected-broadcast android:name="android.net.wifi.STATE_CHANGE" />
index 7306042..405a978 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index eb58502..c84c0e2 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index cade61d..d694917 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 10e3d45..fe11bb6 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 11c97c2..76cab7a 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 77f89d1..8c82e3a 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index d1d83a0..a465d7c 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 3c6818b..6c9a5f3 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index f09914c..50a7c8c 100644 (file)
     <string name="permlab_readCallLog" msgid="3478133184624102739">"Anrufliste lesen"</string>
     <string name="permdesc_readCallLog" product="tablet" msgid="3700645184870760285">"Ermöglicht der App, die Anrufliste Ihres Tablets zu lesen, einschließlich der Daten über ein- und ausgehende Anrufe. Die Berechtigung erlaubt Apps, Ihre Anruflistendaten zu speichern, und schädliche Apps können diese Daten ohne Ihr Wissen weiterleiten."</string>
     <string name="permdesc_readCallLog" product="default" msgid="5777725796813217244">"Ermöglicht der App, die Anrufliste Ihres Telefons zu lesen, einschließlich der Daten über ein- und ausgehende Anrufe. Die Berechtigung erlaubt Apps, Ihre Anruflistendaten zu speichern, und schädliche Apps können diese Daten ohne Ihr Wissen weiterleiten."</string>
-    <string name="permlab_writeCallLog" msgid="8552045664743499354">"Anrufprotokoll bearbeiten"</string>
-    <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Ermöglicht der App, das Anrufprotokoll Ihres Tablets zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihr Anrufprotokoll löschen oder ändern."</string>
-    <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Ermöglicht der App, das Anrufprotokoll Ihres Telefons zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihr Anrufprotokoll löschen oder ändern."</string>
+    <string name="permlab_writeCallLog" msgid="8552045664743499354">"Anrufliste bearbeiten"</string>
+    <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Ermöglicht der App, die Anrufliste Ihres Tablets zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihre Anrufliste löschen oder ändern."</string>
+    <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Ermöglicht der App, die Anrufliste Ihres Telefons zu ändern, einschließlich der Daten über ein- und ausgehende Anrufe. Schädliche Apps können so Ihre Anrufliste löschen oder ändern."</string>
     <string name="permlab_readProfile" msgid="4701889852612716678">"Meine Kontaktkarten lesen"</string>
     <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Ermöglicht der App, auf Ihrem Gerät gespeicherte personenbezogene Profildaten zu lesen, einschließlich Ihres Namens und Ihrer Kontaktdaten. Die App kann Sie somit identifizieren und Ihre Profildaten an andere senden."</string>
     <string name="permlab_writeProfile" msgid="907793628777397643">"Meine Kontaktkarten ändern"</string>
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo!"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
     <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string>
     <string name="default_audio_route_category_name" msgid="3722811174003886946">"System"</string>
     <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth-Audio"</string>
-    <string name="wireless_display_route_description" msgid="9070346425023979651">"Kabellose Übertragung"</string>
+    <string name="wireless_display_route_description" msgid="9070346425023979651">"Kabellose Übertragung (WiDi)"</string>
     <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Fertig"</string>
     <string name="media_route_button_content_description" msgid="5758553567065145276">"Medienausgabe"</string>
     <string name="media_route_status_scanning" msgid="7279908761758293783">"Wird gescannt..."</string>
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI-Bildschirm"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay-Nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <string name="wifi_display_notification_title" msgid="2223050649240326557">"WLAN-Anzeige ist aktiv."</string>
+    <string name="wifi_display_notification_title" msgid="2223050649240326557">"Kabellose Übertragung (WiDi) ist aktiviert."</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Dieser Bildschirm wird auf einem anderen Gerät angezeigt."</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Verbindung trennen"</string>
     <string name="kg_emergency_call_label" msgid="684946192523830531">"Notruf"</string>
index 800da21..968aba9 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 95dec80..a37c945 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"Net Meeting"</string>
index 8fe234d..a39e61f 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 67a6755..8b666d8 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo!"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 013a2eb..92a1e93 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 97b430e..459e1c3 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 25336b0..9740070 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 88033d2..a1c795f 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index fa09220..a2180a8 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google टॉक"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index ef9b50a..733a0e3 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 4c87604..dab8941 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Csevegő"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 39106ad..3db9137 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
     <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. "\n\n"Coba lagi dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik."</string>
     <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah mengetik sandi. "\n\n"Coba lagi dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik."</string>
     <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah mengetik PIN. "\n\n"Coba lagi dalam <xliff:g id="NUMBER_1">%d</xliff:g> detik."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci tablet menggunakan info masuk Google."\n\n"Coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
-    <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci ponsel menggunakan info masuk Google."\n\n"Coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci tablet menggunakan proses masuk Google."\n\n"Coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Anda telah <xliff:g id="NUMBER_0">%d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci ponsel menggunakan proses masuk Google."\n\n"Coba lagi dalam <xliff:g id="NUMBER_2">%d</xliff:g> detik."</string>
     <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Anda telah gagal mencoba membuka gembok tablet sebanyak <xliff:g id="NUMBER_0">%d</xliff:g> kali. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> upaya gagal lagi, tablet akan disetel ulang ke setelan default pabrik dan semua data pengguna hilang."</string>
     <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Anda telah gagal mencoba membuka gembok ponsel sebanyak <xliff:g id="NUMBER_0">%d</xliff:g> kali. Setelah <xliff:g id="NUMBER_1">%d</xliff:g> upaya gagal lagi, ponsel akan disetel ulang ke setelan default pabrik dan semua data pengguna hilang."</string>
     <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Anda telah gagal mencoba membuka gembok tablet sebanyak <xliff:g id="NUMBER">%d</xliff:g> kali. Kini tablet akan disetel ulang ke setelan default pabrik."</string>
index 14e346f..416c534 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index cc70005..7afb72c 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 99778a0..340774c 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Googleトーク"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index a97bf9b..73cdb1c 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google 토크"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 2bde748..593316f 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"„Google“ pokalbiai"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"„Jabber“"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 4cca123..11e0116 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 06548c6..4a0017f 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Bual Google"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index b339738..74d7702 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"OQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
     <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string>
     <string name="granularity_label_character" msgid="7336470535385009523">"tegn"</string>
     <string name="granularity_label_word" msgid="7075570328374918660">"ord"</string>
-    <string name="granularity_label_link" msgid="5815508880782488267">"kobling"</string>
+    <string name="granularity_label_link" msgid="5815508880782488267">"link"</string>
     <string name="granularity_label_line" msgid="5764267235026120888">"linje"</string>
     <string name="hour_ampm" msgid="4584338083529355982">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm" msgid="2083465992940444366">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
index 358dfe3..bbdfed3 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index d3b340b..e4e82f9 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 32d3692..e5c48bb 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 2cd31a8..f0f3d60 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 361b18a..cad9d1a 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 4694e15..14f9644 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 1b9b750..81366f3 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 03e18be..b7dcd07 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 40ee9f1..11dc13d 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 0965b46..d0ebddd 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 0df55b9..80ab2ae 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index f14c90d..b066d3a 100644 (file)
     <string name="permgrouplab_wallpaper" msgid="3850280158041175998">"Taswira"</string>
     <string name="permgroupdesc_wallpaper" msgid="5630417854750540154">"Badilisha mipangilio taswira ya kifaa."</string>
     <string name="permgrouplab_systemClock" msgid="406535759236612992">"Saa"</string>
-    <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"Badilisha muda wa kifaa au ukanda wa saa."</string>
+    <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"Badilisha saa za kifaa au za eneo."</string>
     <string name="permgrouplab_statusBar" msgid="2095862568113945398">"Hali Upau"</string>
     <string name="permgroupdesc_statusBar" msgid="6242593432226807171">"Badilisha mipangilio ya upau wa hali ya kifaa."</string>
     <string name="permgrouplab_syncSettings" msgid="3341990986147826541">"Mipangilio ya Upatanishi"</string>
     <string name="permlab_setTime" msgid="2021614829591775646">"weka muda"</string>
     <string name="permdesc_setTime" product="tablet" msgid="1896341438151152881">"Inaruhusu programu kubadilisha wakati wa saa ya kompyuta kibao."</string>
     <string name="permdesc_setTime" product="default" msgid="1855702730738020">"Inaruhusu programu kubadilisha wakati wa saa ya simu."</string>
-    <string name="permlab_setTimeZone" msgid="2945079801013077340">"weka ukanda wa saa"</string>
+    <string name="permlab_setTimeZone" msgid="2945079801013077340">"weka saa za eneo"</string>
     <string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"Inaruhusu programu kubadilisha  majira ya saa ya kompyuta kibao."</string>
     <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Inaruhusu programu kubadilisha  majira ya saa ya simu."</string>
     <string name="permlab_accountManagerService" msgid="4829262349691386986">"tenda kama Huduma ya Meneja wa Akaunti"</string>
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Hakuna SIM kadi katika kompyuta ndogo."</string>
     <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Hakuna SIM kadi kwenye simu."</string>
     <string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Ingiza SIM kadi."</string>
-    <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Kadi ya SIM haiko au haisomeki. Tafadhali ingiza SIM kadi."</string>
-    <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Kadi ya SIM isiyotumika."</string>
+    <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM kadi haipatikani au haisomeki. Tafadhali ingiza SIM kadi."</string>
+    <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM kadi isiyotumika."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kadi yako imelemezwa kabisa."\n" Wasiliana na mtoa huduma wako wa pasi waya ili upate SIM kadi nyingine."</string>
     <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Kitufe cha awali cha wimbo"</string>
     <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Kitufe cha wimbo unaofuata"</string>
     <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Kitufe cha kusitisha"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Simu za dharura pekee"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Mtandao umefungwa"</string>
-    <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Kadi ya SIM imefungwa na PUK."</string>
+    <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM kadi imefungwa kwa PUK."</string>
     <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"Angalia Mwongozo wa Mtumiaji au wasiliana na Huduma ya Wateja."</string>
-    <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"Kadi ya SIM imefungwa."</string>
+    <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM kadi imefungwa."</string>
     <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"Inafungua SIM kadi..."</string>
     <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"Umekosea katika kuchora ruwaza yako ya kufungua mara <xliff:g id="NUMBER_0">%d</xliff:g>. "\n\n" Jaribu tena kwa sekunde <xliff:g id="NUMBER_1">%d</xliff:g>."</string>
     <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"Umekosea mara <xliff:g id="NUMBER_0">%d</xliff:g> katika kuingiza nenosiri lako. "\n\n" Jaribu tena katika sekunde <xliff:g id="NUMBER_1">%d</xliff:g>."</string>
     <string name="factorytest_no_action" msgid="872991874799998561">"Hakuna furushi lililopatikana ambalo linatoa tendo la JARIBIO_LA KIWANDA."</string>
     <string name="factorytest_reboot" msgid="6320168203050791643">"Washa tena"</string>
     <string name="js_dialog_title" msgid="1987483977834603872">"Ukurasa wa \"<xliff:g id="TITLE">%s</xliff:g>\" unasema:"</string>
-    <string name="js_dialog_title_default" msgid="6961903213729667573">"HatiJava"</string>
+    <string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
     <string name="js_dialog_before_unload_title" msgid="2619376555525116593">"Thibitisha jinsi ya kuelekea"</string>
     <string name="js_dialog_before_unload_positive_button" msgid="3112752010600484130">"Toka kwenye Ukurasa huu"</string>
     <string name="js_dialog_before_unload_negative_button" msgid="5614861293026099715">"Bakia kwenye Ukurasa huu"</string>
     <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Unaweza kubadilisha hii baadaye kwenye Mipangilio &gt; Programu"</string>
     <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Ruhusu Kila mara"</string>
     <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Usiruhusu Kamwe"</string>
-    <string name="sim_removed_title" msgid="6227712319223226185">"Kadi ya SIM imeondolewa"</string>
+    <string name="sim_removed_title" msgid="6227712319223226185">"SIM kadi imeondolewa"</string>
     <string name="sim_removed_message" msgid="2333164559970958645">"mtandao wa simu hutapatika hadi uanzishe upya na SIM kadi halali iliyoingizwa."</string>
     <string name="sim_done_button" msgid="827949989369963775">"Kwisha"</string>
-    <string name="sim_added_title" msgid="3719670512889674693">"Kadi ya SIM imeongezwa"</string>
+    <string name="sim_added_title" msgid="3719670512889674693">"SIM kadi imeongezwa"</string>
     <string name="sim_added_message" msgid="6599945301141050216">"Anzisha upya kifaa chako ili kufikia mtandao wa simu."</string>
     <string name="sim_restart_button" msgid="4722407842815232347">"Anza upya"</string>
     <string name="time_picker_dialog_title" msgid="8349362623068819295">"Weka muda"</string>
     <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM sasa imelemazwa. Ingiza msimbo wa PUK ili kuendelea. Wasiliana na mtoa huduma kwa maelezo."</string>
     <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Ingiza msimbo wa PIN unaopendelewa"</string>
     <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Thibitisha msimbo wa PIN unaopendelewa"</string>
-    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Inafungua kadi ya SIM..."</string>
+    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"Inafungua SIM kadi..."</string>
     <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Msimbo wa PIN usio sahihi."</string>
     <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"Charaza PIN iliyo na tarakimu kati ya 4 na 8."</string>
     <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"Msimbo wa PUK unafaa kuwa na nambari 8 au zaidi."</string>
index 3010f0d..3825b40 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index c64de9a..401fa42 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 5813d4e..a6d7b2a 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 8a89a20..d2798ad 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 57fe95a..d4d17a6 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index d8f8a8b..2c23f8f 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"雅虎"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
index 8b908d7..6bf2bf9 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Google Talk"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"網路會議"</string>
index f2e6d5e..28cefb8 100644 (file)
     <string name="imProtocolYahoo" msgid="8271439408469021273">"i-Yahoo"</string>
     <string name="imProtocolSkype" msgid="9019296744622832951">"i-Skype"</string>
     <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
-    <string name="imProtocolGoogleTalk" msgid="3808393979157698766">"Ingxoxo ye-Google"</string>
+    <!-- no translation found for imProtocolGoogleTalk (493902321140277304) -->
+    <skip />
     <string name="imProtocolIcq" msgid="1574870433606517315">"i-ICQ"</string>
     <string name="imProtocolJabber" msgid="2279917630875771722">"i-Jabber"</string>
     <string name="imProtocolNetMeeting" msgid="8287625655986827971">"Umhlangano we-Net"</string>
index 4bd1c9b..4572f5b 100644 (file)
     <!-- IP address of the dns server to use if nobody else suggests one -->
     <string name="config_default_dns_server" translatable="false">8.8.8.8</string>
 
+    <!-- The default mobile provisioning url. Empty by default, maybe overridden by
+         an mcc/mnc specific config.xml -->
+    <string name="mobile_provisioning_url" translatable="false"></string>
+
+    <!-- This url is used as the default url when redirection is detected. Any
+         should work as all url's get redirected. But maybe overridden by
+         if needed. -->
+    <string name="mobile_redirected_provisioning_url" translatable="false">http://google.com</string>
+
     <!-- The default character set for GsmAlphabet -->
     <!-- Empty string means MBCS is not considered -->
     <string name="gsm_alphabet_default_charset" translatable="false"></string>
index b595d6e..ef0f01d 100644 (file)
     <!-- QQ IM protocol type -->
     <string name="imProtocolQq">QQ</string>
     <!-- Google Talk IM protocol type -->
-    <string name="imProtocolGoogleTalk">Google Talk</string>
+    <string name="imProtocolGoogleTalk">Hangouts</string>
     <!-- ICQ IM protocol type -->
     <string name="imProtocolIcq">ICQ</string>
     <!-- Jabber IM protocol type -->
index 3ecdc0c..b885d56 100644 (file)
   <java-symbol type="string" name="preposition_for_time" />
   <java-symbol type="string" name="progress_erasing" />
   <java-symbol type="string" name="progress_unmounting" />
+  <java-symbol type="string" name="mobile_provisioning_url" />
+  <java-symbol type="string" name="mobile_redirected_provisioning_url" />
   <java-symbol type="string" name="reboot_safemode_confirm" />
   <java-symbol type="string" name="reboot_safemode_title" />
   <java-symbol type="string" name="relationTypeAssistant" />
diff --git a/docs/downloads/training/BasicSyncAdapter.zip b/docs/downloads/training/BasicSyncAdapter.zip
new file mode 100644 (file)
index 0000000..25aa8bb
Binary files /dev/null and b/docs/downloads/training/BasicSyncAdapter.zip differ
index 64cdadf..b752e20 100644 (file)
@@ -10,6 +10,7 @@
     <div class="nav-section-header"><a href="<?cs var:toroot ?>about/versions/jelly-bean.html">
       <span class="en">Jelly Bean</span></a></div>
       <ul>
+        <li><a href="<?cs var:toroot ?>about/versions/android-4.3.html">Android 4.3 APIs</a></li>
         <li><a href="<?cs var:toroot ?>about/versions/android-4.2.html">Android 4.2 APIs</a></li>
         <li><a href="<?cs var:toroot ?>about/versions/android-4.1.html">Android 4.1 APIs</a></li>
       </ul>
index 43eead9..880d7e9 100644 (file)
@@ -57,7 +57,7 @@ Platform Versions</a>.</p>
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 14-day period ending on June 3, 2013.
+<p style="clear:both"><em>Data collected during a 14-day period ending on July 8, 2013.
 <br/>Any versions with less than 0.1% distribution are not shown.</em>
 </p>
 
@@ -83,7 +83,7 @@ Screens</a>.</p>
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 14-day period ending on June 3, 2013
+<p style="clear:both"><em>Data collected during a 14-day period ending on July 8, 2013
 <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
 
 
@@ -130,7 +130,7 @@ uses.</p>
 
 
 
-<p style="clear:both"><em>Data collected during a 14-day period ending on June 3, 2013</em></p>
+<p style="clear:both"><em>Data collected during a 14-day period ending on July 8, 2013</em></p>
 
 
 
@@ -148,7 +148,7 @@ uses.</p>
 var VERSION_DATA =
 [
   {
-    "chart": "//chart.googleapis.com/chart?chl=Eclair%7CFroyo%7CGingerbread%7CHoneycomb%7CIce%20Cream%20Sandwich%7CJelly%20Bean&chd=t%3A1.6%2C3.2%2C36.5%2C0.1%2C25.6%2C33.0&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=500x250",
+    "chart": "//chart.googleapis.com/chart?chl=Eclair%7CFroyo%7CGingerbread%7CHoneycomb%7CIce%20Cream%20Sandwich%7CJelly%20Bean&chco=c4df9b%2C6fad0c&chd=t%3A1.5%2C3.1%2C34.1%2C0.1%2C23.3%2C37.9&chf=bg%2Cs%2C00000000&chs=500x250&cht=p",
     "data": [
       {
         "api": 4,
@@ -158,22 +158,17 @@ var VERSION_DATA =
       {
         "api": 7,
         "name": "Eclair",
-        "perc": "1.5"
+        "perc": "1.4"
       },
       {
         "api": 8,
         "name": "Froyo",
-        "perc": "3.2"
-      },
-      {
-        "api": 9,
-        "name": "Gingerbread",
-        "perc": "0.1"
+        "perc": "3.1"
       },
       {
         "api": 10,
         "name": "Gingerbread",
-        "perc": "36.4"
+        "perc": "34.1"
       },
       {
         "api": 13,
@@ -183,17 +178,17 @@ var VERSION_DATA =
       {
         "api": 15,
         "name": "Ice Cream Sandwich",
-        "perc": "25.6"
+        "perc": "23.3"
       },
       {
         "api": 16,
         "name": "Jelly Bean",
-        "perc": "29.0"
+        "perc": "32.3"
       },
       {
         "api": 17,
         "name": "Jelly Bean",
-        "perc": "4.0"
+        "perc": "5.6"
       }
     ]
   }
@@ -210,16 +205,16 @@ var SCREEN_DATA =
       "Large": {
         "hdpi": "0.4",
         "ldpi": "0.6",
-        "mdpi": "3.0",
+        "mdpi": "3.2",
         "tvdpi": "1.0",
-        "xhdpi": "0.6"
+        "xhdpi": "0.5"
       },
       "Normal": {
-        "hdpi": "36.0",
+        "hdpi": "34.9",
         "ldpi": "0.1",
         "mdpi": "16.0",
-        "xhdpi": "24.5",
-        "xxhdpi": "3.3"
+        "xhdpi": "24.0",
+        "xxhdpi": "4.9"
       },
       "Small": {
         "hdpi": "0.1",
@@ -227,12 +222,12 @@ var SCREEN_DATA =
       },
       "Xlarge": {
         "hdpi": "0.2",
-        "mdpi": "4.2",
+        "mdpi": "4.1",
         "xhdpi": "0.1"
       }
     },
-    "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chd=t%3A10.6%2C23.2%2C1.0%2C36.7%2C25.2%2C3.3&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250",
-    "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chd=t%3A4.5%2C5.6%2C79.9%2C10.0&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250"
+    "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chco=c4df9b%2C6fad0c&chd=t%3A10.7%2C23.3%2C1.0%2C35.6%2C24.6%2C4.9&chf=bg%2Cs%2C00000000&chs=400x250&cht=p",
+    "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chco=c4df9b%2C6fad0c&chd=t%3A4.4%2C5.7%2C79.9%2C10.1&chf=bg%2Cs%2C00000000&chs=400x250&cht=p"
   }
 ];
 
index 1d81bc2..1ce005d 100644 (file)
@@ -54,8 +54,8 @@ class="toggle-content-img" alt="" />
     <strong>Table of Contents</strong>
   </a></p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
-    <ol class="toc" style="margin-left:-1em">
+  <div class="toggle-content-toggleme" style="padding: 5px 18px">
+    <ol>
       <li><a href="#Contacts">Social APIs in Contacts Provider</a></li>
       <li><a href="#Calendar">Calendar Provider</a></li>
       <li><a href="#Voicemail">Voicemail Provider</a></li>
diff --git a/docs/html/about/versions/android-4.3.jd b/docs/html/about/versions/android-4.3.jd
new file mode 100644 (file)
index 0000000..0ca3bc6
--- /dev/null
@@ -0,0 +1,1163 @@
+page.title=Android 4.3 APIs
+excludeFromSuggestions=true
+sdk.platform.version=4.3
+sdk.platform.apiLevel=18
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+  
+<h2>In this document
+    <a href="#" onclick="hideNestedItems('#toc43',this);return false;" class="header-toggle">
+        <span class="more">show more</span>
+        <span class="less" style="display:none">show less</span></a></h2>
+
+<ol id="toc43" class="hide-nested">
+  <li><a href="#ApiLevel">Update your target API level</a></li>
+  <li><a href="#Behaviors">Important Behavior Changes</a>
+    <ol>
+      <li><a href="#BehaviorsIntents">If your app uses implicit intents...</a></li>
+      <li><a href="#BehaviorsAccounts">If your app depends on accounts...</a></li>
+    </ol>
+  </li>
+  <li><a href="#RestrictedProfiles">Restricted Profiles</a>
+    <ol>
+      <li><a href="#AccountsInProfile">Supporting accounts in a restricted profile</a></li>
+    </ol>
+  </li>
+  <li><a href="#Wireless">Wireless and Connectivity</a>
+    <ol>
+      <li><a href="#BTLE">Bluetooth Low Energy (Smart Ready)</a></li>
+      <li><a href="#WiFiScan">Wi-Fi scan-only mode</a></li>
+      <li><a href="#WiFiConfig">Wi-Fi configuration</a></li>
+      <li><a href="#QuickResponse">Quick response for incoming calls</a></li>
+    </ol>
+  </li>
+  <li><a href="#Multimedia">Multimedia</a>
+    <ol>
+      <li><a href="#DASH">MPEG DASH support</a></li>
+      <li><a href="#DRM">Media DRM</a></li>
+      <li><a href="#EncodingSurface">Video encoding from a Surface</a></li>
+      <li><a href="#MediaMuxing">Media muxing</a></li>
+      <li><a href="#ProgressAndScrubbing">Playback progress and scrubbing for RemoteControlClient</a></li>
+    </ol>
+  </li>
+  <li><a href="#Graphics">Graphics</a>
+    <ol>
+      <li><a href="#OpenGL">Support for OpenGL ES 3.0</a></li>
+      <li><a href="#MipMap">Mipmapping for drawables</a></li>
+    </ol>
+  </li>
+  <li><a href="#UI">User Interface</a>
+    <ol>
+      <li><a href="#ViewOverlay">View overlays</a></li>
+      <li><a href="#OpticalBounds">Optical bounds layout</a></li>
+      <li><a href="#AnimationRect">Animation for Rect values</a></li>
+      <li><a href="#AttachFocus">Window attach and focus listener</a></li>
+      <li><a href="#Overscan">TV overscan support</a></li>
+      <li><a href="#Orientation">Screen orientation</a></li>
+      <li><a href="#RotationAnimation">Rotation animations</a></li>
+    </ol>
+  </li>
+  <li><a href="#UserInput">User Input</a>
+    <ol>
+      <li><a href="#SignificantMotion">Detect significant motion</a></li>
+      <li><a href="#Sensors">New sensor types</a></li>
+    </ol>
+  </li>
+  <li><a href="#NotificationListener">Notification Listener</a></li>
+  <li><a href="#Contacts">Contacts Provider</a>
+    <ol>
+      <li><a href="#Contactables">Query for "contactables"</a></li>
+      <li><a href="#ContactsDelta">Query for contacts deltas</a></li>
+    </ol>
+  </li>
+  <li><a href="#Localization">Localization</a>
+    <ol>
+      <li><a href="#BiDi">Improved support for bi-directional text</a></li>
+    </ol>
+  </li>
+  <li><a href="#A11yService">Accessibility Services</a>
+    <ol>
+      <li><a href="#A11yKeyEvents">Handle key events</a></li>
+      <li><a href="#A11yText">Select text and copy/paste</a></li>
+      <li><a href="#A11yFeatures">Declare accessibility features</a></li>
+    </ol>
+  </li>
+  <li><a href="#Testing">Testing and Debugging</a>
+    <ol>
+      <li><a href="#UiAutomation">Automated UI testing</a></li>
+      <li><a href="#Systrace">Systrace events for apps</a></li>
+    </ol>
+  </li>
+  <li><a href="#Security">Security</a>
+    <ol>
+      <li><a href="#KeyStore">Android key store for app-private keys</a></li>
+      <li><a href="#HardwareKeyChain">Hardware credential storage</a></li>
+    </ol>
+  </li>
+  <li><a href="#Manifest">Manifest Declarations</a>
+    <ol>
+      <li><a href="#ManifestFeatures">Declarable required features</a></li>
+      <li><a href="#ManifestPermissions">User permissions</a></li>
+    </ol>
+  </li>
+</ol>
+
+<h2>See also</h2>
+<ol>
+<li><a href="{@docRoot}sdk/api_diff/18/changes.html">API
+Differences Report &raquo;</a> </li>
+<li><a
+href="{@docRoot}tools/extras/support-library.html">Support Library</a></li>
+</ol>
+
+</div>
+</div>
+
+
+
+<p>API Level: {@sdkPlatformApiLevel}</p>
+
+<p>Android {@sdkPlatformVersion} ({@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2})
+is an update to the Jelly Bean release that offers new features for users and app
+developers. This document provides an introduction to the most notable
+new APIs.</p>
+
+<p>As an app developer, you should download the Android {@sdkPlatformVersion} system image
+and SDK platform from the <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> as
+soon as possible. If you don't have a device running Android {@sdkPlatformVersion} on which to
+test your app, use the Android {@sdkPlatformVersion} system
+image to test your app on the <a href="{@docRoot}tools/devices/emulator.html">Android emulator</a>.
+Then build your apps against the Android {@sdkPlatformVersion} platform to begin using the
+latest APIs.</p>
+
+  
+<h3 id="ApiLevel">Update your target API level</h3>
+
+<p>To better optimize your app for devices running Android {@sdkPlatformVersion},
+  you should set your <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
+<code>"{@sdkPlatformApiLevel}"</code>, install it on an Android {@sdkPlatformVersion} system image,
+test it, then publish an update with this change.</p>
+
+<p>You can use APIs in Android {@sdkPlatformVersion} while also supporting older versions by adding
+conditions to your code that check for the system API level before executing
+APIs not supported by your <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a>. 
+To learn more about maintaining backward compatibility, read <a
+href="{@docRoot}training/basics/supporting-devices/platforms.html">Supporting Different
+Platform Versions</a>.</p>
+
+<p>Various APIs are also available in the Android <a
+href="{@docRoot}tools/extras/support-library.html">Support Library</a> that allow you to implement
+new features on older versions of the platform.</p>
+
+<p>For more information about how API levels work, read <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">What is API
+Level?</a></p>
+
+
+
+
+
+<h2 id="Behaviors">Important Behavior Changes</h2>
+
+<p>If you have previously published an app for Android, be aware that your app might
+be affected by changes in Android {@sdkPlatformVersion}.</p>
+
+
+<h3 id="BehaviorsIntents">If your app uses implicit intents...</h3>
+
+<p>Your app might misbehave in a restricted profile environment.</p>
+
+<p>Users in a <a href="#RestrictedProfiles">restricted profile</a> environment might not 
+have all the standard Android apps available. For example, a restricted profile might have the 
+web browser and camera app disabled. So your app should not make assumptions about which apps are 
+available, because if you call {@link android.app.Activity#startActivity startActivity()} without 
+verifying whether an app is available to handle the {@link android.content.Intent}, 
+your app might crash in a restricted profile.</p>
+
+<p>When using an implicit intent, you should always verify that an app is available to handle the intent by calling {@link android.content.Intent#resolveActivity resolveActivity()} or {@link android.content.pm.PackageManager#queryIntentActivities queryIntentActivities()}. For example:</p>
+
+<pre>
+Intent intent = new Intent(Intent.ACTION_SEND);
+...
+if (intent.resolveActivity(getPackageManager()) != null) {
+    startActivity(intent);
+} else {
+    Toast.makeText(context, R.string.app_not_available, Toast.LENGTH_LONG).show();
+}
+</pre>
+
+
+<h3 id="BehaviorsAccounts">If your app depends on accounts...</h3>
+
+<p>Your app might misbehave in a restricted profile environment.</p>
+
+<p>Users within a restricted profile environment do not have access to user accounts by default.
+If your app depends on an {@link android.accounts.Account}, then your app might crash or behave 
+unexpectedly when used in a restricted profile.</p>
+
+<p>If you'd like to prevent restricted profiles from using your app entirely because your
+app depends on account information that's sensitive, specify the <a 
+href="{@docRoot}guide/topics/manifest/application-element.html#requiredAccountType">{@code 
+android:requiredAccountType}</a> attribute in your manifest's <a 
+href="{@docRoot}guide/topics/manifest/application-element.html">{@code &lt;application>}</a> 
+element.</p>
+
+<p>If you’d like to allow restricted profiles to continue using your app even though they can’t 
+create their own accounts, then you can either disable your app features that require an account 
+or allow restricted profiles to access the accounts created by the primary user. For more
+information, see the section 
+below about <a href="#AccountsInProfile">Supporting accounts in a restricted profile</a>.</p>
+
+
+
+
+<h2 id="RestrictedProfiles">Restricted Profiles</h2>
+
+<p>On Android tablets, users can now create restricted profiles based on the primary user. 
+When users create a restricted profile, they can enable restrictions such as which apps are
+available to the profile. A new set of APIs in Android 4.3 also allow you to build fine-grain
+restriction settings for the apps you develop. For example, by using the new APIs, you can 
+allow users to control what type of content is available within your app when running in a 
+restricted profile environment.</p>
+
+<p>The UI for users to control the restrictions you've built is managed by the system's 
+Settings application. To make your app's restriction settings appear to the user,
+you must declare the restrictions your app provides by creating a {@link 
+android.content.BroadcastReceiver} that receives the {@link android.content.Intent#ACTION_GET_RESTRICTION_ENTRIES} intent. The system invokes this intent to query 
+all apps for available restrictions, then builds the UI to allow the primary user to 
+manage restrictions for each restricted profile. </p>
+
+<p>In the {@link android.content.BroadcastReceiver#onReceive onReceive()} method of 
+your {@link android.content.BroadcastReceiver}, you must create a {@link 
+android.content.RestrictionEntry} for each restriction your app provides. Each {@link 
+android.content.RestrictionEntry} defines a restriction title, description, and one of the 
+following data types:</p>
+
+<ul>
+  <li>{@link android.content.RestrictionEntry#TYPE_BOOLEAN} for a restriction that is 
+  either true or false.
+  <li>{@link android.content.RestrictionEntry#TYPE_CHOICE} for a restriction that has 
+  multiple choices that are mutually exclusive (radio button choices).
+  <li>{@link android.content.RestrictionEntry#TYPE_MULTI_SELECT} for a restriction that 
+  has multiple choices that are <em>not</em> mutually exclusive (checkbox choices).
+</ul>
+
+<p>You then put all the {@link android.content.RestrictionEntry} objects into an {@link 
+java.util.ArrayList} and put it into the broadcast receiver's result as the value for the 
+{@link android.content.Intent#EXTRA_RESTRICTIONS_LIST} extra.</p>
+
+<p>The system creates the UI for your app's restrictions in the Settings app and saves each 
+restriction with the unique key you provided for each {@link android.content.RestrictionEntry} 
+object. When the user opens your app, you can query for any current restrictions by 
+calling {@link android.os.UserManager#getApplicationRestrictions getApplicationRestrictions()}. 
+This returns a {@link android.os.Bundle} containing the key-value pairs for each restriction
+you defined with the {@link android.content.RestrictionEntry} objects.</p>
+
+<p>If you want to provide more specific restrictions that can't be handled by boolean, single 
+choice, and multi-choice values, then you can create an activity where the user can specify the 
+restrictions and allow users to open that activity from the restriction settings. In your 
+broadcast receiver, include the {@link android.content.Intent#EXTRA_RESTRICTIONS_INTENT} extra 
+in the result {@link android.os.Bundle}. This extra must specify an {@link android.content.Intent}
+indicating the {@link android.app.Activity} class to launch (use the 
+{@link android.os.Bundle#putParcelable putParcelable()} method to pass {@link 
+android.content.Intent#EXTRA_RESTRICTIONS_INTENT} with the intent).
+When the primary user enters your activity to set custom restrictions, your 
+activity must then return a result containing the restriction values in an extra using either 
+the {@link android.content.Intent#EXTRA_RESTRICTIONS_LIST} or {@link 
+android.content.Intent#EXTRA_RESTRICTIONS_BUNDLE} key, depending on whether you specify
+{@link android.content.RestrictionEntry} objects or key-value pairs, respectively.</p>
+
+
+<h3 id="AccountsInProfile">Supporting accounts in a restricted profile</h3>
+
+<p>Any accounts added to the primary user are available to a restricted profile, but the 
+accounts are not accessible from the {@link android.accounts.AccountManager} APIs by default. 
+If you attempt to add an account with {@link android.accounts.AccountManager} while in a restricted
+profile, you will get a failure result. Due to these restrictions, you have the following 
+three options:</p>
+
+<li><strong>Allow access to the owner’s accounts from a restricted profile.</strong>
+<p>To get access to an account from a restricted profile, you must add the <a href="{@docRoot}guide/topics/manifest/application-element.html#restrictedAccountType">{@code android:restrictedAccountType}</a> attribute to the <a
+href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application></a> tag:</p>
+<pre>
+&lt;application ...
+    android:restrictedAccountType="com.example.account.type" >
+</pre>
+
+<p class="caution"><strong>Caution:</strong> Enabling this attribute provides your 
+app access to the primary user's accounts from restricted profiles. So you should allow this 
+only if the information displayed by your app does not reveal personally identifiable
+information (PII) that’s considered sensitive.</p>
+</li>
+
+
+<li><strong>Disable certain functionality when unable to modify accounts.</strong>
+<p>If you want to use accounts, but don’t actually require them for your app’s primary 
+functionality, you can check for account availability and disable features when not available. 
+You should first check if there is an existing account available. If not, then query whether 
+it’s possible to create a new account by calling {@link 
+android.os.UserManager#getUserRestrictions()} and check the {@link 
+android.os.UserManager#DISALLOW_MODIFY_ACCOUNTS} extra in the result. If it is {@code true}, 
+then you should disable whatever functionality of your app requires access to accounts. 
+For example:</p>
+<pre>
+UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
+Bundle restrictions = um.getUserRestrictions();
+if (restrictions.getBoolean(UserManager.DISALLOW_MODIFY_ACCOUNTS, false)) {
+   // cannot add accounts, disable some functionality
+}
+</pre>
+<p class="note"><strong>Note:</strong> In this scenario, you should <em>not</em> declare 
+any new attributes in your manifest file.</p>
+</li>
+
+<li><strong>Disable your app when unable to access private accounts.</strong>
+<p>If it’s instead important that your app not be available to restricted profiles because 
+your app depends on sensitive personal information in an account (and because restricted profiles 
+currently cannot add new accounts), add
+the <a href="{@docRoot}guide/topics/manifest/application-element.html#requiredAccountType">{@code 
+android:requiredAccountType}</a> attribute to the <a
+href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application></a> tag:</p>
+<pre>
+&lt;application ...
+    android:requiredAccountType="com.example.account.type" >
+</pre>
+<p>For example, the Gmail app uses this attribute to disable itself for restricted profiles,
+because the owner's personal email should not be available to restricted profiles.</p>
+</li>
+
+
+
+<h2 id="Wireless">Wireless and Connectivity</h2>
+
+
+<h3 id="BTLE">Bluetooth Low Energy (Smart Ready)</h3>
+
+<p>Android now supports Bluetooth Low Energy (LE) with new APIs in {@link android.bluetooth}. 
+With the new APIs, you can build Android apps that communicate with Bluetooth Low Energy 
+peripherals such as heart rate monitors and pedometers.</p>
+
+<p>Because Bluetooth LE is a hardware feature that is not available on all 
+Android-powered devices, you must declare in your manifest file a <a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}</a>
+element for {@code "android.hardware.bluetooth_le"}:</p>
+<pre>
+&lt;uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
+</pre>
+
+<p>If you're already familiar with Android's Classic Bluetooth APIs, notice that using the 
+Bluetooth LE APIs has some differences. Most importantly is that there's now a {@link 
+android.bluetooth.BluetoothManager} class that you should use for some high level operations 
+such as acquiring a {@link android.bluetooth.BluetoothAdapter}, getting a list of connected 
+devices, and checking the state of a device. For example, here's how you should now get the 
+{@link android.bluetooth.BluetoothAdapter}:</p>
+<pre>
+final BluetoothManager bluetoothManager =
+        (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
+mBluetoothAdapter = bluetoothManager.getAdapter();
+</pre>
+
+<p>To discover Bluetooth LE peripherals, call {@link android.bluetooth.BluetoothAdapter#startLeScan 
+startLeScan()} on the {@link android.bluetooth.BluetoothAdapter}, passing it an implementation 
+of the {@link android.bluetooth.BluetoothAdapter.LeScanCallback} interface. When the Bluetooth 
+adapter detects a Bluetooth LE peripheral, your {@link 
+android.bluetooth.BluetoothAdapter.LeScanCallback} implementation receives a call to the 
+{@link android.bluetooth.BluetoothAdapter.LeScanCallback#onLeScan onLeScan()} method. This 
+method provides you with a {@link android.bluetooth.BluetoothDevice} object representing the 
+detected device, the RSSI value for the device, and a byte array containing the device's 
+advertisement record.</p>
+
+<p>If you want to scan for only specific types of peripherals, you can instead call {@link 
+android.bluetooth.BluetoothAdapter#startLeScan startLeScan()} and include an array of {@link 
+java.util.UUID} objects that specify the GATT services your app supports.</p>
+
+<p class="note"><strong>Note:</strong> You can only scan for Bluetooth LE devices <em>or</em> 
+scan for Classic Bluetooth devices using previous APIs. You cannot scan for both LE and Classic 
+Bluetooth devices at once.</p>
+
+<p>To then connect to a Bluetooth LE peripheral, call {@link 
+android.bluetooth.BluetoothDevice#connectGatt connectGatt()} on the corresponding 
+{@link android.bluetooth.BluetoothDevice} object, passing it an implementation of 
+{@link android.bluetooth.BluetoothGattCallback}. Your implementation of {@link 
+android.bluetooth.BluetoothGattCallback} receives callbacks regarding the connectivity 
+state with the device and other events. It's during the {@link 
+android.bluetooth.BluetoothGattCallback#onConnectionStateChange onConnectionStateChange()} 
+callback that you can begin communicating with the device if the method passes {@link 
+android.bluetooth.BluetoothProfile#STATE_CONNECTED} as the new state.</p>
+
+<p>Accessing Bluetooth features on a device also requires that your app request certain
+Bluetooth user permissions. For more information, see the <a
+href="{@docRoot}guide/topics/connectivity/bluetooth-le.html">Bluetooth Low Energy</a> API guide.</p>
+
+
+<h3 id="WiFiScan">Wi-Fi scan-only mode</h3>
+
+<p>When attempting to identify the user's location, Android may use Wi-Fi to help determine 
+the location by scanning nearby access points. However, users often keep Wi-Fi turned off to 
+conserve battery, resulting in location data that's less accurate. Android now includes a 
+scan-only mode that allows the device Wi-Fi to scan access points to help obtain the location 
+without connecting to an access point, thus greatly reducing battery usage.</p>
+
+<p>If you want to acquire the user's location but Wi-Fi is currently off, you can request the 
+user to enable Wi-Fi scan-only mode by calling {@link android.content.Context#startActivity 
+startActivity()} with the action {@link 
+android.net.wifi.WifiManager#ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE}.</p>
+
+
+<h3 id="WiFiConfig">Wi-Fi configuration</h3>
+
+<p>New {@link android.net.wifi.WifiEnterpriseConfig} APIs allow enterprise-oriented services to 
+automate Wi-Fi configuration for managed devices.</p>
+
+
+<h3 id="QuickResponse">Quick response for incoming calls</h3>
+
+<p>Since Android 4.0, a feature called "Quick response" allows users to respond to incoming 
+calls with an immediate text message without needing to pick up the call or unlock the device. 
+Until now, these quick messages were always handled by the default Messaging app. Now any app 
+can declare its capability to handle these messages by creating a {@link android.app.Service} 
+with an intent filter for {@link android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE}.</p>
+
+<p>When the user responds to an incoming call with a quick response, the Phone app sends 
+the {@link android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE} intent with a URI 
+describing the recipient (the caller) and the {@link android.content.Intent#EXTRA_TEXT} extra 
+with the message the user wants to send. When your service receives the intent, it should deliver 
+the message and immediately stop itself (your app should not show an activity).</p>
+
+<p>In order to receive this intent, you must declare the {@link 
+android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE} permission.</p>
+
+
+
+<h2 id="Multimedia">Multimedia</h2>
+
+<h3 id="DASH">MPEG DASH support</h3>
+
+<p>Android now supports Dynamic Adaptive Streaming over HTTP (DASH) in accordance with the 
+ISO/IEC 23009-1 standard, using existing APIs in {@link android.media.MediaCodec} and {@link 
+android.media.MediaExtractor}. The framework underlying these APIs has been updated to support 
+parsing of fragmented MP4 files, but your app is still responsible for parsing the MPD metadata 
+and passing the individual streams to {@link android.media.MediaExtractor}.</p>
+
+<p>If you want to use DASH with encrypted content, notice that the {@link android.media.MediaExtractor#getSampleCryptoInfo getSampleCryptoInfo()} method returns the {@link 
+android.media.MediaCodec.CryptoInfo} metadata describing the structure of each encrypted media 
+sample. Also, the {@link android.media.MediaExtractor#getPsshInfo()} method has been added to 
+{@link android.media.MediaExtractor} so you can access the PSSH metadata for your DASH media. 
+This method returns a map of {@link java.util.UUID} objects to bytes, with the 
+{@link java.util.UUID} specifying the crypto scheme, and the bytes being the data specific 
+to that scheme.</p>
+
+
+<h3 id="DRM">Media DRM</h3>
+
+<p>The new {@link android.media.MediaDrm} class provides a modular solution for digital rights
+management (DRM) with your media content by separating DRM concerns from media playback. For 
+instance, this API separation allows you to play back Widevine-encrypted content without having 
+to use the Widevine media format. This DRM solution also supports DASH Common Encryption so you 
+can use a variety of DRM schemes with your streaming content.</p>
+
+<p>You can use {@link android.media.MediaDrm} to obtain opaque key-request messages and process 
+key-response messages from the server for license acquisition and provisioning. Your app is 
+responsible for handling the network communication with the servers; the {@link 
+android.media.MediaDrm} class provides only the ability to generate and process the messages.</p>
+
+<p>The {@link android.media.MediaDrm} APIs are  intended to be used in conjunction with the 
+{@link android.media.MediaCodec} APIs that were introduced in Android 4.1 (API level 16), 
+including {@link android.media.MediaCodec} for encoding and decoding your content, {@link 
+android.media.MediaCrypto} for handling encrypted content, and {@link android.media.MediaExtractor} 
+for extracting and demuxing your content.</p>
+
+<p>You must first construct {@link android.media.MediaExtractor} and 
+{@link android.media.MediaCodec} objects. You can then access the DRM-scheme-identifying 
+{@link java.util.UUID}, typically from metadata in the content, and use it to construct an 
+instance of a {@link android.media.MediaDrm} object with its constructor.</p>
+
+
+<h3 id="EncodingSurface">Video encoding from a Surface</h3>
+
+<p>Android 4.1 (API level 16) added the {@link android.media.MediaCodec} class for low-level 
+encoding and decoding of media content. When encoding video, Android 4.1 required that you provide 
+the media with a {@link java.nio.ByteBuffer} array, but Android 4.3 now allows you to use a {@link 
+android.view.Surface} as the input to an encoder. For instance, this allows you to encode input 
+from an existing video file or using frames generated from OpenGL ES.</p>
+
+<p>To use a {@link android.view.Surface} as the input to your encoder, first call {@link 
+android.media.MediaCodec#configure configure()} for your {@link android.media.MediaCodec}. 
+Then call {@link android.media.MediaCodec#createInputSurface()} to receive the {@link 
+android.view.Surface} upon which you can stream your media.</p>
+
+<p>For example, you can use the given {@link android.view.Surface} as the window for an OpenGL 
+context by passing it to {@link android.opengl.EGL14#eglCreateWindowSurface 
+eglCreateWindowSurface()}. Then while rendering the surface, call {@link 
+android.opengl.EGL14#eglSwapBuffers eglSwapBuffers()} to pass the frame to the {@link 
+android.media.MediaCodec}.</p>
+
+<p>To begin encoding, call {@link android.media.MediaCodec#start()} on the {@link 
+android.media.MediaCodec}. When done, call {@link android.media.MediaCodec#signalEndOfInputStream} 
+to terminate encoding, and call {@link android.view.Surface#release()} on the 
+{@link android.view.Surface}.</p>
+
+
+<h3 id="MediaMuxing">Media muxing</h3>
+
+<p>The new {@link android.media.MediaMuxer} class enables multiplexing between one audio stream 
+and one video stream. These APIs serve as a counterpart to the {@link android.media.MediaExtractor} 
+class added in Android 4.2 for de-multiplexing (demuxing) media.</p>
+
+<p>Supported output formats are defined in {@link android.media.MediaMuxer.OutputFormat}. Currently, 
+MP4 is the only supported output format and {@link android.media.MediaMuxer} currently supports 
+only one audio stream and/or one video stream at a time.</p>
+
+<p>{@link android.media.MediaMuxer} is mostly designed to work with {@link android.media.MediaCodec} 
+so you can perform video processing through {@link android.media.MediaCodec} then save the 
+output to an MP4 file through {@link android.media.MediaMuxer}. You can also use {@link 
+android.media.MediaMuxer} in combination with {@link android.media.MediaExtractor} to perform 
+media editing without the need to encode or decode.</p>
+
+
+<h3 id="ProgressAndScrubbing">Playback progress and scrubbing for RemoteControlClient</h3>
+
+<p>In Android 4.0 (API level 14), the {@link android.media.RemoteControlClient} was added to 
+enable media playback controls from remote control clients such as the controls available on the 
+lock screen. Android 4.3 now provides the ability for such controllers to display the playback 
+position and controls for scrubbing the playback. If you've enabled remote control for your 
+media app with the {@link android.media.RemoteControlClient} APIs, then you can allow playback 
+scrubbing by implementing two new interfaces.</p>
+
+<p>First, you must enable the {@link 
+android.media.RemoteControlClient#FLAG_KEY_MEDIA_POSITION_UPDATE} flag by passing it to 
+{@link android.media.RemoteControlClient#setTransportControlFlags setTransportControlsFlags()}.</p> 
+
+<p>Then implement the following two new interfaces:</p>
+<dl>
+  <dt>{@link android.media.RemoteControlClient.OnGetPlaybackPositionListener}</dt>
+  <dd>This includes the callback {@link android.media.RemoteControlClient.OnGetPlaybackPositionListener#onGetPlaybackPosition}, which requests the current position 
+  of your media when the remote control needs to update the progress in its UI.</dd>
+
+  <dt>{@link android.media.RemoteControlClient.OnPlaybackPositionUpdateListener}</dt>
+  <dd>This includes the callback {@link android.media.RemoteControlClient.OnPlaybackPositionUpdateListener#onPlaybackPositionUpdate onPlaybackPositionUpdate()}, which 
+  tells your app the new time code for your media when the user scrubs the playback with the 
+  remote control UI.
+    <p>Once you update your playback with the new position, call {@link 
+    android.media.RemoteControlClient#setPlaybackState setPlaybackState()} to indicate the 
+    new playback state, position, and speed.</p>
+  </dd>
+</dl>
+
+<p>With these interfaces defined, you can set them for your {@link 
+android.media.RemoteControlClient} by calling {@link android.media.RemoteControlClient#setOnGetPlaybackPositionListener setOnGetPlaybackPositionListener()} and 
+{@link android.media.RemoteControlClient#setPlaybackPositionUpdateListener 
+setPlaybackPositionUpdateListener()}, respectively.</p>
+
+
+
+<h2 id="Graphics">Graphics</h2>
+
+<h3 id="OpenGL">Support for OpenGL ES 3.0</h3>
+
+<p>Android 4.3 adds Java interfaces and native support for OpenGL ES 3.0. Key new functionality 
+provided in OpenGL ES 3.0 includes:</p>
+<ul>
+  <li>Acceleration of advanced visual effects</li>
+  <li>High quality ETC2/EAC texture compression as a standard feature</li>
+  <li>A new version of the GLSL ES shading language with integer and 32-bit floating point support</li>
+  <li>Advanced texture rendering</li>
+  <li>Broader standardization of texture size and render-buffer formats</li>
+</ul>
+
+<p>The Java interface for OpenGL ES 3.0 on Android is provided with {@link android.opengl.GLES30}. 
+When using OpenGL ES 3.0, be sure that you declare it in your manifest file with the 
+<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
+tag and the {@code android:glEsVersion} attribute. For example:</p>
+<pre>
+&lt;manifest>
+    &lt;uses-feature android:glEsVersion="0x00030000" />
+    ...
+&lt;/manifest>
+</pre>
+
+<p>And remember to specify the OpenGL ES context by calling {@link android.opengl.GLSurfaceView#setEGLContextClientVersion setEGLContextClientVersion()}, passing {@code 3} as the version.</p>
+
+
+<h3 id="MipMap">Mipmapping for drawables</h3>
+
+<p>Using a mipmap as the source for your bitmap or drawable is a simple way to provide a 
+quality image and various image scales, which can be particularly useful if you expect your 
+image to be scaled during an animation.</p>
+
+<p>Android 4.2 (API level 17) added support for mipmaps in the {@link android.graphics.Bitmap} 
+class&mdash;Android swaps the mip images in your {@link android.graphics.Bitmap} when you've 
+supplied a mipmap source and have enabled {@link android.graphics.Bitmap#setHasMipMap 
+setHasMipMap()}. Now in Android 4.3, you can enable mipmaps for a {@link 
+android.graphics.drawable.BitmapDrawable} object as well, by providing a mipmap asset and 
+setting the {@code android:mipMap} attribute in a bitmap resource file or by calling {@link 
+android.graphics.drawable.BitmapDrawable#hasMipMap hasMipMap()}.
+</p>
+
+
+
+<h2 id="UI">User Interface</h2>
+
+<h3 id="ViewOverlay">View overlays</h3>
+
+<p>The new {@link android.view.ViewOverlay} class provides a transparent layer on top of 
+a {@link android.view.View} on which you can add visual content and which does not affect 
+the layout hierarchy. You can get a {@link android.view.ViewOverlay} for any {@link 
+android.view.View} by calling {@link android.view.View#getOverlay}. The overlay 
+always has the same size and position as its host view (the view from which it was created), 
+allowing you to add content that appears in front of the host view, but which cannot extend 
+the bounds of that host view.
+</p>
+
+<p>Using a {@link android.view.ViewOverlay} is particularly useful when you want to create 
+animations such as sliding a view outside of its container or moving items around the screen 
+without affecting the view hierarchy. However, because the usable area of an overlay is 
+restricted to the same area as its host view, if you want to animate a view moving outside 
+its position in the layout, you must use an overlay from a parent view that has the desired 
+layout bounds.</p>
+
+<p>When you create an overlay for a widget view such as a {@link android.widget.Button}, you 
+can add {@link android.graphics.drawable.Drawable} objects to the overlay by calling 
+{@link android.view.ViewOverlay#add(Drawable)}. If you call {@link 
+android.view.ViewGroup#getOverlay} for a layout view, such as {@link android.widget.RelativeLayout},
+the object returned is a {@link android.view.ViewGroupOverlay}. The
+{@link android.view.ViewGroupOverlay} class is a subclass 
+of {@link android.view.ViewOverlay} that  also allows you to add {@link android.view.View} 
+objects by calling {@link android.view.ViewGroupOverlay#add(View)}.
+</p>
+
+<p class="note"><strong>Note:</strong> All drawables and views that you add to an overlay 
+are visual only. They cannot receive focus or input events.</p>
+
+<p>For example, the following code animates a view sliding to the right by placing the view 
+in the parent view's overlay, then performing a translation animation on that view:</p>
+<pre>
+View view = findViewById(R.id.view_to_remove);
+ViewGroup container = (ViewGroup) view.getParent();
+container.getOverlay().add(view);
+ObjectAnimator anim = ObjectAnimator.ofFloat(view, "translationX", container.getRight());
+anim.start();
+</pre>
+
+
+<h3 id="OpticalBounds">Optical bounds layout</h3>
+
+<p>For views that contain nine-patch background images, you can now specify that they should 
+be aligned with neighboring views based on the "optical" bounds of the background image rather 
+than the "clip" bounds of the view.</p>
+
+<p>For example, figures 1 and 2 each show the same layout, but the version in figure 1 is 
+using clip bounds (the default behavior), while figure 2 is using optical bounds. Because the 
+nine-patch images used for the button and the photo frame include padding around the edges, 
+they don’t appear to align with each other or the text when using clip bounds.</p>
+
+<p class="note"><strong>Note:</strong> The screenshot in figures 1 and 2 have the "Show 
+layout bounds" developer setting enabled. For each view, red lines indicate the optical 
+bounds, blue lines indicate the clip bounds, and pink indicates margins.</p>
+
+<script type="text/javascript">
+function toggleOpticalImages(mouseover) {
+
+  $("img.optical-img").each(function() {
+    $img = $(this);
+    var index = $img.attr('src').lastIndexOf("/") + 1;
+    var path = $img.attr('src').substr(0,index);
+    var name = $img.attr('src').substr(index);
+    var splitname;
+    var highres = false;
+    if (name.indexOf("@2x") != -1) {
+      splitname = name.split("@2x.");
+      highres = true;
+    } else {
+      splitname = name.split(".");
+    }
+
+    var newname;
+    if (mouseover) {
+      if (highres) {
+        newname = splitname[0] + "-normal@2x.png";
+      } else {
+        newname = splitname[0] + "-normal.png";
+      }
+    } else {
+      if (highres) {
+        newname = splitname[0].split("-normal")[0] + "@2x.png";
+      } else {
+        newname = splitname[0].split("-normal")[0] + ".png";
+      }
+    }
+
+    $img.attr('src', path + newname);
+
+  });
+}
+</script>
+
+<p class="table-caption"><em>Mouse over to hide the layout bounds.</em></p>
+<div style="float:left;width:296px">
+<img src="{@docRoot}images/tools/clipbounds@2x.png" width="296" alt="" class="optical-img"
+    onmouseover="toggleOpticalImages(true)" onmouseout="toggleOpticalImages(false)" />
+<p class="img-caption"><strong>Figure 1.</strong> Layout using clip bounds (default).</p>
+</div>
+<div style="float:left;width:296px;margin-left:60px">
+<img src="{@docRoot}images/tools/opticalbounds@2x.png" width="296" alt="" class="optical-img"
+    onmouseover="toggleOpticalImages(true)" onmouseout="toggleOpticalImages(false)" />
+<p class="img-caption"><strong>Figure 2.</strong> Layout using optical bounds.</p>
+</div>
+
+
+<p style="clear:left">To align the views based on their optical bounds, set the {@code android:layoutMode} attribute to {@code "opticalBounds"} in one of the parent layouts. For example:</p>
+
+<pre>
+&lt;LinearLayout android:layoutMode="opticalBounds" ... >
+</pre>
+
+
+<div class="figure" style="width:155px">
+<img src="{@docRoot}images/tools/ninepatch_opticalbounds@2x.png" width="121" alt="" />
+<p class="img-caption"><strong>Figure 3.</strong> Zoomed view of the Holo button nine-patch with
+optical bounds.
+</p>
+</div>
+
+<p>For this to work, the nine-patch images applied to the background of your views must specify 
+the optical bounds using red lines along the bottom and right-side of the nine-patch file (as 
+shown in figure 3). The red lines indicate the region that should be subtracted from 
+the clip bounds, leaving the optical bounds of the image.</p>
+
+<p>When you enable optical bounds for a {@link android.view.ViewGroup} in your layout, all 
+descendant views inherit the optical bounds layout mode unless you override it for a group by 
+setting {@code android:layoutMode} to {@code "clipBounds"}. All layout elements also honor the 
+optical bounds of their child views, adapting their own bounds based on the optical bounds of 
+the views within them. However, layout elements (subclasses of {@link android.view.ViewGroup}) 
+currently do not support optical bounds for nine-patch images applied to their own background.</p>
+
+<p>If you create a custom view by subclassing {@link android.view.View}, {@link android.view.ViewGroup}, or any subclasses thereof, your view will inherit these optical bound behaviors.</p>
+
+<p class="note"><strong>Note:</strong> All widgets supported by the Holo theme have been updated
+with optical bounds, including {@link android.widget.Button},  {@link android.widget.Spinner}, 
+{@link android.widget.EditText}, and others. So you can immediately benefit by setting the
+{@code android:layoutMode} attribute to {@code "opticalBounds"} if your app applies a Holo theme 
+({@link android.R.style#Theme_Holo Theme.Holo}, {@link android.R.style#Theme_Holo_Light 
+Theme.Holo.Light}, etc.).
+</p>
+
+<p>To specify optical bounds for your own nine-patch images with the <a 
+href="{@docRoot}tools/help/draw9patch.html">Draw 9-patch</a> tool, hold CTRL when clicking on 
+the border pixels.</p>
+
+
+
+
+<h3 id="AnimationRect">Animation for Rect values</h3>
+
+<p>You can now animate between two {@link android.graphics.Rect} values with the new {@link 
+android.animation.RectEvaluator}. This new class is an implementation of {@link 
+android.animation.TypeEvaluator} that you can pass to {@link 
+android.animation.ValueAnimator#setEvaluator ValueAnimator.setEvaluator()}.
+</p>
+
+<h3 id="AttachFocus">Window attach and focus listener</h3>
+
+<p>Previously, if you wanted to listen for when your view attached/detached to the window or 
+when its focus changed, you needed to override the {@link android.view.View} class to 
+implement {@link android.view.View#onAttachedToWindow onAttachedToWindow()} and {@link 
+android.view.View#onDetachedFromWindow onDetachedFromWindow()}, or  {@link 
+android.view.View#onWindowFocusChanged onWindowFocusChanged()}, respectively.
+</p>
+
+<p>Now, to receive attach and detach events you can instead implement {@link 
+android.view.ViewTreeObserver.OnWindowAttachListener} and set it on a view with 
+{@link android.view.ViewTreeObserver#addOnWindowAttachListener addOnWindowAttachListener()}. 
+And to receive focus events, you can implement {@link 
+android.view.ViewTreeObserver.OnWindowFocusChangeListener} and set it on a view with 
+{@link android.view.ViewTreeObserver#addOnWindowFocusChangeListener 
+addOnWindowFocusChangeListener()}.
+</p>
+
+
+<h3 id="Overscan">TV overscan support</h3>
+
+<p>To be sure your app fills the entire screen on every television, you can now enable overscan 
+for you app layout. Overscan mode is determined by the {@link android.view.WindowManager.LayoutParams#FLAG_LAYOUT_IN_OVERSCAN} flag, which you can enable with platform themes such as 
+{@link android.R.style#Theme_DeviceDefault_NoActionBar_Overscan} or by enabling the 
+{@link android.R.attr#windowOverscan} style in a custom theme.</p>
+
+
+<h3 id="Orientation">Screen orientation</h3>
+
+<p>The <a 
+href="{@docRoot}guide/topics/manifest/activity-element.html">{@code &lt;activity>}</a>
+tag's <a 
+href="{@docRoot}guide/topics/manifest/activity-element.html#screen">{@code screenOrientation}</a>
+attribute now supports additional values to honor the user's preference for auto-rotation:</p>
+<dl>
+<dt>{@code "userLandscape"}</dt>
+<dd>Behaves the same as {@code "sensorLandscape"}, except if the user disables auto-rotate 
+then it locks in the normal landscape orientation and will not flip.
+</dd>
+
+<dt>{@code "userPortrait"}</dt>
+<dd>Behaves the same as {@code "sensorPortrait"}, except if the user disables auto-rotate then 
+it locks in the normal portrait orientation and will not flip.
+</dd>
+
+<dt>{@code "fullUser"}</dt>
+<dd>Behaves the same as {@code "fullSensor"} and allows rotation in all four directions, except 
+if the user disables auto-rotate then it locks in the user's preferred orientation.
+</dd></dl>
+
+<p>Additionally, you can now also declare {@code "locked"} to lock your app's orientation into
+the screen's current orientation.</p>
+
+
+<h3 id="RotationAnimation">Rotation animations</h3>
+
+<p>The new {@link android.view.WindowManager.LayoutParams#rotationAnimation} field in 
+{@link android.view.WindowManager} allows you to select between one of three animations you 
+want to use when the system switches screen orientations. The three animations are:</p>
+<ul>
+  <li>{@link android.view.WindowManager.LayoutParams#ROTATION_ANIMATION_CROSSFADE}</li>
+  <li>{@link android.view.WindowManager.LayoutParams#ROTATION_ANIMATION_JUMPCUT}</li>
+  <li>{@link android.view.WindowManager.LayoutParams#ROTATION_ANIMATION_ROTATE}</li>
+</ul>
+
+<p class="note"><strong>Note:</strong> These animations are available only if you've set your activity to use "fullscreen" mode, which you can enable with themes such as {@link android.R.style#Theme_Holo_NoActionBar_Fullscreen Theme.Holo.NoActionBar.Fullscreen}.</p>
+
+<p>For example, here's how you can enable the "crossfade" animation:</p>
+<pre>
+protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+
+    WindowManager.LayoutParams params = getWindow().getAttributes();
+    params.rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
+    getWindow().setAttributes(params);
+    ...
+}
+</pre>
+
+
+<h2 id="UserInput">User Input</h2>
+
+<h3 id="SignificantMotion">Detect significant motion</h3>
+
+<p>The {@link android.hardware.SensorManager} APIs now allow you to request a callback when the 
+device sensors detect "significant motion." For instance, this event may be triggered by new 
+motion such as when the user starts to walk.</p>
+
+<p>To register a listener for significant motion, extend the {@link android.hardware.TriggerEventListener} class and implement the {@link android.hardware.TriggerEventListener#onTrigger onTrigger()} callback method. Then register your event listener with the {@link android.hardware.SensorManager} by passing it to {@link android.hardware.SensorManager#requestTriggerSensor requestTriggerSensor()}, passing it your {@link android.hardware.TriggerEventListener} and {@link android.hardware.Sensor#TYPE_SIGNIFICANT_MOTION}.</p>
+
+<h3 id="Sensors">New sensor types</h3>
+<p>The new {@link android.hardware.Sensor#TYPE_GAME_ROTATION_VECTOR} sensor allows you to detect the device's rotations without worrying about magnetic interferences. Unlike the {@link android.hardware.Sensor#TYPE_ROTATION_VECTOR} sensor, the {@link android.hardware.Sensor#TYPE_GAME_ROTATION_VECTOR} is not based on magnetic north.</p>
+
+<p>The new {@link android.hardware.Sensor#TYPE_GYROSCOPE_UNCALIBRATED} and {@link 
+android.hardware.Sensor#TYPE_MAGNETIC_FIELD_UNCALIBRATED} sensors provide raw sensor data without 
+consideration for bias estimations. That is, the existing {@link 
+android.hardware.Sensor#TYPE_GYROSCOPE} and {@link android.hardware.Sensor#TYPE_MAGNETIC_FIELD} 
+sensors provide sensor data that takes into account estimated bias from gyro-drift and hard iron 
+in the device, respectively. Whereas the new "uncalibrated" versions of these sensors instead provide 
+the raw sensor data and offer the estimated bias values separately. These sensors allow you to 
+provide your own custom calibration for the sensor data by enhancing the estimated bias with 
+external data.</p>
+
+
+
+<h2 id="NotificationListener">Notification Listener</h2>
+
+<p>Android 4.3 adds a new service class, {@link android.service.notification.NotificationListenerService}, that allows your app to receive information about new notifications as they are posted by the system. </p>
+
+<p>If your app currently uses the accessibility service APIs to access system notifications, you should update your app to use these APIs instead.</p>
+
+
+
+
+<h2 id="Contacts">Contacts Provider</h2>
+
+<h3 id="Contactables">Query for "contactables"</h3>
+
+<p>The new Contacts Provider query, {@link android.provider.ContactsContract.CommonDataKinds.Contactables#CONTENT_URI Contactables.CONTENT_URI}, provides an efficient way to get one {@link android.database.Cursor} that contains all email addresses and phone numbers belonging to all contacts matching the specified query.</p>
+
+
+<h3 id="ContactsDelta">Query for contacts deltas</h3>
+
+<p>New APIs have been added to Contacts Provider that allow you to efficiently query recent changes to the contacts data. Previously, your app could be notified when something in the contacts data changed, but you would not know exactly what changed and would need to retrieve all contacts then iterate through them to discover the change.</p>
+
+<p>To track changes to inserts and updates, you can now include the {@link android.provider.ContactsContract.ContactsColumns#CONTACT_LAST_UPDATED_TIMESTAMP} parameter with your selection to query only the contacts that have changed since the last time you queried the provider.</p>
+
+<p>To track which contacts have been deleted, the new table {@link android.provider.ContactsContract.DeletedContacts} provides a log of contacts that have been deleted (but each contact deleted is held in this table for a limited time). Similar to {@link android.provider.ContactsContract.ContactsColumns#CONTACT_LAST_UPDATED_TIMESTAMP}, you can use the new selection parameter, {@link android.provider.ContactsContract.DeletedContacts#CONTACT_DELETED_TIMESTAMP} to check which contacts have been deleted since the last time you queried the provider. The table also contains the constant {@link android.provider.ContactsContract.DeletedContacts#DAYS_KEPT_MILLISECONDS} containing the number of days (in milliseconds) that the log will be kept.</p>
+
+<p>Additionally, the Contacts Provider now broadcasts the {@link 
+android.provider.ContactsContract.Intents#CONTACTS_DATABASE_CREATED} action when the user 
+clears the contacts storage through the system settings menu, effectively recreating the 
+Contacts Provider database. It’s intended to signal apps that they need to drop all the contact 
+information they’ve stored and reload it with a new query.</p>
+
+<p>For sample code using these APIs to check for changes to the contacts, look in the ApiDemos 
+sample available in the <a href="{@docRoot}tools/samples/index.html">SDK Samples</a> download.</p>
+
+
+<h2 id="Localization">Localization</h2>
+
+<h3 id="BiDi">Improved support for bi-directional text</h3>
+
+<p>Previous versions of Android support right-to-left (RTL) languages and layout, 
+but sometimes don't properly handle mixed-direction text. So Android 4.3 adds the {@link 
+android.text.BidiFormatter} APIs that help you properly format text with opposite-direction 
+content without garbling any parts of it.</p>
+
+<p>For example, when you want to create a sentence with a string variable, such as "Did you mean 
+15 Bay Street, Laurel, CA?", you normally pass a localized string resource and the variable to 
+{@link java.lang.String#format String.format()}:</p>
+<pre>
+Resources res = getResources();
+String suggestion = String.format(res.getString(R.string.did_you_mean), address);
+</pre>
+
+<p>However, if the locale is Hebrew, then the formatted string comes out like this:</p>
+
+<p dir="rtl">האם התכוונת ל 15 Bay Street, Laurel, CA?</p>
+
+<p>That's wrong because the "15" should be left of "Bay Street." The solution is to use {@link 
+android.text.BidiFormatter} and its {@link android.text.BidiFormatter#unicodeWrap(String) 
+unicodeWrap()} method. For example, the code above becomes:</p>
+<pre>
+Resources res = getResources();
+BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+String suggestion = String.format(res.getString(R.string.did_you_mean),
+        bidiFormatter.unicodeWrap(address));
+</pre>
+
+<p>
+By default, {@link android.text.BidiFormatter#unicodeWrap(String) unicodeWrap()} uses the 
+first-strong directionality estimation heuristic, which can get things wrong if the first 
+signal for text direction does not represent the appropriate direction for the content as a whole. 
+If necessary, you can specify a different heuristic by passing one of the {@link 
+android.text.TextDirectionHeuristic} constants from {@link android.text.TextDirectionHeuristics} 
+to {@link android.text.BidiFormatter#unicodeWrap(String,TextDirectionHeuristic) unicodeWrap()}.</p>
+
+<p class="note"><strong>Note:</strong> These new APIs are also available for previous versions
+of Android through the Android <a href="{@docRoot}tools/extras/support-library.html">Support
+Library</a>, with the {@link android.support.v4.text.BidiFormatter} class and related APIs.</p>
+
+
+
+<h2 id="A11yService">Accessibility Services</h2>
+
+<h3 id="A11yKeyEvents">Handle key events</h3>
+
+<p>An {@link android.accessibilityservice.AccessibilityService} can now receive a callback for 
+key input events with the {@link android.accessibilityservice.AccessibilityService#onKeyEvent 
+onKeyEvent()} callback method. This allows your accessibility service to handle input for 
+key-based input devices such as a keyboard and translate those events to special actions that 
+previously may have been possible only with touch input or the device's directional pad.</p>
+
+
+<h3 id="A11yText">Select text and copy/paste</h3>
+
+<p>The {@link android.view.accessibility.AccessibilityNodeInfo} now provides APIs that allow 
+an {@link android.accessibilityservice.AccessibilityService} to select, cut, copy, and paste 
+text in a node.</p>
+
+<p>To specify the selection of text to cut or copy, your accessibility service can use the new 
+action, {@link android.view.accessibility.AccessibilityNodeInfo#ACTION_SET_SELECTION}, passing 
+with it the selection start and end position with {@link 
+android.view.accessibility.AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_START_INT} and {@link 
+android.view.accessibility.AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_END_INT}. 
+Alternatively you can select text by manipulating the cursor position using the existing 
+action, {@link android.view.accessibility.AccessibilityNodeInfo#ACTION_NEXT_AT_MOVEMENT_GRANULARITY} 
+(previously only for moving the cursor position), and adding the argument {@link 
+android.view.accessibility.AccessibilityNodeInfo#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}.</p>
+
+<p>You can then cut or copy with {@link android.view.accessibility.AccessibilityNodeInfo#ACTION_CUT}, 
+{@link android.view.accessibility.AccessibilityNodeInfo#ACTION_COPY}, then later paste with 
+{@link android.view.accessibility.AccessibilityNodeInfo#ACTION_PASTE}.</p>
+
+
+<p class="note"><strong>Note:</strong> These new APIs are also available for previous versions
+of Android through the Android <a href="{@docRoot}tools/extras/support-library.html">Support
+Library</a>, with the {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
+class.</p>
+
+
+
+<h3 id="A11yFeatures">Declare accessibility features</h3>
+
+<p>Beginning with Android 4.3, an accessibility service must declare accessibility capabilities 
+in its metadata file in order to use certain accessibility features. If the capability is not 
+requested in the metadata file, then the feature will be a no-op. To declare your service's 
+accessibility capabilities, you must use XML attributes that correspond to the various 
+"capability" constants in the {@link android.accessibilityservice.AccessibilityServiceInfo} 
+class.</p>
+
+<p>For example, if a service does not request the {@link android.R.styleable#AccessibilityService_canRequestFilterKeyEvents flagRequestFilterKeyEvents} capability, 
+then it will not receive key events.</p>
+
+
+<h2 id="Testing">Testing and Debugging</h2>
+
+<h3 id="UiAutomation">Automated UI testing</h3>
+
+<p>The new {@link android.app.UiAutomation} class provides APIs that allow you to simulate user 
+actions for test automation. By using the platform's {@link 
+android.accessibilityservice.AccessibilityService} APIs, the {@link android.app.UiAutomation} 
+APIs allow you to inspect the screen content and inject arbitrary keyboard and touch events.</p>
+
+<p>To get an instance of {@link android.app.UiAutomation}, call {@link 
+android.app.Instrumentation#getUiAutomation Instrumentation.getUiAutomation()}. In order 
+for this to work, you must supply the {@code -w} option with the {@code instrument} command 
+when running your {@link android.test.InstrumentationTestCase} from <a 
+href="{@docRoot}tools/help/adb.html#am">{@code adb shell}</a>.</p>
+
+<p>With the {@link android.app.UiAutomation} instance, you can execute arbitrary events to test 
+your app by calling {@link android.app.UiAutomation#executeAndWaitForEvent 
+executeAndWaitForEvent()}, passing it a {@link java.lang.Runnable} to perform, a timeout 
+period for the operation, and an implementation of the {@link 
+android.app.UiAutomation.AccessibilityEventFilter} interface. It's within your {@link 
+android.app.UiAutomation.AccessibilityEventFilter} implementation that you'll receive a call 
+that allows you to filter the events that you're interested in and determine the success or 
+failure of a given test case.</p>
+
+<p>To observe all the events during a test, create an implementation of {@link 
+android.app.UiAutomation.OnAccessibilityEventListener} and pass it to {@link 
+android.app.UiAutomation#setOnAccessibilityEventListener setOnAccessibilityEventListener()}.  
+Your listener interface then receives a call to {@link 
+android.app.UiAutomation.OnAccessibilityEventListener#onAccessibilityEvent onAccessibilityEvent()} 
+each time an event occurs, receiving an {@link android.view.accessibility.AccessibilityEvent} object 
+that describes the event.</p>
+
+<p>There is a variety of other operations that the {@link android.app.UiAutomation} APIs expose 
+at a very low level to encourage the development of UI test tools such as <a href="{@docRoot}tools/help/uiautomator/index.html">uiautomator</a>. For instance, 
+{@link android.app.UiAutomation} can also:</p>
+<ul>
+  <li>Inject input events
+  <li>Change the orientation of the screen
+  <li>Take screenshots
+</ul>
+
+<p>And most importantly for UI test tools, the {@link android.app.UiAutomation} APIs work 
+across application boundaries, unlike those in {@link android.app.Instrumentation}.</p>
+
+
+<h3 id="Systrace">Systrace events for apps</h3>
+
+<p>Android 4.3 adds the {@link android.os.Trace} class with two static methods, 
+{@link android.os.Trace#beginSection beginSection()} and {@link android.os.Trace#endSection()}, 
+which allow you to define blocks of code to include with the systrace report. By creating 
+sections of traceable code in your app, the systrace logs provide you a much more detailed 
+analysis of where slowdown occurs within your app.</p>
+
+<p>For information about using the Systrace tool, read <a href="{@docRoot}tools/debugging/systrace.html">Analyzing Display and Performance with Systrace</a>.</p>
+
+
+<h2 id="Security">Security</h2>
+
+<h3 id="KeyStore">Android key store for app-private keys</h3>
+
+<p>Android now offers a custom Java Security Provider in the {@link java.security.KeyStore} 
+facility, called Android Key Store, which allows you to generate and save private keys that 
+may be seen and used by only your app. To load the Android Key Store, pass 
+{@code "AndroidKeyStore"} to {@link java.security.KeyStore#getInstance(String) 
+KeyStore.getInstance()}.</p>
+
+<p>To manage your app's private credentials in the Android Key Store, generate a new key with 
+{@link java.security.KeyPairGenerator} with {@link android.security.KeyPairGeneratorSpec}. First 
+get an instance of {@link java.security.KeyPairGenerator} by calling {@link 
+java.security.KeyPairGenerator#getInstance getInstance()}. Then call 
+{@link java.security.KeyPairGenerator#initialize initialize()}, passing it an instance of 
+{@link android.security.KeyPairGeneratorSpec}, which you can get using 
+{@link android.security.KeyPairGeneratorSpec.Builder KeyPairGeneratorSpec.Builder}. 
+Finally, get your {@link java.security.KeyPair} by calling {@link 
+java.security.KeyPairGenerator#generateKeyPair generateKeyPair()}.</p>
+
+
+<h3 id="HardwareKeyChain">Hardware credential storage</h3>
+
+<p>Android also now supports hardware-backed storage for your {@link android.security.KeyChain} 
+credentials, providing more security by making the keys unavailable for extraction. That is, once 
+keys are in a hardware-backed key store (Secure Element, TPM, or TrustZone), they can be used for 
+cryptographic operations but the private key material cannot be exported. Even the OS kernel 
+cannot access this key material. While not all Android-powered devices support storage on 
+hardware, you can check at runtime if hardware-backed storage is available by calling 
+{@link android.security.KeyChain#isBoundKeyAlgorithm KeyChain.IsBoundKeyAlgorithm()}.</p>
+
+
+
+<h2 id="Manifest">Manifest Declarations</h2>
+
+<h3 id="ManifestFeatures">Declarable required features</h3>
+
+<p>The following values are now supported in the <a 
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}</a>
+element so you can ensure that your app is installed only on devices that provide the features 
+your app needs.</p>
+
+<dl>
+<dt>{@link android.content.pm.PackageManager#FEATURE_APP_WIDGETS}</dt>
+<dd>Declares that your app provides an app widget and should be installed only on devices that
+include a Home screen or similar location where users can embed app widgets.
+Example:
+<pre>
+&lt;uses-feature android:name="android.software.app_widgets" android:required="true" />
+</pre>
+</dd>
+
+<dt>{@link android.content.pm.PackageManager#FEATURE_HOME_SCREEN}</dt>
+<dd>Declares that your app behaves as a Home screen replacement and should be installed only on
+devices that support third-party Home screen apps.
+Example:
+<pre>
+&lt;uses-feature android:name="android.software.home_screen" android:required="true" />
+</pre>
+</dd>
+
+<dt>{@link android.content.pm.PackageManager#FEATURE_INPUT_METHODS}</dt>
+<dd>Declares that your app provides a custom input method (a keyboard built with {@link
+android.inputmethodservice.InputMethodService}) and should be installed only on devices that
+support third-party input methods.
+Example:
+<pre>
+&lt;uses-feature android:name="android.software.input_methods" android:required="true" />
+</pre>
+</dd>
+
+<dt>{@link android.content.pm.PackageManager#FEATURE_BLUETOOTH_LE}</dt>
+<dd>Declares that your app uses Bluetooth Low Energy APIs and should be installed only on devices
+that are capable of communicating with other devices via Bluetooth Low Energy.
+Example:
+<pre>
+&lt;uses-feature android:name="android.software.bluetooth_le" android:required="true" />
+</pre>
+</dd>
+</dl>
+
+
+<h3 id="ManifestPermissions">User permissions</h3>
+<p>The following values are now supported in the <a 
+href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code &lt;uses-permission>}</a> 
+to declare the
+permissions your app requires in order to access certain APIs.</p>
+
+<dl>
+<dt>{@link android.Manifest.permission#BIND_NOTIFICATION_LISTENER_SERVICE}
+</dt>
+<dd>Required to use the new {@link android.service.notification.NotificationListenerService} APIs.
+</dd>
+
+<dt>{@link android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE}</dt>
+<dd>Required to receive the {@link android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE}
+intent.</dd>
+</dl>
+
+
+
+
+<p class="note">For a detailed view of all API changes in Android 4.3, see the
+<a href="{@docRoot}sdk/api_diff/18/changes.html">API Differences Report</a>.</p>
+
+
+
index 71957be..5812f3d 100644 (file)
@@ -5,7 +5,14 @@ tab2=Android 4.1
 tab2.link=#android-41
 
 @jd:body
-
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <style>
 #android-41 {display:none;}
index 977eb2f..b2bde31 100644 (file)
@@ -1,7 +1,15 @@
 fullpage=true
 page.title=Google I/O 13
 @jd:body
-    
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
+
 <style>
 #ioplayer-frame {
   z-index:10;
index 00f4467..ab6bb1b 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Downloads
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <div class="layout-content-row">
   <div class="layout-content-col span-9">
index 1e6b40c..d4ef07f 100644 (file)
@@ -2,6 +2,14 @@ page.title=Design
 header.hide=1
 footer.hide=1
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <style>
 #landing-graphic-container {
index 7b5cb4a..f96e868 100644 (file)
@@ -4,6 +4,14 @@ header.hide=1
 carousel=1
 tabbedList=1
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <style>
 #noplayer-message {
index 907d267..75cf9f9 100644 (file)
@@ -88,6 +88,7 @@
     <ul>
       <li><a href="<?cs var:toroot ?>distribute/googleplay/edu/about.html">About</a></li>
       <li><a href="<?cs var:toroot ?>distribute/googleplay/edu/start.html">Get Started</a></li>
+      <li><a href="<?cs var:toroot ?>distribute/googleplay/edu/guidelines.html">Guidelines</a></li>
       <li><a href="<?cs var:toroot ?>distribute/googleplay/edu/contact.html">Sign Up</a></li>
     </ul>  
   </li>
index 7306c5b..cc131c6 100644 (file)
@@ -24,6 +24,7 @@ devices.</p>
 that will help schools. We want to help you create innovative educational apps,
 without having to knock on school doors to reach teachers and students.</p>
 
+<p><a class="landing-page-link" style="text-align:right;" href="#video">Watch a Video</a></p>
 
 <div class="landing-docs">
   <div class="col-6 normal-links">
@@ -79,3 +80,25 @@ of any size, across classrooms, schools, or even districts. </p>
 
 
 </div>
+<div id="video" style="background: #F0F0F0;
+            border-top: 1px solid #DDD;
+            padding: 0px 0 24px 0;
+            overflow: auto;
+            clear:both;
+            margin-bottom:40px;
+            margin-top:30px;">
+   <div style="padding:0 0 0 29px;">
+        <h4>Introducing Google Play for Education</h4>
+
+          <div style="width:700px;">
+          <p style="margin-top:26px;
+                    margin-bottom:12px;">
+          Hear how Google Play for Education works and how developers can leverage the unique business opportunities in creating educational apps for the K-12 market. There's a demo at 4m10s.</p>
+           </div>
+           <iframe style="float:left;
+             margin-right:24px;
+             margin-top:14px;" width="700" height="394" src=
+             "http://www.youtube.com/embed/haEmsMo0f3w?HD=1;rel=0;origin=developer.android.com;" frameborder="0" allowfullscreen>
+           </iframe>
+   </div> 
+</div>
index a302bc9..804d925 100644 (file)
@@ -24,7 +24,7 @@ teachers and administrators buy, deploy, and use apps. </p>
 Whether you have an existing educational app or are developing a fresh idea that
 will unlock learning in the classroom &mdash; sign up to receive information about
 the upcoming launch of Google Play for Education. To get your apps ready, read our
-<a href="{@docRoot}distribute/googleplay/edu/start.html">guidelines</a> for building
+<a href="{@docRoot}distribute/googleplay/edu/guidelines.html">guidelines</a> for building
 educational apps.</p>
     </p><a href="http://developer.android.com/edu/signup">Developer Sign Up »</a>
   </div>
diff --git a/docs/html/distribute/googleplay/edu/guidelines.jd b/docs/html/distribute/googleplay/edu/guidelines.jd
new file mode 100644 (file)
index 0000000..c1d3065
--- /dev/null
@@ -0,0 +1,252 @@
+page.title=Guidelines for Apps
+page.metaDescription=Get your apps ready for Google Play for Education.
+excludeFromSuggestions=true
+@jd:body
+
+<div style="position:absolute;margin-left: 636px;
+            margin-top:-76px;color:#777;">If you're interested<br>
+            <a href="{@docRoot}distribute/googleplay/edu/contact.html"
+            class="go-link"
+            style="display: block;text-align: right;">SIGN UP</a></div>
+
+<div
+style="background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">You
+can now include your apps in the Google Play for Education <a
+href="{@docRoot}distribute/googleplay/edu/start.html#program">pilot program</a>,
+getting it into the hands of participating schools and key influencers in the
+education technology community. See <a href="start.html">Get Started</a> to
+learn how to participate. </div>
+
+<p>The sections below list the guidelines and requirements for apps
+participating in Google Play for Education.
+
+<p>Before you include your app in Google Play for Education, set up a <a
+href="#test-environment">test environment</a> and make sure your app meets all
+of the safety, usability, and quality guidelines given here. You can use the
+linked resources to help
+you develop a great app for students that offers compelling content and an
+intuitive user experience on Android tablets.</p>
+
+<p>In addition, ensure that your app complies with the terms of a <a
+href="https://play.google.com/about/developer-distribution-agreement-addendum.
+html" target="_policies">Google Play for Education Addendum</a>, as well as
+the standard  <a
+href="http://play.google.com/about/developer-content-policy.html"
+target="_policies">Google Play Developer Program Policies</a> and <a
+href="http://play.google.com/about/developer-distribution-agreement.html"
+target="_policies">Developer Distribution Agreement</a>.</p>
+
+
+<h2 id="requirements">Safety First</h2>
+
+<p>To participate, your apps must be designed to be appropriate for
+the K-12 market. The basic requirements that your apps must meet are:</p>
+
+<ol>
+  <li>Apps and the ads they contain must not collect personally identifiable
+information other than user credentials or data required to operate and improve
+the app.</li>
+  <li>Apps must not use student data for purposes unrelated to its educational
+function.</li>
+  <li>Apps must have a content rating of "Everyone" or "Low Maturity" (apps with
+a "Medium Maturity" rating are allowed, if they have that rating solely because
+they allow communication between students).</li>
+  <li>App content, including ads displayed by the app, must be consistent with
+the app's maturity rating. The app must not display any “offensive” content, as
+described in the <a
+href="http://play.google.com/about/developer-content-policy.html">Google Play
+Developer Program Policies</a> and <a
+href="https://support.google.com/googleplay/android-developer/answer/188189">
+content-rating guidelines</a>.</p></li>
+<li>Apps must comply with the Children’s Online Privacy Protection Act
+and all other applicable laws and regulations.</li>
+</ol>
+
+
+<h2 id="inapp">Monetizing and Ads</h2>
+
+<p>Google Play for Education provides a simple and secure environment for students
+and teachers. To support that environment, priced or free apps that do not use in-app
+purchases are preferred, as are apps that do not display ads. Apps that use in-app
+payments or ads are acceptable, but you must declare those behaviors when opting-in
+to Google Play for Education. Your app's use of in-app purchases or ads will be
+disclosed to educators when they are browsing for content.</p>
+
+<p>Follow the guidelines below to help your app receive the
+  highest ratings and offer the best possible user-experience.</p>
+
+<p>If your app is priced or sells in-app products, you must:</p>
+
+<ul>
+  <li>Sell all content and services through Google Play for Education</li>
+  <li>Allow Google Play to offer teachers limited free trials before purchase
+(through business terms only, no development work is needed)</li>
+<li>Disable in-app purchases if possible, or ensure that:
+
+<ul>
+<li>Users can access your app's core functionality for a classroom setting without
+an in-app purchase.</li>
+<li>In-app purchases are clearly identifiable in your UI.</li>
+<li>You declare the use of in-app purchases at <a href="{@docRoot}distribute/googleplay/edu/start.html#opt-in">opt-in</a>.</li>
+</ul>
+</li>
+</ul>
+
+<p class="note"><strong>Note</strong>: In-app
+purchases are blocked on Google Play for Education tablets at this time.</p>
+
+<p>If your app displays ads, you should:
+  <ul>
+  <li>Disable the display of ads if possible, or ensure that:
+  <ul>
+    <li>Ads are not distracting for students or teachers</li>
+    <li>Ads do not occupy a significant portion of the screen</li>
+    <li>Ads content does not exceed the maturity rating of the app.</li>
+    <li>You declare the use of ads at <a href="{@docRoot}distribute/googleplay/edu/start.html#opt-in">opt-in</a>.</li>
+  </ul>
+  </li>
+</ul>
+
+
+<h2 id="approved">Educational Value</h2>
+
+<p>Apps submitted to Google Play for Education will be evaluated by a
+third-party educator network, which will review them based on alignment with <a
+href="http://www.corestandards.org/" class="external-link"
+target="_android">Common Core Standards</a> and other factors. This will help
+make your content more discoverable for teachers and administrators as they
+browse by grade level, subject, core curriculum, and other parameters. </p>
+
+<p>Apps with highest educational value will have these characteristics:</p>
+<ul>
+  <li>Designed for use in K-12 classrooms.</li>
+  <li>Aligned with a common core standard or support common-core learning.</li>
+  <li>Simple, easy to use, and intuitive for the grade levels the app is targeting.
+  App is relatively easy to navigate without teacher guidance. Not distracting
+  or overwhelming to students.</li>
+  <li>Enjoyable and interactive. App is engaging to students and lets them control
+  their experience.</li>
+  <li>Versatile. App has features make the it useful for more than one classroom
+  function or lesson throughout the school year.</li>
+  <li>Supports the "4Cs":
+    <ul>
+    <li><em>Creativity</em> &mdash; Allows students to create in order to express
+    understanding of the learning objectives, and try new approaches, innovation
+    and invention to get things done.</li>
+    <li><em>Critical thinking</em> &mdash; Allows students to look at problems in
+    a new way, linking learning across subjects and disciplines.</li>
+    <li><em>Collaboration</em> &mdash; Allows students and (if appropriate) educators
+    to work together to reach a goal.</li>
+    <li><em>Communication</em> &mdash; Allows students to comprehend, critique and
+    share thoughts, questions, ideas and solutions.</li>
+    </ul>
+  </li>
+</ul>
+
+<p>As you design and develop your app, make sure it offers high educational value
+by addressing as many of those characteristics as possible.</p>
+
+
+<h2 id="quality">App Quality</h2>
+
+<p>Google Play for Education brings educational content to students and teachers
+on Android tablets. Your apps should be designed to perform well and look great
+on Android tablets, and they should offer the best user experience possible.
+</p>
+
+<p>High quality apps are engaging, intuitive, and offer compelling content.
+Google Play for Education will highlight high-quality apps for easy discovery in
+the store. Here are some recommendations for making your app easy for students
+and teachers to enjoy.</p>
+
+<ul>
+  <li>Meet Core app quality guidelines
+    <ul>
+      <li>Follow <a
+      href="{@docRoot}design/index.html">Android Design Guidelines</a>. Pay special
+      attention to the sections on <a href="{@docRoot}design/patterns/actionbar.html">Action
+      Bar</a>, <a href="{@docRoot}design/patterns/navigation.html">Navigation</a> and <a
+      href="{@docRoot}design/patterns/pure-android.html">Pure Android</a>.</li>
+      <li>Test your apps against the <a href="{@docRoot}distribute/googleplay/quality/core.html">Core
+      App Quality Guidelines</a>.</li>
+    </ul>
+  </li>
+<li>Meet tablet app quality guidelines
+  <ul>
+   <li>Follow our best practices for tablet app development</li>
+   <li>Review the <a href="{@docRoot}distribute/googleplay/quality/tablet.html">Tablet App
+   Quality Checklist</a> and <a
+   href="http://android-developers.blogspot.com/2012/11/designing-for-tablets-were-here-to-help.html"
+   target="_android">blog post on designing for tablets</a></li>
+   <li>Check your Optimization Tips in the Google Play Developer Console (if you've
+   already uploaded your app)</li>
+  </ul>
+<li>Strive for simplicity and highest usability for students
+  <ul>
+    <li>Design your app so that teachers and students can use all capabilities of
+    your app without having to sign-in to multiple accounts and remember
+    multiple passwords.</li>
+    <li>Every student or teacher using a Google Play for Education tablet will already be
+    signed in with a Google account on the device.  You can take advantage of that to provide a
+    simple, seamless sign-in experience in your app. A recommended approach is to use
+    <a href="{@docRoot}google/play-services/auth.html">Google OAuth 2 authorization</a>
+    through Google Play Services.</li>
+  </ul>
+</li>
+</ul>
+
+
+<h2 id="test-environment">Test Environment</h2>
+
+<p>To test your app and assess it against the guidelines in this document, it's
+recommended that you set up a test environment that replicates the actual
+environment in which students and teachers will run your app.</p>
+
+<p>In general, you should use the test environment described in <a
+href="{@docRoot}distribute/googleplay/quality/tablet.html#test-environment">
+Setting Up a Test Environment for Tablets</a>, including a small number of
+actual hardware devices that replicate the tablet form factors used in the
+Google Play for Education.</p>
+
+<h3 id="devices">Android tablets</h3>
+
+<p>Google Play for Education uses primarily Nexus 7 devices, so
+your testing can focus on that specific hardware device. You can purchase the
+device from <a href="https://play.google.com/store/devices/details?id=nexus_7_16gb"
+target="_android">Google Play</a> and other stores. Although testing on Nexus
+devices is preferred, you can test on other 7-inch (or 10-inch) tablets or virtual
+devices if you don't have access to Nexus devices.</p>
+
+<h3 id="conditions">Test conditions</h3>
+
+<p>Once you've set up a suitable hardware environment, make sure to test your
+apps under conditions that simulate those of schools. For example, Google Play
+for Education lets administrators control or disable certain capabilities for
+students, so it's good to test your app with those capabilities disabled. Below
+are some conditions to test your app in, to ensure best results in the Google
+Play for Education environment:</p>
+
+<ul>
+<li><em>Android version</em> &mdash; Test the app on devices running Android
+4.2. Google Play for Education devices will be running Android 4.2 or higher
+(API level 17).</li>
+<li><em>Proxy server</em> &mdash; Test the app in network environment that uses
+proxies. Many schools use proxies.</li>
+<li><em>Secondary user account</em> &mdash; Test the app using a secondary user
+account. Most Google Play for Education users will not be using the primary <a
+href="{@docRoot}about/versions/jelly-bean.html#42-multiuser">multiuser</a>
+account on their devices. For testing, create a secondary multiuser account on
+your tablet.</li>
+<li><em>No location services</em> &mdash; Test the app to make sure it works
+properly with location services disabled. Many schools will disable location
+services for student devices.</li>
+<li><em>No In-app Billing</em> &mdash; Test the app to make sure it works
+properly without access to In-app Billing. In-app purchases are blocked on
+Google Play for Education devices at this time.</li>
+<li><em>No Bluetooth</em> &mdash; Test the app to make sure it works properly
+when Bluetooth is disabled. Many schools will disable Bluetooth on student
+devices.</li>
+<li><em>No access to network</em> &mdash; Test the app to make sure it works
+properly when the device cannot connect to the internet. </li>
+</ul>
+
index e740cce..419d5ea 100644 (file)
@@ -1,5 +1,5 @@
 page.title=Get Started
-page.metaDescription=Get your apps ready for Google Play for Education.
+page.metaDescription=Get Started with Google Play for Education
 excludeFromSuggestions=true
 @jd:body
 
@@ -9,126 +9,256 @@ excludeFromSuggestions=true
             class="go-link"
             style="display: block;text-align: right;">SIGN UP</a></div>
 
+<div style="background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">You
+can now include your apps in the Google Play for Education <a href="#program">pilot program</a>,
+getting it into the hands of participating schools and key influencers in the education technology
+community. See the sections below to learn more.</div>
+
 <p>If you've got a great app for education or just an idea for one, plan to be a
 part of Google Play for Education to reach even more teachers and students. It's
-easy to participate, and you will be able to offer new or existing Android apps
-using the familiar tools in Google Play.</p>
+easy to participate, and you'll be able to offer new or existing Android apps
+using familiar tools and processes in Google Play.</p>
+
+<p>To get started, review the sections in this document and learn how to make
+your apps available through Google Play for Education. Also make sure to read <a
+href="{@docRoot}distribute/googleplay/edu/guidelines.html">Guidelines for
+Apps</a>  for information on the safety, usability, and quality standards that
+your apps should meet. When your app is ready, you can opt-in to Google Play for
+Education from the Developer Console.</p>
+
+<p>Note that the initial launch of Google Play for Education is planned for Fall
+2013 and will include schools in the United States only, with support for other
+countries to follow. At this time, please include your app in Google Play for
+Education only if it is targeting the <strong>US K-12 market</strong>. </p>
+
+
+<h2 id="participate">How to Participate</h2>
+
+<div style="float:right; padding-top:2em;"><img
+src="{@docRoot}images/gp-edu-process.png"></div>
+
+<p>Google Play for Education lets you put your educational apps in front of a
+new audience of teachers and students. You can develop and publish using
+familiar tools and processes, such as your existing Developer Console account
+and your current distribution and pricing settings. It's easy to participate
+&mdash; the sections below outline the process.</p>
+
+<h3 id="basic-info">1. Understand guidelines and policies</h3>
+
+<p>To prepare for a successful launch on Google Play for Education, start by
+reviewing the guidelines for educational apps in Google Play and the policies
+that apply to your apps. See <a
+href="{@docRoot}distribute/googleplay/edu/guidelines.html">Guidelines for
+Apps</a> for details.</p>
+
+<p>Also, make sure that your are familiar with the policies that your app must
+comply with, including
+<a href="http://play.google.com/about/developer-content-policy.html" target="_policies">content
+policies</a>, the <a
+href="http://play.google.com/about/developer-distribution-agreement.html"
+target="_policies">developer agreement</a>,  and <a
+href="https://play.google.com/about/developer-distribution-agreement-addendum.
+html" target="_policies">Google Play for Education Addendum</a>.</p>
+
+<h3 id="developing">2. Design and develop a great app for education</h3>
+
+<p>A great app for educators and students is designed for classroom use, looks
+great on tablets, and delivers a compelling feature set for teachers and
+students. If you are developing an app for education, make sure that it is
+appropriate for K-12 classrooms, offers educational value, and is refined to
+offer a polished, high-quality tablet experience.</p>
+
+<p>Assess your app against the criteria listed in <a
+href="{@docRoot}distribute/googleplay/edu/guidelines.html">Guidelines for
+Apps</a> and plan on supporting them to the greatest extent possible. In some
+cases you might need to modify your features or UI to support the requirements
+of the classroom use-case. It's a good idea to identify those areas early in
+development so that you are able address them properly. </p>
+
+<p>With Google Play for Education, optimizing your app for tablets is a crucial
+part of getting your app ready for distribution to educators. A variety of
+resources are available to help you understand what you need to optimize for
+tablets &mdash; a good starting point is the <a
+href="{@docRoot}distribute/googleplay/quality/tablet.html">Tablet App Quality
+Guidelines</a>. </p>
+
+<p>Throughout design and development, it's important to have a suitable device
+on which to prototype and test your user experience. It's highly recommended
+that you acquire one or more tablet devices and set up your testing environment
+as early as possible. The recommended hardware device that replicates the Google
+Play for Education environment is the Nexus 7, which is available from <a href="https://play.google.com/store/devices/details?id=nexus_7_16gb" target="_android">Google Play</a> and other stores.</p>
+
+<p>Proper testing and quality assurance are key aspects of delivering a great
+app for teachers and students. Make sure you set up a <a
+href="{@docRoot}distribute/googleplay/edu/guidelines.html#test-environment">
+proper test environment</a> to ensure that your app meets guidelines under
+realistic conditions.</p>
+
+<h3 id="opt-in">3. Opt-in to Google Play for Education and publish</h3>
+
+<div class="sidebox-wrapper">
+<div class="sidebox">
+<h2>Before you opt-in</h2>
+<p>To participate in Google Play for Education, you must agree to a <a
+href="https://play.google.com/about/developer-distribution-agreement-addendum.html"
+target="_policies">Google Play for Education Addendum</a>
+to the standard Developer Distribution Agreement.</p>
 
-<p>To get started, review the sections in this document and learn about the
-safety, usability, and quality guidelines that apps should meet. Assess your
-apps against these guidelines and make any adjustments needed. You can use the
-linked resources to help you develop a great app for students that offers
-compelling content and an intuitive user experience on Android tablets.</p>
+<p>Before you opt-in, review the Addendum completely and make any necessary
+modifications to your app.</p>
+</div>
+</div>
 
-<h2 id="requirements">Safety First</h2>
+<p>When you've built your release-ready APK and tested to ensure that it meets
+the <a href="{@docRoot}distribute/googleplay/edu/guidelines.html">app guidelines</a>,
+upload it to the Developer Console, create your store listing, and set
+distribution options. If you aren't familiar with how to prepare for launch on
+Google Play, see the <a
+href="{@docRoot}distribute/googleplay/publish/preparing.html">Launch Checklist</a>. </p>
 
-<p>To participate, your apps must be designed to be usable and appropriate for
-the K-12 market. The basic requirements that your apps must meet are:</p>
+<p>When your app is ready to publish, you can <em>opt-in</em> to Google Play for
+Education from the Developer Console. Opt-in means that you want your app to be
+made available to educators through Google Play for Education, including review,
+classification, and approval by our third-party educator network. Note that
+opt-in does not affect the availability of your app in Google Play Store.</p>
+
+<p>Opt-in also confirms that your app complies with <a
+href="http://play.google.com/about/developer-content-policy.html"
+target="_policies">Google Play Developer Program
+Policies</a> and the <a
+href="http://play.google.com/about/developer-distribution-agreement.html"
+target="_policies">Developer Distribution Agreement</a>,
+including a <a
+href="https://play.google.com/about/developer-distribution-agreement-addendum.
+html" target="_policies">Google Play for Education
+Addendum</a>. If you are not familiar with these policy documents or the
+Addendum, make sure to read them before opting-in. </p>
+
+<p>Here's how to opt-in to Google Play for Education for a specific app:</p>
 
 <ol>
-  <li>Apps and the ads they contain must not collect personally identifiable
-information other than user credentials or data required to operate and improve
-the app.</li>
-  <li>Apps must not use student data for purposes unrelated to its educational
-function.</li>
-  <li>Apps must have a content rating of "Everyone" or "Low Maturity" (apps with
-a "Medium Maturity" rating are allowed, if they have that rating solely because
-they allow communication between students).</li>
-  <li>App content, including ads displayed by the app, must be consistent with
-the app's maturity rating. The app must not display any “offensive” content, as
-described in the <a
-href="http://play.google.com/about/developer-content-policy.html">Google Play
-Developer Program Policies</a> and <a
-href="https://support.google.com/googleplay/android-developer/answer/188189">
-content-rating guidelines</a>.</p></li>
+  <li>In the Developer Console All Applications page, click the app you want to
+opt-in. </li>
+  <li>Under Pricing and Distribution, scroll down to find "Google Play for
+Education" and the opt-in checkbox. </li>
+  <li>Click the checkbox next to "Include my app in Google Play for
+Education..."</li>
+  <li>After you've opted-in, find the "Ads" and "In-app purchases" checkboxes below.
+Check each checkbox that applies. Your app's use of ads or in-app purchases will
+be shown to educators when they are browsing your app. </li>
+  <li>Click "Save" to save your Pricing and Distribution changes.</li>
 </ol>
 
+<div style="clear:both;margin-top:1.5em;margin-bottom:1.5em;width:660px;">
+<img src="{@docRoot}images/gp-edu-optin.png" style="border:2px solid #ddd;width:660px;">
+<p class="image-caption"><span style="font-weight:500;">Opt-in for apps</span>:
+Include your app in Google Play for Education by opting-in from the Developer Console.</p>
+</div>
 
-<h2 id="approved">With the Help of Educators</h2>
+<p>Once you save changes and publish your app, the app will be submitted to our
+third-party educator network for review and approval. If the app is already
+published, it will be submitted for review as soon as you opt-in and save your
+changes. </p>
 
-<p>App content submitted to Google Play for Education will be reviewed by
-educators who will categorize the apps and align them with <a
-href="http://www.corestandards.org/" class="external-link"
-target="_android">Common Core Standards</a>. This will help make your content
-discoverable in a way that is easy for teachers and administrators. </p>
+<p class="note"><strong>Note</strong>: Google Play for Education is part of
+Google Play. When you publish an app that's opted-in to Google Play for
+Education, the app becomes available to users in Google Play right away. After
+the app is reviewed and approved, it then becomes available to educators in
+Google Play for Education.</p>
 
+<h3 id="review">4. Track your review and approval</h3>
 
-<h2 id="secure">Sold Simply</h2>
+<p>Google Play for Education provides content to educators in a way that's
+properly organized by subject, grade level, and common core standards (where
+applicable). To ensure high educational value and proper classification, we work
+with a third-party educator network to review and approve apps before making
+them discoverable through the Google Play for Education browsing tools. </p>
 
-<p>Google Play for Education provides a simple and secure environment in which
-educators can buy apps in a way that's easy for schools &mdash; through purchase
-orders. Your apps must support this environment by ensuring that they:</p>
+<p>Our third-party educator network will evaluate apps according to educational
+value and alignment with K-12 core standards, then assign the metadata for
+subject, grade level, and core curriculum that makes them easily browseable for
+educators. To understand how your apps will be evaluated, please see the <a
+href="{@docRoot}distribute/googleplay/edu/guidelines.html">Guidelines for
+Apps</a> document.</p>
 
-<ul>
-  <li>Sell all content and services through Google Play for Education</li>
-  <li>Permit Google Play to offer teachers limited free trials before purchase
-(through business terms only, no development work is needed)</li>
-</ul>
+<p>As soon as you opt-in to Google Play for Education and publish, your app is
+queued for review by our third-party educator network. The review and approval
+process can take <strong>3-4 weeks or more</strong>. You'll receive notification
+by email (to your developer account address) when the review is complete, with a
+summary of the review results. </p>
+
+<p class="note"><strong>Note</strong>: Until the full product launch in Fall
+2013, please expect the initial review of your app to take longer than usual.
+</p>
+
+<p>At any time, you can check the review and approval status of your app in the
+Developer Console, under "Google Play for Education" in the app's Pricing and
+Distribution page. There are three approval states:</p>
 
-<p>In addition, it's highly recommended that your apps:</p>
 <ul>
-  <li>Disable in-app purchase in any UI accessible to students.</li>
+<li><em>Pending</em> &mdash; Your app was sent for review and the review
+is not yet complete.</li>
+<li><em>Approved</em> &mdash; Your app was reviewed and approved. The app
+will be made available directly to educators through Google Play for Education.
+Until the full product launch later this year, your app will be available to a
+limited number of educators through the <a
+href="{@docRoot}distribute/googleplay/edu/start.html#program">pilot program</a>.
+Once your app is approved, you can update it at your convenience without needing
+another full review. </li>
+<li><em>Not approved</em> &mdash; Your app was reviewed and not approved.
+Check the notification email for information about why the app was not approved.
+You can address any issues and opt-in again for another review. </li>
 </ul>
 
-<h2 id="quality">High Quality and Usability</h2>
+<p>If you have questions about the review status of your app, follow the process
+discussed in the next section. </p>
 
-<p>Google Play for Education brings educational content to students and teachers
-on Android tablets. Your apps should be designed to perform well and look great
-on Android tablets, and they should offer the best user experience possible.
-</p>
+<h3 id="appeal">5. Get support or appeal your review results</h3>
 
-<p>High quality apps are engaging, intuitive, and offer compelling content.
-Google Play for Education will highlight high-quality apps for easy discovery in
-the store. Here are some recommendations for making your app easy for students
-and teachers to enjoy.</p>
+<p>After your app is reviewed you'll receive an email giving you the review
+results, including whether the app was approved, how the app was classified, and
+what issues may need to be addressed. You'll receive the email at the address
+you specified for your developer account. </p>
 
-<ul>
-  <li>Meet Core app quality guidelines
-    <ul>
-      <li>Follow <a href="{@docRoot}design/index.html">Android Design Guidelines</a>. 
-      Pay special attention to the sections on <a href="{@docRoot}design/patterns/actionbar.html">Action
-      Bar</a>, <a href="{@docRoot}design/patterns/navigation.html">Navigation</a> and <a 
-      href="{@docRoot}design/patterns/pure-android.html">Pure Android</a>.</li>
-      <li>Test your apps against the <a href="{@docRoot}distribute/googleplay/quality/core.html">Core
-      App Quality Guidelines</a>.</li>
-    </ul>
-  </li>
-<li>Meet tablet app quality guidelines
-  <ul>
-   <li>Follow our best practices for tablet app development</li>
-   <li>Review the <a href="{@docRoot}distribute/googleplay/quality/tablet.html">Tablet App
-   Quality Checklist</a> and <a href="http://android-developers.blogspot.com/2012/11/designing-for-tablets-were-here-to-help.html"
-   class="external-link;" target="_android">blog post on designing for tablets</a></li>
-   <li>Check your Optimization Tips in the Google Play Developer Console (if you've already uploaded your app)</li>
-  </ul>
-<li>Strive for simplicity and highest usability for students
-  <ul>
-    <li>Design your app so that teachers and students can use all capabilities of your app without
-    having to sign-in to multiple accounts and remember multiple passwords. </li>
-    <li>For best experience, use Google sign-in in your apps, which provides seamless authentication
-    across apps. <!--Google Account login service and integrate with Google Drive where appropriate. --></li>
-  </ul>
-</li>
-</ul>
-<p>In addition, it's highly recommended that your apps:</p>
-<ul>
-  <li>Disable advertisements in any UI accessible to students.</li>
-</ul>
+<p>If you believe your app was reviewed or classified incorrectly, you will be
+able to appeal and request reconsideration. Watch for more information on the
+appeal process and links in the weeks to come.</p>
+
+<p class="note"><strong>Note</strong>: Support and appeal forms are not yet
+available, but will be available soon.</p>
+
+
+<h2 id="program">Including Your Apps in the Pilot Program</h2>
+
+<p>Leading up to the Fall 2013 launch, the Google Play for Education team is
+conducting an extensive series of pilots that include schools and students across
+the United States. Educators in participating schools can browse for apps and
+purchase them in bulk, then deploy them instantly to teacher and student
+devices. </p>
+
+<h3 id="pilot">Early opt-in and publishing</h3>
+<p>As an app developer, you can take part in the pilot program, getting your app
+into the hands of schools and key influencers in the education technology
+community. It's a great way to get early feedback on your educational app. </p>
 
+<p>To offer your app in the pilot program, prepare the app and ensure that it meets
+the <a href="{@docRoot}distribute/googleplay/edu/guidelines.html">Guidelines
+for Apps</a>. Then opt-in to Google Play for Education and publish as soon
+as you are ready. Once your app is approved during review by our third-party
+educator network, it will be made available to educators in the pilot program
+right away. Note that during the pilot program, the review and approval process
+may take longer than usual.</p>
 
-<h2 id="strategies">Strategies for Development</h2>
+<h3 id="launch">Full launch to US schools</h3>
+<p>The initial launch of Google Play for Education is planned for Fall 2013. The
+pilot program and full launch will include schools in the United States only,
+with support for schools in other countries to follow. </p>
 
-  <p>If you have an existing educational app in Google Play, the classroom
-environment offered by Google Play for Education presents a slightly different
-set of needs, requirements, and also opportunities.</p> 
+<p>At this time, you should include your app in Google Play for Education only
+if it is targeting the US K-12 market. </p>
 
-  <p>We're working to give you the tools you need to build for the classroom
-environment from a single APK, delivered as a single product to all of your
-users in Google Play. Our goal is to let you customize your app's UI and
-features as minimally or deeply as you need, to provide a simple, intuitive, and
-beautiful learning experience. </p>
+<h3 id="more">More information</h3>
 
-  <p>Watch for more information on developer tools coming in the weeks ahead.
-We'll update this page as we roll out tools for you to use. As a starting point,
-we recommend planning your app's design and ensuring its optimization on Nexus
-tablets.</p>
+<p>If you'd like to be notified by email of the latest information about Google Play
+for Education, visit the <a href="{@docRoot}distribute/googleplay/edu/contact.html">
+Sign Up</a> page and fill out the form. </p>
\ No newline at end of file
index 738e76b..93092bf 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Google Play Badges
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <p itemprop="description">Google Play badges allow you to promote your app with official branding
 in your online ads, promotional materials, or anywhere else you want a link to your app.</p>
@@ -201,10 +209,8 @@ $(document).ready(function() {
           onchange="changeBadgeLang()">
     <option title="Afrikaans"
             value="af">Afrikaans</option>
-<!--
     <option title="Arabic"
             value="ar">العربية</option>
--->
     <option title="Belarusian"
             value="be">Беларуская</option>
     <option title="Bulgarian"
index 265584f..a047b1f 100644 (file)
@@ -1,6 +1,13 @@
 page.title=Brand Guidelines
 @jd:body
-
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 
 <p>We encourage you to use the Android and Google Play brands with your Android app
index 6882990..14f37c4 100644 (file)
@@ -3,6 +3,14 @@ page.metaDescription=Raise the visibility of your apps in Google Play through de
 header.hide=0
 footer.hide=0
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <!--
 <style>
index 4fdc5db..014582a 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Linking to Your Products
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <div class="sidebox-wrapper">
 <div class="sidebox">
index 0cbc270..dd35b25 100644 (file)
@@ -1,6 +1,14 @@
 page.title=Launch Checklist
 page.tags="publishing","launch","Google Play", "Developer Console"
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <div id="qv-wrapper"><div id="qv">
 <h2>Checklist</h2>
@@ -81,6 +89,10 @@ violations, termination of your developer account. </p>
 <tr>
 <td><p>Related resources:</p>
 <ul style="margin-top:-.5em;">
+
+<li><strong><a href="{@docRoot}distribute/googleplay/policies/index.html">Google Play Policies and Guidelines</a></strong> &mdash; An overview of Google Play policies for spam, intellectual property, and ads, with examples of common problems. </li>
+</a></strong> &mdash; Help Center document describing various content policies and processes.</li>
+
 <li><strong><a href="http://support.google.com/googleplay/android-developer/bin/topic.py?hl=en&topic=2364761&parent=2365624&ctx=topic">Policy and Best Practices
 </a></strong> &mdash; Help Center document describing various content policies and processes.</li>
 
index 9e23bcc..3fd221c 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Core App Quality Guidelines
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <div id="qv-wrapper"><div id="qv">
 <h2>Quality Criteria</h2>
index ef537b1..def42e5 100644 (file)
@@ -1,5 +1,13 @@
 page.title=App Quality
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <p>App quality directly influences the long-term success of your app&mdash;in
 terms of installs, user rating and reviews, engagement, and user retention.
index 03c180b..c80c3cc 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Tablet App Quality Checklist
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <div id="qv-wrapper"><div id="qv">
 <h2>Checklist</h2>
@@ -25,9 +33,7 @@ page.title=Tablet App Quality Checklist
 </ol>
 </div></div>
 
-<p>Before you publish an app on Google Play, it's important to make sure that
-the app meets the basic expectations of tablet users through compelling features
-and an intuitive, well-designed UI. </p>
+<p>Before you publish an app on Google Play, it's important to make sure that the app meets the basic expectations of tablet users through compelling features and an intuitive, well-designed UI. </p>
 
 <p>Tablets are a growing part of the Android installed base that offers new
 opportunities for <a
@@ -258,32 +264,34 @@ different layouts in the appropriate screen size buckets (such as
 <h2 id="use-tablet-icons">4. Use Icons and other assets that are designed
 for tablet screens</h2>
 
-<p>So that your app looks its best, make sure to use icons and other bitmap
-assets that are created specifically for the densities used by tablet screens.
-Specifically, you should create sets of alternative bitmap drawables for each
-density in the range commonly supported by tablets.</p>
+<p>To ensure your app looks its best, provide icons and other bitmap
+assets for each density in the range commonly supported by tablets. Specifically, you should
+design your icons for the action bar, notifications, and launcher according to the
+<a href="{@docRoot}design/style/iconography.html">Iconography</a> guidelines and
+provide them in multiple densities, so they appear at the appropriate size on all screens
+without blurring or other scaling artifacts.</p>
 
 <p class="table-caption"><strong>Table 1</strong>. Raw asset sizes for icon types.<table>
 <tr>
-<th>Density </th>
-<th colspa>Launcher</th>
+<th>Density</th>
+<th>Launcher</th>
 <th>Action Bar</th>
 <th>Small/Contextual</th>
 <th>Notification</th>
 </tr>
 <tr>
 <td><code>mdpi</code></td>
-<td>48x48px</td>
-<td>32x32px</td>
-<td>16x16px</td>
-<td>24x24px</td>
+<td>48x48 px</td>
+<td>32x32 px</td>
+<td>16x16 px</td>
+<td>24x24 px</td>
 </tr>
 <tr>
 <td><code>hdpi</code></td>
-<td>72x72px</td>
-<td>48x48px</td>
-<td>24x24px</td>
-<td>36x36px</td>
+<td>72x72 px</td>
+<td>48x48 px</td>
+<td>24x24 px</td>
+<td>36x36 px</td>
 </tr>
 <tr>
 <td><code>tvdpi</code></td>
@@ -294,34 +302,42 @@ density in the range commonly supported by tablets.</p>
 </tr>
 <tr>
 <td><code>xhdpi</code></td>
-<td>96x96px</td>
-<td>64x64px</td>
-<td>32x32px</td>
-<td>48x48px</td>
+<td>96x96 px</td>
+<td>64x64 px</td>
+<td>32x32 px</td>
+<td>48x48 px</td>
+</tr>
+<tr>
+<td><code>xxhdpi</code></td>
+<td>144x144 px</td>
+<td>96x96 px</td>
+<td>48x48 px</td>
+<td>74x74 px</td>
 </tr>
 
 </table>
 
-<p>Other points to consider: </p>
+<p>Your app should supply a version of each icon and bitmap asset that's optimized
+for <strong>at least one</strong> the following common tablet screen densities:</p>
 
 <ul>
-<li>Icons in the action bar, notifications, and launcher should be designed
-according to the icon design guidelines and have the same physical size on
-tablets as on phones.</li>
-<li>Use density-specific <a
-href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">
-resource qualifiers</a> to ensure that the proper set of alternative resources
-gets loaded.</li>
+  <li><code>hdpi</code></li>
+  <li><code>xhdpi</code></li>
+  <li><code>xxhdpi</code></li>
 </ul>
 
-<p style="margin-bottom:.5em;">At a minimum, your app should supply sets of
-  custom drawables and assets for common tablet screen densities,
-  tagged with these qualifiers as appropriate:</p>
+<p>Other tips:</p>
 
 <ul>
-  <li><code>hdpi</code>, OR</li>
-  <li><code>xhdpi</code>, OR</li>
-  <li><code>xxhdpi</code></li>
+<li>When possible, use vector shapes for your icon designs so you can scale them
+without loss of detail and edge crispness.</li>
+<li>Use density-specific <a
+href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">
+resource qualifiers</a> to ensure that the proper icons are loaded for each screen density.</li>
+<li>Tablets and other large screen devices often request a launcher icon that is one density
+size larger than the device's actual density, so you should provide your launcher
+icon at the highest density possible. For example, if a tablet has an {@code xhdpi} screen,
+it will request the {@code xxhdpi} version of the launcher icon.</li>
 </ul>
 
 <div class="rel-resources">
@@ -331,8 +347,8 @@ gets loaded.</li>
 
   <ul>
     <li>
-      <a href="{@docRoot}design/style/iconography.html">Iconography</a>&mdash; Android
-      Design document that shows how to use various types of icons.
+      <a href="{@docRoot}design/style/iconography.html">Iconography</a>&mdash;
+      Design guidelines and tips about how to create various types of icons.
     </li>
 
     <li>
index b83080e..88cdec4 100644 (file)
@@ -3,7 +3,14 @@ walkthru=0
 header.hide=0
 
 @jd:body
-
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <p>Android developers, their apps, and their successes with Android and Google Play. </p>
 
index 54f9301..8e7c6e1 100644 (file)
@@ -2,6 +2,14 @@ page.title=Distribute Apps
 header.hide=1
 
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
     
     
 <div class="marquee">
index 697fb7d..cc5b1af 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/land_back.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/land_back.png differ
index 735262f..2625edb 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/land_fore.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/land_fore.png differ
index cfb7952..9d91475 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/land_shadow.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/land_shadow.png differ
index 5bb815a..f54a8af 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/port_back.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/port_back.png differ
index 1be3b21..230bad4 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/port_fore.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/port_fore.png differ
index 7e8aff2..2401d20 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/port_shadow.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/port_shadow.png differ
index b5db82e..57b4c03 100644 (file)
Binary files a/docs/html/distribute/promote/device-art-resources/nexus_7/thumb.png and b/docs/html/distribute/promote/device-art-resources/nexus_7/thumb.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_back.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_back.png
new file mode 100644 (file)
index 0000000..697fb7d
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_back.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_fore.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_fore.png
new file mode 100644 (file)
index 0000000..735262f
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_fore.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_shadow.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_shadow.png
new file mode 100644 (file)
index 0000000..cfb7952
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/land_shadow.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_back.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_back.png
new file mode 100644 (file)
index 0000000..5bb815a
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_back.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_fore.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_fore.png
new file mode 100644 (file)
index 0000000..1be3b21
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_fore.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_shadow.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_shadow.png
new file mode 100644 (file)
index 0000000..7e8aff2
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/port_shadow.png differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_7_2012/thumb.png b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/thumb.png
new file mode 100644 (file)
index 0000000..b5db82e
Binary files /dev/null and b/docs/html/distribute/promote/device-art-resources/nexus_7_2012/thumb.png differ
index 55b846e..09a3941 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Device Art Generator
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <p>The device art generator allows you to quickly wrap your app screenshots in real device artwork.
 This provides better visual context for your app screenshots on your web site or in other
@@ -165,12 +173,13 @@ feature image or screenshots for your Google Play app listing.</p>
       title: 'Nexus 7',
       url: 'http://www.google.com/nexus/7/',
       physicalSize: 7,
-      physicalHeight: 7.81,
-      density: '213dpi',
+      physicalHeight: 8,
+      actualResolution: [1200,1920],
+      density: 'XHDPI',
       landRes: ['shadow', 'back', 'fore'],
-      landOffset: [315,270],
+      landOffset: [326,245],
       portRes: ['shadow', 'back', 'fore'],
-      portOffset: [264,311],
+      portOffset: [244,326],
       portSize: [800,1280]
     },
     {
@@ -202,6 +211,20 @@ feature image or screenshots for your Google Play app listing.</p>
       archived: true
     },
     {
+      id: 'nexus_7_2012',
+      title: 'Nexus 7 (2012)',
+      url: 'http://www.google.com/nexus/7/',
+      physicalSize: 7,
+      physicalHeight: 7.81,
+      density: '213dpi',
+      landRes: ['shadow', 'back', 'fore'],
+      landOffset: [315,270],
+      portRes: ['shadow', 'back', 'fore'],
+      portOffset: [264,311],
+      portSize: [800,1280],
+      archived: true
+    },
+    {
       id: 'galaxy_nexus',
       title: 'Galaxy Nexus',
       url: 'http://www.android.com/devices/detail/galaxy-nexus',
index 86f31d9..51c01f6 100644 (file)
@@ -15,10 +15,10 @@ var GMS_NAVTREE_DATA =
 , null ], [ "Classes", null, [ [ "DataBuffer", "reference/com/google/android/gms/common/data/DataBuffer.html", null, null ], [ "DataBufferUtils", "reference/com/google/android/gms/common/data/DataBufferUtils.html", null, null ] ]
 , null ] ]
 , null ], [ "com.google.android.gms.common.images", "reference/com/google/android/gms/common/images/package-summary.html", [ [ "Interfaces", null, [ [ "ImageManager.OnImageLoadedListener", "reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html", null, null ] ]
-, null ], [ "Classes", null, [ [ "ImageManager", "reference/com/google/android/gms/common/images/ImageManager.html", null, null ], [ "ImageManager.ImageReceiver", "reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "ImageManager", "reference/com/google/android/gms/common/images/ImageManager.html", null, null ] ]
 , null ] ]
 , null ], [ "com.google.android.gms.games", "reference/com/google/android/gms/games/package-summary.html", [ [ "Interfaces", null, [ [ "Game", "reference/com/google/android/gms/games/Game.html", null, null ], [ "OnGamesLoadedListener", "reference/com/google/android/gms/games/OnGamesLoadedListener.html", null, null ], [ "OnPlayersLoadedListener", "reference/com/google/android/gms/games/OnPlayersLoadedListener.html", null, null ], [ "OnSignOutCompleteListener", "reference/com/google/android/gms/games/OnSignOutCompleteListener.html", null, null ], [ "Player", "reference/com/google/android/gms/games/Player.html", null, null ], [ "RealTimeSocket", "reference/com/google/android/gms/games/RealTimeSocket.html", null, null ] ]
-, null ], [ "Classes", null, [ [ "GameBuffer", "reference/com/google/android/gms/games/GameBuffer.html", null, null ], [ "GameEntity", "reference/com/google/android/gms/games/GameEntity.html", null, null ], [ "GamesActivityResultCodes", "reference/com/google/android/gms/games/GamesActivityResultCodes.html", null, null ], [ "GamesClient", "reference/com/google/android/gms/games/GamesClient.html", null, null ], [ "GamesClient.Builder", "reference/com/google/android/gms/games/GamesClient.Builder.html", null, null ], [ "GamesClientSettings", "reference/com/google/android/gms/games/GamesClientSettings.html", null, null ], [ "PageDirection", "reference/com/google/android/gms/games/PageDirection.html", null, null ], [ "PlayerBuffer", "reference/com/google/android/gms/games/PlayerBuffer.html", null, null ], [ "PlayerEntity", "reference/com/google/android/gms/games/PlayerEntity.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "GameBuffer", "reference/com/google/android/gms/games/GameBuffer.html", null, null ], [ "GameEntity", "reference/com/google/android/gms/games/GameEntity.html", null, null ], [ "GamesActivityResultCodes", "reference/com/google/android/gms/games/GamesActivityResultCodes.html", null, null ], [ "GamesClient", "reference/com/google/android/gms/games/GamesClient.html", null, null ], [ "GamesClient.Builder", "reference/com/google/android/gms/games/GamesClient.Builder.html", null, null ], [ "PageDirection", "reference/com/google/android/gms/games/PageDirection.html", null, null ], [ "PlayerBuffer", "reference/com/google/android/gms/games/PlayerBuffer.html", null, null ], [ "PlayerEntity", "reference/com/google/android/gms/games/PlayerEntity.html", null, null ] ]
 , null ] ]
 , null ], [ "com.google.android.gms.games.achievement", "reference/com/google/android/gms/games/achievement/package-summary.html", [ [ "Interfaces", null, [ [ "Achievement", "reference/com/google/android/gms/games/achievement/Achievement.html", null, null ], [ "OnAchievementsLoadedListener", "reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html", null, null ], [ "OnAchievementUpdatedListener", "reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html", null, null ] ]
 , null ], [ "Classes", null, [ [ "AchievementBuffer", "reference/com/google/android/gms/games/achievement/AchievementBuffer.html", null, null ] ]
index 550d590..f9ad600 100644 (file)
@@ -226,7 +226,7 @@ onclick="onRegister(); return false;" >Register with Android Backup Service</a><
     } else if ($("input#agree").is(':checked')
         && packagename.length
         && packagename != DEFAULT_TEXT) {
-      window.location = "https://play.google.com/apps/publish/v2/GetBackupApiKey?p=" +
+      window.location = "https://play.google.com/apps/publish/GetBackupApiKey?p=" +
                       encodeURIComponent(packagename);
     } else {
       $("label#agreeLabel,label#pnameLabel").parent().stop().animate({color: "#258AAF"}, 200,
index 4020cf4..095388e 100644 (file)
@@ -1,6 +1,14 @@
 page.title=Google Services
 header.hide=1
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <style>
 div.landing-cell,
index 481a79c..0818514 100644 (file)
@@ -1,5 +1,13 @@
 page.title=Google Play In-app Billing
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <p>In-app Billing is a Google Play service that lets you sell digital content from inside
 your applications. You can use the service to sell a wide range of content, including downloadable
index 069a603..9070968 100644 (file)
@@ -259,7 +259,7 @@ rates for raw PCM recordings at 8000, 16000 and 44100 Hz.</td>
 
 <tr>
 <td>VP8</td>
-<td>&nbsp;</td>
+<td style="text-align: center;" nowrap><big>&bull;</big><br><small>(Android 4.3+)</small></td>
 <td style="text-align: center;" nowrap><big>&bull;</big><br><small>(Android 2.3.3+)</small></td>
 <td>Streamable only in Android 4.0 and above</td>
 <td>
@@ -272,9 +272,17 @@ rates for raw PCM recordings at 8000, 16000 and 44100 Hz.</td>
 
 <h2 id="recommendations">Video Encoding Recommendations</h2>
 
-<p>Table 2, below, lists examples of video encoding profiles and parameters that the Android media framework supports for playback. In addition to these encoding parameter recommendations, a device's available <em>video recording</em> profiles can be used as a proxy for media playback capabilities. These profiles can be inspected using the {@link android.media.CamcorderProfile CamcorderProfile} class, which is available since API level 8.</p>
+<p>Table 2, below, lists examples of video encoding profiles and parameters that the Android
+media framework supports for playback in the H.264 Baseline Profile codec. While
+table 3 lists examples that the framework supports for playback in the VP8 media codec.</p>
+
+<p>In addition to these encoding parameter recommendations,
+a device's available <em>video recording</em> profiles can be used as a proxy for media playback
+capabilities. These profiles can be inspected using the {@link android.media.CamcorderProfile
+CamcorderProfile} class, which is available since API level 8.</p>
 
-<p class="table-caption" id="encoding-recommendations-table"><strong>Table 2.</strong> Examples of supported video encoding parameters.</p>
+<p class="table-caption" id="encoding-recommendations-table"><strong>Table 2.</strong>
+Examples of supported video encoding parameters for the H.264 Baseline Profile codec.</p>
 
 <table>
   <thead>
@@ -282,17 +290,11 @@ rates for raw PCM recordings at 8000, 16000 and 44100 Hz.</td>
     <th>&nbsp;</th>
     <th><acronym title="Standard definition">SD</a> (Low quality)</th>
     <th><acronym title="Standard definition">SD</a> (High quality)</th>
-    <th><acronym title="High definition">HD</a> (Not available on all devices)</th>
+    <th><acronym title="High definition">HD 720p</a> (N/A on all devices)</th>
   </tr>
   </thead>
   <tbody>
   <tr>
-    <th>Video codec</th>
-    <td>H.264 Baseline Profile</td>
-    <td>H.264 Baseline Profile</td>
-    <td>H.264 Baseline Profile</td>
-  </tr>
-  <tr>
     <th>Video resolution</th>
     <td>176 x 144 px</td>
     <td>480 x 360 px</td>
@@ -331,6 +333,49 @@ rates for raw PCM recordings at 8000, 16000 and 44100 Hz.</td>
   </tbody>
 </table>
 
+
+
+<p class="table-caption" id="encoding-recommendations-table-vp8"><strong>Table 3.</strong>
+Examples of supported video encoding parameters for the VP8 codec.</p>
+
+<table>
+  <thead>
+  <tr>
+    <th>&nbsp;</th>
+    <th><acronym title="Standard definition">SD</a> (Low quality)</th>
+    <th><acronym title="Standard definition">SD</a> (High quality)</th>
+    <th><acronym title="High definition">HD 720p</a> (N/A on all devices)</th>
+    <th><acronym title="High definition">HD 1080p</a> (N/A on all devices)</th>
+  </tr>
+  </thead>
+  <tbody>
+  <tr>
+    <th>Video resolution</th>
+    <td>320 x 180 px</td>
+    <td>640 x 360 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+  </tr>
+  <tr>
+    <th>Video frame rate</th>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+  </tr>
+  <tr>
+    <th>Video bitrate</th>
+    <td>800 Kbps</td>
+    <td>2 Mbps</td>
+    <td>4 Mbps</td>
+    <td>10 Mbps</td>
+  </tr>
+  </tbody>
+</table>
+
+
+
+
 <p style="margin-top: 2em">For video content that is streamed over HTTP or RTSP, there are additional requirements:</p>
 
 <ul>
index 87bae53..6ede873 100644 (file)
@@ -4,6 +4,14 @@ page.landing.intro=Android's application framework lets you create extremely ric
 page.landing.image=images/develop/app_components.png
 
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <div class="landing-docs">
 
index 16dca9d..6d95338 100644 (file)
 
 
 
-      <li class="nav-section">
+<li class="nav-section">
         <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/connectivity/index.html">
                <span class="en">Connectivity</span>
              </a></div>
         <ul>
-          <li><a href="<?cs var:toroot?>guide/topics/connectivity/bluetooth.html">
-              <span class="en">Bluetooth</span>
-            </a>
-          </li>
+          <li class="nav-section">
+        <div class="nav-section-header"><a href="<?cs var:toroot?>guide/topics/connectivity/bluetooth.html">
+          <span class="en">Bluetooth</span></a>
+        </div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>guide/topics/connectivity/bluetooth-le.html">Bluetooth Low Energy</a></li>
+        </ul>
+      </li>
       <li class="nav-section">
         <div class="nav-section-header"><a href="<?cs var:toroot?>guide/topics/connectivity/nfc/index.html">
           <span class="en">NFC</span></a>
     </ul>
   </li><!-- end of connectivity -->
 
+
       <li class="nav-section">
         <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/text/index.html">
             <span class="en">Text and Input</span>
diff --git a/docs/html/guide/topics/connectivity/bluetooth-le.jd b/docs/html/guide/topics/connectivity/bluetooth-le.jd
new file mode 100644 (file)
index 0000000..21950c2
--- /dev/null
@@ -0,0 +1,608 @@
+page.title=Bluetooth Low Energy
+page.tags="wireless","bluetoothadapter","bluetoothdevice","BLE","BTLE"
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+  <h2>In this document</h2>
+  <ol>
+    <li><a href="#terms">Key Terms and Concepts</a>
+    <ol>
+      <li><a href="#roles">Roles and Responsibilities</a></li>
+    </ol>
+    </li>
+    <li><a href="#permissions">BLE Permissions</a></li>
+    <li><a href="#setup">Setting Up BLE</a></li>
+    <li><a href="#find">Finding BLE Devices</a></li>
+    <li><a href="#connect">Connecting to a GATT Server</a></li>
+    <li><a href="#read">Reading BLE Attributes</a></li>
+    <li><a href="#notification">Receiving GATT Notifications</a></li>
+    <li><a href="#close">Closing the Client App</a></li>
+  </ol>
+
+  <h2>Key classes</h2>
+  <ol>
+    <li>{@link android.bluetooth.BluetoothGatt}</li>
+    <li>{@link android.bluetooth.BluetoothGattCallback}</li>
+    <li>{@link android.bluetooth.BluetoothGattCharacteristic}</li>
+    <li>{@link android.bluetooth.BluetoothGattService}</li>
+  </ol>
+
+  <h2>Related samples</h2>
+  <ol>
+    <li><a href="{@docRoot}tools/samples/index.html">Bluetooth LE sample</a></li>
+  </ol>
+
+   <h2>See Also</h2>
+  <ol>
+    <li><a href="http://developers.google.com/events/io/sessions/326240948">
+    Best Practices for Bluetooth Development</a> (video)</li>
+
+  </ol>
+
+</div>
+</div>
+
+
+<p>
+Android 4.3 (API Level 18) introduces built-in platform support for Bluetooth Low
+Energy in the <em>central role</em> and provides APIs that apps can use to discover
+devices, query for services, and read/write characteristics.
+In contrast to
+<a href="{@docRoot}guide/topics/connectivity/bluetooth.html">Classic Bluetooth</a>,
+Bluetooth Low Energy (BLE) is designed to provide significantly lower power consumption.
+This allows Android apps to communicate with BLE devices that have low power requirements,
+such as proximity sensors, heart rate monitors, fitness devices, and so on.</p>
+
+<h2 id="terms">Key Terms and Concepts</h2>
+<p>Here is a summary of key BLE terms and concepts:</p>
+<ul>
+  <li><strong>Generic Attribute Profile (GATT)</strong>&mdash;The GATT profile
+is a general specification for sending and receiving short pieces of data known
+as "attributes" over a BLE link. All current Low Energy application profiles are
+based on GATT.
+    <ul>
+      <li>The Bluetooth SIG defines many
+<a href="https://www.bluetooth.org/en-us/specification/adopted-specifications">profiles</a>
+for Low Energy devices. A profile is a specification for how a device works in a
+particular application. Note that a device can implement more than one profile.
+For example, a device could contain a heart rate monitor and a battery level
+detector.</li>
+    </ul>
+  </li>
+  <li><strong>Attribute Protocol (ATT)</strong>&mdash;GATT is built on top of
+the Attribute Protocol (ATT). This is also referred to as GATT/ATT. ATT is
+optimized to run on BLE devices. To this end, it uses as few bytes as possible.
+Each attribute is uniquely identified by a Universally Unique Identifier (UUID),
+which is a standardized 128-bit format for a string ID used to uniquely
+identify information. The <em>attributes</em> transported by ATT are formatted
+as <em>characteristics</em> and <em>services</em>. </li>
+
+  <li><strong>Characteristic</strong>&mdash;A characteristic contains a single
+value and 0-n descriptors that describe the characteristic's value. A
+characteristic can be thought of as a type, analogous to a class. </li>
+  <li><strong>Descriptor</strong>&mdash;Descriptors are defined attributes that
+describe a characteristic value. For example, a descriptor might specify a
+human-readable description, an acceptable range for a characteristic's value, or
+a unit of measure that is specific to a characteristic's value.</li>
+
+  <li><strong>Service</strong>&mdash;A service is a collection of
+characteristics. For example, you could have a service called
+&quot;Heart Rate Monitor&quot; that includes characteristics such as
+&quot;heart rate measurement.&quot; You can find a list of existing GATT-based
+profiles and services on
+<a href="https://www.bluetooth.org/en-us/specification/adopted-specifications">
+bluetooth.org</a>.</li>
+
+</ul>
+
+<h3 id="roles">Roles and Responsibilities</h3>
+
+<p>Here are the roles and responsibilities that apply when
+an Android device interacts with a BLE device:</p>
+
+<ul>
+  <li>Central vs. peripheral. This applies to the BLE connection itself. The
+  device in the central role scans, looking for advertisement, and the device in
+  the peripheral role makes the advertisement.</li>
+  <li>GATT server vs. GATT client. This determines how two devices talk to each
+other once they've established the connection.</li>
+</ul>
+
+<p>To understand the distinction, imagine that you have an Android phone and
+an activity tracker that is a BLE device. The phone supports the
+central role; the activity tracker supports the peripheral role (to
+establish a BLE connection you need one of each&mdash;two things that only support
+peripheral couldn't talk to each other, nor could two things that only support
+central).</p>
+
+<p>Once the phone and the activity tracker have established a connection, they
+start transferring GATT metadata to one another. Depending on the kind of data they transfer,
+one or the other might act as the server. For example, if the activity tracker
+wants to report sensor data to the phone, it might make sense for the activity
+tracker to act as the server. If the activity tracker wants to receive updates
+from the phone, then it might make sense for the phone to act
+as the server.</p>
+
+<p>
+In the example used in this document, the Android app (running on an Android
+device) is the GATT client. The app gets data from the GATT server, which is a
+BLE heart rate monitor that supports the
+<a href="http://developer.bluetooth.org/TechnologyOverview/Pages/HRP.aspx">Heart
+Rate Profile</a>.  But you could alternatively design
+your Android app to play the GATT server
+role. See {@link android.bluetooth.BluetoothGattServer} for more
+information.</p>
+
+<h2 id="permissions">BLE Permissions</h2>
+
+<p>In order to use Bluetooth features in your application, you must declare
+the Bluetooth permission {@link android.Manifest.permission#BLUETOOTH}.
+You need this permission to perform any Bluetooth communication,
+such as requesting a connection, accepting a connection, and transferring data.</p>
+
+<p>If you want your app to initiate device discovery or manipulate Bluetooth
+settings, you must also declare the {@link android.Manifest.permission#BLUETOOTH_ADMIN}
+permission. <strong>Note:</strong> If you use the
+{@link android.Manifest.permission#BLUETOOTH_ADMIN} permission, then you must
+also have the {@link android.Manifest.permission#BLUETOOTH} permission.</p>
+
+<p>Declare the Bluetooth permission(s) in your application manifest file. For
+example:</p>
+
+<pre>
+&lt;uses-permission android:name=&quot;android.permission.BLUETOOTH&quot;/&gt;
+&lt;uses-permission android:name=&quot;android.permission.BLUETOOTH_ADMIN&quot;/&gt;</pre>
+
+<p>If you want to declare that your app is available to BLE-capable devices only,
+include the following in your app's manifest:</p>
+
+<pre>&lt;uses-feature android:name=&quot;android.hardware.bluetooth_le&quot; android:required=&quot;true&quot;/&gt;
+</pre>
+
+<p>However, if you want to make your app available to devices that don't support BLE,
+you should still include this element in your app's manifest, but set {@code required="false"}. 
+Then at run-time you can determine BLE availability by using
+{@link android.content.pm.PackageManager#hasSystemFeature PackageManager.hasSystemFeature()}:
+
+<pre>// Use this check to determine whether BLE is supported on the device. Then
+// you can selectively disable BLE-related features.
+if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
+    Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();
+    finish();
+}</pre>
+
+<h2 id="setup">Setting Up BLE</h2>
+
+<p>Before your application can communicate over BLE, you need
+to verify that BLE is supported on the device, and if so, ensure that it is enabled.
+Note that this check is only necessary if {@code &lt;uses-feature.../&gt;}
+is set to false.</p>
+
+<p>If BLE is not supported, then you should gracefully disable any
+BLE features. If BLE is supported, but disabled, then you can request that the
+user enable Bluetooth without leaving your application. This setup is
+accomplished in two steps, using the {@link android.bluetooth.BluetoothAdapter}.
+</p>
+
+
+<ol>
+<li>Get the {@link android.bluetooth.BluetoothAdapter}
+<p>The {@link android.bluetooth.BluetoothAdapter} is required for any and all
+Bluetooth activity. The {@link android.bluetooth.BluetoothAdapter} represents
+the device's own Bluetooth adapter (the Bluetooth radio). There's one Bluetooth
+adapter for the entire system, and your application can interact with it using
+this object. The snippet below shows how to get the adapter. Note that this approach
+uses {@link android.content.Context#getSystemService getSystemService()} to return
+an instance of {@link android.bluetooth.BluetoothManager}, which is then
+used to get the adapter. Android 4.3 (API Level 18) introduces
+{@link android.bluetooth.BluetoothManager}:</p>
+
+<pre>// Initializes Bluetooth adapter.
+final BluetoothManager bluetoothManager =
+        (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
+mBluetoothAdapter = bluetoothManager.getAdapter();
+</pre>
+</li>
+
+<li>Enable Bluetooth
+<p>Next, you need to ensure that Bluetooth is enabled. Call {@link
+android.bluetooth.BluetoothAdapter#isEnabled()} to check whether Bluetooth is
+currently enabled. If this method returns false, then Bluetooth is disabled.
+The following snippet checks whether Bluetooth is enabled. If it isn't, the
+snippet displays an error prompting the user to go to Settings to enable
+Bluetooth:</p>
+<pre>private BluetoothAdapter mBluetoothAdapter;
+...
+// Ensures Bluetooth is available on the device and it is enabled. If not,
+// displays a dialog requesting user permission to enable Bluetooth.
+if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
+    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
+}
+</li>
+</ol>
+
+
+
+<h2 id="find">Finding BLE Devices</h2>
+
+<p>To find BLE devices, you use the
+{@link android.bluetooth.BluetoothAdapter#startLeScan startLeScan()} method.
+This method takes a  {@link android.bluetooth.BluetoothAdapter.LeScanCallback}
+as a parameter. You must implement this callback, because that is how scan
+results are returned. Because scanning is battery-intensive, you should observe
+the following guidelines:</p>
+<ul>
+  <li>As soon as you find the desired device, stop scanning.</li>
+  <li>Never scan on a loop, and set a time limit on your scan. A device that was
+previously available may have moved out of range, and continuing to scan drains
+the battery.</li>
+</ul>
+
+<p>The following snippet shows how to start and stop a scan:</p>
+
+<pre>/**
+ * Activity for scanning and displaying available BLE devices.
+ */
+public class DeviceScanActivity extends ListActivity {
+
+    private BluetoothAdapter mBluetoothAdapter;
+    private boolean mScanning;
+    private Handler mHandler;
+
+    // Stops scanning after 10 seconds.
+    private static final long SCAN_PERIOD = 10000;
+    ...
+    private void scanLeDevice(final boolean enable) {
+        if (enable) {
+            // Stops scanning after a pre-defined scan period.
+            mHandler.postDelayed(new Runnable() {
+                &#64;Override
+                public void run() {
+                    mScanning = false;
+                    mBluetoothAdapter.stopLeScan(mLeScanCallback);
+                }
+            }, SCAN_PERIOD);
+
+            mScanning = true;
+            mBluetoothAdapter.startLeScan(mLeScanCallback);
+        } else {
+            mScanning = false;
+            mBluetoothAdapter.stopLeScan(mLeScanCallback);
+        }
+        ...
+    }
+...
+}
+</pre>
+
+<p>If you want to scan for only specific types of peripherals, you can instead
+call {@link android.bluetooth.BluetoothAdapter#startLeScan startLeScan(UUID[], BluetoothAdapter.LeScanCallback)},
+providing an array of {@link java.util.UUID} objects that specify the GATT
+services your app supports.</p>
+
+<p>Here is an implementation of the
+{@link android.bluetooth.BluetoothAdapter.LeScanCallback},
+which is the interface used to deliver BLE scan results:</p>
+
+<pre>
+private LeDeviceListAdapter mLeDeviceListAdapter;
+...
+// Device scan callback.
+private BluetoothAdapter.LeScanCallback mLeScanCallback =
+        new BluetoothAdapter.LeScanCallback() {
+    &#64;Override
+    public void onLeScan(final BluetoothDevice device, int rssi,
+            byte[] scanRecord) {
+        runOnUiThread(new Runnable() {
+           &#64;Override
+           public void run() {
+               mLeDeviceListAdapter.addDevice(device);
+               mLeDeviceListAdapter.notifyDataSetChanged();
+           }
+       });
+   }
+};</pre>
+
+
+<p class="note"><strong>Note:</strong> You can only scan for Bluetooth LE devices
+<em>or</em> scan for Classic Bluetooth devices, as described in
+<a href="{@docRoot}guide/topics/connectivity/bluetooth.html">Bluetooth</a>. You cannot
+scan for both Bluetooth LE and classic devices at the same time.</p>
+
+<h2 id="connect">Connecting to a GATT Server</h2>
+
+<p>The first step in interacting with a BLE device is connecting to it&mdash;
+more specifically, connecting to the GATT server on the device. To
+connect to a GATT server on a BLE device, you use the
+{@link android.bluetooth.BluetoothDevice#connectGatt connectGatt()} method.
+This method takes three parameters: a {@link android.content.Context} object,
+<code>autoConnect</code> (boolean indicating whether to automatically connect to
+the BLE device as soon as it becomes available), and a reference to a
+{@link android.bluetooth.BluetoothGattCallback}: </p>
+
+<pre>mBluetoothGatt = device.connectGatt(this, false, mGattCallback);</pre>
+
+<p>This connects to the GATT server hosted by the BLE device, and returns a
+{@link android.bluetooth.BluetoothGatt} instance, which you can then use to
+conduct GATT client operations. The caller (the Android app) is the GATT client.
+The {@link android.bluetooth.BluetoothGattCallback} is used to deliver results
+to the client, such as connection status, as well as any further GATT client
+operations.</p>
+
+<p>In this example, the BLE app provides an activity
+(<code>DeviceControlActivity</code>) to connect,
+display data, and display GATT services and characteristics
+supported by the device.  Based on user input, this activity communicates with a
+{@link android.app.Service} called {@code BluetoothLeService},
+which interacts with the BLE device via the Android BLE API:</p>
+
+<pre>
+// A service that interacts with the BLE device via the Android BLE API.
+public class BluetoothLeService extends Service {
+    private final static String TAG = BluetoothLeService.class.getSimpleName();
+
+    private BluetoothManager mBluetoothManager;
+    private BluetoothAdapter mBluetoothAdapter;
+    private String mBluetoothDeviceAddress;
+    private BluetoothGatt mBluetoothGatt;
+    private int mConnectionState = STATE_DISCONNECTED;
+
+    private static final int STATE_DISCONNECTED = 0;
+    private static final int STATE_CONNECTING = 1;
+    private static final int STATE_CONNECTED = 2;
+
+    public final static String ACTION_GATT_CONNECTED =
+            "com.example.bluetooth.le.ACTION_GATT_CONNECTED";
+    public final static String ACTION_GATT_DISCONNECTED =
+            "com.example.bluetooth.le.ACTION_GATT_DISCONNECTED";
+    public final static String ACTION_GATT_SERVICES_DISCOVERED =
+            "com.example.bluetooth.le.ACTION_GATT_SERVICES_DISCOVERED";
+    public final static String ACTION_DATA_AVAILABLE =
+            "com.example.bluetooth.le.ACTION_DATA_AVAILABLE";
+    public final static String EXTRA_DATA =
+            "com.example.bluetooth.le.EXTRA_DATA";
+
+    public final static UUID UUID_HEART_RATE_MEASUREMENT =
+            UUID.fromString(SampleGattAttributes.HEART_RATE_MEASUREMENT);
+
+    // Various callback methods defined by the BLE API.
+    private final BluetoothGattCallback mGattCallback =
+            new BluetoothGattCallback() {
+        &#64;Override
+        public void onConnectionStateChange(BluetoothGatt gatt, int status,
+                int newState) {
+            String intentAction;
+            if (newState == BluetoothProfile.STATE_CONNECTED) {
+                intentAction = ACTION_GATT_CONNECTED;
+                mConnectionState = STATE_CONNECTED;
+                broadcastUpdate(intentAction);
+                Log.i(TAG, "Connected to GATT server.");
+                Log.i(TAG, "Attempting to start service discovery:" +
+                        mBluetoothGatt.discoverServices());
+
+            } else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
+                intentAction = ACTION_GATT_DISCONNECTED;
+                mConnectionState = STATE_DISCONNECTED;
+                Log.i(TAG, "Disconnected from GATT server.");
+                broadcastUpdate(intentAction);
+            }
+        }
+
+        &#64;Override
+        // New services discovered
+        public void onServicesDiscovered(BluetoothGatt gatt, int status) {
+            if (status == BluetoothGatt.GATT_SUCCESS) {
+                broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED);
+            } else {
+                Log.w(TAG, "onServicesDiscovered received: " + status);
+            }
+        }
+
+        &#64;Override
+        // Result of a characteristic read operation
+        public void onCharacteristicRead(BluetoothGatt gatt,
+                BluetoothGattCharacteristic characteristic,
+                int status) {
+            if (status == BluetoothGatt.GATT_SUCCESS) {
+                broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
+            }
+        }
+     ...
+    };
+...
+}</pre>
+
+<p>When a particular callback is triggered, it calls the appropriate
+{@code broadcastUpdate()} helper method and passes it an action. Note that the data
+parsing in this section is performed in accordance with the Bluetooth Heart Rate
+Measurement
+<a href="http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml">
+profile specifications</a>:</p>
+
+<pre>private void broadcastUpdate(final String action) {
+    final Intent intent = new Intent(action);
+    sendBroadcast(intent);
+}
+
+private void broadcastUpdate(final String action,
+                             final BluetoothGattCharacteristic characteristic) {
+    final Intent intent = new Intent(action);
+
+    // This is special handling for the Heart Rate Measurement profile. Data
+    // parsing is carried out as per profile specifications.
+    if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
+        int flag = characteristic.getProperties();
+        int format = -1;
+        if ((flag &amp; 0x01) != 0) {
+            format = BluetoothGattCharacteristic.FORMAT_UINT16;
+            Log.d(TAG, &quot;Heart rate format UINT16.&quot;);
+        } else {
+            format = BluetoothGattCharacteristic.FORMAT_UINT8;
+            Log.d(TAG, &quot;Heart rate format UINT8.&quot;);
+        }
+        final int heartRate = characteristic.getIntValue(format, 1);
+        Log.d(TAG, String.format(&quot;Received heart rate: %d&quot;, heartRate));
+        intent.putExtra(EXTRA_DATA, String.valueOf(heartRate));
+    } else {
+        // For all other profiles, writes the data formatted in HEX.
+        final byte[] data = characteristic.getValue();
+        if (data != null &amp;&amp; data.length &gt; 0) {
+            final StringBuilder stringBuilder = new StringBuilder(data.length);
+            for(byte byteChar : data)
+                stringBuilder.append(String.format(&quot;%02X &quot;, byteChar));
+            intent.putExtra(EXTRA_DATA, new String(data) + &quot;\n&quot; +
+                    stringBuilder.toString());
+        }
+    }
+    sendBroadcast(intent);
+}</pre>
+
+
+
+<p>Back in <code>DeviceControlActivity</code>, these events are handled by a
+{@link android.content.BroadcastReceiver}:</p>
+
+<pre>// Handles various events fired by the Service.
+// ACTION_GATT_CONNECTED: connected to a GATT server.
+// ACTION_GATT_DISCONNECTED: disconnected from a GATT server.
+// ACTION_GATT_SERVICES_DISCOVERED: discovered GATT services.
+// ACTION_DATA_AVAILABLE: received data from the device. This can be a
+// result of read or notification operations.
+private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
+    &#64;Override
+    public void onReceive(Context context, Intent intent) {
+        final String action = intent.getAction();
+        if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {
+            mConnected = true;
+            updateConnectionState(R.string.connected);
+            invalidateOptionsMenu();
+        } else if (BluetoothLeService.ACTION_GATT_DISCONNECTED.equals(action)) {
+            mConnected = false;
+            updateConnectionState(R.string.disconnected);
+            invalidateOptionsMenu();
+            clearUI();
+        } else if (BluetoothLeService.
+                ACTION_GATT_SERVICES_DISCOVERED.equals(action)) {
+            // Show all the supported services and characteristics on the
+            // user interface.
+            displayGattServices(mBluetoothLeService.getSupportedGattServices());
+        } else if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) {
+            displayData(intent.getStringExtra(BluetoothLeService.EXTRA_DATA));
+        }
+    }
+};
+</pre>
+
+<h2 id="read">Reading BLE Attributes</h2>
+
+<p>Once your Android app has connected to a GATT server and discovered services,
+it can read and write attributes, where supported. For example, this snippet iterates
+through the server's services and characteristics and displays them in the UI:</p>
+
+<pre>
+public class DeviceControlActivity extends Activity {
+    ...
+    // Demonstrates how to iterate through the supported GATT
+    // Services/Characteristics.
+    // In this sample, we populate the data structure that is bound to the
+    // ExpandableListView on the UI.
+    private void displayGattServices(List&lt;BluetoothGattService&gt; gattServices) {
+        if (gattServices == null) return;
+        String uuid = null;
+        String unknownServiceString = getResources().
+                getString(R.string.unknown_service);
+        String unknownCharaString = getResources().
+                getString(R.string.unknown_characteristic);
+        ArrayList&lt;HashMap&lt;String, String&gt;&gt; gattServiceData =
+                new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
+        ArrayList&lt;ArrayList&lt;HashMap&lt;String, String&gt;&gt;&gt; gattCharacteristicData
+                = new ArrayList&lt;ArrayList&lt;HashMap&lt;String, String&gt;&gt;&gt;();
+        mGattCharacteristics =
+                new ArrayList&lt;ArrayList&lt;BluetoothGattCharacteristic&gt;&gt;();
+
+        // Loops through available GATT Services.
+        for (BluetoothGattService gattService : gattServices) {
+            HashMap&lt;String, String&gt; currentServiceData =
+                    new HashMap&lt;String, String&gt;();
+            uuid = gattService.getUuid().toString();
+            currentServiceData.put(
+                    LIST_NAME, SampleGattAttributes.
+                            lookup(uuid, unknownServiceString));
+            currentServiceData.put(LIST_UUID, uuid);
+            gattServiceData.add(currentServiceData);
+
+            ArrayList&lt;HashMap&lt;String, String&gt;&gt; gattCharacteristicGroupData =
+                    new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
+            List&lt;BluetoothGattCharacteristic&gt; gattCharacteristics =
+                    gattService.getCharacteristics();
+            ArrayList&lt;BluetoothGattCharacteristic&gt; charas =
+                    new ArrayList&lt;BluetoothGattCharacteristic&gt;();
+           // Loops through available Characteristics.
+            for (BluetoothGattCharacteristic gattCharacteristic :
+                    gattCharacteristics) {
+                charas.add(gattCharacteristic);
+                HashMap&lt;String, String&gt; currentCharaData =
+                        new HashMap&lt;String, String&gt;();
+                uuid = gattCharacteristic.getUuid().toString();
+                currentCharaData.put(
+                        LIST_NAME, SampleGattAttributes.lookup(uuid,
+                                unknownCharaString));
+                currentCharaData.put(LIST_UUID, uuid);
+                gattCharacteristicGroupData.add(currentCharaData);
+            }
+            mGattCharacteristics.add(charas);
+            gattCharacteristicData.add(gattCharacteristicGroupData);
+         }
+    ...
+    }
+...
+}</pre>
+
+<h2 id="notification">Receiving GATT Notifications</h2>
+
+<p>It's common for BLE apps to ask to be notified when a particular
+characteristic changes on the device. This snippet shows how to set a notification
+for a characteristic, using the
+{@link android.bluetooth.BluetoothGatt#setCharacteristicNotification setCharacteristicNotification()}
+method:</p>
+
+<pre>
+private BluetoothGatt mBluetoothGatt;
+BluetoothGattCharacteristic characteristic;
+boolean enabled;
+...
+mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);
+...
+BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
+        UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
+descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
+mBluetoothGatt.writeDescriptor(descriptor);</pre>
+
+<p>Once notifications are enabled for a characteristic,
+an {@link android.bluetooth.BluetoothGattCallback#onCharacteristicChanged onCharacteristicChanged()}
+callback is triggered if the characteristic changes on the remote device:</p>
+
+<pre>&#64;Override
+// Characteristic notification
+public void onCharacteristicChanged(BluetoothGatt gatt,
+        BluetoothGattCharacteristic characteristic) {
+    broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
+}
+</pre>
+
+<h2 id="close">Closing the Client App</h2>
+
+<p>Once your app has finished using a BLE device, it should call
+{@link android.bluetooth.BluetoothGatt#close close()}
+so the system can release resources appropriately:</p>
+
+<pre>public void close() {
+    if (mBluetoothGatt == null) {
+        return;
+    }
+    mBluetoothGatt.close();
+    mBluetoothGatt = null;
+}</pre>
index 1c55d8b..b57f3e2 100644 (file)
@@ -2,19 +2,13 @@ page.title=Bluetooth
 page.tags="wireless","bluetoothadapter","bluetoothdevice"
 @jd:body
 
-<div id="qv-wrapper"> 
-<div id="qv"> 
+<div id="qv-wrapper">
+<div id="qv">
  
-  <h2>Quickview</h2> 
-  <ul> 
-    <li>Android's bluetooth APIs allow your application to perform wireless data transactions with
-other devices</li> 
-  </ul> 
-  <h2>In this document</h2> 
+  <h2>In this document</h2>
   <ol> 
-    <li><a href="#TheBasics">The Basics</a></li> 
-    <li><a href="#Permissions">Bluetooth Permissions</a></li> 
+    <li><a href="#TheBasics">The Basics</a></li>
+    <li><a href="#Permissions">Bluetooth Permissions</a></li>
     <li><a href="#SettingUp">Setting Up Bluetooth</a></li> 
     <li><a href="#FindingDevices">Finding Devices</a> 
       <ol> 
@@ -70,6 +64,11 @@ following:</p>
   <li>Manage multiple connections</li>
 </ul>
 
+<p>This document describes how to use <em>Classic Bluetooth</em>. Classic
+Bluetooth is the right choice for more battery-intensive operations such as streaming
+and communicating between Android devices. For Bluetooth devices with low power requirements,
+Android 4.3 (API Level 18) introduces API support for Bluetooth Low Energy. To learn more,
+see <a href="{@docRoot}guide/topics/connectivity/bluetooth-le.html">Bluetooth Low Energy</a>.</p>
 
 <h2 id="TheBasics">The Basics</h2>
 
@@ -164,22 +163,18 @@ is, the internal service that runs a particular profile). </dd>
  
 <h2 id="Permissions">Bluetooth Permissions</h2> 
  
-<p>In order to use Bluetooth features in your application, you need to declare
-at least one of two Bluetooth permissions: {@link
-android.Manifest.permission#BLUETOOTH} and {@link
-android.Manifest.permission#BLUETOOTH_ADMIN}.</p> 
-<p>You must request the {@link android.Manifest.permission#BLUETOOTH} permission
-in order to perform any Bluetooth communication, such as requesting a
-connection, accepting a connection, and transferring data.</p> 
-<p>You must request the {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-permission in order to initiate device discovery or manipulate Bluetooth
-settings. Most applications need this permission solely for the
+<p>In order to use Bluetooth features in your application, you must declare
+the Bluetooth permission {@link android.Manifest.permission#BLUETOOTH}.
+You need this permission to perform any Bluetooth communication,
+such as requesting a connection, accepting a connection, and transferring data.</p>
+
+<p>If you want your app to initiate device discovery or manipulate Bluetooth
+settings, you must also declare the {@link android.Manifest.permission#BLUETOOTH_ADMIN}
+permission. Most applications need this permission solely for the
 ability to discover local Bluetooth devices. The other abilities granted by this
 permission should not be used, unless the application is a "power manager" that
 will modify Bluetooth settings upon user request. <strong>Note:</strong> If you
-use {@link android.Manifest.permission#BLUETOOTH_ADMIN} permission, then must
+use {@link android.Manifest.permission#BLUETOOTH_ADMIN} permission, then you must
 also have the {@link android.Manifest.permission#BLUETOOTH} permission.</p> 
  
 <p>Declare the Bluetooth permission(s) in your application manifest file. For
index bdb0ff6..c403608 100644 (file)
Binary files a/docs/html/images/brand/ar_generic_rgb_wo_45.png and b/docs/html/images/brand/ar_generic_rgb_wo_45.png differ
index ba9fc69..95e31eb 100644 (file)
Binary files a/docs/html/images/brand/ar_generic_rgb_wo_60.png and b/docs/html/images/brand/ar_generic_rgb_wo_60.png differ
diff --git a/docs/html/images/gp-edu-optin.png b/docs/html/images/gp-edu-optin.png
new file mode 100644 (file)
index 0000000..91e4e0d
Binary files /dev/null and b/docs/html/images/gp-edu-optin.png differ
diff --git a/docs/html/images/gp-edu-process.png b/docs/html/images/gp-edu-process.png
new file mode 100644 (file)
index 0000000..febf007
Binary files /dev/null and b/docs/html/images/gp-edu-process.png differ
diff --git a/docs/html/images/tools/clipbounds-normal@2x.png b/docs/html/images/tools/clipbounds-normal@2x.png
new file mode 100644 (file)
index 0000000..99e0e14
Binary files /dev/null and b/docs/html/images/tools/clipbounds-normal@2x.png differ
diff --git a/docs/html/images/tools/clipbounds@2x.png b/docs/html/images/tools/clipbounds@2x.png
new file mode 100644 (file)
index 0000000..d5261e6
Binary files /dev/null and b/docs/html/images/tools/clipbounds@2x.png differ
diff --git a/docs/html/images/tools/ninepatch_opticalbounds@2x.png b/docs/html/images/tools/ninepatch_opticalbounds@2x.png
new file mode 100644 (file)
index 0000000..cb7eb08
Binary files /dev/null and b/docs/html/images/tools/ninepatch_opticalbounds@2x.png differ
diff --git a/docs/html/images/tools/opticalbounds-normal@2x.png b/docs/html/images/tools/opticalbounds-normal@2x.png
new file mode 100644 (file)
index 0000000..6662264
Binary files /dev/null and b/docs/html/images/tools/opticalbounds-normal@2x.png differ
diff --git a/docs/html/images/tools/opticalbounds@2x.png b/docs/html/images/tools/opticalbounds@2x.png
new file mode 100644 (file)
index 0000000..bd09f9b
Binary files /dev/null and b/docs/html/images/tools/opticalbounds@2x.png differ
diff --git a/docs/html/images/tools/studio_error_eventlog.png b/docs/html/images/tools/studio_error_eventlog.png
new file mode 100644 (file)
index 0000000..909b285
Binary files /dev/null and b/docs/html/images/tools/studio_error_eventlog.png differ
diff --git a/docs/html/images/tools/studio_error_gradle5.png b/docs/html/images/tools/studio_error_gradle5.png
new file mode 100644 (file)
index 0000000..13de607
Binary files /dev/null and b/docs/html/images/tools/studio_error_gradle5.png differ
diff --git a/docs/html/images/tools/studio_error_supportlib.png b/docs/html/images/tools/studio_error_supportlib.png
new file mode 100644 (file)
index 0000000..603b54c
Binary files /dev/null and b/docs/html/images/tools/studio_error_supportlib.png differ
index af271ee..a972309 100644 (file)
@@ -3,6 +3,14 @@ no_footer_links=true
 carousel=true
 page.metaDescription=The official site for Android developers. Provides the Android SDK and documentation for app developers and designers.
 @jd:body
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 
 <div class="wrap">
@@ -13,6 +21,20 @@ page.metaDescription=The official site for Android developers. Provides the Andr
         <div class="frame">
             <ul>
                 <li class="item carousel-home">
+                    <div class="content-left col-9">
+                        <a href="{@docRoot}about/versions/jelly-bean.html"><img src="{@docRoot}images/home/android-jellybean.png" ></a>
+                    </div>
+                    <div class="content-right col-6">
+                    <h1>More Jelly Beans!</h1>
+                    <p>Android 4.3 is now available with a variety of performance improvements
+                    and new developer features. </p>
+                    <p>With this release, Android now supports Bluetooth Low Energy for battery
+                    savings with wireless peripherals, OpenGL ES 3.0 for the most advanced mobile 3D
+                    graphics, MPEG DASH support for high quality media streaming, and much more.</p>
+                    <p><a href="{@docRoot}about/versions/jelly-bean.html" class="button">Learn More</a></p>
+                    </div>
+                </li>
+                <li class="item carousel-home">
                     <div class="content-left col-11" style="padding-top:10px;">
                         <a href="{@docRoot}channels/io2013.html">
                           <img src="{@docRoot}images/home/io-videos-2013.png" style="margin:60px 0 0;
@@ -76,17 +98,6 @@ page.metaDescription=The official site for Android developers. Provides the Andr
                     </div>
                 </li>
                 <li class="item carousel-home">
-                    <div class="content-left col-9">
-                        <a href="{@docRoot}about/versions/jelly-bean.html"><img src="{@docRoot}images/home/android-jellybean.png" ></a>
-                    </div>
-                    <div class="content-right col-6">
-                    <h1>Android 4.2 Jelly Bean!</h1>
-                    <p>The latest version of Jelly Bean is here, with performance optimizations, a refreshed UI, and great new features for developers. </p>
-                    <p>Android 4.2 includes APIs for developing lock sceen widgets and Daydream screensavers, using external displays, creating RTL layouts, building flexible UI with nested Fragments, and much more.</p>
-                    <p><a href="{@docRoot}about/versions/jelly-bean.html" class="button">Learn More</a></p>
-                    </div>
-                </li>
-                <li class="item carousel-home">
                     <div class="content-left col-10">
                         <img src="{@docRoot}images/home/design.png" style="margin-top:30px">
                     </div>
index f4fbd3a..9a353cd 100644 (file)
@@ -778,9 +778,33 @@ Summary:
           static
           
           int</nobr></td>
-          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#auth_client_availability_notification_title">auth_client_availability_notification_title</a></td>
-          <td class="jd-descrcol" width="100%">Title for notification shown when GooglePlayServices is unavailable [CHAR LIMIT=70] 
-</td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#auth_client_needs_enabling_title">auth_client_needs_enabling_title</a></td>
+          <td class="jd-descrcol" width="100%">Title for notification shown when GooglePlayServices needs to be
+        enabled for a application to work.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#auth_client_needs_installation_title">auth_client_needs_installation_title</a></td>
+          <td class="jd-descrcol" width="100%">Title for notification shown when GooglePlayServices needs to be
+        installed for a application to work.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#auth_client_needs_update_title">auth_client_needs_update_title</a></td>
+          <td class="jd-descrcol" width="100%">Title for notification shown when GooglePlayServices needs to be
+        udpated for a application to work.</td>
       </tr>
       
     
@@ -813,12 +837,24 @@ Summary:
           static
           
           int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#auth_client_using_bad_version_title">auth_client_using_bad_version_title</a></td>
+          <td class="jd-descrcol" width="100%">Title for notification shown when a bad version of GooglePlayServices
+        has been installed and needs correction for an application to work.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#common_google_play_services_enable_button">common_google_play_services_enable_button</a></td>
           <td class="jd-descrcol" width="100%">Button in confirmation dialog to enable Google Play services.</td>
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -831,7 +867,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -844,7 +880,7 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -856,7 +892,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -869,7 +905,7 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -882,7 +918,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -895,7 +931,7 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -908,7 +944,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -920,7 +956,7 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -932,7 +968,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -944,7 +980,7 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -957,7 +993,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -970,7 +1006,7 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -982,7 +1018,7 @@ Summary:
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -994,44 +1030,6 @@ Summary:
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
-          <td class="jd-typecol"><nobr>
-          public
-          static
-          
-          int</nobr></td>
-          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#location_client_ulr_inactive_age_under_13">location_client_ulr_inactive_age_under_13</a></td>
-          <td class="jd-descrcol" width="100%">Location client code resources (prefix with location_client) 
-
-        Begin strings for location.reporting
-
-
-        Some InactiveReason names.</td>
-      </tr>
-      
-    
-      <tr class=" api apilevel-" >
-          <td class="jd-typecol"><nobr>
-          public
-          static
-          
-          int</nobr></td>
-          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#location_client_ulr_inactive_age_unknown">location_client_ulr_inactive_age_unknown</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-      <tr class="alt-color api apilevel-" >
-          <td class="jd-typecol"><nobr>
-          public
-          static
-          
-          int</nobr></td>
-          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.string.html#location_client_ulr_inactive_unknown_restriction">location_client_ulr_inactive_unknown_restriction</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
 
 </table>
 
@@ -1314,7 +1312,7 @@ From class
 
 
 
-<A NAME="auth_client_availability_notification_title"></A>
+<A NAME="auth_client_needs_enabling_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1324,7 +1322,7 @@ From class
          
         int
       </span>
-        auth_client_availability_notification_title
+        auth_client_needs_enabling_title
     </h4>
       <div class="api-level">
         
@@ -1334,7 +1332,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when GooglePlayServices is unavailable [CHAR LIMIT=70] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when GooglePlayServices needs to be
+        enabled for a application to work. [CHAR LIMIT=70] 
 </p></div>
 
     
@@ -1343,7 +1342,7 @@ From class
 
 
 
-<A NAME="auth_client_play_services_err_notification_msg"></A>
+<A NAME="auth_client_needs_installation_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1353,7 +1352,7 @@ From class
          
         int
       </span>
-        auth_client_play_services_err_notification_msg
+        auth_client_needs_installation_title
     </h4>
       <div class="api-level">
         
@@ -1363,7 +1362,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when GooglePlayServices is unavailable [CHAR LIMIT=42] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when GooglePlayServices needs to be
+        installed for a application to work. [CHAR LIMIT=70] 
 </p></div>
 
     
@@ -1372,7 +1372,7 @@ From class
 
 
 
-<A NAME="auth_client_requested_by_msg"></A>
+<A NAME="auth_client_needs_update_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1382,7 +1382,7 @@ From class
          
         int
       </span>
-        auth_client_requested_by_msg
+        auth_client_needs_update_title
     </h4>
       <div class="api-level">
         
@@ -1392,7 +1392,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Requested by string saying which app requested the notification. [CHAR LIMIT=42] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when GooglePlayServices needs to be
+        udpated for a application to work. [CHAR LIMIT=70] 
 </p></div>
 
     
@@ -1401,7 +1402,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_enable_button"></A>
+<A NAME="auth_client_play_services_err_notification_msg"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1411,7 +1412,7 @@ From class
          
         int
       </span>
-        common_google_play_services_enable_button
+        auth_client_play_services_err_notification_msg
     </h4>
       <div class="api-level">
         
@@ -1421,9 +1422,7 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Button in confirmation dialog to enable Google Play services.  Clicking it
-        will direct user to application settings of Google Play services where they
-        can enable it [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when GooglePlayServices is unavailable [CHAR LIMIT=42] 
 </p></div>
 
     
@@ -1432,7 +1431,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_enable_text"></A>
+<A NAME="auth_client_requested_by_msg"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1442,7 +1441,7 @@ From class
          
         int
       </span>
-        common_google_play_services_enable_text
+        auth_client_requested_by_msg
     </h4>
       <div class="api-level">
         
@@ -1452,8 +1451,7 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user they need to enable
-        Google Play services in application settings [CHAR LIMIT=NONE] 
+  <div class="jd-tagdata jd-tagdescr"><p>Requested by string saying which app requested the notification. [CHAR LIMIT=42] 
 </p></div>
 
     
@@ -1462,7 +1460,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_enable_title"></A>
+<A NAME="auth_client_using_bad_version_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1472,7 +1470,7 @@ From class
          
         int
       </span>
-        common_google_play_services_enable_title
+        auth_client_using_bad_version_title
     </h4>
       <div class="api-level">
         
@@ -1482,8 +1480,9 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user they need to enable
-        Google Play services in application settings [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title for notification shown when a bad version of GooglePlayServices
+        has been installed and needs correction for an application to work.
+        [CHAR LIMIT=70] 
 </p></div>
 
     
@@ -1492,7 +1491,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_install_button"></A>
+<A NAME="common_google_play_services_enable_button"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1502,7 +1501,7 @@ From class
          
         int
       </span>
-        common_google_play_services_install_button
+        common_google_play_services_enable_button
     </h4>
       <div class="api-level">
         
@@ -1512,7 +1511,9 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Button in confirmation dialog for installing Google Play services [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Button in confirmation dialog to enable Google Play services.  Clicking it
+        will direct user to application settings of Google Play services where they
+        can enable it [CHAR LIMIT=40] 
 </p></div>
 
     
@@ -1521,7 +1522,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_install_text_phone"></A>
+<A NAME="common_google_play_services_enable_text"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1531,7 +1532,7 @@ From class
          
         int
       </span>
-        common_google_play_services_install_text_phone
+        common_google_play_services_enable_text
     </h4>
       <div class="api-level">
         
@@ -1541,8 +1542,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>(For phones) Message in confirmation dialog informing user that
-        they need to install Google Play services (from Play Store) [CHAR LIMIT=NONE] 
+  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user they need to enable
+        Google Play services in application settings [CHAR LIMIT=NONE] 
 </p></div>
 
     
@@ -1551,7 +1552,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_install_text_tablet"></A>
+<A NAME="common_google_play_services_enable_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1561,7 +1562,7 @@ From class
          
         int
       </span>
-        common_google_play_services_install_text_tablet
+        common_google_play_services_enable_title
     </h4>
       <div class="api-level">
         
@@ -1571,8 +1572,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>(For tablets) Message in confirmation dialog informing user that
-        they need to install Google Play services (from Play Store) [CHAR LIMIT=NONE
+  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user they need to enable
+        Google Play services in application settings [CHAR LIMIT=40
 </p></div>
 
     
@@ -1581,7 +1582,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_install_title"></A>
+<A NAME="common_google_play_services_install_button"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1591,7 +1592,7 @@ From class
          
         int
       </span>
-        common_google_play_services_install_title
+        common_google_play_services_install_button
     </h4>
       <div class="api-level">
         
@@ -1601,8 +1602,7 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user that they need to install
-        Google Play services (from Play Store) [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Button in confirmation dialog for installing Google Play services [CHAR LIMIT=40] 
 </p></div>
 
     
@@ -1611,7 +1611,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_unknown_issue"></A>
+<A NAME="common_google_play_services_install_text_phone"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1621,7 +1621,7 @@ From class
          
         int
       </span>
-        common_google_play_services_unknown_issue
+        common_google_play_services_install_text_phone
     </h4>
       <div class="api-level">
         
@@ -1631,8 +1631,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user there is an unknown issue in Google Play
-        services [CHAR LIMIT=NONE] 
+  <div class="jd-tagdata jd-tagdescr"><p>(For phones) Message in confirmation dialog informing user that
+        they need to install Google Play services (from Play Store) [CHAR LIMIT=NONE] 
 </p></div>
 
     
@@ -1641,7 +1641,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_unsupported_text"></A>
+<A NAME="common_google_play_services_install_text_tablet"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1651,7 +1651,7 @@ From class
          
         int
       </span>
-        common_google_play_services_unsupported_text
+        common_google_play_services_install_text_tablet
     </h4>
       <div class="api-level">
         
@@ -1661,7 +1661,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user that Google Play services is not supported on their device [CHAR LIMIT=NONE] 
+  <div class="jd-tagdata jd-tagdescr"><p>(For tablets) Message in confirmation dialog informing user that
+        they need to install Google Play services (from Play Store) [CHAR LIMIT=NONE] 
 </p></div>
 
     
@@ -1670,7 +1671,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_unsupported_title"></A>
+<A NAME="common_google_play_services_install_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1680,7 +1681,7 @@ From class
          
         int
       </span>
-        common_google_play_services_unsupported_title
+        common_google_play_services_install_title
     </h4>
       <div class="api-level">
         
@@ -1690,7 +1691,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user that Google Play services is not supported on their device [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user that they need to install
+        Google Play services (from Play Store) [CHAR LIMIT=40] 
 </p></div>
 
     
@@ -1699,7 +1701,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_update_button"></A>
+<A NAME="common_google_play_services_unknown_issue"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1709,7 +1711,7 @@ From class
          
         int
       </span>
-        common_google_play_services_update_button
+        common_google_play_services_unknown_issue
     </h4>
       <div class="api-level">
         
@@ -1719,7 +1721,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Button in confirmation dialog for updating Google Play services [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user there is an unknown issue in Google Play
+        services [CHAR LIMIT=NONE] 
 </p></div>
 
     
@@ -1728,7 +1731,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_update_text"></A>
+<A NAME="common_google_play_services_unsupported_text"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1738,7 +1741,7 @@ From class
          
         int
       </span>
-        common_google_play_services_update_text
+        common_google_play_services_unsupported_text
     </h4>
       <div class="api-level">
         
@@ -1748,8 +1751,7 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user that they need to update
-        Google Play services (from Play Store) [CHAR LIMIT=NONE] 
+  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user that Google Play services is not supported on their device [CHAR LIMIT=NONE] 
 </p></div>
 
     
@@ -1758,7 +1760,7 @@ From class
 
 
 
-<A NAME="common_google_play_services_update_title"></A>
+<A NAME="common_google_play_services_unsupported_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1768,7 +1770,7 @@ From class
          
         int
       </span>
-        common_google_play_services_update_title
+        common_google_play_services_unsupported_title
     </h4>
       <div class="api-level">
         
@@ -1778,8 +1780,7 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user that they need to update
-        Google Play services (from Play Store) [CHAR LIMIT=40] 
+  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user that Google Play services is not supported on their device [CHAR LIMIT=40] 
 </p></div>
 
     
@@ -1788,7 +1789,7 @@ From class
 
 
 
-<A NAME="common_signin_button_text"></A>
+<A NAME="common_google_play_services_update_button"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1798,7 +1799,7 @@ From class
          
         int
       </span>
-        common_signin_button_text
+        common_google_play_services_update_button
     </h4>
       <div class="api-level">
         
@@ -1808,7 +1809,7 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Sign-in button text [CHAR LIMIT=15
+  <div class="jd-tagdata jd-tagdescr"><p>Button in confirmation dialog for updating Google Play services [CHAR LIMIT=40
 </p></div>
 
     
@@ -1817,7 +1818,7 @@ From class
 
 
 
-<A NAME="common_signin_button_text_long"></A>
+<A NAME="common_google_play_services_update_text"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1827,7 +1828,7 @@ From class
          
         int
       </span>
-        common_signin_button_text_long
+        common_google_play_services_update_text
     </h4>
       <div class="api-level">
         
@@ -1837,7 +1838,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Long form sign-in button text [CHAR LIMIT=30] 
+  <div class="jd-tagdata jd-tagdescr"><p>Message in confirmation dialog informing user that they need to update
+        Google Play services (from Play Store) [CHAR LIMIT=NONE] 
 </p></div>
 
     
@@ -1846,7 +1848,7 @@ From class
 
 
 
-<A NAME="location_client_ulr_inactive_age_under_13"></A>
+<A NAME="common_google_play_services_update_title"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1856,7 +1858,7 @@ From class
          
         int
       </span>
-        location_client_ulr_inactive_age_under_13
+        common_google_play_services_update_title
     </h4>
       <div class="api-level">
         
@@ -1866,13 +1868,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Location client code resources (prefix with location_client) 
-
-        Begin strings for location.reporting
-
-
-        Some InactiveReason names.  See more in OneUp/package/location/res/values/strings.xml
-
+  <div class="jd-tagdata jd-tagdescr"><p>Title of confirmation dialog informing user that they need to update
+        Google Play services (from Play Store) [CHAR LIMIT=40] 
 </p></div>
 
     
@@ -1881,7 +1878,7 @@ From class
 
 
 
-<A NAME="location_client_ulr_inactive_age_unknown"></A>
+<A NAME="common_signin_button_text"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1891,7 +1888,7 @@ From class
          
         int
       </span>
-        location_client_ulr_inactive_age_unknown
+        common_signin_button_text
     </h4>
       <div class="api-level">
         
@@ -1901,7 +1898,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Sign-in button text [CHAR LIMIT=15] 
+</p></div>
 
     
     </div>
@@ -1909,7 +1907,7 @@ From class
 
 
 
-<A NAME="location_client_ulr_inactive_unknown_restriction"></A>
+<A NAME="common_signin_button_text_long"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1919,7 +1917,7 @@ From class
          
         int
       </span>
-        location_client_ulr_inactive_unknown_restriction
+        common_signin_button_text_long
     </h4>
       <div class="api-level">
         
@@ -1929,7 +1927,8 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Long form sign-in button text [CHAR LIMIT=30] 
+</p></div>
 
     
     </div>
index 287f031..564f1eb 100644 (file)
@@ -995,7 +995,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the conflict data. Only valid if <code><a href="/reference/com/google/android/gms/appstate/AppState.html#hasConflict()">hasConflict()</a></code> is <code>true</code>.
+      <ul class="nolist"><li>The conflict data. Only valid if <code><a href="/reference/com/google/android/gms/appstate/AppState.html#hasConflict()">hasConflict()</a></code> is <code>true</code>.
 </li></ul>
   </div>
 
@@ -1029,7 +1029,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the latest known version of conflicting data from the server.
+      <ul class="nolist"><li>The latest known version of conflicting data from the server.
 </li></ul>
   </div>
 
@@ -1063,7 +1063,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the key associated with this app state blob.
+      <ul class="nolist"><li>The key associated with this app state blob.
 </li></ul>
   </div>
 
@@ -1097,7 +1097,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the local data for this app state blob, or null if none present.
+      <ul class="nolist"><li>The local data for this app state blob, or null if none present.
 </li></ul>
   </div>
 
@@ -1131,7 +1131,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the local version of the app state data.
+      <ul class="nolist"><li>The local version of the app state data.
 </li></ul>
   </div>
 
@@ -1165,7 +1165,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>whether or not this app state has conflict data to resolve.
+      <ul class="nolist"><li>Whether or not this app state has conflict data to resolve.
 </li></ul>
   </div>
 
index f02cb98..785f9e7 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index 445ca0b..a6e3ed9 100644 (file)
@@ -1146,16 +1146,16 @@ From class
       <table class="jd-tagtable">
         <tr>
           <th>context</td>
-          <td>the context to use for the connection.</td>
+          <td>The context to use for the connection.</td>
         </tr>
         <tr>
           <th>connectedListener</td>
-          <td>the listener where the results of the asynchronous
+          <td>The listener where the results of the asynchronous
             <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#connect()">connect()</a></code> call are delivered.</td>
         </tr>
         <tr>
           <th>connectionFailedListener</td>
-          <td>the listener which will be notified if the connection
+          <td>The listener which will be notified if the connection
             attempt fails.
 </td>
         </tr>
@@ -1262,11 +1262,15 @@ From class
         <tr>
           <th>accountName</td>
           <td>The account name on the device that should be used by this
-            <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html">AppStateClient</a></code>. Must be non-null.
-</td>
+            <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html">AppStateClient</a></code>. Must be non-null.</td>
         </tr>
       </table>
   </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>This Builder.
+</li></ul>
+  </div>
 
     </div>
 </div>
index 706df18..cf381b3 100644 (file)
@@ -817,7 +817,7 @@ Summary:
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_DEVELOPER_ERROR">STATUS_DEVELOPER_ERROR</a></td>
-        <td class="jd-descrcol" width="100%">The developer has configured something incorrectly with their application.</td>
+        <td class="jd-descrcol" width="100%">Your application is incorrectly configured.</td>
     </tr>
     
     
@@ -870,8 +870,8 @@ Summary:
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_STATE_KEY_LIMIT_EXCEEDED">STATUS_STATE_KEY_LIMIT_EXCEEDED</a></td>
-        <td class="jd-descrcol" width="100%">The application already has data in the maximum number of keys and is attempting to create a
- new one.</td>
+        <td class="jd-descrcol" width="100%">The application already has data in the maximum number of keys (data slots) and is attempting
to create a new one.</td>
     </tr>
     
     
@@ -1816,8 +1816,8 @@ From interface
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The developer has configured something incorrectly with their application. This is a hard
error, since retrying will not fix this.
+  <div class="jd-tagdata jd-tagdescr"><p>Your application is incorrectly configured. This is a hard error, since retrying will not fix
+ this.
 </p></div>
 
     
@@ -2095,9 +2095,9 @@ From interface
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The application already has data in the maximum number of keys and is attempting to create a
- new one. This is a hard error. Subsequent writes to this same key will only succeed after
- some number of keys have been deleted.
+  <div class="jd-tagdata jd-tagdescr"><p>The application already has data in the maximum number of keys (data slots) and is attempting
+ to create a new one. This is a hard error. Subsequent writes to this same key will only
+ succeed after some number of keys have been deleted.
 </p></div>
 
     
@@ -2327,7 +2327,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. This listener is
+          <td>The listener that is called when the load is complete. This listener is
             required to be non-null. The listener is called on the main thread.</td>
         </tr>
         <tr>
@@ -2478,7 +2478,7 @@ From interface
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -2512,7 +2512,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -2556,7 +2556,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
 
@@ -2600,7 +2600,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
 
@@ -2640,7 +2640,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. This listener is
+          <td>The listener that is called when the load is complete. This listener is
             required to be non-null. The listener is called on the main thread.
 </td>
         </tr>
@@ -2683,7 +2683,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. This listener is
+          <td>The listener that is called when the load is complete. This listener is
             required to be non-null. The listener is called on the main thread.</td>
         </tr>
         <tr>
@@ -2765,9 +2765,10 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -2816,11 +2817,12 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
@@ -2880,7 +2882,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the operation is complete. This listener is
+          <td>The listener that is called when the operation is complete. This listener is
             required to be non-null. The listener is called on the main thread.</td>
         </tr>
         <tr>
@@ -2890,11 +2892,11 @@ From interface
         </tr>
         <tr>
           <th>resolvedVersion</td>
-          <td>version code from previous <code>onStateConflict</code> call.</td>
+          <td>Version code from previous <code>onStateConflict</code> call.</td>
         </tr>
         <tr>
           <th>resolvedData</td>
-          <td>data to submit as the current data. <code>null</code> is a valid value here.
+          <td>Data to submit as the current data. <code>null</code> is a valid value here.
             May be a maximum of <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#getMaxStateSize()">getMaxStateSize()</a></code> bytes.
 </td>
         </tr>
@@ -2937,7 +2939,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when sign-out is complete. This listener is
+          <td>The listener that is called when sign-out is complete. This listener is
             required to be non-null. The listener is called on the main thread.
 </td>
         </tr>
@@ -3106,7 +3108,7 @@ From interface
         </tr>
         <tr>
           <th>data</td>
-          <td>the data to store. May be a maximum of <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#getMaxStateSize()">getMaxStateSize()</a></code> bytes.
+          <td>The data to store. May be a maximum of <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#getMaxStateSize()">getMaxStateSize()</a></code> bytes.
 </td>
         </tr>
       </table>
@@ -3151,7 +3153,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the write operation is complete. This
+          <td>The listener that is called when the write operation is complete. This
             listener is required to be non-null. The listener is called on the main thread.</td>
         </tr>
         <tr>
@@ -3161,7 +3163,7 @@ From interface
         </tr>
         <tr>
           <th>data</td>
-          <td>the data to store. May be a maximum of <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#getMaxStateSize()">getMaxStateSize()</a></code> bytes.
+          <td>The data to store. May be a maximum of <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#getMaxStateSize()">getMaxStateSize()</a></code> bytes.
 </td>
         </tr>
       </table>
index f83a2e7..93da937 100644 (file)
@@ -1130,28 +1130,28 @@ From class
         </tr>
         <tr>
           <th>alwaysPromptForAccount</td>
-          <td>if set the account chooser screen is always shown, otherwise
- it is only shown when there is more than one account from which to choose</td>
+          <td>if set, the account chooser screen is always shown, otherwise
+ it is only shown when there is more than one account from which to choose.</td>
         </tr>
         <tr>
           <th>descriptionOverrideText</td>
           <td>if non-null this string is used as the description in the
- accounts chooser screen rather than the default</td>
+ accounts chooser screen rather than the default.</td>
         </tr>
         <tr>
           <th>addAccountAuthTokenType</td>
           <td>this string is passed as the <code><a href="/reference/android/accounts/AccountManager.html#addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler)">addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback<Bundle>, Handler)</a></code>
- authTokenType parameter</td>
+ authTokenType parameter.</td>
         </tr>
         <tr>
           <th>addAccountRequiredFeatures</td>
           <td>this string array is passed as the
- <code><a href="/reference/android/accounts/AccountManager.html#addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler)">addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback<Bundle>, Handler)</a></code> requiredFeatures parameter</td>
+ <code><a href="/reference/android/accounts/AccountManager.html#addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler)">addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback<Bundle>, Handler)</a></code> requiredFeatures parameter.</td>
         </tr>
         <tr>
           <th>addAccountOptions</td>
           <td>This <code><a href="/reference/android/os/Bundle.html">Bundle</a></code> is passed as the
- <code><a href="/reference/android/accounts/AccountManager.html#addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler)">addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback<Bundle>, Handler)</a></code> options parameter</td>
+ <code><a href="/reference/android/accounts/AccountManager.html#addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler)">addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback<Bundle>, Handler)</a></code> options parameter.</td>
         </tr>
       </table>
   </div>
index eaed4e5..5ca070d 100644 (file)
@@ -1919,7 +1919,7 @@ From class
  will start any intents requiring user interaction.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If there is a resolution that can be started.
+      <ul class="nolist"><li>true if there is a resolution that can be started.
 </li></ul>
   </div>
 
@@ -1953,7 +1953,7 @@ From class
   <div class="jd-tagdata jd-tagdescr"><p>Returns true if the connection was successful.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the connection was successful, false if there was an error.
+      <ul class="nolist"><li>true if the connection was successful, false if there was an error.
 </li></ul>
   </div>
 
index 05c531e..e768c22 100644 (file)
@@ -764,7 +764,7 @@ Summary:
 
 
 <h2>Class Overview</h2>
-<p itemprop="articleBody">
+<p itemprop="articleBody">Base class for clients that connect with Google Play services.
 </p>
 
 
@@ -1186,7 +1186,7 @@ Summary:
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -1220,7 +1220,7 @@ Summary:
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -1264,7 +1264,7 @@ Summary:
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
   <div class="jd-tagdata">
@@ -1313,7 +1313,7 @@ Summary:
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
   <div class="jd-tagdata">
@@ -1350,9 +1350,10 @@ Summary:
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -1401,11 +1402,12 @@ Summary:
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
index bb1ee84..a9d9023 100644 (file)
@@ -1296,8 +1296,8 @@ From class
         <span class="jd-tagtitle">Constant Value: </span>
         <span>
             
-                3136000
-                (0x002fda00)
+                3159000
+                (0x003033d8)
             
         </span>
         </div>
index f9e7220..e5f2ea9 100644 (file)
@@ -1362,13 +1362,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
diff --git a/docs/html/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html b/docs/html/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html
deleted file mode 100644 (file)
index 72edcc3..0000000
+++ /dev/null
@@ -1,1552 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>ImageManager.ImageReceiver | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-<body class="gc-documentation google
-  develop" itemscope itemtype="http://schema.org/Article">
-  <div id="doc-api-level" class="" style="display:none"></div>
-  <a name="top"></a>
-
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo">
-          <a href="/index.html">
-            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
-          </a>
-          <div class="btn-quicknav" id="btn-quicknav">
-               <a href="#" class="arrow-inactive">Quicknav</a>
-                             <a href="#" class="arrow-active">Quicknav</a>
-          </div>
-          </div>
-            <ul class="nav-x col-9">
-                <li class="design">
-                  <a href="/design/index.html"
-                  zh-tw-lang="設計"
-                  zh-cn-lang="设计"
-                  ru-lang="Проектирование"
-                  ko-lang="디자인"
-                  ja-lang="設計"
-                  es-lang="Diseñar"               
-                  >Design</a></li>
-                <li class="develop"><a href="/develop/index.html"
-                  zh-tw-lang="開發"
-                  zh-cn-lang="开发"
-                  ru-lang="Разработка"
-                  ko-lang="개발"
-                  ja-lang="開発"
-                  es-lang="Desarrollar"               
-                  >Develop</a></li>
-                <li class="distribute last"><a href="/distribute/index.html"
-                  zh-tw-lang="發佈"
-                  zh-cn-lang="分发"
-                  ru-lang="Распространение"
-                  ko-lang="배포"
-                  ja-lang="配布"
-                  es-lang="Distribuir"               
-                  >Distribute</a></li>
-            </ul>
-            
-            <!-- New Search -->
-            <div class="menu-container">
-            <div class="moremenu">
-    <div id="more-btn"></div>
-  </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div>
-    <div class="bottom"></div>
-  </div>
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  </div>
-  <!-- /New Search>
-          
-          
-          <!-- Expanded quicknav -->
-           <div id="quicknav" class="col-9">
-                <ul>
-                    <li class="design">
-                      <ul>
-                        <li><a href="/design/index.html">Get Started</a></li>
-                        <li><a href="/design/style/index.html">Style</a></li>
-                        <li><a href="/design/patterns/index.html">Patterns</a></li>
-                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
-                        <li><a href="/design/downloads/index.html">Downloads</a></li>
-                        <li><a href="/design/videos/index.html">Videos</a></li>
-                      </ul>
-                    </li>
-                    <li class="develop">
-                      <ul>
-                        <li><a href="/training/index.html"
-                          zh-tw-lang="訓練課程"
-                          zh-cn-lang="培训"
-                          ru-lang="Курсы"
-                          ko-lang="교육"
-                          ja-lang="トレーニング"
-                          es-lang="Capacitación"               
-                          >Training</a></li>
-                        <li><a href="/guide/components/index.html"
-                          zh-tw-lang="API 指南"
-                          zh-cn-lang="API 指南"
-                          ru-lang="Руководства по API"
-                          ko-lang="API 가이드"
-                          ja-lang="API ガイド"
-                          es-lang="Guías de la API"               
-                          >API Guides</a></li>
-                        <li><a href="/reference/packages.html"
-                          zh-tw-lang="參考資源"
-                          zh-cn-lang="参考"
-                          ru-lang="Справочник"
-                          ko-lang="참조문서"
-                          ja-lang="リファレンス"
-                          es-lang="Referencia"               
-                          >Reference</a></li>
-                        <li><a href="/tools/index.html"
-                          zh-tw-lang="相關工具"
-                          zh-cn-lang="工具"
-                          ru-lang="Инструменты"
-                          ko-lang="도구"
-                          ja-lang="ツール"
-                          es-lang="Herramientas"               
-                          >Tools</a>
-                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
-                        </li>
-                        <li><a href="/google/index.html">Google Services</a>
-                        </li>
-                      </ul>
-                    </li>
-                    <li class="distribute last">
-                      <ul>
-                        <li><a href="/distribute/index.html">Google Play</a></li>
-                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
-                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
-                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
-                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
-                        <li><a href="/distribute/open.html">Open Distribution</a></li>
-                      </ul>
-                    </li>
-                </ul>
-          </div>
-          <!-- /Expanded quicknav -->
-        </div>
-    </div>
-    <!-- /Header -->
-    
-    
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-    
-    
-  
-    <!-- Secondary x-nav -->
-    <div id="nav-x">
-        <div class="wrap">
-            <ul class="nav-x col-9 develop" style="width:100%">
-                <li class="training"><a href="/training/index.html"
-                  zh-tw-lang="訓練課程"
-                  zh-cn-lang="培训"
-                  ru-lang="Курсы"
-                  ko-lang="교육"
-                  ja-lang="トレーニング"
-                  es-lang="Capacitación"               
-                  >Training</a></li>
-                <li class="guide"><a href="/guide/components/index.html"
-                  zh-tw-lang="API 指南"
-                  zh-cn-lang="API 指南"
-                  ru-lang="Руководства по API"
-                  ko-lang="API 가이드"
-                  ja-lang="API ガイド"
-                  es-lang="Guías de la API"               
-                  >API Guides</a></li>
-                <li class="reference"><a href="/reference/packages.html"
-                  zh-tw-lang="參考資源"
-                  zh-cn-lang="参考"
-                  ru-lang="Справочник"
-                  ko-lang="참조문서"
-                  ja-lang="リファレンス"
-                  es-lang="Referencia"               
-                  >Reference</a></li>
-                <li class="tools"><a href="/tools/index.html"
-                  zh-tw-lang="相關工具"
-                  zh-cn-lang="工具"
-                  ru-lang="Инструменты"
-                  ko-lang="도구"
-                  ja-lang="ツール"
-                  es-lang="Herramientas"
-                  >Tools</a></li>
-                <li class="google"><a href="/google/index.html"
-                  >Google Services</a>
-                </li>
-            </ul>
-        </div>
-        
-    </div>
-    <!-- /Sendondary x-nav -->
-  
-
-
-
-
-  
-
-
-  
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/index.html">
-          <span class="en">Overview</span>
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/games.html">
-          <span class="en">Games</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/location.html">
-          <span class="en">Location</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
-          <span class="en">Google+</span>
-                </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
-          <span class="en">Google Maps</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
-          <span class="en">Authorization</span>
-      </a></div>
-  </li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/play-services/index.html">
-      <span class="en">Google Play Services</span></a>
-    </div>
-    <ul>
-      <li><a href="/google/play-services/setup.html">
-          <span class="en">Setup</span></a>
-      </li>
-      <li id="gms-tree-list" class="nav-section">
-        <div class="nav-section-header">
-          <a href="/reference/gms-packages.html">
-            <span class="en">Reference</span>
-          </a>
-        <div>
-      </li>
-    </ul>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/play/billing/index.html">
-      <span class="en">Google Play In-app Billing</span></a>
-    </div>
-    <ul>
-      <li><a href="/google/play/billing/billing_overview.html">
-              <span class="en">Overview</span></a>
-      </li>
-      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
-              <span class="en">Version 3 API</span></a></div>
-              <ul>
-              <li><a href="/google/play/billing/billing_integrate.html">
-              <span class="en">Implementing the API</span></a></li>
-              <li><a href="/google/play/billing/billing_reference.html">
-              <span class="en">Reference</span></a></li>
-              </ul>
-      </li>
-      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
-              <span class="en">Version 2 API</span></a></div>
-              <ul>
-              <li><a href="/google/play/billing/v2/billing_integrate.html">
-              <span class="en">Implementing the API</span></a></li>
-              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
-              <span class="en">Subscriptions</span></a></li>
-              <li><a href="/google/play/billing/v2/billing_reference.html">
-              <span class="en">Reference</span></a></li>
-              </ul>
-      </li>
-      <li><a href="/google/play/billing/billing_subscriptions.html">
-              <span class="en">Subscriptions</span></a>
-      </li>
-      <li><a href="/google/play/billing/billing_best_practices.html">
-              <span class="en">Security and Design</span></a>
-      </li>
-      <li><a href="/google/play/billing/billing_testing.html">
-              <span class="en">Testing In-app Billing</span></a>
-      </li>
-      <li><a href="/google/play/billing/billing_admin.html">
-              <span class="en">Administering In-app Billing</span></a>
-      </li>
-      <li><a href="/google/play/billing/gp-purchase-status-api.html">
-              <span class="en">Purchase Status API</span></a>
-      </li>
-      <li><a href="/google/play/billing/versions.html">
-              <span class="en">Version Notes</span></a>
-      </li>
-    </ul>
-  </li>
-
-
-
-  <li class="nav-section">
-      <div class="nav-section-header"><a href="/google/gcm/index.html">
-        <span class="en">Google Cloud Messaging</span></a>
-      </div>
-      <ul>
-        <li><a href="/google/gcm/gs.html">
-            <span class="en">Getting Started</span></a>
-        </li>
-        <li><a href="/google/gcm/gcm.html">
-            <span class="en">Architectural Overview</span></a>
-        </li>
-         <li><a href="/google/gcm/ccs.html">
-              <span class="en">Cloud Connection Server</span></a>
-        </li>
-        <li><a href="/google/gcm/notifications.html">
-              <span class="en">User Notifications</span></a>
-        </li>
-        <li><a href="/google/gcm/client.html">
-            <span class="en">GCM Client</span></a>
-        </li>
-        <li><a href="/google/gcm/server.html">
-            <span class="en">GCM Server</span></a>
-        </li>
-        <li><a href="/google/gcm/adv.html">
-            <span class="en">Advanced Topics</span></a>
-        </li>
-        <li><a href="/google/gcm/c2dm.html">
-            <span class="en">Migration</span></a>
-        </li>
-        <li id="gcm-tree-list" class="nav-section">
-          <div class="nav-section-header">
-            <a href="/reference/gcm-packages.html">
-              <span class="en">Reference</span>
-            </a>
-          <div>
-        </li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/play/dist.html">
-      <span class="en">Google Play Distribution</span></a>
-    </div>
-    <ul>
-      <li><a href="/google/play/filters.html">
-          <span class="en">Filters on Google Play</span></a>
-      </li>
-
-      <li><a href="/google/play/publishing/multiple-apks.html">
-          <span class="en">Multiple APK Support</span></a>
-      </li>
-      <li><a href="/google/play/expansion-files.html">
-          <span class="en">APK Expansion Files</span></a>
-      </li>
-      <li class="nav-section">
-        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
-          <span class="en">Application Licensing</span></a>
-        </div>
-        <ul>
-          <li><a href="/google/play/licensing/overview.html">
-              <span class="en">Licensing Overview</span></a>
-          </li>
-          <li><a href="/google/play/licensing/setting-up.html">
-              <span class="en">Setting Up for Licensing</span></a>
-          </li>
-          <li><a href="/google/play/licensing/adding-licensing.html">
-              <span class="en">Adding Licensing to Your App</span></a>
-          </li>
-          <li><a href="/google/play/licensing/licensing-reference.html">
-              <span class="en">Licensing Reference</span></a>
-          </li>
-        </ul>
-      </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/backup/index.html">
-      Android Backup Service</a>
-    </div>
-    <ul>
-      <li><a href="/google/backup/signup.html">
-          Register</a>
-      </li>
-    </ul>
-  </li>
-
-  </ul>
-
-</li>
-
-
-
-</ul>
-
-<script type="text/javascript">
-<!--
-    buildToggleLists();
-    changeNavLang(getLangPref());
-//-->
-</script>
-
-
-        
-
-      </div>
-      <script type="text/javascript">
-       showGoogleRefTree();
-    
-      </script>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-     
-
-
-
-<div class="col-12"  id="doc-col">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-   
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-   
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-  <a href="#inhconstants">Inherited Constants</a>
-  
-
-
-
-  &#124; <a href="#inhfields">Inherited Fields</a>
-  
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-    final 
-    
-    class
-<h1 itemprop="name">ImageManager.ImageReceiver</h1>
-
-
-
-  
-  
-  
-
-  
-    extends ResultReceiver<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-               
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-               
-        <td colspan="2" class="jd-inheritance-class-cell">android.os.ResultReceiver</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-               
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.images.ImageManager.ImageReceiver</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
-          ><img id="inherited-constants-android.os.Parcelable-trigger"
-          src="/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
-  <div id="inherited-constants-android.os.Parcelable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">int</td>
-        <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol">int</td>
-        <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="inhfields" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Fields</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-fields-android.os.ResultReceiver" class="jd-expando-trigger closed"
-          ><img id="inherited-fields-android.os.ResultReceiver-trigger"
-          src="/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>From class
-android.os.ResultReceiver
-<div id="inherited-fields-android.os.ResultReceiver">
-  <div id="inherited-fields-android.os.ResultReceiver-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-fields-android.os.ResultReceiver-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-    
-      <tr class="alt-color api apilevel-" >
-          <td class="jd-typecol"><nobr>
-          public
-          static
-          final
-          Creator&lt;ResultReceiver&gt;</nobr></td>
-          <td class="jd-linkcol">CREATOR</td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html#addOnImageLoadedListenerHolder(com.google.android.gms.common.images.ImageManager.ListenerHolder)">addOnImageLoadedListenerHolder</a></span>(ImageManager.ListenerHolder imageViewLoadListener)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Uri</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html#getUri()">getUri</a></span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html#onReceiveResult(int, android.os.Bundle)">onReceiveResult</a></span>(int resultCode, Bundle resultData)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html#removeOnImageLoadedListenerHolder(com.google.android.gms.common.images.ImageManager.ListenerHolder)">removeOnImageLoadedListenerHolder</a></span>(ImageManager.ListenerHolder imageViewLoadListener)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.ResultReceiver" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-android.os.ResultReceiver-trigger"
-          src="/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  android.os.ResultReceiver
-
-<div id="inherited-methods-android.os.ResultReceiver">
-  <div id="inherited-methods-android.os.ResultReceiver-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-android.os.ResultReceiver-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">describeContents</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onReceiveResult</span>(int arg0, Bundle arg1)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">send</span>(int arg0, Bundle arg1)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-android.os.Parcelable-trigger"
-          src="/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
-  <div id="inherited-methods-android.os.Parcelable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">describeContents</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addOnImageLoadedListenerHolder(com.google.android.gms.common.images.ImageManager.ListenerHolder)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addOnImageLoadedListenerHolder</span>
-      <span class="normal">(ImageManager.ListenerHolder imageViewLoadListener)</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getUri()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Uri
-      </span>
-      <span class="sympad">getUri</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="onReceiveResult(int, android.os.Bundle)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">onReceiveResult</span>
-      <span class="normal">(int resultCode, Bundle resultData)</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="removeOnImageLoadedListenerHolder(com.google.android.gms.common.images.ImageManager.ListenerHolder)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">removeOnImageLoadedListenerHolder</span>
-      <span class="normal">(ImageManager.ListenerHolder imageViewLoadListener)</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is licensed under <a
-  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
-  For details and restrictions, see the <a href="/license.html">
-  Content License</a>.
-  </div>
-  <div id="build_info">
-    
-<script src="/timestamp.js" type="text/javascript"></script>
-<script>document.write(BUILD_TIMESTAMP)</script>
-
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-</body>
-</html>
index efa3a83..c51f59f 100644 (file)
@@ -679,6 +679,10 @@ onkeyup="return search_changed(event, false, '/')" />
 <div class="jd-descr">
 
 
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener interface for handling when the image for a particular URI has been loaded.
+</p>
+
 
 
 
@@ -749,6 +753,8 @@ onkeyup="return search_changed(event, false, '/')" />
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html#onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable)">onImageLoaded</a></span>(Uri uri, Drawable drawable)</nobr>
         
+        <div class="jd-descrdiv">Listener method invoked when an image has been loaded.</div>
+  
   </td></tr>
 
 
@@ -823,7 +829,21 @@ onkeyup="return search_changed(event, false, '/')" />
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Listener method invoked when an image has been loaded.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>uri</td>
+          <td>The URI of the loaded image.</td>
+        </tr>
+        <tr>
+          <th>drawable</td>
+          <td>Drawable containing the image.
+</td>
+        </tr>
+      </table>
+  </div>
 
     </div>
 </div>
index b1d9572..a89fb11 100644 (file)
@@ -767,21 +767,9 @@ Summary:
          
          
         
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html">ImageManager.ImageReceiver</a></td>
-      <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
         interface</nobr></td>
       <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a></td>
-      <td class="jd-descrcol" width="100%">&nbsp;</td>
+      <td class="jd-descrcol" width="100%">Listener interface for handling when the image for a particular URI has been loaded.&nbsp;</td>
     </tr>
     
     
@@ -1269,7 +1257,7 @@ From class
         </tr>
         <tr>
           <th>uri</td>
-          <td>Uri to load the image data from.</td>
+          <td>URI to load the image data from.</td>
         </tr>
       </table>
   </div>
@@ -1356,8 +1344,8 @@ From class
  <p>
  The result is delivered to the given listener on the main thread.
  <p>
- If we don't find a result image view will be set to the given default resource if the image
- needs to be loaded asynchronously.</p></div>
+ If a result is not found, the image view will be set to the given default resource if the
image needs to be loaded asynchronously.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -1367,7 +1355,7 @@ From class
         </tr>
         <tr>
           <th>uri</td>
-          <td>Uri to load the image data from.</td>
+          <td>URI to load the image data from.</td>
         </tr>
         <tr>
           <th>defaultResId</td>
@@ -1417,7 +1405,7 @@ From class
         </tr>
         <tr>
           <th>uri</td>
-          <td>Uri to load the image data from.
+          <td>URI to load the image data from.
 </td>
         </tr>
       </table>
@@ -1471,7 +1459,7 @@ From class
         </tr>
         <tr>
           <th>uri</td>
-          <td>Uri to load the image data from.</td>
+          <td>URI to load the image data from.</td>
         </tr>
         <tr>
           <th>defaultResId</td>
index b5d1582..b8b6f4a 100644 (file)
@@ -640,6 +640,11 @@ onkeyup="return search_changed(event, false, '/')" />
 <div id="jd-content" class="api apilevel-">
 
 
+  <div class="jd-descr">
+    Contains classes for loading images from Google Play services.
+
+  </div>
+
 
 
 
@@ -651,7 +656,7 @@ onkeyup="return search_changed(event, false, '/')" />
   <table class="jd-sumtable-expando">
         <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a></td>
-              <td class="jd-descrcol" width="100%">&nbsp;</td>
+              <td class="jd-descrcol" width="100%">Listener interface for handling when the image for a particular URI has been loaded.&nbsp;</td>
           </tr>
   </table>
     </div>
@@ -667,10 +672,6 @@ onkeyup="return search_changed(event, false, '/')" />
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/images/ImageManager.html">ImageManager</a></td>
               <td class="jd-descrcol" width="100%">This class is used to load images from the network and handles local caching for you.&nbsp;</td>
           </tr>
-        <tr class=" api apilevel-" >
-              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html">ImageManager.ImageReceiver</a></td>
-              <td class="jd-descrcol" width="100%">&nbsp;</td>
-          </tr>
   </table>
     </div>
   
index 2e43027..b8877eb 100644 (file)
@@ -656,8 +656,7 @@ onkeyup="return search_changed(event, false, '/')" />
   <table class="jd-sumtable-expando">
         <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html">GooglePlayServicesClient</a></td>
-              <td class="jd-descrcol" width="100%">
-&nbsp;</td>
+              <td class="jd-descrcol" width="100%">Base class for clients that connect with Google Play services.&nbsp;</td>
           </tr>
         <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a></td>
index d45ede0..e9f4a6b 100644 (file)
@@ -1119,24 +1119,6 @@ android.os.Parcelable
   </td></tr>
 
 
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#isPlayEnabledGame()">isPlayEnabledGame</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Indicates whether the game is a Google Play-Enabled game.</div>
-  
-  </td></tr>
-
-
 
 </table>
 
@@ -1797,40 +1779,6 @@ From interface
 </div>
 
 
-<A NAME="isPlayEnabledGame()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">isPlayEnabledGame</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Indicates whether the game is a Google Play-Enabled game.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>Whether the game is a Google Play-Enabled game.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
 
 
 
index 0791927..61678a6 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index df5ef52..82e1ef0 100644 (file)
@@ -1271,8 +1271,6 @@ android.os.Parcelable
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#isPlayEnabledGame()">isPlayEnabledGame</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Indicates whether the game is a Google Play-Enabled game.</div>
-  
   </td></tr>
 
 
@@ -1899,24 +1897,6 @@ From interface
   </td></tr>
 
 
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#isPlayEnabledGame()">isPlayEnabledGame</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Indicates whether the game is a Google Play-Enabled game.</div>
-  
-  </td></tr>
-
-
 </table>
   </div>
 </div>
@@ -2746,12 +2726,7 @@ From interface
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Indicates whether the game is a Google Play-Enabled game.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>Whether the game is a Google Play-Enabled game.
-</li></ul>
-  </div>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
 </div>
index d017bb0..d4d7253 100644 (file)
@@ -1129,12 +1129,12 @@ From class
  to "leave the room" from the real-time multiplayer "waiting room" screen.
 
  (Note that if the user simply exits the "waiting room" screen by pressing
- Back, that does *not* indicate that the user wants to leave the current room.
+ Back, that does <em>not</em> indicate that the user wants to leave the current room.
  The waiting room screen will return <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code> in that
  case.)</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="/">ERROR(/GamesClient#getRealTimeWaitingRoomIntent())</a></code></li>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeWaitingRoomIntent(com.google.android.gms.games.multiplayer.realtime.Room, int)">getRealTimeWaitingRoomIntent(Room, int)</a></code></li>
       </ul>
   </div>
 
index 307da11..5cfd8ab 100644 (file)
@@ -1183,16 +1183,16 @@ From class
       <table class="jd-tagtable">
         <tr>
           <th>context</td>
-          <td>the context to use for the connection.</td>
+          <td>The context to use for the connection.</td>
         </tr>
         <tr>
           <th>connectedListener</td>
-          <td>the listener where the results of the asynchronous
+          <td>The listener where the results of the asynchronous
             <code><a href="/reference/com/google/android/gms/games/GamesClient.html#connect()">connect()</a></code> call are delivered.</td>
         </tr>
         <tr>
           <th>connectionFailedListener</td>
-          <td>the listener which will be notified if the connection
+          <td>The listener which will be notified if the connection
             attempt fails.
 </td>
         </tr>
index 1a107bc..63c4d3a 100644 (file)
@@ -852,7 +852,7 @@ Summary:
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_RELIABLE_MESSAGE_LEN">MAX_RELIABLE_MESSAGE_LEN</a></td>
         <td class="jd-descrcol" width="100%">This gives the maximum message size supported via the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code>
APIs (excluding protocol headers).</td>
methods (excluding protocol headers).</td>
     </tr>
     
     
@@ -860,7 +860,7 @@ Summary:
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_UNRELIABLE_MESSAGE_LEN">MAX_UNRELIABLE_MESSAGE_LEN</a></td>
         <td class="jd-descrcol" width="100%">This gives the maximum (unfragmented) message size supported via the
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> APIs (excluding protocol headers).</td>
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> methods (excluding protocol headers).</td>
     </tr>
     
     
@@ -934,8 +934,8 @@ Summary:
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INVALID_REAL_TIME_ROOM_ID">STATUS_INVALID_REAL_TIME_ROOM_ID</a></td>
-        <td class="jd-descrcol" width="100%">Constant indicating that real-time room ID provided by the user is not a valid or it is
not currently active real-time room.</td>
+        <td class="jd-descrcol" width="100%">Constant indicating that the real-time room ID provided to the operation was not valid, or
does not correspond to the currently active real-time room.</td>
     </tr>
     
     
@@ -1025,8 +1025,8 @@ Summary:
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_REAL_TIME_MESSAGE_FAILED">STATUS_REAL_TIME_MESSAGE_FAILED</a></td>
-        <td class="jd-descrcol" width="100%">Status code returned from <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> and the
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code> APIs when the message send operation failed due to an
+        <td class="jd-descrcol" width="100%">Status code returned from the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> and
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code> methods when the message send operation failed due to an
  immediate error.</td>
     </tr>
     
@@ -1275,6 +1275,22 @@ Summary:
             
             
             
+            <a href="/reference/com/google/android/gms/games/Game.html">Game</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getCurrentGame()">getCurrentGame</a></span>()</nobr>
+        
+  </td></tr>
+
+
+        
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             <a href="/reference/com/google/android/gms/games/Player.html">Player</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
@@ -1284,7 +1300,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1300,7 +1316,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1318,7 +1334,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1336,7 +1352,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1354,7 +1370,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1373,7 +1389,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1391,7 +1407,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1410,7 +1426,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1428,7 +1444,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1446,7 +1462,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1465,7 +1481,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1483,7 +1499,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1502,7 +1518,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1521,7 +1537,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1539,7 +1555,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1557,7 +1573,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1575,7 +1591,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1593,7 +1609,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1612,7 +1628,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1630,7 +1646,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1648,7 +1664,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1666,7 +1682,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1684,7 +1700,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1702,7 +1718,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1720,7 +1736,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1738,7 +1754,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1756,7 +1772,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1774,7 +1790,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1792,7 +1808,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1810,7 +1826,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1828,7 +1844,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1847,7 +1863,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1865,7 +1881,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1883,7 +1899,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1901,7 +1917,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1919,7 +1935,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1937,7 +1953,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1955,7 +1971,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1973,7 +1989,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1992,7 +2008,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2011,7 +2027,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2029,7 +2045,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2047,7 +2063,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2065,7 +2081,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2083,7 +2099,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2101,7 +2117,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2119,7 +2135,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2137,7 +2153,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2155,7 +2171,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2173,7 +2189,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2910,7 +2926,7 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>This gives the maximum message size supported via the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code>
APIs (excluding protocol headers).
methods (excluding protocol headers).
 </p></div>
 
     
@@ -2950,7 +2966,7 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>This gives the maximum (unfragmented) message size supported via the
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> APIs (excluding protocol headers).
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> methods (excluding protocol headers).
 </p></div>
 
     
@@ -3342,8 +3358,8 @@ From interface
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that real-time room ID provided by the user is not a valid or it is
not currently active real-time room.
+  <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that the real-time room ID provided to the operation was not valid, or
does not correspond to the currently active real-time room.
 </p></div>
 
     
@@ -3820,8 +3836,8 @@ From interface
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Status code returned from <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> and the
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code> APIs when the message send operation failed due to an
+  <div class="jd-tagdata jd-tagdescr"><p>Status code returned from the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> and
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code> methods when the message send operation failed due to an
  immediate error.
 </p></div>
 
@@ -4095,7 +4111,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>config</td>
-          <td>the real-time room configuration.
+          <td>The real-time room configuration.
 </td>
         </tr>
       </table>
@@ -4134,7 +4150,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>invitationId</td>
-          <td>the ID of the invitation to decline.
+          <td>The ID of the invitation to decline.
 </td>
         </tr>
       </table>
@@ -4204,7 +4220,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>invitationId</td>
-          <td>the ID of the invitation to dismiss.
+          <td>The ID of the invitation to dismiss.
 </td>
         </tr>
       </table>
@@ -4246,7 +4262,7 @@ From interface
  state.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the currently signed in player's
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the currently signed in player's
          achievements.
 </li></ul>
   </div>
@@ -4287,7 +4303,7 @@ From interface
  state.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the list of leaderboards for a game.
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the list of leaderboards for a game.
 </li></ul>
   </div>
 
@@ -4378,6 +4394,41 @@ From interface
 </div>
 
 
+<A NAME="getCurrentGame()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        <a href="/reference/com/google/android/gms/games/Game.html">Game</a>
+      </span>
+      <span class="sympad">getCurrentGame</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/Game.html">Game</a></code> metadata for the current game. May be null if the metadata is not
+         available locally.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="getCurrentPlayer()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -4438,7 +4489,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the player ID for the currently signed in player.
+      <ul class="nolist"><li>The player ID for the currently signed in player.
 </li></ul>
   </div>
 
@@ -4473,13 +4524,13 @@ From interface
  that this must be invoked using <code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code> so that
  the identity of the calling package can be established.
  <p>
- If the user canceled the result will be <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code>. If the user
+ If the user canceled, the result will be <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code>. If the user
  selected an invitation to accept, the result will be <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code> and the data
  intent will contain the selected invitation as a parcelable extra in
  <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_INVITATION">EXTRA_INVITATION</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the invitation inbox UI.
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the invitation inbox UI.
 </li></ul>
   </div>
 
@@ -4528,7 +4579,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the specified leaderboard.
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the specified leaderboard.
 </li></ul>
   </div>
 
@@ -4573,13 +4624,13 @@ From interface
         </tr>
         <tr>
           <th>participantId</td>
-          <td>the ID of the participant to whom this socket is bound</td>
+          <td>The ID of the participant to whom this socket is bound</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>instance of a LocalSocket, or null on error.
+      <ul class="nolist"><li>An instance of a LocalSocket, or null on error.
 </li></ul>
   </div>
 
@@ -4626,8 +4677,18 @@ From interface
  data intent containing a <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a></code> object in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_ROOM">EXTRA_ROOM</a></code> that represents
  the current state of the Room that you originally passed as a parameter here.
  <p>
- Note that the waiting room itself will never explicitly take any action to change
- the state of the room or its participants.  So if the activity result is
+ If desired, the waiting room can allow the user to start playing the game even before
+ the room is fully connected.  This is controlled by the <code>minParticipantsToStart</code>
+ parameter: if at least that many participants (including the current player) are
+ connected to the room, a "Start playing" menu item will become enabled in the waiting
+ room UI.  Setting <code>minParticipantsToStart</code> to 0 means that "Start playing" will
+ always be available, and a value of <code><a href="/reference/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</a></code> will disable the item
+ completely.  Note: if you do allow the user to start early, you'll need to handle that
+ situation by explicitly telling the other connected peers that the game is now starting;
+ see the developer documentation for more details.
+ <p>
+ Finally, note that the waiting room itself will never explicitly take any action to
+ change the state of the room or its participants.  So if the activity result is
  <code><a href="/reference/com/google/android/gms/games/GamesActivityResultCodes.html#RESULT_LEFT_ROOM">RESULT_LEFT_ROOM</a></code>, it's the caller's responsibility
  to actually leave the room.  Or if the result is <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code>,
  it's the responsibility of the caller to double-check the current state of the Room
@@ -4644,21 +4705,15 @@ From interface
         </tr>
         <tr>
           <th>minParticipantsToStart</td>
-          <td>the minimum number of participants that must
-            be connected to the room (including the current player) before the
-            "Start playing" option becomes enabled.
-            <p>
-            If this is 0, that means that "Start playing" will always be enabled.
-            If it's equal to the maximum possible number of participants (including
-            the current player <i>and</i> any auto-match participants) then the
-            'Start playing' option will never be enabled; instead the waiting room
-            will exit automatically as soon as all participants are fully connected.</td>
+          <td>the minimum number of participants that must be
+            connected to the room (including the current player) for the "Start
+            playing" menu item to become enabled.</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to display the waiting room screen.</li></ul>
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to display the waiting room screen.</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
@@ -4722,7 +4777,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to display the player selector.</li></ul>
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to display the player selector.</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
@@ -4771,7 +4826,7 @@ From interface
  menu item.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>an <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the GamesClient Settings UI.
+      <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the GamesClient Settings UI.
 </li></ul>
   </div>
 
@@ -4817,11 +4872,11 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>id</td>
-          <td>the achievement ID to increment.</td>
+          <td>The achievement ID to increment.</td>
         </tr>
         <tr>
           <th>numSteps</td>
-          <td>the number of steps to increment by. Must be greater than 0.
+          <td>The number of steps to increment by. Must be greater than 0.
 </td>
         </tr>
       </table>
@@ -4869,16 +4924,16 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the increment achievement is complete. The
+          <td>The listener that is called when the increment achievement is complete. The
             listener is called on the main thread.</td>
         </tr>
         <tr>
           <th>id</td>
-          <td>the ID of the achievement to increment.</td>
+          <td>The ID of the achievement to increment.</td>
         </tr>
         <tr>
           <th>numSteps</td>
-          <td>the number of steps to increment by. Must be greater than 0.
+          <td>The number of steps to increment by. Must be greater than 0.
 </td>
         </tr>
       </table>
@@ -4916,7 +4971,7 @@ From interface
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -4950,7 +5005,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -4994,7 +5049,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
 
@@ -5038,7 +5093,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
 
@@ -5080,7 +5135,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>config</td>
-          <td>the real-time room configuration.
+          <td>The real-time room configuration.
 </td>
         </tr>
       </table>
@@ -5121,7 +5176,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is notified after the room has been left. The listener is
+          <td>The listener that is notified after the room has been left. The listener is
             called on the main thread.</td>
         </tr>
         <tr>
@@ -5168,7 +5223,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.
 </td>
         </tr>
@@ -5208,7 +5263,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.
 </td>
         </tr>
@@ -5252,12 +5307,12 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
           <th>pageSize</td>
-          <td>the number of entries to request for this initial page. Note that if cached
+          <td>The number of entries to request for this initial page. Note that if cached
             data already exists, the returned buffer may contain more than this size, but it
             is guaranteed to contain at least this many if the collection contains enough
             records. This must be a value between 1 and 25.</td>
@@ -5309,7 +5364,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.
 </td>
         </tr>
@@ -5352,7 +5407,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
@@ -5399,7 +5454,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.
 </td>
         </tr>
@@ -5443,12 +5498,12 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
           <th>pageSize</td>
-          <td>the number of additional entries to request. This must be a value between 1
+          <td>The number of additional entries to request. This must be a value between 1
             and 25.
 </td>
         </tr>
@@ -5492,12 +5547,12 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
           <th>buffer</td>
-          <td>the existing buffer that will be expanded.</td>
+          <td>The existing buffer that will be expanded.</td>
         </tr>
         <tr>
           <th>maxResults</td>
@@ -5505,8 +5560,8 @@ From interface
         </tr>
         <tr>
           <th>pageDirection</td>
-          <td>the direction to expand the buffer. Values are defined in
-            <code><a href="/reference/com/google/android/gms/games/PageDirection.html">PageDirection</a></code>
+          <td>The direction to expand the buffer. Values are defined in
+            <code><a href="/reference/com/google/android/gms/games/PageDirection.html">PageDirection</a></code>.
 </td>
         </tr>
       </table>
@@ -5548,12 +5603,12 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
           <th>playerId</td>
-          <td>the player ID to get full profile data for.
+          <td>The player ID to get full profile data for.
 </td>
         </tr>
       </table>
@@ -5596,7 +5651,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
@@ -5668,7 +5723,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
@@ -5732,7 +5787,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the load is complete. The listener is called
+          <td>The listener that is called when the load is complete. The listener is called
             on the main thread.</td>
         </tr>
         <tr>
@@ -5901,9 +5956,10 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -5952,11 +6008,12 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
@@ -6013,7 +6070,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when a new invitation is received. The listener
+          <td>The listener that is called when a new invitation is received. The listener
             is called on the main thread.
 </td>
         </tr>
@@ -6061,7 +6118,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>id</td>
-          <td>the achievement ID to reveal</td>
+          <td>The achievement ID to reveal</td>
         </tr>
       </table>
   </div>
@@ -6112,12 +6169,12 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the reveal achievement is complete.
+          <td>The listener that is called when the reveal achievement is complete.
            The listener is called on the main thread.</td>
         </tr>
         <tr>
           <th>id</td>
-          <td>the ID of the achievement to reveal</td>
+          <td>The ID of the achievement to reveal</td>
         </tr>
       </table>
   </div>
@@ -6164,11 +6221,11 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is notified when the message has been sent.</td>
+          <td>The listener that is notified when the message has been sent.</td>
         </tr>
         <tr>
           <th>messageData</td>
-          <td>the message to be sent. Should be at most
+          <td>The message to be sent. Should be at most
             <code><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_RELIABLE_MESSAGE_LEN">MAX_RELIABLE_MESSAGE_LEN</a></code> bytes.</td>
         </tr>
         <tr>
@@ -6177,16 +6234,15 @@ From interface
         </tr>
         <tr>
           <th>recipientParticipantId</td>
-          <td>the participant ID to send the message to.</td>
+          <td>The participant ID to send the message to.</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>token for the message sent, which is returned in callback
+      <ul class="nolist"><li>The token for the message sent, which is returned in callback
          <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html#onRealTimeMessageSent(int, int, java.lang.String)">onRealTimeMessageSent(int, int, String)</a></code> or
          <code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_REAL_TIME_MESSAGE_FAILED">STATUS_REAL_TIME_MESSAGE_FAILED</a></code> if the message failed to send.
-
 </li></ul>
   </div>
 
@@ -6227,7 +6283,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>messageData</td>
-          <td>the message to be sent. Should be at most
+          <td>The message to be sent. Should be at most
             <code><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_UNRELIABLE_MESSAGE_LEN">MAX_UNRELIABLE_MESSAGE_LEN</a></code> bytes.</td>
         </tr>
         <tr>
@@ -6284,7 +6340,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>messageData</td>
-          <td>the message to be sent. Should be at most
+          <td>The message to be sent. Should be at most
             <code><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_UNRELIABLE_MESSAGE_LEN">MAX_UNRELIABLE_MESSAGE_LEN</a></code> bytes.</td>
         </tr>
         <tr>
@@ -6293,7 +6349,7 @@ From interface
         </tr>
         <tr>
           <th>recipientParticipantId</td>
-          <td>the participant ID to send the message to.</td>
+          <td>The participant ID to send the message to.</td>
         </tr>
       </table>
   </div>
@@ -6339,7 +6395,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>messageData</td>
-          <td>the message to be sent. Should be at most
+          <td>The message to be sent. Should be at most
             <code><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_UNRELIABLE_MESSAGE_LEN">MAX_UNRELIABLE_MESSAGE_LEN</a></code> bytes.</td>
         </tr>
         <tr>
@@ -6512,7 +6568,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when sign-out is complete. The listener is called
+          <td>The listener that is called when sign-out is complete. The listener is called
             on the main thread.
 </td>
         </tr>
@@ -6597,8 +6653,8 @@ From interface
  </ul>
  <p>
  For more details, please see <a
- href="https://developers.google.com/games/services/common/concepts/leaderboards">this
page</a>.</p></div>
+ href="https://developers.google.com/games/services/common/concepts/leaderboards">Leaderboard
Concepts</a>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -6731,7 +6787,7 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>id</td>
-          <td>the achievement ID to unlock</td>
+          <td>The achievement ID to unlock</td>
         </tr>
       </table>
   </div>
@@ -6782,12 +6838,12 @@ From interface
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called when the unlock achievement is complete. The
+          <td>The listener that is called when the unlock achievement is complete. The
             listener is called on the main thread.</td>
         </tr>
         <tr>
           <th>id</td>
-          <td>the ID of the achievement to unlock.</td>
+          <td>The ID of the achievement to unlock.</td>
         </tr>
       </table>
   </div>
diff --git a/docs/html/reference/com/google/android/gms/games/GamesClientSettings.html b/docs/html/reference/com/google/android/gms/games/GamesClientSettings.html
deleted file mode 100644 (file)
index 29cad90..0000000
+++ /dev/null
@@ -1,1189 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>GamesClientSettings | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-5831155-1']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-</head>
-<body class="gc-documentation google
-  develop" itemscope itemtype="http://schema.org/Article">
-  <div id="doc-api-level" class="" style="display:none"></div>
-  <a name="top"></a>
-
-<a name="top"></a>
-
-    <!-- Header -->
-    <div id="header">
-        <div class="wrap" id="header-wrap">
-          <div class="col-3 logo">
-          <a href="/index.html">
-            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
-          </a>
-          <div class="btn-quicknav" id="btn-quicknav">
-               <a href="#" class="arrow-inactive">Quicknav</a>
-                             <a href="#" class="arrow-active">Quicknav</a>
-          </div>
-          </div>
-            <ul class="nav-x col-9">
-                <li class="design">
-                  <a href="/design/index.html"
-                  zh-tw-lang="設計"
-                  zh-cn-lang="设计"
-                  ru-lang="Проектирование"
-                  ko-lang="디자인"
-                  ja-lang="設計"
-                  es-lang="Diseñar"               
-                  >Design</a></li>
-                <li class="develop"><a href="/develop/index.html"
-                  zh-tw-lang="開發"
-                  zh-cn-lang="开发"
-                  ru-lang="Разработка"
-                  ko-lang="개발"
-                  ja-lang="開発"
-                  es-lang="Desarrollar"               
-                  >Develop</a></li>
-                <li class="distribute last"><a href="/distribute/index.html"
-                  zh-tw-lang="發佈"
-                  zh-cn-lang="分发"
-                  ru-lang="Распространение"
-                  ko-lang="배포"
-                  ja-lang="配布"
-                  es-lang="Distribuir"               
-                  >Distribute</a></li>
-            </ul>
-            
-            <!-- New Search -->
-            <div class="menu-container">
-            <div class="moremenu">
-    <div id="more-btn"></div>
-  </div>
-  <div class="morehover" id="moremenu">
-    <div class="top"></div>
-    <div class="mid">
-      <div class="header">Links</div>
-      <ul>
-        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
-        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
-        <li><a href="/about/index.html">About Android</a></li>
-      </ul>
-      <div class="header">Android Sites</div>
-      <ul>
-        <li><a href="http://www.android.com">Android.com</a></li>
-        <li class="active"><a>Android Developers</a></li>
-        <li><a href="http://source.android.com">Android Open Source Project</a></li>
-      </ul>
-      
-      
-      
-        <div class="header">Language</div>
-          <div id="language" class="locales">
-            <select name="language" onChange="changeLangPref(this.value, true)">
-                <option value="en">English</option>
-                <option value="es">Español</option>
-                <option value="ja">日本語</option>
-                <option value="ko">한국어</option>
-                <option value="ru">Русский</option>
-                <option value="zh-cn">中文 (中国)</option>
-                <option value="zh-tw">中文 (台灣)</option>
-            </select>
-          </div>
-        <script type="text/javascript">
-          <!--
-          loadLangPref();
-            //-->
-        </script>
-      
-      
-
-
-      <br class="clearfix" />
-    </div>
-    <div class="bottom"></div>
-  </div>
-  <div class="search" id="search-container">
-    <div class="search-inner">
-      <div id="search-btn"></div>
-      <div class="left"></div>
-      <form onsubmit="return submit_search()">
-        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
-onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')" 
-onkeyup="return search_changed(event, false, '/')" />
-      </form>
-      <div class="right"></div>
-        <a class="close hide">close</a>
-        <div class="left"></div>
-        <div class="right"></div>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper reference">
-    <div class="suggest-card reference no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  <div class="search_filtered_wrapper docs">
-    <div class="suggest-card dummy no-display">&nbsp;</div>
-    <div class="suggest-card develop no-display">
-      <ul class="search_filtered">
-      </ul>
-      <div class="child-card guides no-display">
-      </div>
-      <div class="child-card training no-display">
-      </div>
-    </div>
-    <div class="suggest-card design no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-    <div class="suggest-card distribute no-display">
-      <ul class="search_filtered">
-      </ul>
-    </div>
-  </div>
-
-  </div>
-  <!-- /New Search>
-          
-          
-          <!-- Expanded quicknav -->
-           <div id="quicknav" class="col-9">
-                <ul>
-                    <li class="design">
-                      <ul>
-                        <li><a href="/design/index.html">Get Started</a></li>
-                        <li><a href="/design/style/index.html">Style</a></li>
-                        <li><a href="/design/patterns/index.html">Patterns</a></li>
-                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
-                        <li><a href="/design/downloads/index.html">Downloads</a></li>
-                        <li><a href="/design/videos/index.html">Videos</a></li>
-                      </ul>
-                    </li>
-                    <li class="develop">
-                      <ul>
-                        <li><a href="/training/index.html"
-                          zh-tw-lang="訓練課程"
-                          zh-cn-lang="培训"
-                          ru-lang="Курсы"
-                          ko-lang="교육"
-                          ja-lang="トレーニング"
-                          es-lang="Capacitación"               
-                          >Training</a></li>
-                        <li><a href="/guide/components/index.html"
-                          zh-tw-lang="API 指南"
-                          zh-cn-lang="API 指南"
-                          ru-lang="Руководства по API"
-                          ko-lang="API 가이드"
-                          ja-lang="API ガイド"
-                          es-lang="Guías de la API"               
-                          >API Guides</a></li>
-                        <li><a href="/reference/packages.html"
-                          zh-tw-lang="參考資源"
-                          zh-cn-lang="参考"
-                          ru-lang="Справочник"
-                          ko-lang="참조문서"
-                          ja-lang="リファレンス"
-                          es-lang="Referencia"               
-                          >Reference</a></li>
-                        <li><a href="/tools/index.html"
-                          zh-tw-lang="相關工具"
-                          zh-cn-lang="工具"
-                          ru-lang="Инструменты"
-                          ko-lang="도구"
-                          ja-lang="ツール"
-                          es-lang="Herramientas"               
-                          >Tools</a>
-                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
-                        </li>
-                        <li><a href="/google/index.html">Google Services</a>
-                        </li>
-                      </ul>
-                    </li>
-                    <li class="distribute last">
-                      <ul>
-                        <li><a href="/distribute/index.html">Google Play</a></li>
-                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
-                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
-                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
-                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
-                        <li><a href="/distribute/open.html">Open Distribution</a></li>
-                      </ul>
-                    </li>
-                </ul>
-          </div>
-          <!-- /Expanded quicknav -->
-        </div>
-    </div>
-    <!-- /Header -->
-    
-    
-  <div id="searchResults" class="wrap" style="display:none;">
-          <h2 id="searchTitle">Results</h2>
-          <div id="leftSearchControl" class="search-control">Loading...</div>
-  </div>
-    
-    
-  
-    <!-- Secondary x-nav -->
-    <div id="nav-x">
-        <div class="wrap">
-            <ul class="nav-x col-9 develop" style="width:100%">
-                <li class="training"><a href="/training/index.html"
-                  zh-tw-lang="訓練課程"
-                  zh-cn-lang="培训"
-                  ru-lang="Курсы"
-                  ko-lang="교육"
-                  ja-lang="トレーニング"
-                  es-lang="Capacitación"               
-                  >Training</a></li>
-                <li class="guide"><a href="/guide/components/index.html"
-                  zh-tw-lang="API 指南"
-                  zh-cn-lang="API 指南"
-                  ru-lang="Руководства по API"
-                  ko-lang="API 가이드"
-                  ja-lang="API ガイド"
-                  es-lang="Guías de la API"               
-                  >API Guides</a></li>
-                <li class="reference"><a href="/reference/packages.html"
-                  zh-tw-lang="參考資源"
-                  zh-cn-lang="参考"
-                  ru-lang="Справочник"
-                  ko-lang="참조문서"
-                  ja-lang="リファレンス"
-                  es-lang="Referencia"               
-                  >Reference</a></li>
-                <li class="tools"><a href="/tools/index.html"
-                  zh-tw-lang="相關工具"
-                  zh-cn-lang="工具"
-                  ru-lang="Инструменты"
-                  ko-lang="도구"
-                  ja-lang="ツール"
-                  es-lang="Herramientas"
-                  >Tools</a></li>
-                <li class="google"><a href="/google/index.html"
-                  >Google Services</a>
-                </li>
-            </ul>
-        </div>
-        
-    </div>
-    <!-- /Sendondary x-nav -->
-  
-
-
-
-
-  
-
-
-  
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
-
-
-
-<ul id="nav">
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/index.html">
-          <span class="en">Overview</span>
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/games.html">
-          <span class="en">Games</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/location.html">
-          <span class="en">Location</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
-          <span class="en">Google+</span>
-                </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
-          <span class="en">Google Maps</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
-          <span class="en">Authorization</span>
-      </a></div>
-  </li>
-
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/play-services/index.html">
-      <span class="en">Google Play Services</span></a>
-    </div>
-    <ul>
-      <li><a href="/google/play-services/setup.html">
-          <span class="en">Setup</span></a>
-      </li>
-      <li id="gms-tree-list" class="nav-section">
-        <div class="nav-section-header">
-          <a href="/reference/gms-packages.html">
-            <span class="en">Reference</span>
-          </a>
-        <div>
-      </li>
-    </ul>
-  </li>
-
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/play/billing/index.html">
-      <span class="en">Google Play In-app Billing</span></a>
-    </div>
-    <ul>
-      <li><a href="/google/play/billing/billing_overview.html">
-              <span class="en">Overview</span></a>
-      </li>
-      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
-              <span class="en">Version 3 API</span></a></div>
-              <ul>
-              <li><a href="/google/play/billing/billing_integrate.html">
-              <span class="en">Implementing the API</span></a></li>
-              <li><a href="/google/play/billing/billing_reference.html">
-              <span class="en">Reference</span></a></li>
-              </ul>
-      </li>
-      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
-              <span class="en">Version 2 API</span></a></div>
-              <ul>
-              <li><a href="/google/play/billing/v2/billing_integrate.html">
-              <span class="en">Implementing the API</span></a></li>
-              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
-              <span class="en">Subscriptions</span></a></li>
-              <li><a href="/google/play/billing/v2/billing_reference.html">
-              <span class="en">Reference</span></a></li>
-              </ul>
-      </li>
-      <li><a href="/google/play/billing/billing_subscriptions.html">
-              <span class="en">Subscriptions</span></a>
-      </li>
-      <li><a href="/google/play/billing/billing_best_practices.html">
-              <span class="en">Security and Design</span></a>
-      </li>
-      <li><a href="/google/play/billing/billing_testing.html">
-              <span class="en">Testing In-app Billing</span></a>
-      </li>
-      <li><a href="/google/play/billing/billing_admin.html">
-              <span class="en">Administering In-app Billing</span></a>
-      </li>
-      <li><a href="/google/play/billing/gp-purchase-status-api.html">
-              <span class="en">Purchase Status API</span></a>
-      </li>
-      <li><a href="/google/play/billing/versions.html">
-              <span class="en">Version Notes</span></a>
-      </li>
-    </ul>
-  </li>
-
-
-
-  <li class="nav-section">
-      <div class="nav-section-header"><a href="/google/gcm/index.html">
-        <span class="en">Google Cloud Messaging</span></a>
-      </div>
-      <ul>
-        <li><a href="/google/gcm/gs.html">
-            <span class="en">Getting Started</span></a>
-        </li>
-        <li><a href="/google/gcm/gcm.html">
-            <span class="en">Architectural Overview</span></a>
-        </li>
-         <li><a href="/google/gcm/ccs.html">
-              <span class="en">Cloud Connection Server</span></a>
-        </li>
-        <li><a href="/google/gcm/notifications.html">
-              <span class="en">User Notifications</span></a>
-        </li>
-        <li><a href="/google/gcm/client.html">
-            <span class="en">GCM Client</span></a>
-        </li>
-        <li><a href="/google/gcm/server.html">
-            <span class="en">GCM Server</span></a>
-        </li>
-        <li><a href="/google/gcm/adv.html">
-            <span class="en">Advanced Topics</span></a>
-        </li>
-        <li><a href="/google/gcm/c2dm.html">
-            <span class="en">Migration</span></a>
-        </li>
-        <li id="gcm-tree-list" class="nav-section">
-          <div class="nav-section-header">
-            <a href="/reference/gcm-packages.html">
-              <span class="en">Reference</span>
-            </a>
-          <div>
-        </li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/play/dist.html">
-      <span class="en">Google Play Distribution</span></a>
-    </div>
-    <ul>
-      <li><a href="/google/play/filters.html">
-          <span class="en">Filters on Google Play</span></a>
-      </li>
-
-      <li><a href="/google/play/publishing/multiple-apks.html">
-          <span class="en">Multiple APK Support</span></a>
-      </li>
-      <li><a href="/google/play/expansion-files.html">
-          <span class="en">APK Expansion Files</span></a>
-      </li>
-      <li class="nav-section">
-        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
-          <span class="en">Application Licensing</span></a>
-        </div>
-        <ul>
-          <li><a href="/google/play/licensing/overview.html">
-              <span class="en">Licensing Overview</span></a>
-          </li>
-          <li><a href="/google/play/licensing/setting-up.html">
-              <span class="en">Setting Up for Licensing</span></a>
-          </li>
-          <li><a href="/google/play/licensing/adding-licensing.html">
-              <span class="en">Adding Licensing to Your App</span></a>
-          </li>
-          <li><a href="/google/play/licensing/licensing-reference.html">
-              <span class="en">Licensing Reference</span></a>
-          </li>
-        </ul>
-      </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="/google/backup/index.html">
-      Android Backup Service</a>
-    </div>
-    <ul>
-      <li><a href="/google/backup/signup.html">
-          Register</a>
-      </li>
-    </ul>
-  </li>
-
-  </ul>
-
-</li>
-
-
-
-</ul>
-
-<script type="text/javascript">
-<!--
-    buildToggleLists();
-    changeNavLang(getLangPref());
-//-->
-</script>
-
-
-        
-
-      </div>
-      <script type="text/javascript">
-       showGoogleRefTree();
-    
-      </script>
-    </div> <!-- end side-nav -->
-    <script>
-      $(document).ready(function() {
-        scrollIntoView("devdoc-nav");
-        });
-    </script>
-
-
-     
-
-
-
-<div class="col-12"  id="doc-col">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-  <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1 itemprop="name">GamesClientSettings</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-               
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-               
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.GamesClientSettings</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p itemprop="articleBody">Settings for <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">int</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClientSettings.html#POPUP_POSITION_BOTTOM">POPUP_POSITION_BOTTOM</a></td>
-        <td class="jd-descrcol" width="100%">Display games service popups (achievements, welcome, ...) at the bottom of the screen
-</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol">int</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClientSettings.html#POPUP_POSITION_TOP">POPUP_POSITION_TOP</a></td>
-        <td class="jd-descrcol" width="100%">Display games service popups (achievements, welcome, ...) at the top of the screen
-</td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-        
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="POPUP_POSITION_BOTTOM"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        int
-      </span>
-        POPUP_POSITION_BOTTOM
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Display games service popups (achievements, welcome, ...) at the bottom of the screen
-</p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                2
-                (0x00000002)
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-<A NAME="POPUP_POSITION_TOP"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        int
-      </span>
-        POPUP_POSITION_TOP
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Display games service popups (achievements, welcome, ...) at the top of the screen
-</p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                1
-                (0x00000001)
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer" class="wrap" >
-        
-
-  <div id="copyright">
-    
-  Except as noted, this content is licensed under <a
-  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
-  For details and restrictions, see the <a href="/license.html">
-  Content License</a>.
-  </div>
-  <div id="build_info">
-    
-<script src="/timestamp.js" type="text/javascript"></script>
-<script>document.write(BUILD_TIMESTAMP)</script>
-
-  </div>
-
-
-  <div id="footerlinks">
-    
-  <p>
-    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
-    <a href="/support.html">Support</a>
-  </p>
-  </div>
-
-</div> <!-- end footer -->
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-
-
-
-
-
-</body>
-</html>
index e0ad326..23425bc 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index 7298e87..1e42cdd 100644 (file)
@@ -685,7 +685,7 @@ onkeyup="return search_changed(event, false, '/')" />
  <p>
  Use <code><a href="/reference/com/google/android/gms/games/RealTimeSocket.html#getParcelFileDescriptor()">getParcelFileDescriptor()</a></code> to get a file descriptor for read/write, or
  use <code><a href="/reference/com/google/android/gms/games/RealTimeSocket.html#getInputStream()">getInputStream()</a></code> / <code><a href="/reference/com/google/android/gms/games/RealTimeSocket.html#getOutputStream()">getOutputStream()</a></code> to get
- access to an instance of <code><a href="/reference/java/io/InputStream.html">InputStream</a></code> and <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code>
+ access to an instance of <code><a href="/reference/java/io/InputStream.html">InputStream</a></code> or <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code>
  respectively.
  <p>
  Calling close() on any of (i) the returned <code><a href="/reference/android/os/ParcelFileDescriptor.html">ParcelFileDescriptor</a></code> or, (ii) the
@@ -957,7 +957,7 @@ onkeyup="return search_changed(event, false, '/')" />
  Calling close() on the InputStream will close the socket.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>instance of <code><a href="/reference/java/io/InputStream.html">InputStream</a></code>.</li></ul>
+      <ul class="nolist"><li>An instance of <code><a href="/reference/java/io/InputStream.html">InputStream</a></code>.</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
@@ -1006,7 +1006,7 @@ onkeyup="return search_changed(event, false, '/')" />
  packet will be dropped and an error message will be sent to the log.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>instance of <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code>.</li></ul>
+      <ul class="nolist"><li>An instance of <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code>.</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
@@ -1050,8 +1050,8 @@ onkeyup="return search_changed(event, false, '/')" />
  Calling close() on the returned ParcelFileDescriptor will close the socket.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>instance of <code><a href="/reference/android/os/ParcelFileDescriptor.html">ParcelFileDescriptor</a></code> or null if the underlying socket
-         is closed.</li></ul>
+      <ul class="nolist"><li>An instance of <code><a href="/reference/android/os/ParcelFileDescriptor.html">ParcelFileDescriptor</a></code> or null if the underlying
+         socket is closed.</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
index cf6e4f9..c40d4df 100644 (file)
@@ -1782,7 +1782,7 @@ onkeyup="return search_changed(event, false, '/')" />
  this directly. Instead, cache the result of <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>player associated with this achievement.
+      <ul class="nolist"><li>The player associated with this achievement.
 </li></ul>
   </div>
 
index 646f741..06bd27a 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index 6c85944..d104974 100644 (file)
@@ -868,7 +868,7 @@ onkeyup="return search_changed(event, false, '/')" />
         </tr>
         <tr>
           <th>achievementId</td>
-          <td>id of the achievement that was updated.
+          <td>The ID of the achievement that was updated.
 </td>
         </tr>
       </table>
index 0f3911b..2186179 100644 (file)
@@ -1343,13 +1343,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index b0369b3..93d96d3 100644 (file)
@@ -1338,7 +1338,7 @@ From interface
  this directly. Instead, cache the result of <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>player associated with this leaderboard score.
+      <ul class="nolist"><li>The player associated with this leaderboard score.
 </li></ul>
   </div>
 
index 07e266e..2ee0f33 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index 957bcf7..f67626d 100644 (file)
@@ -1427,9 +1427,8 @@ onkeyup="return search_changed(event, false, '/')" />
  is only accurate if <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#hasPlayerInfo()">hasPlayerInfo()</a></code> returns true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the String representation of the viewing player's rank, or {@code null)
+      <ul class="nolist"><li>The String representation of the viewing player's rank, or {@code null)
          if the player has no rank for this variant.
-
 </li></ul>
   </div>
 
@@ -1464,7 +1463,7 @@ onkeyup="return search_changed(event, false, '/')" />
  accurate if <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#hasPlayerInfo()">hasPlayerInfo()</a></code> returns true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the String representation of the viewing player's score, or <code>null</code> if the
+      <ul class="nolist"><li>The String representation of the viewing player's score, or <code>null</code> if the
          player has no score for this variant.
 </li></ul>
   </div>
@@ -1501,7 +1500,7 @@ onkeyup="return search_changed(event, false, '/')" />
  this method will return <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#NUM_SCORES_UNKNOWN">NUM_SCORES_UNKNOWN</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the number of scores for this variant, or <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#NUM_SCORES_UNKNOWN">NUM_SCORES_UNKNOWN</a></code>.
+      <ul class="nolist"><li>The number of scores for this variant, or <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#NUM_SCORES_UNKNOWN">NUM_SCORES_UNKNOWN</a></code>.
 </li></ul>
   </div>
 
@@ -1536,7 +1535,7 @@ onkeyup="return search_changed(event, false, '/')" />
  accurate if <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#hasPlayerInfo()">hasPlayerInfo()</a></code> returns true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the long representation of the viewing player's rank, or <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#PLAYER_RANK_UNKNOWN">PLAYER_RANK_UNKNOWN</a></code>
+      <ul class="nolist"><li>The long representation of the viewing player's rank, or <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#PLAYER_RANK_UNKNOWN">PLAYER_RANK_UNKNOWN</a></code>
          if the player has no rank for this variant.
 </li></ul>
   </div>
@@ -1572,7 +1571,7 @@ onkeyup="return search_changed(event, false, '/')" />
  accurate if <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#hasPlayerInfo()">hasPlayerInfo()</a></code> returns true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the long representation of the viewing player's score, or
+      <ul class="nolist"><li>The long representation of the viewing player's score, or
          <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#PLAYER_SCORE_UNKNOWN">PLAYER_SCORE_UNKNOWN</a></code> if the player has no score for this variant.
 </li></ul>
   </div>
@@ -1649,7 +1648,7 @@ onkeyup="return search_changed(event, false, '/')" />
  a rank.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>whether or not this variant contains score information for the viewing player.
+      <ul class="nolist"><li>Whether or not this variant contains score information for the viewing player.
 </li></ul>
   </div>
 
index 07ee745..42b4e40 100644 (file)
@@ -857,7 +857,8 @@ onkeyup="return search_changed(event, false, '/')" />
         <tr>
           <th>result</td>
           <td>Detailed results of the operation, which includes data regarding whether this
-            was the new high score for any of the supported time spans.
+            was the new high score for any of the supported time spans. Note that the results
+            will only be populated if <code>statusCodes</code> is <code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code>.
 </td>
         </tr>
       </table>
index 167b6a6..e33b848 100644 (file)
@@ -1310,7 +1310,7 @@ From class
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the ID of the leaderboard the score was submitted to.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the ID of the leaderboard.
+      <ul class="nolist"><li>The ID of the leaderboard.
 </li></ul>
   </div>
 
@@ -1344,7 +1344,7 @@ From class
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the ID of the player the score was submitted for.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the ID of submitting player.
+      <ul class="nolist"><li>The ID of submitting player.
 </li></ul>
   </div>
 
@@ -1390,7 +1390,7 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the appropriate <code><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html">SubmitScoreResult.Result</a></code> or <code>null</code> if no result was returned for the
+      <ul class="nolist"><li>The appropriate <code><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html">SubmitScoreResult.Result</a></code> or <code>null</code> if no result was returned for the
          given time span.
 </li></ul>
   </div>
@@ -1433,7 +1433,7 @@ From class
  </ul></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the status code of the submit score operation.
+      <ul class="nolist"><li>The status code of the submit score operation.
 </li></ul>
   </div>
 
index c9b914f..95eac22 100644 (file)
@@ -1177,7 +1177,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Retrieve the server timestamp at which this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> was created.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the server timestamp at which this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> was created.
+      <ul class="nolist"><li>The server timestamp at which this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> was created.
 </li></ul>
   </div>
 
@@ -1245,7 +1245,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Retrieve the ID of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the ID of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
+      <ul class="nolist"><li>The ID of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
 </li></ul>
   </div>
 
@@ -1279,7 +1279,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
+      <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
 </li></ul>
   </div>
 
index 4edeb83..6f906a6 100644 (file)
@@ -1343,13 +1343,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index a38ddc4..9615ad3 100644 (file)
@@ -1772,7 +1772,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Retrieve the server timestamp at which this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> was created.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the server timestamp at which this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> was created.
+      <ul class="nolist"><li>The server timestamp at which this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> was created.
 </li></ul>
   </div>
 
@@ -1840,7 +1840,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Retrieve the ID of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the ID of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
+      <ul class="nolist"><li>The ID of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
 </li></ul>
   </div>
 
@@ -1903,7 +1903,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
+      <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
 </li></ul>
   </div>
 
@@ -1938,7 +1938,7 @@ From interface
  applicable to the given object.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
+      <ul class="nolist"><li>A list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
 </li></ul>
   </div>
 
index 5a3a803..59e0f54 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index 3b0250d..d543bef 100644 (file)
@@ -901,7 +901,7 @@ Summary:
  applicable to the given object.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
+      <ul class="nolist"><li>A list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
 </li></ul>
   </div>
 
index 64c6398..1b12a08 100644 (file)
@@ -1547,7 +1547,7 @@ From interface
  room has no automatch properties.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>bundle containing the automatch criteria for this room.
+      <ul class="nolist"><li>bundle containing the automatch criteria for this room.
 </li></ul>
   </div>
 
@@ -1928,8 +1928,8 @@ From interface
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>Variant specified for this room, if any. A variant is an optional
-         developer-controlled parameter describing the type of game to play, ranging from
-         1-1023 (inclusive). If this room had no variant specified, returns
+         developer-controlled parameter describing the type of game to play. If specified,
+         this value will be a positive integer. If this room had no variant specified, returns
          <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code>.
 </li></ul>
   </div>
index 373578b..df6fb49 100644 (file)
@@ -1398,7 +1398,7 @@ From class
       <table class="jd-tagtable">
         <tr>
           <th>invitationId</td>
-          <td>the ID of the invitation to accept.
+          <td>The ID of the invitation to accept.
 </td>
         </tr>
       </table>
@@ -1440,7 +1440,7 @@ From class
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the message received listener that is called to notify the client when it
+          <td>The message received listener that is called to notify the client when it
             receives a message in a room. The listener is called on the main thread.
 </td>
         </tr>
@@ -1480,7 +1480,7 @@ From class
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>the listener that is called to notify the client when the status of the
+          <td>The listener that is called to notify the client when the status of the
             room has changed. The listener is called on the main thread.
 </td>
         </tr>
@@ -1566,8 +1566,8 @@ From class
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Sets the variant for the room when calling <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code>. This is an
- optional, developer-controlled parameter describing the type of game to play, and is
used for auto-matching criteria. Must be either a value from 1 to 1023 (inclusive), or
+ optional, developer-controlled parameter describing the type of game to play, and is used
for auto-matching criteria. Must be either a positive integer or
  <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code> (the default) if not desired.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
index 93da6bb..926eeda 100644 (file)
@@ -1317,15 +1317,15 @@ From class
       <table class="jd-tagtable">
         <tr>
           <th>minAutoMatchPlayers</td>
-          <td>min number of auto-matched players.</td>
+          <td>Minimum number of auto-matched players.</td>
         </tr>
         <tr>
           <th>maxAutoMatchPlayers</td>
-          <td>max number of auto-matched players.</td>
+          <td>Maximum number of auto-matched players.</td>
         </tr>
         <tr>
           <th>exclusiveBitMask</td>
-          <td>exclusive bitmasks for the automatching request. The logical AND of
+          <td>Exclusive bitmasks for the automatching request. The logical AND of
             each pairing of automatching requests must equal zero for auto-match. If there
             are no exclusivity requirements for the game, this value should just be set to 0.</td>
         </tr>
@@ -1333,7 +1333,7 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>bundle of auto-match criteria data.
+      <ul class="nolist"><li>bundle of auto-match criteria data.
 </li></ul>
   </div>
 
@@ -1470,7 +1470,7 @@ From class
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the listener for message received from a peer.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html">RealTimeMessageReceivedListener</a></code> that is called when the client has
+      <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html">RealTimeMessageReceivedListener</a></code> that is called when the client has
             received a message from a peer.
 </li></ul>
   </div>
@@ -1571,8 +1571,7 @@ From class
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the (optional) developer-controlled parameter describing the type of game to play.
- Must be either a value from 1 to 1023 (inclusive), or <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code> if not
- desired.</p></div>
+ Must be either a positive integer or <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code> if not desired.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>The developer-specified game variant.
index e3772e2..7e6861b 100644 (file)
@@ -2044,7 +2044,7 @@ From interface
  room has no automatch properties.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>bundle containing the automatch criteria for this room.
+      <ul class="nolist"><li>bundle containing the automatch criteria for this room.
 </li></ul>
   </div>
 
@@ -2324,7 +2324,7 @@ From interface
  applicable to the given object.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
+      <ul class="nolist"><li>A list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
 </li></ul>
   </div>
 
index 45fd518..988cc0c 100644 (file)
@@ -1059,7 +1059,7 @@ onkeyup="return search_changed(event, false, '/')" />
       <table class="jd-tagtable">
         <tr>
           <th>participantIds</td>
-          <td>ID of the peers invited to a room.
+          <td>IDs of the peers invited to a room.
 </td>
         </tr>
       </table>
@@ -1098,7 +1098,7 @@ onkeyup="return search_changed(event, false, '/')" />
       <table class="jd-tagtable">
         <tr>
           <th>participantIds</td>
-          <td>ID of the peers invited to a room.
+          <td>IDs of the peers invited to a room.
 </td>
         </tr>
       </table>
index 098524a..e5b82b2 100644 (file)
@@ -711,18 +711,14 @@ onkeyup="return search_changed(event, false, '/')" />
               <td class="jd-descrcol" width="100%">Builder class for GamesClient.&nbsp;</td>
           </tr>
         <tr class=" api apilevel-" >
-              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClientSettings.html">GamesClientSettings</a></td>
-              <td class="jd-descrcol" width="100%">Settings for <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/PageDirection.html">PageDirection</a></td>
               <td class="jd-descrcol" width="100%">Direction constants for pagination over data sets.&nbsp;</td>
           </tr>
-        <tr class=" api apilevel-" >
+        <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/PlayerBuffer.html">PlayerBuffer</a></td>
               <td class="jd-descrcol" width="100%">Data structure providing access to a list of players.&nbsp;</td>
           </tr>
-        <tr class="alt-color api apilevel-" >
+        <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/PlayerEntity.html">PlayerEntity</a></td>
               <td class="jd-descrcol" width="100%">Data object representing a set of Player data.&nbsp;</td>
           </tr>
index 492532e..5b50466 100644 (file)
@@ -756,7 +756,7 @@ Summary:
  ActivityRecognitionClient mActivityRecognitionClient =
          new ActivityRecognitionClient(this, this, this);
  mActivityRecognitionClient.connect();
+
   // Called when a connection to the ActivityRecognitionService has been established.
  public void onConnected(Bundle connectionHint) {
      Intent intent = new Intent(this, MyIntentService.class);
@@ -1697,7 +1697,7 @@ From interface
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -1731,7 +1731,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -1775,7 +1775,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
 
@@ -1819,7 +1819,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
 
@@ -1851,9 +1851,10 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -1902,11 +1903,12 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
index 6652c0a..d7bd08a 100644 (file)
@@ -2291,7 +2291,7 @@ From interface
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -2325,7 +2325,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -2369,7 +2369,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
 
@@ -2413,7 +2413,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
 
@@ -2445,9 +2445,10 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -2496,11 +2497,12 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
index 6eaf102..3ce6ef9 100644 (file)
@@ -789,8 +789,8 @@ Summary:
  slower interval, and the location object will be obfuscated to only show a coarse level of
  accuracy.
 
- <p>All location requests are considered hints, and you may receive locations that are more
accurate, less accurate, and slower than requested.
+ <p>All location requests are considered hints, and you may receive locations that are
more/less accurate, and faster/slower than requested.
 </p>
 
 
@@ -998,6 +998,22 @@ android.os.Parcelable
             
             
             
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#equals(java.lang.Object)">equals</a></span>(Object object)</nobr>
+        
+  </td></tr>
+
+
+        
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             long</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
@@ -1009,7 +1025,7 @@ android.os.Parcelable
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1027,7 +1043,7 @@ android.os.Parcelable
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1045,7 +1061,7 @@ android.os.Parcelable
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1063,7 +1079,7 @@ android.os.Parcelable
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1081,7 +1097,7 @@ android.os.Parcelable
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1101,6 +1117,22 @@ android.os.Parcelable
 
 
         
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#hashCode()">hashCode</a></span>()</nobr>
+        
+  </td></tr>
+
+
+        
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1847,6 +1879,35 @@ From interface
 </div>
 
 
+<A NAME="equals(java.lang.Object)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">equals</span>
+      <span class="normal">(Object object)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    </div>
+</div>
+
+
 <A NAME="getExpirationTime()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -2062,6 +2123,35 @@ From interface
 </div>
 
 
+<A NAME="hashCode()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        int
+      </span>
+      <span class="sympad">hashCode</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    </div>
+</div>
+
+
 <A NAME="setExpirationDuration(long)"></A>
 
 <div class="jd-details api apilevel-"> 
index 0664856..72f86e5 100644 (file)
@@ -1045,7 +1045,7 @@ android.content.ComponentCallbacks2
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(Activity activity)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onActivityCreated(android.os.Bundle)">onActivityCreated</a></span>(Bundle savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -1061,7 +1061,7 @@ android.content.ComponentCallbacks2
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(Activity activity)</nobr>
         
   </td></tr>
 
@@ -1074,6 +1074,22 @@ android.content.ComponentCallbacks2
             
             
             
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        
+  </td></tr>
+
+
+        
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             View</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
@@ -1083,7 +1099,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1099,7 +1115,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1115,7 +1131,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1133,7 +1149,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1149,7 +1165,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1165,7 +1181,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1181,7 +1197,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1197,7 +1213,7 @@ android.content.ComponentCallbacks2
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2879,6 +2895,35 @@ From interface
 </div>
 
 
+<A NAME="onActivityCreated(android.os.Bundle)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">onActivityCreated</span>
+      <span class="normal">(Bundle savedInstanceState)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    </div>
+</div>
+
+
 <A NAME="onAttach(android.app.Activity)"></A>
 
 <div class="jd-details api apilevel-"> 
index 9ae0a84..3bccdee 100644 (file)
@@ -944,7 +944,7 @@ Summary:
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(Activity activity)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onActivityCreated(android.os.Bundle)">onActivityCreated</a></span>(Bundle savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -960,7 +960,7 @@ Summary:
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(Activity activity)</nobr>
         
   </td></tr>
 
@@ -973,6 +973,22 @@ Summary:
             
             
             
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        
+  </td></tr>
+
+
+        
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             View</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
@@ -982,7 +998,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -998,7 +1014,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1014,7 +1030,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1032,7 +1048,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1048,7 +1064,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1064,7 +1080,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1080,7 +1096,7 @@ Summary:
 
 
         
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1096,7 +1112,7 @@ Summary:
 
 
         
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2768,6 +2784,35 @@ From interface
 </div>
 
 
+<A NAME="onActivityCreated(android.os.Bundle)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">onActivityCreated</span>
+      <span class="normal">(Bundle savedInstanceState)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    </div>
+</div>
+
+
 <A NAME="onAttach(android.app.Activity)"></A>
 
 <div class="jd-details api apilevel-"> 
index 832ae26..39a7525 100644 (file)
@@ -1695,7 +1695,7 @@ From interface
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -1729,7 +1729,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -1773,7 +1773,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
 
@@ -1817,7 +1817,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
 
@@ -1940,9 +1940,10 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -1991,11 +1992,12 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
index 5d0383e..bcd39f6 100644 (file)
@@ -825,7 +825,7 @@ Summary:
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#build()">build</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Creates a new <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code>.</div>
+        <div class="jd-descrdiv">Builds a new <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> object for communicating with the Google+ APIs.</div>
   
   </td></tr>
 
@@ -1239,8 +1239,12 @@ From class
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code>.
-</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Builds a new <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> object for communicating with the Google+ APIs.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> object.
+</li></ul>
+  </div>
 
     </div>
 </div>
@@ -1390,7 +1394,7 @@ From class
 
  <p>
  See <a href="https://developers.google.com/+/api/moment-types">Types of app
- activity</a>for the full list of valid app activity types. Example usage:
+ activity</a> for the full list of valid app activity types. Example usage:
  <pre>
       plusClientBuilder.setVisibleActivities(
           "http://schemas.google.com/AddActivity",
index 529e2ad..e73301a 100644 (file)
@@ -2024,7 +2024,7 @@ From interface
  client actions caused by the user with a call to this method.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is connected to the service.
+      <ul class="nolist"><li>true if the client is connected to the service.
 </li></ul>
   </div>
 
@@ -2058,7 +2058,7 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the client is attempting to connect to the service.
+      <ul class="nolist"><li>true if the client is attempting to connect to the service.
 </li></ul>
   </div>
 
@@ -2102,7 +2102,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              events.</li></ul>
   </div>
 
@@ -2146,7 +2146,7 @@ From interface
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true If the specified listener is currently registered to receive connection
+      <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
              failed events.</li></ul>
   </div>
 
@@ -2320,7 +2320,7 @@ From interface
         <tr>
           <th>orderBy</td>
           <td>The order to return people in.  Valid values are:<p>
-             <code><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></code> - Order the people by their display name.
+             <code><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></code> - Order the people by their display name.<p>
              <code><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#BEST">BEST</a></code> - Order people based on the relevance to the viewer.</td>
         </tr>
         <tr>
@@ -2473,9 +2473,10 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
- If we are already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method
- will be called immediately.  Applications should balance calls to this method with calls to
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately.  Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection events, this
  method will not add a duplicate entry for the same listener, but <strong>will</strong>
@@ -2524,11 +2525,12 @@ From interface
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
- <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if we are not
- already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
- method will not be called immediately.  Applications should balance calls to this method with
- calls to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid
- leaking resources.
+ <code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
  <p>
  If the specified listener is already registered to receive connection failed events, this
  method will not add a duplicate entry for the same listener.
index fac199f..893a3ee 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index b722bcf..b58496b 100644 (file)
@@ -1278,13 +1278,19 @@ From interface
   <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
  invocations of this method for the same position may not be identical objects, but will be
  equal in value. In other words:
-
- <pre>
- <code>
- buffer.get(i) == buffer.get(i) may return false.
- buffer.get(i).equals(buffer.get(i)) will return true.
- </code>
- </pre></p></div>
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>position</td>
+          <td>The position of the item to retrieve.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>the item at <code>position</code> in this buffer.
index 5a7ae07..ff13938 100644 (file)
@@ -670,7 +670,7 @@ onkeyup="return search_changed(event, false, '/')" />
     <tr class=" api apilevel-" >
         <td class="jd-linkcol">
   <a href="/reference/com/google/android/gms/common/images/package-summary.html">com.google.android.gms.common.images</a></td>
-        <td class="jd-descrcol" width="100%"></td>
+        <td class="jd-descrcol" width="100%">Contains classes for loading images from Google Play services.</td>
     </tr>
 
 
index fe58709..a0e58fb 100644 (file)
 var GMS_DATA = [
-      { id:0, label:"com.google.android.gms", link:"reference/com/google/android/gms/package-summary.html", type:"package" },
-      { id:1, label:"com.google.android.gms.R", link:"reference/com/google/android/gms/R.html", type:"class" },
-      { id:2, label:"com.google.android.gms.R.attr", link:"reference/com/google/android/gms/R.attr.html", type:"class" },
-      { id:3, label:"com.google.android.gms.R.color", link:"reference/com/google/android/gms/R.color.html", type:"class" },
-      { id:4, label:"com.google.android.gms.R.drawable", link:"reference/com/google/android/gms/R.drawable.html", type:"class" },
-      { id:5, label:"com.google.android.gms.R.id", link:"reference/com/google/android/gms/R.id.html", type:"class" },
-      { id:6, label:"com.google.android.gms.R.string", link:"reference/com/google/android/gms/R.string.html", type:"class" },
-      { id:7, label:"com.google.android.gms.R.styleable", link:"reference/com/google/android/gms/R.styleable.html", type:"class" },
-      { id:8, label:"com.google.android.gms.appstate", link:"reference/com/google/android/gms/appstate/package-summary.html", type:"package" },
-      { id:9, label:"com.google.android.gms.appstate.AppState", link:"reference/com/google/android/gms/appstate/AppState.html", type:"class" },
-      { id:10, label:"com.google.android.gms.appstate.AppStateBuffer", link:"reference/com/google/android/gms/appstate/AppStateBuffer.html", type:"class" },
-      { id:11, label:"com.google.android.gms.appstate.AppStateClient", link:"reference/com/google/android/gms/appstate/AppStateClient.html", type:"class" },
-      { id:12, label:"com.google.android.gms.appstate.AppStateClient.Builder", link:"reference/com/google/android/gms/appstate/AppStateClient.Builder.html", type:"class" },
-      { id:13, label:"com.google.android.gms.appstate.OnSignOutCompleteListener", link:"reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html", type:"class" },
-      { id:14, label:"com.google.android.gms.appstate.OnStateDeletedListener", link:"reference/com/google/android/gms/appstate/OnStateDeletedListener.html", type:"class" },
-      { id:15, label:"com.google.android.gms.appstate.OnStateListLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateListLoadedListener.html", type:"class" },
-      { id:16, label:"com.google.android.gms.appstate.OnStateLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateLoadedListener.html", type:"class" },
-      { id:17, label:"com.google.android.gms.auth", link:"reference/com/google/android/gms/auth/package-summary.html", type:"package" },
-      { id:18, label:"com.google.android.gms.auth.GoogleAuthException", link:"reference/com/google/android/gms/auth/GoogleAuthException.html", type:"class" },
-      { id:19, label:"com.google.android.gms.auth.GoogleAuthUtil", link:"reference/com/google/android/gms/auth/GoogleAuthUtil.html", type:"class" },
-      { id:20, label:"com.google.android.gms.auth.GooglePlayServicesAvailabilityException", link:"reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html", type:"class" },
-      { id:21, label:"com.google.android.gms.auth.UserRecoverableAuthException", link:"reference/com/google/android/gms/auth/UserRecoverableAuthException.html", type:"class" },
-      { id:22, label:"com.google.android.gms.auth.UserRecoverableNotifiedException", link:"reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html", type:"class" },
-      { id:23, label:"com.google.android.gms.common", link:"reference/com/google/android/gms/common/package-summary.html", type:"package" },
-      { id:24, label:"com.google.android.gms.common.AccountPicker", link:"reference/com/google/android/gms/common/AccountPicker.html", type:"class" },
-      { id:25, label:"com.google.android.gms.common.ConnectionResult", link:"reference/com/google/android/gms/common/ConnectionResult.html", type:"class" },
-      { id:26, label:"com.google.android.gms.common.GooglePlayServicesClient", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.html", type:"class" },
-      { id:27, label:"com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html", type:"class" },
-      { id:28, label:"com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html", type:"class" },
-      { id:29, label:"com.google.android.gms.common.GooglePlayServicesNotAvailableException", link:"reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html", type:"class" },
-      { id:30, label:"com.google.android.gms.common.GooglePlayServicesUtil", link:"reference/com/google/android/gms/common/GooglePlayServicesUtil.html", type:"class" },
-      { id:31, label:"com.google.android.gms.common.Scopes", link:"reference/com/google/android/gms/common/Scopes.html", type:"class" },
-      { id:32, label:"com.google.android.gms.common.SignInButton", link:"reference/com/google/android/gms/common/SignInButton.html", type:"class" },
-      { id:33, label:"com.google.android.gms.common.data", link:"reference/com/google/android/gms/common/data/package-summary.html", type:"package" },
-      { id:34, label:"com.google.android.gms.common.data.DataBuffer", link:"reference/com/google/android/gms/common/data/DataBuffer.html", type:"class" },
-      { id:35, label:"com.google.android.gms.common.data.DataBufferUtils", link:"reference/com/google/android/gms/common/data/DataBufferUtils.html", type:"class" },
-      { id:36, label:"com.google.android.gms.common.data.Freezable", link:"reference/com/google/android/gms/common/data/Freezable.html", type:"class" },
-      { id:37, label:"com.google.android.gms.common.images", link:"reference/com/google/android/gms/common/images/package-summary.html", type:"package" },
-      { id:38, label:"com.google.android.gms.common.images.ImageManager", link:"reference/com/google/android/gms/common/images/ImageManager.html", type:"class" },
-      { id:39, label:"com.google.android.gms.common.images.ImageManager.ImageReceiver", link:"reference/com/google/android/gms/common/images/ImageManager.ImageReceiver.html", type:"class" },
-      { id:40, label:"com.google.android.gms.common.images.ImageManager.OnImageLoadedListener", link:"reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html", type:"class" },
-      { id:41, label:"com.google.android.gms.games", link:"reference/com/google/android/gms/games/package-summary.html", type:"package" },
-      { id:42, label:"com.google.android.gms.games.Game", link:"reference/com/google/android/gms/games/Game.html", type:"class" },
-      { id:43, label:"com.google.android.gms.games.GameBuffer", link:"reference/com/google/android/gms/games/GameBuffer.html", type:"class" },
-      { id:44, label:"com.google.android.gms.games.GameEntity", link:"reference/com/google/android/gms/games/GameEntity.html", type:"class" },
-      { id:45, label:"com.google.android.gms.games.GamesActivityResultCodes", link:"reference/com/google/android/gms/games/GamesActivityResultCodes.html", type:"class" },
-      { id:46, label:"com.google.android.gms.games.GamesClient", link:"reference/com/google/android/gms/games/GamesClient.html", type:"class" },
-      { id:47, label:"com.google.android.gms.games.GamesClient.Builder", link:"reference/com/google/android/gms/games/GamesClient.Builder.html", type:"class" },
-      { id:48, label:"com.google.android.gms.games.GamesClientSettings", link:"reference/com/google/android/gms/games/GamesClientSettings.html", type:"class" },
-      { id:49, label:"com.google.android.gms.games.OnGamesLoadedListener", link:"reference/com/google/android/gms/games/OnGamesLoadedListener.html", type:"class" },
-      { id:50, label:"com.google.android.gms.games.OnPlayersLoadedListener", link:"reference/com/google/android/gms/games/OnPlayersLoadedListener.html", type:"class" },
-      { id:51, label:"com.google.android.gms.games.OnSignOutCompleteListener", link:"reference/com/google/android/gms/games/OnSignOutCompleteListener.html", type:"class" },
-      { id:52, label:"com.google.android.gms.games.PageDirection", link:"reference/com/google/android/gms/games/PageDirection.html", type:"class" },
-      { id:53, label:"com.google.android.gms.games.Player", link:"reference/com/google/android/gms/games/Player.html", type:"class" },
-      { id:54, label:"com.google.android.gms.games.PlayerBuffer", link:"reference/com/google/android/gms/games/PlayerBuffer.html", type:"class" },
-      { id:55, label:"com.google.android.gms.games.PlayerEntity", link:"reference/com/google/android/gms/games/PlayerEntity.html", type:"class" },
-      { id:56, label:"com.google.android.gms.games.RealTimeSocket", link:"reference/com/google/android/gms/games/RealTimeSocket.html", type:"class" },
-      { id:57, label:"com.google.android.gms.games.achievement", link:"reference/com/google/android/gms/games/achievement/package-summary.html", type:"package" },
-      { id:58, label:"com.google.android.gms.games.achievement.Achievement", link:"reference/com/google/android/gms/games/achievement/Achievement.html", type:"class" },
-      { id:59, label:"com.google.android.gms.games.achievement.AchievementBuffer", link:"reference/com/google/android/gms/games/achievement/AchievementBuffer.html", type:"class" },
-      { id:60, label:"com.google.android.gms.games.achievement.OnAchievementUpdatedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html", type:"class" },
-      { id:61, label:"com.google.android.gms.games.achievement.OnAchievementsLoadedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html", type:"class" },
-      { id:62, label:"com.google.android.gms.games.leaderboard", link:"reference/com/google/android/gms/games/leaderboard/package-summary.html", type:"package" },
-      { id:63, label:"com.google.android.gms.games.leaderboard.Leaderboard", link:"reference/com/google/android/gms/games/leaderboard/Leaderboard.html", type:"class" },
-      { id:64, label:"com.google.android.gms.games.leaderboard.LeaderboardBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html", type:"class" },
-      { id:65, label:"com.google.android.gms.games.leaderboard.LeaderboardScore", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html", type:"class" },
-      { id:66, label:"com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html", type:"class" },
-      { id:67, label:"com.google.android.gms.games.leaderboard.LeaderboardVariant", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html", type:"class" },
-      { id:68, label:"com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html", type:"class" },
-      { id:69, label:"com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html", type:"class" },
-      { id:70, label:"com.google.android.gms.games.leaderboard.OnScoreSubmittedListener", link:"reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html", type:"class" },
-      { id:71, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html", type:"class" },
-      { id:72, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult.Result", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html", type:"class" },
-      { id:73, label:"com.google.android.gms.games.multiplayer", link:"reference/com/google/android/gms/games/multiplayer/package-summary.html", type:"package" },
-      { id:74, label:"com.google.android.gms.games.multiplayer.Invitation", link:"reference/com/google/android/gms/games/multiplayer/Invitation.html", type:"class" },
-      { id:75, label:"com.google.android.gms.games.multiplayer.InvitationBuffer", link:"reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html", type:"class" },
-      { id:76, label:"com.google.android.gms.games.multiplayer.InvitationEntity", link:"reference/com/google/android/gms/games/multiplayer/InvitationEntity.html", type:"class" },
-      { id:77, label:"com.google.android.gms.games.multiplayer.OnInvitationReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html", type:"class" },
-      { id:78, label:"com.google.android.gms.games.multiplayer.OnInvitationsLoadedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html", type:"class" },
-      { id:79, label:"com.google.android.gms.games.multiplayer.Participant", link:"reference/com/google/android/gms/games/multiplayer/Participant.html", type:"class" },
-      { id:80, label:"com.google.android.gms.games.multiplayer.ParticipantBuffer", link:"reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html", type:"class" },
-      { id:81, label:"com.google.android.gms.games.multiplayer.ParticipantEntity", link:"reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html", type:"class" },
-      { id:82, label:"com.google.android.gms.games.multiplayer.ParticipantUtils", link:"reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html", type:"class" },
-      { id:83, label:"com.google.android.gms.games.multiplayer.Participatable", link:"reference/com/google/android/gms/games/multiplayer/Participatable.html", type:"class" },
-      { id:84, label:"com.google.android.gms.games.multiplayer.realtime", link:"reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html", type:"package" },
-      { id:85, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessage", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html", type:"class" },
-      { id:86, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessageReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html", type:"class" },
-      { id:87, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html", type:"class" },
-      { id:88, label:"com.google.android.gms.games.multiplayer.realtime.Room", link:"reference/com/google/android/gms/games/multiplayer/realtime/Room.html", type:"class" },
-      { id:89, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html", type:"class" },
-      { id:90, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig.Builder", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html", type:"class" },
-      { id:91, label:"com.google.android.gms.games.multiplayer.realtime.RoomEntity", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html", type:"class" },
-      { id:92, label:"com.google.android.gms.games.multiplayer.realtime.RoomStatusUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html", type:"class" },
-      { id:93, label:"com.google.android.gms.games.multiplayer.realtime.RoomUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html", type:"class" },
-      { id:94, label:"com.google.android.gms.gcm", link:"reference/com/google/android/gms/gcm/package-summary.html", type:"package" },
-      { id:95, label:"com.google.android.gms.gcm.GoogleCloudMessaging", link:"reference/com/google/android/gms/gcm/GoogleCloudMessaging.html", type:"class" },
-      { id:96, label:"com.google.android.gms.location", link:"reference/com/google/android/gms/location/package-summary.html", type:"package" },
-      { id:97, label:"com.google.android.gms.location.ActivityRecognitionClient", link:"reference/com/google/android/gms/location/ActivityRecognitionClient.html", type:"class" },
-      { id:98, label:"com.google.android.gms.location.ActivityRecognitionResult", link:"reference/com/google/android/gms/location/ActivityRecognitionResult.html", type:"class" },
-      { id:99, label:"com.google.android.gms.location.DetectedActivity", link:"reference/com/google/android/gms/location/DetectedActivity.html", type:"class" },
-      { id:100, label:"com.google.android.gms.location.Geofence", link:"reference/com/google/android/gms/location/Geofence.html", type:"class" },
-      { id:101, label:"com.google.android.gms.location.Geofence.Builder", link:"reference/com/google/android/gms/location/Geofence.Builder.html", type:"class" },
-      { id:102, label:"com.google.android.gms.location.LocationClient", link:"reference/com/google/android/gms/location/LocationClient.html", type:"class" },
-      { id:103, label:"com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html", type:"class" },
-      { id:104, label:"com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html", type:"class" },
-      { id:105, label:"com.google.android.gms.location.LocationListener", link:"reference/com/google/android/gms/location/LocationListener.html", type:"class" },
-      { id:106, label:"com.google.android.gms.location.LocationRequest", link:"reference/com/google/android/gms/location/LocationRequest.html", type:"class" },
-      { id:107, label:"com.google.android.gms.location.LocationStatusCodes", link:"reference/com/google/android/gms/location/LocationStatusCodes.html", type:"class" },
-      { id:108, label:"com.google.android.gms.maps", link:"reference/com/google/android/gms/maps/package-summary.html", type:"package" },
-      { id:109, label:"com.google.android.gms.maps.CameraUpdate", link:"reference/com/google/android/gms/maps/CameraUpdate.html", type:"class" },
-      { id:110, label:"com.google.android.gms.maps.CameraUpdateFactory", link:"reference/com/google/android/gms/maps/CameraUpdateFactory.html", type:"class" },
-      { id:111, label:"com.google.android.gms.maps.GoogleMap", link:"reference/com/google/android/gms/maps/GoogleMap.html", type:"class" },
-      { id:112, label:"com.google.android.gms.maps.GoogleMap.CancelableCallback", link:"reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html", type:"class" },
-      { id:113, label:"com.google.android.gms.maps.GoogleMap.InfoWindowAdapter", link:"reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html", type:"class" },
-      { id:114, label:"com.google.android.gms.maps.GoogleMap.OnCameraChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html", type:"class" },
-      { id:115, label:"com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html", type:"class" },
-      { id:116, label:"com.google.android.gms.maps.GoogleMap.OnMapClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html", type:"class" },
-      { id:117, label:"com.google.android.gms.maps.GoogleMap.OnMapLongClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", type:"class" },
-      { id:118, label:"com.google.android.gms.maps.GoogleMap.OnMarkerClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", type:"class" },
-      { id:119, label:"com.google.android.gms.maps.GoogleMap.OnMarkerDragListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", type:"class" },
-      { id:120, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", type:"class" },
-      { id:121, label:"com.google.android.gms.maps.GoogleMapOptions", link:"reference/com/google/android/gms/maps/GoogleMapOptions.html", type:"class" },
-      { id:122, label:"com.google.android.gms.maps.LocationSource", link:"reference/com/google/android/gms/maps/LocationSource.html", type:"class" },
-      { id:123, label:"com.google.android.gms.maps.LocationSource.OnLocationChangedListener", link:"reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", type:"class" },
-      { id:124, label:"com.google.android.gms.maps.MapFragment", link:"reference/com/google/android/gms/maps/MapFragment.html", type:"class" },
-      { id:125, label:"com.google.android.gms.maps.MapView", link:"reference/com/google/android/gms/maps/MapView.html", type:"class" },
-      { id:126, label:"com.google.android.gms.maps.MapsInitializer", link:"reference/com/google/android/gms/maps/MapsInitializer.html", type:"class" },
-      { id:127, label:"com.google.android.gms.maps.Projection", link:"reference/com/google/android/gms/maps/Projection.html", type:"class" },
-      { id:128, label:"com.google.android.gms.maps.SupportMapFragment", link:"reference/com/google/android/gms/maps/SupportMapFragment.html", type:"class" },
-      { id:129, label:"com.google.android.gms.maps.UiSettings", link:"reference/com/google/android/gms/maps/UiSettings.html", type:"class" },
-      { id:130, label:"com.google.android.gms.maps.model", link:"reference/com/google/android/gms/maps/model/package-summary.html", type:"package" },
-      { id:131, label:"com.google.android.gms.maps.model.BitmapDescriptor", link:"reference/com/google/android/gms/maps/model/BitmapDescriptor.html", type:"class" },
-      { id:132, label:"com.google.android.gms.maps.model.BitmapDescriptorFactory", link:"reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html", type:"class" },
-      { id:133, label:"com.google.android.gms.maps.model.CameraPosition", link:"reference/com/google/android/gms/maps/model/CameraPosition.html", type:"class" },
-      { id:134, label:"com.google.android.gms.maps.model.CameraPosition.Builder", link:"reference/com/google/android/gms/maps/model/CameraPosition.Builder.html", type:"class" },
-      { id:135, label:"com.google.android.gms.maps.model.Circle", link:"reference/com/google/android/gms/maps/model/Circle.html", type:"class" },
-      { id:136, label:"com.google.android.gms.maps.model.CircleOptions", link:"reference/com/google/android/gms/maps/model/CircleOptions.html", type:"class" },
-      { id:137, label:"com.google.android.gms.maps.model.GroundOverlay", link:"reference/com/google/android/gms/maps/model/GroundOverlay.html", type:"class" },
-      { id:138, label:"com.google.android.gms.maps.model.GroundOverlayOptions", link:"reference/com/google/android/gms/maps/model/GroundOverlayOptions.html", type:"class" },
-      { id:139, label:"com.google.android.gms.maps.model.LatLng", link:"reference/com/google/android/gms/maps/model/LatLng.html", type:"class" },
-      { id:140, label:"com.google.android.gms.maps.model.LatLngBounds", link:"reference/com/google/android/gms/maps/model/LatLngBounds.html", type:"class" },
-      { id:141, label:"com.google.android.gms.maps.model.LatLngBounds.Builder", link:"reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html", type:"class" },
-      { id:142, label:"com.google.android.gms.maps.model.Marker", link:"reference/com/google/android/gms/maps/model/Marker.html", type:"class" },
-      { id:143, label:"com.google.android.gms.maps.model.MarkerOptions", link:"reference/com/google/android/gms/maps/model/MarkerOptions.html", type:"class" },
-      { id:144, label:"com.google.android.gms.maps.model.Polygon", link:"reference/com/google/android/gms/maps/model/Polygon.html", type:"class" },
-      { id:145, label:"com.google.android.gms.maps.model.PolygonOptions", link:"reference/com/google/android/gms/maps/model/PolygonOptions.html", type:"class" },
-      { id:146, label:"com.google.android.gms.maps.model.Polyline", link:"reference/com/google/android/gms/maps/model/Polyline.html", type:"class" },
-      { id:147, label:"com.google.android.gms.maps.model.PolylineOptions", link:"reference/com/google/android/gms/maps/model/PolylineOptions.html", type:"class" },
-      { id:148, label:"com.google.android.gms.maps.model.RuntimeRemoteException", link:"reference/com/google/android/gms/maps/model/RuntimeRemoteException.html", type:"class" },
-      { id:149, label:"com.google.android.gms.maps.model.Tile", link:"reference/com/google/android/gms/maps/model/Tile.html", type:"class" },
-      { id:150, label:"com.google.android.gms.maps.model.TileOverlay", link:"reference/com/google/android/gms/maps/model/TileOverlay.html", type:"class" },
-      { id:151, label:"com.google.android.gms.maps.model.TileOverlayOptions", link:"reference/com/google/android/gms/maps/model/TileOverlayOptions.html", type:"class" },
-      { id:152, label:"com.google.android.gms.maps.model.TileProvider", link:"reference/com/google/android/gms/maps/model/TileProvider.html", type:"class" },
-      { id:153, label:"com.google.android.gms.maps.model.UrlTileProvider", link:"reference/com/google/android/gms/maps/model/UrlTileProvider.html", type:"class" },
-      { id:154, label:"com.google.android.gms.maps.model.VisibleRegion", link:"reference/com/google/android/gms/maps/model/VisibleRegion.html", type:"class" },
-      { id:155, label:"com.google.android.gms.panorama", link:"reference/com/google/android/gms/panorama/package-summary.html", type:"package" },
-      { id:156, label:"com.google.android.gms.panorama.PanoramaClient", link:"reference/com/google/android/gms/panorama/PanoramaClient.html", type:"class" },
-      { id:157, label:"com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener", link:"reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", type:"class" },
-      { id:158, label:"com.google.android.gms.plus", link:"reference/com/google/android/gms/plus/package-summary.html", type:"package" },
-      { id:159, label:"com.google.android.gms.plus.GooglePlusUtil", link:"reference/com/google/android/gms/plus/GooglePlusUtil.html", type:"class" },
-      { id:160, label:"com.google.android.gms.plus.PlusClient", link:"reference/com/google/android/gms/plus/PlusClient.html", type:"class" },
-      { id:161, label:"com.google.android.gms.plus.PlusClient.Builder", link:"reference/com/google/android/gms/plus/PlusClient.Builder.html", type:"class" },
-      { id:162, label:"com.google.android.gms.plus.PlusClient.OnAccessRevokedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", type:"class" },
-      { id:163, label:"com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", type:"class" },
-      { id:164, label:"com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", type:"class" },
-      { id:165, label:"com.google.android.gms.plus.PlusClient.OnPersonLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html", type:"class" },
-      { id:166, label:"com.google.android.gms.plus.PlusOneButton", link:"reference/com/google/android/gms/plus/PlusOneButton.html", type:"class" },
-      { id:167, label:"com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", type:"class" },
-      { id:168, label:"com.google.android.gms.plus.PlusShare", link:"reference/com/google/android/gms/plus/PlusShare.html", type:"class" },
-      { id:169, label:"com.google.android.gms.plus.PlusShare.Builder", link:"reference/com/google/android/gms/plus/PlusShare.Builder.html", type:"class" },
-      { id:170, label:"com.google.android.gms.plus.model.moments", link:"reference/com/google/android/gms/plus/model/moments/package-summary.html", type:"package" },
-      { id:171, label:"com.google.android.gms.plus.model.moments.ItemScope", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.html", type:"class" },
-      { id:172, label:"com.google.android.gms.plus.model.moments.ItemScope.Builder", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", type:"class" },
-      { id:173, label:"com.google.android.gms.plus.model.moments.Moment", link:"reference/com/google/android/gms/plus/model/moments/Moment.html", type:"class" },
-      { id:174, label:"com.google.android.gms.plus.model.moments.Moment.Builder", link:"reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", type:"class" },
-      { id:175, label:"com.google.android.gms.plus.model.moments.MomentBuffer", link:"reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", type:"class" },
-      { id:176, label:"com.google.android.gms.plus.model.people", link:"reference/com/google/android/gms/plus/model/people/package-summary.html", type:"package" },
-      { id:177, label:"com.google.android.gms.plus.model.people.Person", link:"reference/com/google/android/gms/plus/model/people/Person.html", type:"class" },
-      { id:178, label:"com.google.android.gms.plus.model.people.Person.AgeRange", link:"reference/com/google/android/gms/plus/model/people/Person.AgeRange.html", type:"class" },
-      { id:179, label:"com.google.android.gms.plus.model.people.Person.Collection", link:"reference/com/google/android/gms/plus/model/people/Person.Collection.html", type:"class" },
-      { id:180, label:"com.google.android.gms.plus.model.people.Person.Cover", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.html", type:"class" },
-      { id:181, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverInfo", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html", type:"class" },
-      { id:182, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverPhoto", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html", type:"class" },
-      { id:183, label:"com.google.android.gms.plus.model.people.Person.Cover.Layout", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", type:"class" },
-      { id:184, label:"com.google.android.gms.plus.model.people.Person.Emails", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.html", type:"class" },
-      { id:185, label:"com.google.android.gms.plus.model.people.Person.Emails.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html", type:"class" },
-      { id:186, label:"com.google.android.gms.plus.model.people.Person.Gender", link:"reference/com/google/android/gms/plus/model/people/Person.Gender.html", type:"class" },
-      { id:187, label:"com.google.android.gms.plus.model.people.Person.Image", link:"reference/com/google/android/gms/plus/model/people/Person.Image.html", type:"class" },
-      { id:188, label:"com.google.android.gms.plus.model.people.Person.Name", link:"reference/com/google/android/gms/plus/model/people/Person.Name.html", type:"class" },
-      { id:189, label:"com.google.android.gms.plus.model.people.Person.ObjectType", link:"reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", type:"class" },
-      { id:190, label:"com.google.android.gms.plus.model.people.Person.OrderBy", link:"reference/com/google/android/gms/plus/model/people/Person.OrderBy.html", type:"class" },
-      { id:191, label:"com.google.android.gms.plus.model.people.Person.Organizations", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.html", type:"class" },
-      { id:192, label:"com.google.android.gms.plus.model.people.Person.Organizations.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", type:"class" },
-      { id:193, label:"com.google.android.gms.plus.model.people.Person.PlacesLived", link:"reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html", type:"class" },
-      { id:194, label:"com.google.android.gms.plus.model.people.Person.RelationshipStatus", link:"reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", type:"class" },
-      { id:195, label:"com.google.android.gms.plus.model.people.Person.Urls", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.html", type:"class" },
-      { id:196, label:"com.google.android.gms.plus.model.people.Person.Urls.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", type:"class" },
-      { id:197, label:"com.google.android.gms.plus.model.people.PersonBuffer", link:"reference/com/google/android/gms/plus/model/people/PersonBuffer.html", type:"class" }
+      { id:0, label:"com.google.android.gms", link:"reference/com/google/android/gms/package-summary.html", type:"package", deprecated:"false" },
+      { id:1, label:"com.google.android.gms.R", link:"reference/com/google/android/gms/R.html", type:"class", deprecated:"false" },
+      { id:2, label:"com.google.android.gms.R.attr", link:"reference/com/google/android/gms/R.attr.html", type:"class", deprecated:"false" },
+      { id:3, label:"com.google.android.gms.R.color", link:"reference/com/google/android/gms/R.color.html", type:"class", deprecated:"false" },
+      { id:4, label:"com.google.android.gms.R.drawable", link:"reference/com/google/android/gms/R.drawable.html", type:"class", deprecated:"false" },
+      { id:5, label:"com.google.android.gms.R.id", link:"reference/com/google/android/gms/R.id.html", type:"class", deprecated:"false" },
+      { id:6, label:"com.google.android.gms.R.string", link:"reference/com/google/android/gms/R.string.html", type:"class", deprecated:"false" },
+      { id:7, label:"com.google.android.gms.R.styleable", link:"reference/com/google/android/gms/R.styleable.html", type:"class", deprecated:"false" },
+      { id:8, label:"com.google.android.gms.appstate", link:"reference/com/google/android/gms/appstate/package-summary.html", type:"package", deprecated:"false" },
+      { id:9, label:"com.google.android.gms.appstate.AppState", link:"reference/com/google/android/gms/appstate/AppState.html", type:"class", deprecated:"false" },
+      { id:10, label:"com.google.android.gms.appstate.AppStateBuffer", link:"reference/com/google/android/gms/appstate/AppStateBuffer.html", type:"class", deprecated:"false" },
+      { id:11, label:"com.google.android.gms.appstate.AppStateClient", link:"reference/com/google/android/gms/appstate/AppStateClient.html", type:"class", deprecated:"false" },
+      { id:12, label:"com.google.android.gms.appstate.AppStateClient.Builder", link:"reference/com/google/android/gms/appstate/AppStateClient.Builder.html", type:"class", deprecated:"false" },
+      { id:13, label:"com.google.android.gms.appstate.OnSignOutCompleteListener", link:"reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html", type:"class", deprecated:"false" },
+      { id:14, label:"com.google.android.gms.appstate.OnStateDeletedListener", link:"reference/com/google/android/gms/appstate/OnStateDeletedListener.html", type:"class", deprecated:"false" },
+      { id:15, label:"com.google.android.gms.appstate.OnStateListLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateListLoadedListener.html", type:"class", deprecated:"false" },
+      { id:16, label:"com.google.android.gms.appstate.OnStateLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateLoadedListener.html", type:"class", deprecated:"false" },
+      { id:17, label:"com.google.android.gms.auth", link:"reference/com/google/android/gms/auth/package-summary.html", type:"package", deprecated:"false" },
+      { id:18, label:"com.google.android.gms.auth.GoogleAuthException", link:"reference/com/google/android/gms/auth/GoogleAuthException.html", type:"class", deprecated:"false" },
+      { id:19, label:"com.google.android.gms.auth.GoogleAuthUtil", link:"reference/com/google/android/gms/auth/GoogleAuthUtil.html", type:"class", deprecated:"false" },
+      { id:20, label:"com.google.android.gms.auth.GooglePlayServicesAvailabilityException", link:"reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html", type:"class", deprecated:"false" },
+      { id:21, label:"com.google.android.gms.auth.UserRecoverableAuthException", link:"reference/com/google/android/gms/auth/UserRecoverableAuthException.html", type:"class", deprecated:"false" },
+      { id:22, label:"com.google.android.gms.auth.UserRecoverableNotifiedException", link:"reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html", type:"class", deprecated:"false" },
+      { id:23, label:"com.google.android.gms.common", link:"reference/com/google/android/gms/common/package-summary.html", type:"package", deprecated:"false" },
+      { id:24, label:"com.google.android.gms.common.AccountPicker", link:"reference/com/google/android/gms/common/AccountPicker.html", type:"class", deprecated:"false" },
+      { id:25, label:"com.google.android.gms.common.ConnectionResult", link:"reference/com/google/android/gms/common/ConnectionResult.html", type:"class", deprecated:"false" },
+      { id:26, label:"com.google.android.gms.common.GooglePlayServicesClient", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.html", type:"class", deprecated:"false" },
+      { id:27, label:"com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html", type:"class", deprecated:"false" },
+      { id:28, label:"com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html", type:"class", deprecated:"false" },
+      { id:29, label:"com.google.android.gms.common.GooglePlayServicesNotAvailableException", link:"reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html", type:"class", deprecated:"false" },
+      { id:30, label:"com.google.android.gms.common.GooglePlayServicesUtil", link:"reference/com/google/android/gms/common/GooglePlayServicesUtil.html", type:"class", deprecated:"false" },
+      { id:31, label:"com.google.android.gms.common.Scopes", link:"reference/com/google/android/gms/common/Scopes.html", type:"class", deprecated:"false" },
+      { id:32, label:"com.google.android.gms.common.SignInButton", link:"reference/com/google/android/gms/common/SignInButton.html", type:"class", deprecated:"false" },
+      { id:33, label:"com.google.android.gms.common.data", link:"reference/com/google/android/gms/common/data/package-summary.html", type:"package", deprecated:"false" },
+      { id:34, label:"com.google.android.gms.common.data.DataBuffer", link:"reference/com/google/android/gms/common/data/DataBuffer.html", type:"class", deprecated:"false" },
+      { id:35, label:"com.google.android.gms.common.data.DataBufferUtils", link:"reference/com/google/android/gms/common/data/DataBufferUtils.html", type:"class", deprecated:"false" },
+      { id:36, label:"com.google.android.gms.common.data.Freezable", link:"reference/com/google/android/gms/common/data/Freezable.html", type:"class", deprecated:"false" },
+      { id:37, label:"com.google.android.gms.common.images", link:"reference/com/google/android/gms/common/images/package-summary.html", type:"package", deprecated:"false" },
+      { id:38, label:"com.google.android.gms.common.images.ImageManager", link:"reference/com/google/android/gms/common/images/ImageManager.html", type:"class", deprecated:"false" },
+      { id:39, label:"com.google.android.gms.common.images.ImageManager.OnImageLoadedListener", link:"reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html", type:"class", deprecated:"false" },
+      { id:40, label:"com.google.android.gms.games", link:"reference/com/google/android/gms/games/package-summary.html", type:"package", deprecated:"false" },
+      { id:41, label:"com.google.android.gms.games.Game", link:"reference/com/google/android/gms/games/Game.html", type:"class", deprecated:"false" },
+      { id:42, label:"com.google.android.gms.games.GameBuffer", link:"reference/com/google/android/gms/games/GameBuffer.html", type:"class", deprecated:"false" },
+      { id:43, label:"com.google.android.gms.games.GameEntity", link:"reference/com/google/android/gms/games/GameEntity.html", type:"class", deprecated:"false" },
+      { id:44, label:"com.google.android.gms.games.GamesActivityResultCodes", link:"reference/com/google/android/gms/games/GamesActivityResultCodes.html", type:"class", deprecated:"false" },
+      { id:45, label:"com.google.android.gms.games.GamesClient", link:"reference/com/google/android/gms/games/GamesClient.html", type:"class", deprecated:"false" },
+      { id:46, label:"com.google.android.gms.games.GamesClient.Builder", link:"reference/com/google/android/gms/games/GamesClient.Builder.html", type:"class", deprecated:"false" },
+      { id:47, label:"com.google.android.gms.games.OnGamesLoadedListener", link:"reference/com/google/android/gms/games/OnGamesLoadedListener.html", type:"class", deprecated:"false" },
+      { id:48, label:"com.google.android.gms.games.OnPlayersLoadedListener", link:"reference/com/google/android/gms/games/OnPlayersLoadedListener.html", type:"class", deprecated:"false" },
+      { id:49, label:"com.google.android.gms.games.OnSignOutCompleteListener", link:"reference/com/google/android/gms/games/OnSignOutCompleteListener.html", type:"class", deprecated:"false" },
+      { id:50, label:"com.google.android.gms.games.PageDirection", link:"reference/com/google/android/gms/games/PageDirection.html", type:"class", deprecated:"false" },
+      { id:51, label:"com.google.android.gms.games.Player", link:"reference/com/google/android/gms/games/Player.html", type:"class", deprecated:"false" },
+      { id:52, label:"com.google.android.gms.games.PlayerBuffer", link:"reference/com/google/android/gms/games/PlayerBuffer.html", type:"class", deprecated:"false" },
+      { id:53, label:"com.google.android.gms.games.PlayerEntity", link:"reference/com/google/android/gms/games/PlayerEntity.html", type:"class", deprecated:"false" },
+      { id:54, label:"com.google.android.gms.games.RealTimeSocket", link:"reference/com/google/android/gms/games/RealTimeSocket.html", type:"class", deprecated:"false" },
+      { id:55, label:"com.google.android.gms.games.achievement", link:"reference/com/google/android/gms/games/achievement/package-summary.html", type:"package", deprecated:"false" },
+      { id:56, label:"com.google.android.gms.games.achievement.Achievement", link:"reference/com/google/android/gms/games/achievement/Achievement.html", type:"class", deprecated:"false" },
+      { id:57, label:"com.google.android.gms.games.achievement.AchievementBuffer", link:"reference/com/google/android/gms/games/achievement/AchievementBuffer.html", type:"class", deprecated:"false" },
+      { id:58, label:"com.google.android.gms.games.achievement.OnAchievementUpdatedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html", type:"class", deprecated:"false" },
+      { id:59, label:"com.google.android.gms.games.achievement.OnAchievementsLoadedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html", type:"class", deprecated:"false" },
+      { id:60, label:"com.google.android.gms.games.leaderboard", link:"reference/com/google/android/gms/games/leaderboard/package-summary.html", type:"package", deprecated:"false" },
+      { id:61, label:"com.google.android.gms.games.leaderboard.Leaderboard", link:"reference/com/google/android/gms/games/leaderboard/Leaderboard.html", type:"class", deprecated:"false" },
+      { id:62, label:"com.google.android.gms.games.leaderboard.LeaderboardBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html", type:"class", deprecated:"false" },
+      { id:63, label:"com.google.android.gms.games.leaderboard.LeaderboardScore", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html", type:"class", deprecated:"false" },
+      { id:64, label:"com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html", type:"class", deprecated:"false" },
+      { id:65, label:"com.google.android.gms.games.leaderboard.LeaderboardVariant", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html", type:"class", deprecated:"false" },
+      { id:66, label:"com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html", type:"class", deprecated:"false" },
+      { id:67, label:"com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html", type:"class", deprecated:"false" },
+      { id:68, label:"com.google.android.gms.games.leaderboard.OnScoreSubmittedListener", link:"reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html", type:"class", deprecated:"false" },
+      { id:69, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html", type:"class", deprecated:"false" },
+      { id:70, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult.Result", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html", type:"class", deprecated:"false" },
+      { id:71, label:"com.google.android.gms.games.multiplayer", link:"reference/com/google/android/gms/games/multiplayer/package-summary.html", type:"package", deprecated:"false" },
+      { id:72, label:"com.google.android.gms.games.multiplayer.Invitation", link:"reference/com/google/android/gms/games/multiplayer/Invitation.html", type:"class", deprecated:"false" },
+      { id:73, label:"com.google.android.gms.games.multiplayer.InvitationBuffer", link:"reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html", type:"class", deprecated:"false" },
+      { id:74, label:"com.google.android.gms.games.multiplayer.InvitationEntity", link:"reference/com/google/android/gms/games/multiplayer/InvitationEntity.html", type:"class", deprecated:"false" },
+      { id:75, label:"com.google.android.gms.games.multiplayer.OnInvitationReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html", type:"class", deprecated:"false" },
+      { id:76, label:"com.google.android.gms.games.multiplayer.OnInvitationsLoadedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html", type:"class", deprecated:"false" },
+      { id:77, label:"com.google.android.gms.games.multiplayer.Participant", link:"reference/com/google/android/gms/games/multiplayer/Participant.html", type:"class", deprecated:"false" },
+      { id:78, label:"com.google.android.gms.games.multiplayer.ParticipantBuffer", link:"reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html", type:"class", deprecated:"false" },
+      { id:79, label:"com.google.android.gms.games.multiplayer.ParticipantEntity", link:"reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html", type:"class", deprecated:"false" },
+      { id:80, label:"com.google.android.gms.games.multiplayer.ParticipantUtils", link:"reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html", type:"class", deprecated:"false" },
+      { id:81, label:"com.google.android.gms.games.multiplayer.Participatable", link:"reference/com/google/android/gms/games/multiplayer/Participatable.html", type:"class", deprecated:"false" },
+      { id:82, label:"com.google.android.gms.games.multiplayer.realtime", link:"reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html", type:"package", deprecated:"false" },
+      { id:83, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessage", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html", type:"class", deprecated:"false" },
+      { id:84, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessageReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html", type:"class", deprecated:"false" },
+      { id:85, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html", type:"class", deprecated:"false" },
+      { id:86, label:"com.google.android.gms.games.multiplayer.realtime.Room", link:"reference/com/google/android/gms/games/multiplayer/realtime/Room.html", type:"class", deprecated:"false" },
+      { id:87, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html", type:"class", deprecated:"false" },
+      { id:88, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig.Builder", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html", type:"class", deprecated:"false" },
+      { id:89, label:"com.google.android.gms.games.multiplayer.realtime.RoomEntity", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html", type:"class", deprecated:"false" },
+      { id:90, label:"com.google.android.gms.games.multiplayer.realtime.RoomStatusUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html", type:"class", deprecated:"false" },
+      { id:91, label:"com.google.android.gms.games.multiplayer.realtime.RoomUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html", type:"class", deprecated:"false" },
+      { id:92, label:"com.google.android.gms.gcm", link:"reference/com/google/android/gms/gcm/package-summary.html", type:"package", deprecated:"false" },
+      { id:93, label:"com.google.android.gms.gcm.GoogleCloudMessaging", link:"reference/com/google/android/gms/gcm/GoogleCloudMessaging.html", type:"class", deprecated:"false" },
+      { id:94, label:"com.google.android.gms.location", link:"reference/com/google/android/gms/location/package-summary.html", type:"package", deprecated:"false" },
+      { id:95, label:"com.google.android.gms.location.ActivityRecognitionClient", link:"reference/com/google/android/gms/location/ActivityRecognitionClient.html", type:"class", deprecated:"false" },
+      { id:96, label:"com.google.android.gms.location.ActivityRecognitionResult", link:"reference/com/google/android/gms/location/ActivityRecognitionResult.html", type:"class", deprecated:"false" },
+      { id:97, label:"com.google.android.gms.location.DetectedActivity", link:"reference/com/google/android/gms/location/DetectedActivity.html", type:"class", deprecated:"false" },
+      { id:98, label:"com.google.android.gms.location.Geofence", link:"reference/com/google/android/gms/location/Geofence.html", type:"class", deprecated:"false" },
+      { id:99, label:"com.google.android.gms.location.Geofence.Builder", link:"reference/com/google/android/gms/location/Geofence.Builder.html", type:"class", deprecated:"false" },
+      { id:100, label:"com.google.android.gms.location.LocationClient", link:"reference/com/google/android/gms/location/LocationClient.html", type:"class", deprecated:"false" },
+      { id:101, label:"com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html", type:"class", deprecated:"false" },
+      { id:102, label:"com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html", type:"class", deprecated:"false" },
+      { id:103, label:"com.google.android.gms.location.LocationListener", link:"reference/com/google/android/gms/location/LocationListener.html", type:"class", deprecated:"false" },
+      { id:104, label:"com.google.android.gms.location.LocationRequest", link:"reference/com/google/android/gms/location/LocationRequest.html", type:"class", deprecated:"false" },
+      { id:105, label:"com.google.android.gms.location.LocationStatusCodes", link:"reference/com/google/android/gms/location/LocationStatusCodes.html", type:"class", deprecated:"false" },
+      { id:106, label:"com.google.android.gms.maps", link:"reference/com/google/android/gms/maps/package-summary.html", type:"package", deprecated:"false" },
+      { id:107, label:"com.google.android.gms.maps.CameraUpdate", link:"reference/com/google/android/gms/maps/CameraUpdate.html", type:"class", deprecated:"false" },
+      { id:108, label:"com.google.android.gms.maps.CameraUpdateFactory", link:"reference/com/google/android/gms/maps/CameraUpdateFactory.html", type:"class", deprecated:"false" },
+      { id:109, label:"com.google.android.gms.maps.GoogleMap", link:"reference/com/google/android/gms/maps/GoogleMap.html", type:"class", deprecated:"false" },
+      { id:110, label:"com.google.android.gms.maps.GoogleMap.CancelableCallback", link:"reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html", type:"class", deprecated:"false" },
+      { id:111, label:"com.google.android.gms.maps.GoogleMap.InfoWindowAdapter", link:"reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html", type:"class", deprecated:"false" },
+      { id:112, label:"com.google.android.gms.maps.GoogleMap.OnCameraChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html", type:"class", deprecated:"false" },
+      { id:113, label:"com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html", type:"class", deprecated:"false" },
+      { id:114, label:"com.google.android.gms.maps.GoogleMap.OnMapClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html", type:"class", deprecated:"false" },
+      { id:115, label:"com.google.android.gms.maps.GoogleMap.OnMapLongClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", type:"class", deprecated:"false" },
+      { id:116, label:"com.google.android.gms.maps.GoogleMap.OnMarkerClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", type:"class", deprecated:"false" },
+      { id:117, label:"com.google.android.gms.maps.GoogleMap.OnMarkerDragListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", type:"class", deprecated:"false" },
+      { id:118, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", type:"class", deprecated:"true" },
+      { id:119, label:"com.google.android.gms.maps.GoogleMapOptions", link:"reference/com/google/android/gms/maps/GoogleMapOptions.html", type:"class", deprecated:"false" },
+      { id:120, label:"com.google.android.gms.maps.LocationSource", link:"reference/com/google/android/gms/maps/LocationSource.html", type:"class", deprecated:"false" },
+      { id:121, label:"com.google.android.gms.maps.LocationSource.OnLocationChangedListener", link:"reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", type:"class", deprecated:"false" },
+      { id:122, label:"com.google.android.gms.maps.MapFragment", link:"reference/com/google/android/gms/maps/MapFragment.html", type:"class", deprecated:"false" },
+      { id:123, label:"com.google.android.gms.maps.MapView", link:"reference/com/google/android/gms/maps/MapView.html", type:"class", deprecated:"false" },
+      { id:124, label:"com.google.android.gms.maps.MapsInitializer", link:"reference/com/google/android/gms/maps/MapsInitializer.html", type:"class", deprecated:"false" },
+      { id:125, label:"com.google.android.gms.maps.Projection", link:"reference/com/google/android/gms/maps/Projection.html", type:"class", deprecated:"false" },
+      { id:126, label:"com.google.android.gms.maps.SupportMapFragment", link:"reference/com/google/android/gms/maps/SupportMapFragment.html", type:"class", deprecated:"false" },
+      { id:127, label:"com.google.android.gms.maps.UiSettings", link:"reference/com/google/android/gms/maps/UiSettings.html", type:"class", deprecated:"false" },
+      { id:128, label:"com.google.android.gms.maps.model", link:"reference/com/google/android/gms/maps/model/package-summary.html", type:"package", deprecated:"false" },
+      { id:129, label:"com.google.android.gms.maps.model.BitmapDescriptor", link:"reference/com/google/android/gms/maps/model/BitmapDescriptor.html", type:"class", deprecated:"false" },
+      { id:130, label:"com.google.android.gms.maps.model.BitmapDescriptorFactory", link:"reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html", type:"class", deprecated:"false" },
+      { id:131, label:"com.google.android.gms.maps.model.CameraPosition", link:"reference/com/google/android/gms/maps/model/CameraPosition.html", type:"class", deprecated:"false" },
+      { id:132, label:"com.google.android.gms.maps.model.CameraPosition.Builder", link:"reference/com/google/android/gms/maps/model/CameraPosition.Builder.html", type:"class", deprecated:"false" },
+      { id:133, label:"com.google.android.gms.maps.model.Circle", link:"reference/com/google/android/gms/maps/model/Circle.html", type:"class", deprecated:"false" },
+      { id:134, label:"com.google.android.gms.maps.model.CircleOptions", link:"reference/com/google/android/gms/maps/model/CircleOptions.html", type:"class", deprecated:"false" },
+      { id:135, label:"com.google.android.gms.maps.model.GroundOverlay", link:"reference/com/google/android/gms/maps/model/GroundOverlay.html", type:"class", deprecated:"false" },
+      { id:136, label:"com.google.android.gms.maps.model.GroundOverlayOptions", link:"reference/com/google/android/gms/maps/model/GroundOverlayOptions.html", type:"class", deprecated:"false" },
+      { id:137, label:"com.google.android.gms.maps.model.LatLng", link:"reference/com/google/android/gms/maps/model/LatLng.html", type:"class", deprecated:"false" },
+      { id:138, label:"com.google.android.gms.maps.model.LatLngBounds", link:"reference/com/google/android/gms/maps/model/LatLngBounds.html", type:"class", deprecated:"false" },
+      { id:139, label:"com.google.android.gms.maps.model.LatLngBounds.Builder", link:"reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html", type:"class", deprecated:"false" },
+      { id:140, label:"com.google.android.gms.maps.model.Marker", link:"reference/com/google/android/gms/maps/model/Marker.html", type:"class", deprecated:"false" },
+      { id:141, label:"com.google.android.gms.maps.model.MarkerOptions", link:"reference/com/google/android/gms/maps/model/MarkerOptions.html", type:"class", deprecated:"false" },
+      { id:142, label:"com.google.android.gms.maps.model.Polygon", link:"reference/com/google/android/gms/maps/model/Polygon.html", type:"class", deprecated:"false" },
+      { id:143, label:"com.google.android.gms.maps.model.PolygonOptions", link:"reference/com/google/android/gms/maps/model/PolygonOptions.html", type:"class", deprecated:"false" },
+      { id:144, label:"com.google.android.gms.maps.model.Polyline", link:"reference/com/google/android/gms/maps/model/Polyline.html", type:"class", deprecated:"false" },
+      { id:145, label:"com.google.android.gms.maps.model.PolylineOptions", link:"reference/com/google/android/gms/maps/model/PolylineOptions.html", type:"class", deprecated:"false" },
+      { id:146, label:"com.google.android.gms.maps.model.RuntimeRemoteException", link:"reference/com/google/android/gms/maps/model/RuntimeRemoteException.html", type:"class", deprecated:"false" },
+      { id:147, label:"com.google.android.gms.maps.model.Tile", link:"reference/com/google/android/gms/maps/model/Tile.html", type:"class", deprecated:"false" },
+      { id:148, label:"com.google.android.gms.maps.model.TileOverlay", link:"reference/com/google/android/gms/maps/model/TileOverlay.html", type:"class", deprecated:"false" },
+      { id:149, label:"com.google.android.gms.maps.model.TileOverlayOptions", link:"reference/com/google/android/gms/maps/model/TileOverlayOptions.html", type:"class", deprecated:"false" },
+      { id:150, label:"com.google.android.gms.maps.model.TileProvider", link:"reference/com/google/android/gms/maps/model/TileProvider.html", type:"class", deprecated:"false" },
+      { id:151, label:"com.google.android.gms.maps.model.UrlTileProvider", link:"reference/com/google/android/gms/maps/model/UrlTileProvider.html", type:"class", deprecated:"false" },
+      { id:152, label:"com.google.android.gms.maps.model.VisibleRegion", link:"reference/com/google/android/gms/maps/model/VisibleRegion.html", type:"class", deprecated:"false" },
+      { id:153, label:"com.google.android.gms.panorama", link:"reference/com/google/android/gms/panorama/package-summary.html", type:"package", deprecated:"false" },
+      { id:154, label:"com.google.android.gms.panorama.PanoramaClient", link:"reference/com/google/android/gms/panorama/PanoramaClient.html", type:"class", deprecated:"false" },
+      { id:155, label:"com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener", link:"reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", type:"class", deprecated:"false" },
+      { id:156, label:"com.google.android.gms.plus", link:"reference/com/google/android/gms/plus/package-summary.html", type:"package", deprecated:"false" },
+      { id:157, label:"com.google.android.gms.plus.GooglePlusUtil", link:"reference/com/google/android/gms/plus/GooglePlusUtil.html", type:"class", deprecated:"false" },
+      { id:158, label:"com.google.android.gms.plus.PlusClient", link:"reference/com/google/android/gms/plus/PlusClient.html", type:"class", deprecated:"false" },
+      { id:159, label:"com.google.android.gms.plus.PlusClient.Builder", link:"reference/com/google/android/gms/plus/PlusClient.Builder.html", type:"class", deprecated:"false" },
+      { id:160, label:"com.google.android.gms.plus.PlusClient.OnAccessRevokedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", type:"class", deprecated:"false" },
+      { id:161, label:"com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", type:"class", deprecated:"false" },
+      { id:162, label:"com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", type:"class", deprecated:"false" },
+      { id:163, label:"com.google.android.gms.plus.PlusClient.OnPersonLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html", type:"class", deprecated:"false" },
+      { id:164, label:"com.google.android.gms.plus.PlusOneButton", link:"reference/com/google/android/gms/plus/PlusOneButton.html", type:"class", deprecated:"false" },
+      { id:165, label:"com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", type:"class", deprecated:"false" },
+      { id:166, label:"com.google.android.gms.plus.PlusShare", link:"reference/com/google/android/gms/plus/PlusShare.html", type:"class", deprecated:"false" },
+      { id:167, label:"com.google.android.gms.plus.PlusShare.Builder", link:"reference/com/google/android/gms/plus/PlusShare.Builder.html", type:"class", deprecated:"false" },
+      { id:168, label:"com.google.android.gms.plus.model.moments", link:"reference/com/google/android/gms/plus/model/moments/package-summary.html", type:"package", deprecated:"false" },
+      { id:169, label:"com.google.android.gms.plus.model.moments.ItemScope", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.html", type:"class", deprecated:"false" },
+      { id:170, label:"com.google.android.gms.plus.model.moments.ItemScope.Builder", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", type:"class", deprecated:"false" },
+      { id:171, label:"com.google.android.gms.plus.model.moments.Moment", link:"reference/com/google/android/gms/plus/model/moments/Moment.html", type:"class", deprecated:"false" },
+      { id:172, label:"com.google.android.gms.plus.model.moments.Moment.Builder", link:"reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", type:"class", deprecated:"false" },
+      { id:173, label:"com.google.android.gms.plus.model.moments.MomentBuffer", link:"reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", type:"class", deprecated:"false" },
+      { id:174, label:"com.google.android.gms.plus.model.people", link:"reference/com/google/android/gms/plus/model/people/package-summary.html", type:"package", deprecated:"false" },
+      { id:175, label:"com.google.android.gms.plus.model.people.Person", link:"reference/com/google/android/gms/plus/model/people/Person.html", type:"class", deprecated:"false" },
+      { id:176, label:"com.google.android.gms.plus.model.people.Person.AgeRange", link:"reference/com/google/android/gms/plus/model/people/Person.AgeRange.html", type:"class", deprecated:"false" },
+      { id:177, label:"com.google.android.gms.plus.model.people.Person.Collection", link:"reference/com/google/android/gms/plus/model/people/Person.Collection.html", type:"class", deprecated:"false" },
+      { id:178, label:"com.google.android.gms.plus.model.people.Person.Cover", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.html", type:"class", deprecated:"false" },
+      { id:179, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverInfo", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html", type:"class", deprecated:"false" },
+      { id:180, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverPhoto", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html", type:"class", deprecated:"false" },
+      { id:181, label:"com.google.android.gms.plus.model.people.Person.Cover.Layout", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", type:"class", deprecated:"false" },
+      { id:182, label:"com.google.android.gms.plus.model.people.Person.Emails", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.html", type:"class", deprecated:"false" },
+      { id:183, label:"com.google.android.gms.plus.model.people.Person.Emails.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html", type:"class", deprecated:"false" },
+      { id:184, label:"com.google.android.gms.plus.model.people.Person.Gender", link:"reference/com/google/android/gms/plus/model/people/Person.Gender.html", type:"class", deprecated:"false" },
+      { id:185, label:"com.google.android.gms.plus.model.people.Person.Image", link:"reference/com/google/android/gms/plus/model/people/Person.Image.html", type:"class", deprecated:"false" },
+      { id:186, label:"com.google.android.gms.plus.model.people.Person.Name", link:"reference/com/google/android/gms/plus/model/people/Person.Name.html", type:"class", deprecated:"false" },
+      { id:187, label:"com.google.android.gms.plus.model.people.Person.ObjectType", link:"reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", type:"class", deprecated:"false" },
+      { id:188, label:"com.google.android.gms.plus.model.people.Person.OrderBy", link:"reference/com/google/android/gms/plus/model/people/Person.OrderBy.html", type:"class", deprecated:"false" },
+      { id:189, label:"com.google.android.gms.plus.model.people.Person.Organizations", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.html", type:"class", deprecated:"false" },
+      { id:190, label:"com.google.android.gms.plus.model.people.Person.Organizations.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", type:"class", deprecated:"false" },
+      { id:191, label:"com.google.android.gms.plus.model.people.Person.PlacesLived", link:"reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html", type:"class", deprecated:"false" },
+      { id:192, label:"com.google.android.gms.plus.model.people.Person.RelationshipStatus", link:"reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", type:"class", deprecated:"false" },
+      { id:193, label:"com.google.android.gms.plus.model.people.Person.Urls", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.html", type:"class", deprecated:"false" },
+      { id:194, label:"com.google.android.gms.plus.model.people.Person.Urls.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", type:"class", deprecated:"false" },
+      { id:195, label:"com.google.android.gms.plus.model.people.PersonBuffer", link:"reference/com/google/android/gms/plus/model/people/PersonBuffer.html", type:"class", deprecated:"false" }
 
     ];
index 62badd9..9ddbc81 100644 (file)
 </div>
 <div class="contents">
 <div class="textblock"> </div><table>
-  <tr><td class="indexkey"><a class="el" href="structrs__allocation.html">rs_allocation</a></td><td class="indexvalue">Opaque handle to a Renderscript allocation </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__element.html">rs_element</a></td><td class="indexvalue">Opaque handle to a Renderscript element </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__font.html">rs_font</a></td><td class="indexvalue">Opaque handle to a Renderscript font object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__allocation.html">rs_allocation</a></td><td class="indexvalue">Opaque handle to a RenderScript allocation </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__element.html">rs_element</a></td><td class="indexvalue">Opaque handle to a RenderScript element </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__font.html">rs_font</a></td><td class="indexvalue">Opaque handle to a RenderScript font object </td></tr>
   <tr><td class="indexkey"><a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a></td><td class="indexvalue">2x2 float matrix </td></tr>
   <tr><td class="indexkey"><a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a></td><td class="indexvalue">3x3 float matrix </td></tr>
   <tr><td class="indexkey"><a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a></td><td class="indexvalue">4x4 float matrix </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__mesh.html">rs_mesh</a></td><td class="indexvalue">Opaque handle to a Renderscript mesh object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__path.html">rs_path</a></td><td class="indexvalue">Opaque handle to a Renderscript Path object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__program__fragment.html">rs_program_fragment</a></td><td class="indexvalue">Opaque handle to a Renderscript ProgramFragment object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__program__raster.html">rs_program_raster</a></td><td class="indexvalue">Opaque handle to a Renderscript ProgramRaster object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__program__store.html">rs_program_store</a></td><td class="indexvalue">Opaque handle to a Renderscript ProgramStore object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__program__vertex.html">rs_program_vertex</a></td><td class="indexvalue">Opaque handle to a Renderscript ProgramVertex object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__sampler.html">rs_sampler</a></td><td class="indexvalue">Opaque handle to a Renderscript sampler object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__script.html">rs_script</a></td><td class="indexvalue">Opaque handle to a Renderscript script object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__mesh.html">rs_mesh</a></td><td class="indexvalue">Opaque handle to a RenderScript mesh object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__path.html">rs_path</a></td><td class="indexvalue">Opaque handle to a RenderScript Path object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__program__fragment.html">rs_program_fragment</a></td><td class="indexvalue">Opaque handle to a RenderScript ProgramFragment object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__program__raster.html">rs_program_raster</a></td><td class="indexvalue">Opaque handle to a RenderScript ProgramRaster object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__program__store.html">rs_program_store</a></td><td class="indexvalue">Opaque handle to a RenderScript ProgramStore object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__program__vertex.html">rs_program_vertex</a></td><td class="indexvalue">Opaque handle to a RenderScript ProgramVertex object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__sampler.html">rs_sampler</a></td><td class="indexvalue">Opaque handle to a RenderScript sampler object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__script.html">rs_script</a></td><td class="indexvalue">Opaque handle to a RenderScript script object </td></tr>
   <tr><td class="indexkey"><a class="el" href="structrs__script__call.html">rs_script_call</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structrs__tm.html">rs_tm</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="structrs__type.html">rs_type</a></td><td class="indexvalue">Opaque handle to a Renderscript type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="structrs__type.html">rs_type</a></td><td class="indexvalue">Opaque handle to a RenderScript type </td></tr>
 </table>
 </div>
 
index ffbd052..d149a0d 100644 (file)
@@ -28,6 +28,7 @@
       <li><a href="globals_func.html"><span>Functions</span></a></li>
       <li><a href="globals_type.html"><span>Typedefs</span></a></li>
       <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
     </ul>
   </div>
   <div id="navrow4" class="tabs3">
@@ -54,6 +55,9 @@
 <div class="textblock"> </div>
 
 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>abs()
+: <a class="el" href="rs__cl_8rsh.html#a1ed0afedda2068ad1f9ad14ef3449e50">rs_cl.rsh</a>
+</li>
 <li>acos()
 : <a class="el" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">rs_cl.rsh</a>
 </li>
@@ -61,7 +65,7 @@
 : <a class="el" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">rs_cl.rsh</a>
 </li>
 <li>acospi()
-: <a class="el" href="rs__cl_8rsh.html#a2c0c7c00815bd480fcda80d1144ac20d">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a2c9092eb07e9df891935e93469e70d4e">rs_cl.rsh</a>
 </li>
 <li>asin()
 : <a class="el" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">rs_cl.rsh</a>
@@ -70,7 +74,7 @@
 : <a class="el" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">rs_cl.rsh</a>
 </li>
 <li>asinpi()
-: <a class="el" href="rs__cl_8rsh.html#a679b63e86358fc962cb343eb6263496b">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a812eb4521e65a451161417f9898384f7">rs_cl.rsh</a>
 </li>
 <li>atan()
 : <a class="el" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">rs_cl.rsh</a>
 </li>
 <li>atan2pi()
-: <a class="el" href="rs__cl_8rsh.html#a9aed0a1613c86acf5e4c5ad3290a4745">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a89ec5f6a2f64a0f9e97438fbd41aaace">rs_cl.rsh</a>
 </li>
 <li>atanh()
 : <a class="el" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">rs_cl.rsh</a>
 </li>
 <li>atanpi()
-: <a class="el" href="rs__cl_8rsh.html#a420d4aaea0e53d7172845a21a1e648ea">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a5052e31ce616d35aee25a3a83f6fc117">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">rs_types.rsh</a>
 </li>
 <li>clamp()
-: <a class="el" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#afae5eac13e35acd0f47d7e3c601e16ed">rs_cl.rsh</a>
+</li>
+<li>clz()
+: <a class="el" href="rs__cl_8rsh.html#a8a0f94dce3caa2a50cbf2d9f4bc674ac">rs_cl.rsh</a>
+</li>
+<li>convert_char2()
+: <a class="el" href="rs__cl_8rsh.html#a67421c4b17df15a1c726d912770e5ca4">rs_cl.rsh</a>
+</li>
+<li>convert_float2()
+: <a class="el" href="rs__cl_8rsh.html#a1ad62d449c1e3548573c2f9c1a5cb13a">rs_cl.rsh</a>
+</li>
+<li>convert_int2()
+: <a class="el" href="rs__cl_8rsh.html#a9d2e4b8f0f25a7ccaed05248edc21f06">rs_cl.rsh</a>
+</li>
+<li>convert_short2()
+: <a class="el" href="rs__cl_8rsh.html#a83e89db1940f3190fbec5bd823a99fc5">rs_cl.rsh</a>
+</li>
+<li>convert_uchar2()
+: <a class="el" href="rs__cl_8rsh.html#a833bb5476683ec5692feaf0cd5dcdd80">rs_cl.rsh</a>
+</li>
+<li>convert_uint2()
+: <a class="el" href="rs__cl_8rsh.html#a01ff256469203ba33ba0f220b54e70d1">rs_cl.rsh</a>
+</li>
+<li>convert_ushort2()
+: <a class="el" href="rs__cl_8rsh.html#a6862ea6ddfba8a59796bc681a544fb4f">rs_cl.rsh</a>
 </li>
 <li>copysign()
 : <a class="el" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">rs_cl.rsh</a>
 </li>
 <li>cospi()
-: <a class="el" href="rs__cl_8rsh.html#a07b12188bd53c6b584274892f6abf425">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a258d2c828fd46eae2867373884d834a9">rs_cl.rsh</a>
 </li>
 <li>cross()
-: <a class="el" href="rs__cl_8rsh.html#a0f7beb26bb4aa30535babd14492a7e90">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#add745d593bc2b23285bd10e52a204e25">rs_cl.rsh</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
 <li>degrees()
-: <a class="el" href="rs__cl_8rsh.html#adc1b551193e66d8037daa1721df4d29c">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a0276b63d6905fa802032f1490a24515b">rs_cl.rsh</a>
 </li>
 <li>distance()
-: <a class="el" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a412bf215ae838c65079560bbefefaca7">rs_cl.rsh</a>
 </li>
 <li>dot()
-: <a class="el" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">rs_cl.rsh</a>
 </li>
 <li>double2
 : <a class="el" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">rs_types.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">rs_cl.rsh</a>
 </li>
 <li>exp10()
-: <a class="el" href="rs__cl_8rsh.html#a4b51589157c9ce600ea6156be51d8d18">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a0225ff40d79f78260293e776c6a77422">rs_cl.rsh</a>
 </li>
 <li>exp2()
 : <a class="el" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">rs_cl.rsh</a>
 <li>fabs()
 : <a class="el" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">rs_cl.rsh</a>
 </li>
+<li>fast_distance()
+: <a class="el" href="rs__cl_8rsh.html#a4fcbdb9099e7d653a951cb344ba3c3c9">rs_cl.rsh</a>
+</li>
+<li>fast_length()
+: <a class="el" href="rs__cl_8rsh.html#a7c8f2f987044a360b5f616a80a74a4d5">rs_cl.rsh</a>
+</li>
+<li>fast_normalize()
+: <a class="el" href="rs__cl_8rsh.html#a3878bee2879351f518be68e015d76a35">rs_cl.rsh</a>
+</li>
 <li>fdim()
 : <a class="el" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">rs_cl.rsh</a>
 </li>
 : <a class="el" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">rs_cl.rsh</a>
 </li>
 <li>fract()
-: <a class="el" href="rs__cl_8rsh.html#ac5277212e0df309a0a7c908424f7b14b">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">rs_cl.rsh</a>
 </li>
 <li>frexp()
 : <a class="el" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">rs_cl.rsh</a>
 
 
 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>half_recip()
+: <a class="el" href="rs__cl_8rsh.html#a49050a8e32c95f60df4eaba9d7dfdca6">rs_cl.rsh</a>
+</li>
+<li>half_rsqrt()
+: <a class="el" href="rs__cl_8rsh.html#a0925ceb22d33dcbb45914350ffa2edea">rs_cl.rsh</a>
+</li>
+<li>half_sqrt()
+: <a class="el" href="rs__cl_8rsh.html#a26e2c17b20ee4c98b78c365d390e4fb8">rs_cl.rsh</a>
+</li>
 <li>hypot()
 : <a class="el" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">rs_cl.rsh</a>
 </li>
 : <a class="el" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">rs_cl.rsh</a>
 </li>
 <li>length()
-: <a class="el" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">rs_cl.rsh</a>
 </li>
 <li>lgamma()
 : <a class="el" href="rs__cl_8rsh.html#a735f4e14e33c50348ef41220f9210bcc">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">rs_cl.rsh</a>
 </li>
 <li>log2()
-: <a class="el" href="rs__cl_8rsh.html#a2fb571ae932f671ff3e9e97f2d3fabb7">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aab1c4f06daf6f2a50fd73f0c28929213">rs_cl.rsh</a>
 </li>
 <li>logb()
 : <a class="el" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">rs_cl.rsh</a>
 <li>mad()
 : <a class="el" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">rs_cl.rsh</a>
 </li>
+<li>max()
+: <a class="el" href="rs__cl_8rsh.html#a616bf7a90d8d3c73a48d2c395d9dc4ea">rs_cl.rsh</a>
+</li>
+<li>min()
+: <a class="el" href="rs__cl_8rsh.html#a5f61ca44b3ad4b11365b0c4137a22658">rs_cl.rsh</a>
+</li>
 <li>mix()
-: <a class="el" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a254612a612ff7539b01a1478e03d8697">rs_cl.rsh</a>
 </li>
 <li>modf()
 : <a class="el" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">rs_cl.rsh</a>
 
 
 <h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>native_exp()
+: <a class="el" href="rs__cl_8rsh.html#a45d8176823a05b891313f3d96decf491">rs_cl.rsh</a>
+</li>
+<li>native_exp10()
+: <a class="el" href="rs__cl_8rsh.html#a601ee3d2bf769f1cdc39a886f7a6c986">rs_cl.rsh</a>
+</li>
+<li>native_exp2()
+: <a class="el" href="rs__cl_8rsh.html#ab354691ecd844549b27ef9202e17f7ac">rs_cl.rsh</a>
+</li>
 <li>nextafter()
 : <a class="el" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">rs_cl.rsh</a>
 </li>
 <li>normalize()
-: <a class="el" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a69c2a56f743593439d5ae5e3ec8e517f">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">rs_cl.rsh</a>
 </li>
 <li>pown()
-: <a class="el" href="rs__cl_8rsh.html#afd46205452017b741abb2e17fc28557d">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a67d1fe795e092003f687f3cc6d3c407a">rs_cl.rsh</a>
 </li>
 <li>powr()
-: <a class="el" href="rs__cl_8rsh.html#a3ff65421721ec8e6ce8d875a563d005f">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a316c30ba3e6bc11673bfd34bb4746d24">rs_cl.rsh</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
 <li>radians()
-: <a class="el" href="rs__cl_8rsh.html#aaef2526c4d190ba6f7301b4e810917a7">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aceb63a0da6393b8ac2ed229bae6232d6">rs_cl.rsh</a>
 </li>
 <li>remainder()
 : <a class="el" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rs_cl.rsh</a>
 </li>
 <li>rootn()
-: <a class="el" href="rs__cl_8rsh.html#af169e7e1c575b7c24c1834569223077f">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a2776b517528b8185a6bb50753af0f6cf">rs_cl.rsh</a>
 </li>
 <li>round()
 : <a class="el" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">rs_cl.rsh</a>
 </li>
+<li>rs_allocation_cubemap_face
+: <a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_types.rsh</a>
+</li>
+<li>rs_allocation_usage_type
+: <a class="el" href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171">rs_types.rsh</a>
+</li>
+<li>rs_data_kind
+: <a class="el" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">rs_types.rsh</a>
+</li>
+<li>rs_data_type
+: <a class="el" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">rs_types.rsh</a>
+</li>
+<li>rs_depth_func
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_ALWAYS
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa8d469fa992bac113a001d75aa7cfbb5a">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_EQUAL
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa56339400e4089e546199547717bdcd21">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_GEQUAL
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2858ef91becfeb84d8f34a1458a4126d">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_GREATER
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa412bb65be35e058a7699b8211cc2ef7d">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_INVALID
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfadfc3917c562a540b4114181440b909e3">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_LEQUAL
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa62459990f41930a88542b878ddd53d9f">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_LESS
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfac1ddb06fe80be898bf8d4a517187575a">rs_types.rsh</a>
+</li>
+<li>RS_DEPTH_FUNC_NOTEQUAL
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2105e438ae89b89a2f4361483e65966d">rs_types.rsh</a>
+</li>
 <li>rs_for_each_strategy
 : <a class="el" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">rs_core.rsh</a>
 </li>
+<li>rs_primitive
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_INVALID
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a136481c7695b09f01126da71bb132c9d">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_LINE
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a09a49eaa42585d6181c8a2f711b63ddf">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_LINE_STRIP
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951abe563a9f68706a5aa567793a5088b4da">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_POINT
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a337ab7046b7cb5cc9eb14bc325ae3158">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_TRIANGLE
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951aeb062ef8811156915afccfc5f4259b79">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_TRIANGLE_FAN
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951afadd96d3a17724e061d9eb07bfca4a01">rs_types.rsh</a>
+</li>
+<li>RS_PRIMITIVE_TRIANGLE_STRIP
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a497d5376ef6c9f9ead810a053b9b35d9">rs_types.rsh</a>
+</li>
 <li>rs_quaternion
 : <a class="el" href="rs__types_8rsh.html#a86f99f382dc35fc8ad98b524fe6d5447">rs_types.rsh</a>
 </li>
 <li>rs_time_t
 : <a class="el" href="rs__time_8rsh.html#ad2b4759a0a6a98bd79b7ad82a4b057d6">rs_time.rsh</a>
 </li>
+<li>rsAllocationCopy1DRange()
+: <a class="el" href="rs__allocation_8rsh.html#a3a1098a3ea3a5106955dd4398b8904e1">rs_allocation.rsh</a>
+</li>
+<li>rsAllocationCopy2DRange()
+: <a class="el" href="rs__allocation_8rsh.html#a7f7e2369b3ed7d7db31729b6db7ba07e">rs_allocation.rsh</a>
+</li>
 <li>rsAllocationGetDimFaces()
 : <a class="el" href="rs__allocation_8rsh.html#ac85f7ed88f38b35482c6d63b56d470fe">rs_allocation.rsh</a>
 </li>
 <li>rsAllocationGetDimZ()
 : <a class="el" href="rs__allocation_8rsh.html#acd6f1a2b2443e6ea39e6154577645d2c">rs_allocation.rsh</a>
 </li>
-<li>rsClamp()
-: <a class="el" href="rs__math_8rsh.html#ad36abebbb36ffc5312fb2ed8baf98d39">rs_math.rsh</a>
+<li>rsAllocationGetElement()
+: <a class="el" href="rs__allocation_8rsh.html#a6a3b6512bc269f6b369bdc54d12a45ff">rs_allocation.rsh</a>
 </li>
-<li>rsClearObject()
-: <a class="el" href="rs__object_8rsh.html#aa246aa3c8162ef03e43bc0062671ae29">rs_object.rsh</a>
+<li>rsAllocationIoReceive()
+: <a class="el" href="rs__allocation_8rsh.html#a05f7391230a92d239fdb619d791162b5">rs_allocation.rsh</a>
 </li>
-<li>rsDebug()
-: <a class="el" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rs_debug.rsh</a>
+<li>rsAllocationIoSend()
+: <a class="el" href="rs__allocation_8rsh.html#afe9ebb2f89c6366c59f5e05ee4849c0a">rs_allocation.rsh</a>
 </li>
-<li>rsExtractFrustumPlanes()
-: <a class="el" href="rs__math_8rsh.html#a191f9c687c56322c18b7d71491602122">rs_math.rsh</a>
+<li>rsAtomicAdd()
+: <a class="el" href="rs__atomic_8rsh.html#ab46665eff81030200f86db9c2181072a">rs_atomic.rsh</a>
 </li>
-<li>rsForEach()
-: <a class="el" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rs_core.rsh</a>
+<li>rsAtomicAnd()
+: <a class="el" href="rs__atomic_8rsh.html#a7fdf5633662dd5b0898ad5a149e3c8ad">rs_atomic.rsh</a>
 </li>
-<li>rsFrac()
-: <a class="el" href="rs__math_8rsh.html#ac4f127e78da0849321c7f6db14f9e989">rs_math.rsh</a>
+<li>rsAtomicCas()
+: <a class="el" href="rs__atomic_8rsh.html#a205d66a8eb29eee8968f886e488b4402">rs_atomic.rsh</a>
 </li>
-<li>rsgAllocationSyncAll()
-: <a class="el" href="rs__graphics_8rsh.html#a647228d8e15da6ad67a97701d920dcac">rs_graphics.rsh</a>
+<li>rsAtomicDec()
+: <a class="el" href="rs__atomic_8rsh.html#a16a69784a343d7c11bf6bd7fec9686ca">rs_atomic.rsh</a>
 </li>
-<li>rsgBindConstant()
-: <a class="el" href="rs__graphics_8rsh.html#a46208900d16287fde91a5d14ebc830dc">rs_graphics.rsh</a>
+<li>rsAtomicInc()
+: <a class="el" href="rs__atomic_8rsh.html#a619e7a489500a650569a76ccd93e105f">rs_atomic.rsh</a>
 </li>
-<li>rsgBindFont()
-: <a class="el" href="rs__graphics_8rsh.html#ae89effef281e92e2940055883ea366d4">rs_graphics.rsh</a>
+<li>rsAtomicMax()
+: <a class="el" href="rs__atomic_8rsh.html#a1d49d69d14956152fcde34efe9cdff87">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramFragment()
-: <a class="el" href="rs__graphics_8rsh.html#a9f8deb600729a83c39c5bcaba2152b9c">rs_graphics.rsh</a>
+<li>rsAtomicMin()
+: <a class="el" href="rs__atomic_8rsh.html#a9f3cddc86f1075ca194a762fb8a3330a">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramRaster()
-: <a class="el" href="rs__graphics_8rsh.html#a391eb5535544f6312c724b910da6ec35">rs_graphics.rsh</a>
+<li>rsAtomicOr()
+: <a class="el" href="rs__atomic_8rsh.html#a477f6eb17c4806bb715bfd975b6369cd">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramStore()
-: <a class="el" href="rs__graphics_8rsh.html#a34dfa6eddd7454fc1865222c5a022315">rs_graphics.rsh</a>
+<li>rsAtomicSub()
+: <a class="el" href="rs__atomic_8rsh.html#a800dced6abbf09716391f35bc488900b">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramVertex()
-: <a class="el" href="rs__graphics_8rsh.html#a894e26d0d05d3ef99be65ddf98dd901c">rs_graphics.rsh</a>
+<li>rsAtomicXor()
+: <a class="el" href="rs__atomic_8rsh.html#a5590505ea65c53b3bb26fa48a6b9c313">rs_atomic.rsh</a>
 </li>
-<li>rsgBindSampler()
-: <a class="el" href="rs__graphics_8rsh.html#a4ade6c5acbf6acaa1c29a1aecc6e87d3">rs_graphics.rsh</a>
+<li>rsClamp()
+: <a class="el" href="rs__math_8rsh.html#a40eddbf6c2462eada177a581a49bd3c6">rs_math.rsh</a>
+</li>
+<li>rsClearObject()
+: <a class="el" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rs_object.rsh</a>
+</li>
+<li>rsDebug()
+: <a class="el" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rs_debug.rsh</a>
 </li>
-<li>rsgBindTexture()
-: <a class="el" href="rs__graphics_8rsh.html#a1694eb5489bd3a444da921dbf16aeeb5">rs_graphics.rsh</a>
+<li>rsElementGetBytesSize()
+: <a class="el" href="rs__element_8rsh.html#ac54592168af5896d3fba5283af286f98">rs_element.rsh</a>
 </li>
-<li>rsgClearColor()
-: <a class="el" href="rs__graphics_8rsh.html#a147674fed92745fbb5c64a6300ca3c49">rs_graphics.rsh</a>
+<li>rsElementGetDataKind()
+: <a class="el" href="rs__element_8rsh.html#af072702a530e158093d69353072da5f9">rs_element.rsh</a>
 </li>
-<li>rsgClearDepth()
-: <a class="el" href="rs__graphics_8rsh.html#a4bedb06e8facd587e3eacd746fe3e727">rs_graphics.rsh</a>
+<li>rsElementGetDataType()
+: <a class="el" href="rs__element_8rsh.html#a9a3569d242be363517ea2354d98cf382">rs_element.rsh</a>
 </li>
-<li>rsgDrawMesh()
-: <a class="el" href="rs__graphics_8rsh.html#ab2704a6d16e3d7983524d0a8413c1b8a">rs_graphics.rsh</a>
+<li>rsElementGetSubElement()
+: <a class="el" href="rs__element_8rsh.html#a8c690bce7d32be759fd787740c270c92">rs_element.rsh</a>
 </li>
-<li>rsgDrawQuad()
-: <a class="el" href="rs__graphics_8rsh.html#ad6953da0349e58547b08b8ce174ed3fc">rs_graphics.rsh</a>
+<li>rsElementGetSubElementArraySize()
+: <a class="el" href="rs__element_8rsh.html#a9c3140c18139db451279d9b221808eee">rs_element.rsh</a>
 </li>
-<li>rsgDrawQuadTexCoords()
-: <a class="el" href="rs__graphics_8rsh.html#afb98a59bb9f878f0a09459567c269e64">rs_graphics.rsh</a>
+<li>rsElementGetSubElementCount()
+: <a class="el" href="rs__element_8rsh.html#a2ecab064ea2b720bc3af27b523388f31">rs_element.rsh</a>
 </li>
-<li>rsgDrawRect()
-: <a class="el" href="rs__graphics_8rsh.html#a80c51849bf12ec6c699c23c3fa3e6208">rs_graphics.rsh</a>
+<li>rsElementGetSubElementName()
+: <a class="el" href="rs__element_8rsh.html#a3c1446166c43aa6ba3d5359f6c982f02">rs_element.rsh</a>
+</li>
+<li>rsElementGetSubElementNameLength()
+: <a class="el" href="rs__element_8rsh.html#a94834eb1d91b50a5df3cbe161c22e37d">rs_element.rsh</a>
+</li>
+<li>rsElementGetSubElementOffsetBytes()
+: <a class="el" href="rs__element_8rsh.html#a840d53f1e91bb6887b40a4d8983c53ed">rs_element.rsh</a>
+</li>
+<li>rsElementGetVectorSize()
+: <a class="el" href="rs__element_8rsh.html#a727997de25ae43c07dffcfd484928d53">rs_element.rsh</a>
+</li>
+<li>rsExtractFrustumPlanes()
+: <a class="el" href="rs__math_8rsh.html#a191f9c687c56322c18b7d71491602122">rs_math.rsh</a>
 </li>
-<li>rsgDrawSpriteScreenspace()
-: <a class="el" href="rs__graphics_8rsh.html#a07d15127330fa1dff6c99b0d7d14e65e">rs_graphics.rsh</a>
+<li>rsForEach()
+: <a class="el" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rs_core.rsh</a>
 </li>
-<li>rsgDrawText()
-: <a class="el" href="rs__graphics_8rsh.html#afaec82492762e62cad1ff53ada479b14">rs_graphics.rsh</a>
+<li>rsFrac()
+: <a class="el" href="rs__math_8rsh.html#ac4f127e78da0849321c7f6db14f9e989">rs_math.rsh</a>
 </li>
 <li>rsGetAllocation()
 : <a class="el" href="rs__allocation_8rsh.html#aadad7654929c451be299df125061c9ba">rs_allocation.rsh</a>
 : <a class="el" href="rs__time_8rsh.html#adea2682186fd903752431ad848bd8bf4">rs_time.rsh</a>
 </li>
 <li>rsGetElementAt()
-: <a class="el" href="rs__allocation_8rsh.html#a3fd30b4388748601e025bb3566ce0cbc">rs_allocation.rsh</a>
+: <a class="el" href="rs__allocation_8rsh.html#a56157b6ddef754b36833ca1f8e66aec2">rs_allocation.rsh</a>
+</li>
+<li>rsGetElementAtYuv_uchar_U()
+: <a class="el" href="rs__allocation_8rsh.html#a41f61be02113ee22c039ea51fdedb20e">rs_allocation.rsh</a>
+</li>
+<li>rsGetElementAtYuv_uchar_V()
+: <a class="el" href="rs__allocation_8rsh.html#af03cadb582fa80bbf7f39177d96df17e">rs_allocation.rsh</a>
+</li>
+<li>rsGetElementAtYuv_uchar_Y()
+: <a class="el" href="rs__allocation_8rsh.html#ad7ffa1aa16511a75b4bc2c05bd0e0a75">rs_allocation.rsh</a>
+</li>
+<li>rsgMeshGetIndexAllocation()
+: <a class="el" href="rs__mesh_8rsh.html#a05257c9252e7804397d6a6f7549bae5a">rs_mesh.rsh</a>
+</li>
+<li>rsgMeshGetPrimitive()
+: <a class="el" href="rs__mesh_8rsh.html#af467f1c21cc9221071334f8234c29466">rs_mesh.rsh</a>
+</li>
+<li>rsgMeshGetPrimitiveCount()
+: <a class="el" href="rs__mesh_8rsh.html#ae0a0178cc02508517013486be4500d7f">rs_mesh.rsh</a>
 </li>
-<li>rsgFontColor()
-: <a class="el" href="rs__graphics_8rsh.html#abda8c344092ed6310c7a8f353a6df876">rs_graphics.rsh</a>
+<li>rsgMeshGetVertexAllocation()
+: <a class="el" href="rs__mesh_8rsh.html#a43e1d84147176cb0a1659552fa8da49f">rs_mesh.rsh</a>
 </li>
-<li>rsgGetHeight()
-: <a class="el" href="rs__graphics_8rsh.html#a7e6565cd5d5e44f442a8bf8ba68f4681">rs_graphics.rsh</a>
+<li>rsgMeshGetVertexAllocationCount()
+: <a class="el" href="rs__mesh_8rsh.html#a7578d6d93154ac881715ab511449fab9">rs_mesh.rsh</a>
 </li>
-<li>rsgGetWidth()
-: <a class="el" href="rs__graphics_8rsh.html#a67f4ed1ca4bba27d5c952ada89cd0717">rs_graphics.rsh</a>
+<li>rsgProgramRasterGetCullMode()
+: <a class="el" href="rs__program_8rsh.html#a633d6dbdec98ef89c2b70c92ea707502">rs_program.rsh</a>
 </li>
-<li>rsgMeasureText()
-: <a class="el" href="rs__graphics_8rsh.html#a5c599f4ea989f3d0616cbf8e983688c4">rs_graphics.rsh</a>
+<li>rsgProgramRasterIsPointSpriteEnabled()
+: <a class="el" href="rs__program_8rsh.html#a86aeccd846ed2cd2c9498ab57e2535f3">rs_program.rsh</a>
 </li>
-<li>rsgMeshComputeBoundingBox()
-: <a class="el" href="rs__graphics_8rsh.html#a0978c54902dd1d60180f8dbb0b781105">rs_graphics.rsh</a>
+<li>rsgProgramStoreGetBlendDstFunc()
+: <a class="el" href="rs__program_8rsh.html#a0ad38d595e35712f24c384ef20b69025">rs_program.rsh</a>
 </li>
-<li>rsgProgramFragmentConstantColor()
-: <a class="el" href="rs__graphics_8rsh.html#a35ac8c3759e25047e6a458c15520c887">rs_graphics.rsh</a>
+<li>rsgProgramStoreGetBlendSrcFunc()
+: <a class="el" href="rs__program_8rsh.html#afb38256c5804cdb9b410419c43ce03ab">rs_program.rsh</a>
 </li>
-<li>rsgProgramVertexGetProjectionMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a2b767d209b36ffcd2e0fc0cf6f4c5706">rs_graphics.rsh</a>
+<li>rsgProgramStoreGetDepthFunc()
+: <a class="el" href="rs__program_8rsh.html#a6a9c06c54d230f61edc0667a091aac77">rs_program.rsh</a>
 </li>
-<li>rsgProgramVertexLoadModelMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a976b8594cccb4b94d7ce520b44d884e3">rs_graphics.rsh</a>
+<li>rsgProgramStoreIsColorMaskAlphaEnabled()
+: <a class="el" href="rs__program_8rsh.html#ab038edb7399044a3ea96ebb17d7b6601">rs_program.rsh</a>
 </li>
-<li>rsgProgramVertexLoadProjectionMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a83a87d8efa3f26ed3f8fb25e49f29059">rs_graphics.rsh</a>
+<li>rsgProgramStoreIsColorMaskBlueEnabled()
+: <a class="el" href="rs__program_8rsh.html#a279ad1b4611aca268053337f6719a22c">rs_program.rsh</a>
 </li>
-<li>rsgProgramVertexLoadTextureMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a377b7b394c4bf0881532b1241d4be168">rs_graphics.rsh</a>
+<li>rsgProgramStoreIsColorMaskGreenEnabled()
+: <a class="el" href="rs__program_8rsh.html#a1a57f706bc42ce49b545021c8403964c">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsColorMaskRedEnabled()
+: <a class="el" href="rs__program_8rsh.html#a4a50df1d2495567536dd6f394d38ee5d">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsDepthMaskEnabled()
+: <a class="el" href="rs__program_8rsh.html#afa27fa6103c9e29f5e098e2d99663f0b">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsDitherEnabled()
+: <a class="el" href="rs__program_8rsh.html#abe7c55547a72dd291e0996de050bb749">rs_program.rsh</a>
 </li>
 <li>rsIsObject()
-: <a class="el" href="rs__object_8rsh.html#afa57d9148778b03b270facbdbcb88816">rs_object.rsh</a>
+: <a class="el" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rs_object.rsh</a>
 </li>
 <li>rsIsSphereInFrustum()
 : <a class="el" href="rs__math_8rsh.html#a7bbeaf44838e08e68d5cf3e3d7b0818c">rs_math.rsh</a>
 : <a class="el" href="rs__time_8rsh.html#a08a8fcadae964f7416aef487da624110">rs_time.rsh</a>
 </li>
 <li>rsMatrixGet()
-: <a class="el" href="rs__matrix_8rsh.html#a90b0548da8dbe1f643bcbac8466e5b72">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a22e983b67d3089c5cb97032e249ca335">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixInverse()
 : <a class="el" href="rs__matrix_8rsh.html#a00b6a334ba5ac94d84850f22ec9f4de5">rs_matrix.rsh</a>
 : <a class="el" href="rs__matrix_8rsh.html#ac05080d52da2d99a759ef34fa0655e82">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoad()
-: <a class="el" href="rs__matrix_8rsh.html#a06176acb38405937cb94c835a712a3b3">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#ac380c4117e047da494a74f0dad20fab3">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoadFrustum()
 : <a class="el" href="rs__matrix_8rsh.html#ad25760aaf01e95d0055237afab41bbb3">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoadIdentity()
-: <a class="el" href="rs__matrix_8rsh.html#a0ffd9de971cf10d0a663ff565be8d3cc">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a5b31e83553efa947db2198674d5db043">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoadMultiply()
-: <a class="el" href="rs__matrix_8rsh.html#a79f14c4c0f5ecc1bbd0bf54da8b653ef">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a78872343ea6a5c1a846160ccdc4add52">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoadOrtho()
 : <a class="el" href="rs__matrix_8rsh.html#a4c59884a0e534dbbcdc5655842732d43">rs_matrix.rsh</a>
 : <a class="el" href="rs__matrix_8rsh.html#a1b521c8a3d1260fa732cbf0a71af0e74">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixMultiply()
-: <a class="el" href="rs__matrix_8rsh.html#ae0b03aeec17ec8b9c5e75f8efb1bdc53">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a88ae2ed203769cb4a7917f84f6c1a2e2">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixRotate()
 : <a class="el" href="rs__matrix_8rsh.html#ad5ed05ca4880397fb29615e3c6798de1">rs_matrix.rsh</a>
 : <a class="el" href="rs__matrix_8rsh.html#a94cc6b22bd1a6c07a9a1c1d21afb392c">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixSet()
-: <a class="el" href="rs__matrix_8rsh.html#ada106cb8f08e4b23930d7ba1a0ce5609">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#ab69543f85a673f23fbb5f893e5824395">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixTranslate()
 : <a class="el" href="rs__matrix_8rsh.html#a4df5f9b5bb6044f3c3426f2f58b94405">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixTranspose()
-: <a class="el" href="rs__matrix_8rsh.html#ac52acb31a705f6c68af8bddea0e79969">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a88095c70f1550c760844b3e32e41a31a">rs_matrix.rsh</a>
 </li>
 <li>rsPackColorTo8888()
-: <a class="el" href="rs__math_8rsh.html#a22e0be7e18b317a7453ebad4300934f6">rs_math.rsh</a>
+: <a class="el" href="rs__math_8rsh.html#ac30a8c020eade2b57fd5966cb7c8665e">rs_math.rsh</a>
 </li>
 <li>rsqrt()
-: <a class="el" href="rs__cl_8rsh.html#a5db00fde9e6bff693a38f3a37e7a1f70">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a8a3992b97cb199b1c8d598996b600988">rs_cl.rsh</a>
 </li>
 <li>rsQuaternionAdd()
 : <a class="el" href="rs__quaternion_8rsh.html#a5e6e493b9917336b0d9118fdd4e91444">rs_quaternion.rsh</a>
 : <a class="el" href="rs__quaternion_8rsh.html#abb31aad2416044ad5bbf44ee7c838e2a">rs_quaternion.rsh</a>
 </li>
 <li>rsQuaternionSet()
-: <a class="el" href="rs__quaternion_8rsh.html#a249782133e54f13a8096d1fbe295714d">rs_quaternion.rsh</a>
+: <a class="el" href="rs__quaternion_8rsh.html#a5ff868dbc33e710a666a102fdcc6670a">rs_quaternion.rsh</a>
 </li>
 <li>rsQuaternionSlerp()
 : <a class="el" href="rs__quaternion_8rsh.html#a7da94a30e287cbb8148771a5cd768dbd">rs_quaternion.rsh</a>
 </li>
 <li>rsRand()
-: <a class="el" href="rs__math_8rsh.html#ad9106e5aae5b1248870f21061f36a1c9">rs_math.rsh</a>
+: <a class="el" href="rs__math_8rsh.html#a84b2e7468314873b3aa02969e310d9e4">rs_math.rsh</a>
+</li>
+<li>rsSample()
+: <a class="el" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rs_allocation.rsh</a>
+</li>
+<li>rsSamplerGetAnisotropy()
+: <a class="el" href="rs__sampler_8rsh.html#ab1e79984609469604cba8e2b76a98844">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetMagnification()
+: <a class="el" href="rs__sampler_8rsh.html#a5bddb73826cd20a79c31f012a4637e83">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetMinification()
+: <a class="el" href="rs__sampler_8rsh.html#acb1bec2c3d1edd752dd60499c8db58a4">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetWrapS()
+: <a class="el" href="rs__sampler_8rsh.html#a68a7ab6724019c6e72fae8eb45aa48dd">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetWrapT()
+: <a class="el" href="rs__sampler_8rsh.html#ab6b25d3b9afa16f418e2dee78ebb4a75">rs_sampler.rsh</a>
 </li>
 <li>rsSendToClient()
 : <a class="el" href="rs__core_8rsh.html#a508003cadad2d37d41e2de7e9226f859">rs_core.rsh</a>
 </li>
 <li>rsSendToClientBlocking()
-: <a class="el" href="rs__core_8rsh.html#afc93b00be08f58512a6ab6a87feb9515">rs_core.rsh</a>
+: <a class="el" href="rs__core_8rsh.html#a6e4ff6388e8c6978ed17447214f2a2e2">rs_core.rsh</a>
+</li>
+<li>rsSetElementAt()
+: <a class="el" href="rs__allocation_8rsh.html#a351627f335b9a091a5152db7ac9134dc">rs_allocation.rsh</a>
 </li>
 <li>rsSetObject()
 : <a class="el" href="rs__object_8rsh.html#a5132f90b4aaf8d2e35e6ad021fb08175">rs_object.rsh</a>
 : <a class="el" href="rs__time_8rsh.html#a555f9324acb8c3d0c6f09a1d05478ce2">rs_time.rsh</a>
 </li>
 <li>rsUnpackColor8888()
-: <a class="el" href="rs__math_8rsh.html#a26525a4f5093bd0f13191efe06127f4b">rs_math.rsh</a>
+: <a class="el" href="rs__math_8rsh.html#a48bb0c2e7b1f2b62b2a8970c7d709eca">rs_math.rsh</a>
 </li>
 <li>rsUptimeMillis()
 : <a class="el" href="rs__time_8rsh.html#a3c406e51a769718dd1c760518b9cad44">rs_time.rsh</a>
 : <a class="el" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">rs_types.rsh</a>
 </li>
 <li>sign()
-: <a class="el" href="rs__cl_8rsh.html#a3e6d477a06dec7070f073eec9d8f420c">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9fe423cc7d4c6d767f8a608d2ee76657">rs_cl.rsh</a>
 </li>
 <li>sin()
 : <a class="el" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">rs_cl.rsh</a>
 </li>
 <li>sincos()
-: <a class="el" href="rs__cl_8rsh.html#a240f7c7c20b432a30dc660b5dd4cd320">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a892c91a30bbc713aa77105d8e9e25881">rs_cl.rsh</a>
 </li>
 <li>sinh()
 : <a class="el" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">rs_cl.rsh</a>
 </li>
 <li>sinpi()
-: <a class="el" href="rs__cl_8rsh.html#a4fe4fef049786e888526d6f37b912b0a">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9ca027af0acf3ff22d91cd9489766976">rs_cl.rsh</a>
 </li>
 <li>size_t
 : <a class="el" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">rs_types.rsh</a>
 : <a class="el" href="rs__types_8rsh.html#a170745d0d946e79c4c2a056d1d158996">rs_types.rsh</a>
 </li>
 <li>step()
-: <a class="el" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9f40337dfee48d1881b87b35aa8133dd">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">rs_cl.rsh</a>
 </li>
 <li>tanpi()
-: <a class="el" href="rs__cl_8rsh.html#ad8bfb083dd3979a305e594a0d6e581c4">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aee96c8910a7d8b0082574813b6b68b9a">rs_cl.rsh</a>
 </li>
 <li>tgamma()
 : <a class="el" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">rs_cl.rsh</a>
index 7301432..500d6c4 100644 (file)
       <li><a href="globals_func.html"><span>Functions</span></a></li>
       <li><a href="globals_type.html"><span>Typedefs</span></a></li>
       <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
     </ul>
   </div>
 </div>
 <div class="contents">
 &#160;<ul>
+<li>rs_allocation_cubemap_face
+: <a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_types.rsh</a>
+</li>
+<li>rs_allocation_usage_type
+: <a class="el" href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171">rs_types.rsh</a>
+</li>
+<li>rs_data_kind
+: <a class="el" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">rs_types.rsh</a>
+</li>
+<li>rs_data_type
+: <a class="el" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">rs_types.rsh</a>
+</li>
+<li>rs_depth_func
+: <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_types.rsh</a>
+</li>
 <li>rs_for_each_strategy
 : <a class="el" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">rs_core.rsh</a>
 </li>
+<li>rs_primitive
+: <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_types.rsh</a>
+</li>
 </ul>
 </div>
 
index c1a622d..bed106a 100644 (file)
@@ -28,6 +28,7 @@
       <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
       <li><a href="globals_type.html"><span>Typedefs</span></a></li>
       <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
     </ul>
   </div>
   <div id="navrow4" class="tabs3">
@@ -53,6 +54,9 @@
 &#160;
 
 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>abs()
+: <a class="el" href="rs__cl_8rsh.html#a1ed0afedda2068ad1f9ad14ef3449e50">rs_cl.rsh</a>
+</li>
 <li>acos()
 : <a class="el" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">rs_cl.rsh</a>
 </li>
@@ -60,7 +64,7 @@
 : <a class="el" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">rs_cl.rsh</a>
 </li>
 <li>acospi()
-: <a class="el" href="rs__cl_8rsh.html#a2c0c7c00815bd480fcda80d1144ac20d">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a2c9092eb07e9df891935e93469e70d4e">rs_cl.rsh</a>
 </li>
 <li>asin()
 : <a class="el" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">rs_cl.rsh</a>
@@ -69,7 +73,7 @@
 : <a class="el" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">rs_cl.rsh</a>
 </li>
 <li>asinpi()
-: <a class="el" href="rs__cl_8rsh.html#a679b63e86358fc962cb343eb6263496b">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a812eb4521e65a451161417f9898384f7">rs_cl.rsh</a>
 </li>
 <li>atan()
 : <a class="el" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">rs_cl.rsh</a>
 </li>
 <li>atan2pi()
-: <a class="el" href="rs__cl_8rsh.html#a9aed0a1613c86acf5e4c5ad3290a4745">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a89ec5f6a2f64a0f9e97438fbd41aaace">rs_cl.rsh</a>
 </li>
 <li>atanh()
 : <a class="el" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">rs_cl.rsh</a>
 </li>
 <li>atanpi()
-: <a class="el" href="rs__cl_8rsh.html#a420d4aaea0e53d7172845a21a1e648ea">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a5052e31ce616d35aee25a3a83f6fc117">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__cl_8rsh.html#aa8fc6daff743a1b635ccbf9af83fe4e4">rs_cl.rsh</a>
 </li>
 <li>clamp()
-: <a class="el" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#afae5eac13e35acd0f47d7e3c601e16ed">rs_cl.rsh</a>
+</li>
+<li>clz()
+: <a class="el" href="rs__cl_8rsh.html#a8a0f94dce3caa2a50cbf2d9f4bc674ac">rs_cl.rsh</a>
+</li>
+<li>convert_char2()
+: <a class="el" href="rs__cl_8rsh.html#a67421c4b17df15a1c726d912770e5ca4">rs_cl.rsh</a>
+</li>
+<li>convert_float2()
+: <a class="el" href="rs__cl_8rsh.html#a1ad62d449c1e3548573c2f9c1a5cb13a">rs_cl.rsh</a>
+</li>
+<li>convert_int2()
+: <a class="el" href="rs__cl_8rsh.html#a9d2e4b8f0f25a7ccaed05248edc21f06">rs_cl.rsh</a>
+</li>
+<li>convert_short2()
+: <a class="el" href="rs__cl_8rsh.html#a83e89db1940f3190fbec5bd823a99fc5">rs_cl.rsh</a>
+</li>
+<li>convert_uchar2()
+: <a class="el" href="rs__cl_8rsh.html#a833bb5476683ec5692feaf0cd5dcdd80">rs_cl.rsh</a>
+</li>
+<li>convert_uint2()
+: <a class="el" href="rs__cl_8rsh.html#a01ff256469203ba33ba0f220b54e70d1">rs_cl.rsh</a>
+</li>
+<li>convert_ushort2()
+: <a class="el" href="rs__cl_8rsh.html#a6862ea6ddfba8a59796bc681a544fb4f">rs_cl.rsh</a>
 </li>
 <li>copysign()
 : <a class="el" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">rs_cl.rsh</a>
 </li>
 <li>cospi()
-: <a class="el" href="rs__cl_8rsh.html#a07b12188bd53c6b584274892f6abf425">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a258d2c828fd46eae2867373884d834a9">rs_cl.rsh</a>
 </li>
 <li>cross()
-: <a class="el" href="rs__cl_8rsh.html#a0f7beb26bb4aa30535babd14492a7e90">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#add745d593bc2b23285bd10e52a204e25">rs_cl.rsh</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
 <li>degrees()
-: <a class="el" href="rs__cl_8rsh.html#adc1b551193e66d8037daa1721df4d29c">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a0276b63d6905fa802032f1490a24515b">rs_cl.rsh</a>
 </li>
 <li>distance()
-: <a class="el" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a412bf215ae838c65079560bbefefaca7">rs_cl.rsh</a>
 </li>
 <li>dot()
-: <a class="el" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">rs_cl.rsh</a>
 </li>
 <li>exp10()
-: <a class="el" href="rs__cl_8rsh.html#a4b51589157c9ce600ea6156be51d8d18">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a0225ff40d79f78260293e776c6a77422">rs_cl.rsh</a>
 </li>
 <li>exp2()
 : <a class="el" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">rs_cl.rsh</a>
 <li>fabs()
 : <a class="el" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">rs_cl.rsh</a>
 </li>
+<li>fast_distance()
+: <a class="el" href="rs__cl_8rsh.html#a4fcbdb9099e7d653a951cb344ba3c3c9">rs_cl.rsh</a>
+</li>
+<li>fast_length()
+: <a class="el" href="rs__cl_8rsh.html#a7c8f2f987044a360b5f616a80a74a4d5">rs_cl.rsh</a>
+</li>
+<li>fast_normalize()
+: <a class="el" href="rs__cl_8rsh.html#a3878bee2879351f518be68e015d76a35">rs_cl.rsh</a>
+</li>
 <li>fdim()
 : <a class="el" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">rs_cl.rsh</a>
 </li>
 : <a class="el" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">rs_cl.rsh</a>
 </li>
 <li>fract()
-: <a class="el" href="rs__cl_8rsh.html#ac5277212e0df309a0a7c908424f7b14b">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">rs_cl.rsh</a>
 </li>
 <li>frexp()
 : <a class="el" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">rs_cl.rsh</a>
 
 
 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>half_recip()
+: <a class="el" href="rs__cl_8rsh.html#a49050a8e32c95f60df4eaba9d7dfdca6">rs_cl.rsh</a>
+</li>
+<li>half_rsqrt()
+: <a class="el" href="rs__cl_8rsh.html#a0925ceb22d33dcbb45914350ffa2edea">rs_cl.rsh</a>
+</li>
+<li>half_sqrt()
+: <a class="el" href="rs__cl_8rsh.html#a26e2c17b20ee4c98b78c365d390e4fb8">rs_cl.rsh</a>
+</li>
 <li>hypot()
 : <a class="el" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">rs_cl.rsh</a>
 </li>
 : <a class="el" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">rs_cl.rsh</a>
 </li>
 <li>length()
-: <a class="el" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">rs_cl.rsh</a>
 </li>
 <li>lgamma()
 : <a class="el" href="rs__cl_8rsh.html#a735f4e14e33c50348ef41220f9210bcc">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">rs_cl.rsh</a>
 </li>
 <li>log2()
-: <a class="el" href="rs__cl_8rsh.html#a2fb571ae932f671ff3e9e97f2d3fabb7">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aab1c4f06daf6f2a50fd73f0c28929213">rs_cl.rsh</a>
 </li>
 <li>logb()
 : <a class="el" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">rs_cl.rsh</a>
 <li>mad()
 : <a class="el" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">rs_cl.rsh</a>
 </li>
+<li>max()
+: <a class="el" href="rs__cl_8rsh.html#a616bf7a90d8d3c73a48d2c395d9dc4ea">rs_cl.rsh</a>
+</li>
+<li>min()
+: <a class="el" href="rs__cl_8rsh.html#a5f61ca44b3ad4b11365b0c4137a22658">rs_cl.rsh</a>
+</li>
 <li>mix()
-: <a class="el" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a254612a612ff7539b01a1478e03d8697">rs_cl.rsh</a>
 </li>
 <li>modf()
 : <a class="el" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">rs_cl.rsh</a>
 
 
 <h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>native_exp()
+: <a class="el" href="rs__cl_8rsh.html#a45d8176823a05b891313f3d96decf491">rs_cl.rsh</a>
+</li>
+<li>native_exp10()
+: <a class="el" href="rs__cl_8rsh.html#a601ee3d2bf769f1cdc39a886f7a6c986">rs_cl.rsh</a>
+</li>
+<li>native_exp2()
+: <a class="el" href="rs__cl_8rsh.html#ab354691ecd844549b27ef9202e17f7ac">rs_cl.rsh</a>
+</li>
 <li>nextafter()
 : <a class="el" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">rs_cl.rsh</a>
 </li>
 <li>normalize()
-: <a class="el" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a69c2a56f743593439d5ae5e3ec8e517f">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">rs_cl.rsh</a>
 </li>
 <li>pown()
-: <a class="el" href="rs__cl_8rsh.html#afd46205452017b741abb2e17fc28557d">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a67d1fe795e092003f687f3cc6d3c407a">rs_cl.rsh</a>
 </li>
 <li>powr()
-: <a class="el" href="rs__cl_8rsh.html#a3ff65421721ec8e6ce8d875a563d005f">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a316c30ba3e6bc11673bfd34bb4746d24">rs_cl.rsh</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
 <li>radians()
-: <a class="el" href="rs__cl_8rsh.html#aaef2526c4d190ba6f7301b4e810917a7">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aceb63a0da6393b8ac2ed229bae6232d6">rs_cl.rsh</a>
 </li>
 <li>remainder()
 : <a class="el" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">rs_cl.rsh</a>
 : <a class="el" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rs_cl.rsh</a>
 </li>
 <li>rootn()
-: <a class="el" href="rs__cl_8rsh.html#af169e7e1c575b7c24c1834569223077f">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a2776b517528b8185a6bb50753af0f6cf">rs_cl.rsh</a>
 </li>
 <li>round()
 : <a class="el" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">rs_cl.rsh</a>
 </li>
+<li>rsAllocationCopy1DRange()
+: <a class="el" href="rs__allocation_8rsh.html#a3a1098a3ea3a5106955dd4398b8904e1">rs_allocation.rsh</a>
+</li>
+<li>rsAllocationCopy2DRange()
+: <a class="el" href="rs__allocation_8rsh.html#a7f7e2369b3ed7d7db31729b6db7ba07e">rs_allocation.rsh</a>
+</li>
 <li>rsAllocationGetDimFaces()
 : <a class="el" href="rs__allocation_8rsh.html#ac85f7ed88f38b35482c6d63b56d470fe">rs_allocation.rsh</a>
 </li>
 <li>rsAllocationGetDimZ()
 : <a class="el" href="rs__allocation_8rsh.html#acd6f1a2b2443e6ea39e6154577645d2c">rs_allocation.rsh</a>
 </li>
-<li>rsClamp()
-: <a class="el" href="rs__math_8rsh.html#ae31137028793c4aaf4df839535135837">rs_math.rsh</a>
+<li>rsAllocationGetElement()
+: <a class="el" href="rs__allocation_8rsh.html#a6a3b6512bc269f6b369bdc54d12a45ff">rs_allocation.rsh</a>
 </li>
-<li>rsClearObject()
-: <a class="el" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rs_object.rsh</a>
+<li>rsAllocationIoReceive()
+: <a class="el" href="rs__allocation_8rsh.html#a05f7391230a92d239fdb619d791162b5">rs_allocation.rsh</a>
 </li>
-<li>rsDebug()
-: <a class="el" href="rs__debug_8rsh.html#a6bb20c16c9fcc613158ca8c6f0dd81bd">rs_debug.rsh</a>
+<li>rsAllocationIoSend()
+: <a class="el" href="rs__allocation_8rsh.html#afe9ebb2f89c6366c59f5e05ee4849c0a">rs_allocation.rsh</a>
 </li>
-<li>rsExtractFrustumPlanes()
-: <a class="el" href="rs__math_8rsh.html#a191f9c687c56322c18b7d71491602122">rs_math.rsh</a>
+<li>rsAtomicAdd()
+: <a class="el" href="rs__atomic_8rsh.html#ab46665eff81030200f86db9c2181072a">rs_atomic.rsh</a>
 </li>
-<li>rsForEach()
-: <a class="el" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rs_core.rsh</a>
+<li>rsAtomicAnd()
+: <a class="el" href="rs__atomic_8rsh.html#a7fdf5633662dd5b0898ad5a149e3c8ad">rs_atomic.rsh</a>
 </li>
-<li>rsFrac()
-: <a class="el" href="rs__math_8rsh.html#ac4f127e78da0849321c7f6db14f9e989">rs_math.rsh</a>
+<li>rsAtomicCas()
+: <a class="el" href="rs__atomic_8rsh.html#a205d66a8eb29eee8968f886e488b4402">rs_atomic.rsh</a>
 </li>
-<li>rsgAllocationSyncAll()
-: <a class="el" href="rs__graphics_8rsh.html#a647228d8e15da6ad67a97701d920dcac">rs_graphics.rsh</a>
+<li>rsAtomicDec()
+: <a class="el" href="rs__atomic_8rsh.html#a16a69784a343d7c11bf6bd7fec9686ca">rs_atomic.rsh</a>
 </li>
-<li>rsgBindConstant()
-: <a class="el" href="rs__graphics_8rsh.html#a46208900d16287fde91a5d14ebc830dc">rs_graphics.rsh</a>
+<li>rsAtomicInc()
+: <a class="el" href="rs__atomic_8rsh.html#a619e7a489500a650569a76ccd93e105f">rs_atomic.rsh</a>
 </li>
-<li>rsgBindFont()
-: <a class="el" href="rs__graphics_8rsh.html#ae89effef281e92e2940055883ea366d4">rs_graphics.rsh</a>
+<li>rsAtomicMax()
+: <a class="el" href="rs__atomic_8rsh.html#a1d49d69d14956152fcde34efe9cdff87">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramFragment()
-: <a class="el" href="rs__graphics_8rsh.html#a9f8deb600729a83c39c5bcaba2152b9c">rs_graphics.rsh</a>
+<li>rsAtomicMin()
+: <a class="el" href="rs__atomic_8rsh.html#a9f3cddc86f1075ca194a762fb8a3330a">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramRaster()
-: <a class="el" href="rs__graphics_8rsh.html#a391eb5535544f6312c724b910da6ec35">rs_graphics.rsh</a>
+<li>rsAtomicOr()
+: <a class="el" href="rs__atomic_8rsh.html#a477f6eb17c4806bb715bfd975b6369cd">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramStore()
-: <a class="el" href="rs__graphics_8rsh.html#a34dfa6eddd7454fc1865222c5a022315">rs_graphics.rsh</a>
+<li>rsAtomicSub()
+: <a class="el" href="rs__atomic_8rsh.html#a800dced6abbf09716391f35bc488900b">rs_atomic.rsh</a>
 </li>
-<li>rsgBindProgramVertex()
-: <a class="el" href="rs__graphics_8rsh.html#a894e26d0d05d3ef99be65ddf98dd901c">rs_graphics.rsh</a>
+<li>rsAtomicXor()
+: <a class="el" href="rs__atomic_8rsh.html#a5590505ea65c53b3bb26fa48a6b9c313">rs_atomic.rsh</a>
 </li>
-<li>rsgBindSampler()
-: <a class="el" href="rs__graphics_8rsh.html#a4ade6c5acbf6acaa1c29a1aecc6e87d3">rs_graphics.rsh</a>
+<li>rsClamp()
+: <a class="el" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rs_math.rsh</a>
+</li>
+<li>rsClearObject()
+: <a class="el" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rs_object.rsh</a>
+</li>
+<li>rsDebug()
+: <a class="el" href="rs__debug_8rsh.html#aa75aa9faf7646ceeafeb19279416e9e8">rs_debug.rsh</a>
+</li>
+<li>rsElementGetBytesSize()
+: <a class="el" href="rs__element_8rsh.html#ac54592168af5896d3fba5283af286f98">rs_element.rsh</a>
+</li>
+<li>rsElementGetDataKind()
+: <a class="el" href="rs__element_8rsh.html#af072702a530e158093d69353072da5f9">rs_element.rsh</a>
 </li>
-<li>rsgBindTexture()
-: <a class="el" href="rs__graphics_8rsh.html#a1694eb5489bd3a444da921dbf16aeeb5">rs_graphics.rsh</a>
+<li>rsElementGetDataType()
+: <a class="el" href="rs__element_8rsh.html#a9a3569d242be363517ea2354d98cf382">rs_element.rsh</a>
 </li>
-<li>rsgClearColor()
-: <a class="el" href="rs__graphics_8rsh.html#a147674fed92745fbb5c64a6300ca3c49">rs_graphics.rsh</a>
+<li>rsElementGetSubElement()
+: <a class="el" href="rs__element_8rsh.html#a8c690bce7d32be759fd787740c270c92">rs_element.rsh</a>
 </li>
-<li>rsgClearDepth()
-: <a class="el" href="rs__graphics_8rsh.html#a4bedb06e8facd587e3eacd746fe3e727">rs_graphics.rsh</a>
+<li>rsElementGetSubElementArraySize()
+: <a class="el" href="rs__element_8rsh.html#a9c3140c18139db451279d9b221808eee">rs_element.rsh</a>
 </li>
-<li>rsgDrawMesh()
-: <a class="el" href="rs__graphics_8rsh.html#a6f8b87c994810908fbe5e01f8f63f9af">rs_graphics.rsh</a>
+<li>rsElementGetSubElementCount()
+: <a class="el" href="rs__element_8rsh.html#a2ecab064ea2b720bc3af27b523388f31">rs_element.rsh</a>
 </li>
-<li>rsgDrawQuad()
-: <a class="el" href="rs__graphics_8rsh.html#ad6953da0349e58547b08b8ce174ed3fc">rs_graphics.rsh</a>
+<li>rsElementGetSubElementName()
+: <a class="el" href="rs__element_8rsh.html#a3c1446166c43aa6ba3d5359f6c982f02">rs_element.rsh</a>
 </li>
-<li>rsgDrawQuadTexCoords()
-: <a class="el" href="rs__graphics_8rsh.html#afb98a59bb9f878f0a09459567c269e64">rs_graphics.rsh</a>
+<li>rsElementGetSubElementNameLength()
+: <a class="el" href="rs__element_8rsh.html#a94834eb1d91b50a5df3cbe161c22e37d">rs_element.rsh</a>
 </li>
-<li>rsgDrawRect()
-: <a class="el" href="rs__graphics_8rsh.html#a80c51849bf12ec6c699c23c3fa3e6208">rs_graphics.rsh</a>
+<li>rsElementGetSubElementOffsetBytes()
+: <a class="el" href="rs__element_8rsh.html#a840d53f1e91bb6887b40a4d8983c53ed">rs_element.rsh</a>
 </li>
-<li>rsgDrawSpriteScreenspace()
-: <a class="el" href="rs__graphics_8rsh.html#a07d15127330fa1dff6c99b0d7d14e65e">rs_graphics.rsh</a>
+<li>rsElementGetVectorSize()
+: <a class="el" href="rs__element_8rsh.html#a727997de25ae43c07dffcfd484928d53">rs_element.rsh</a>
 </li>
-<li>rsgDrawText()
-: <a class="el" href="rs__graphics_8rsh.html#afaec82492762e62cad1ff53ada479b14">rs_graphics.rsh</a>
+<li>rsExtractFrustumPlanes()
+: <a class="el" href="rs__math_8rsh.html#a191f9c687c56322c18b7d71491602122">rs_math.rsh</a>
+</li>
+<li>rsForEach()
+: <a class="el" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rs_core.rsh</a>
+</li>
+<li>rsFrac()
+: <a class="el" href="rs__math_8rsh.html#ac4f127e78da0849321c7f6db14f9e989">rs_math.rsh</a>
 </li>
 <li>rsGetAllocation()
 : <a class="el" href="rs__allocation_8rsh.html#aadad7654929c451be299df125061c9ba">rs_allocation.rsh</a>
 : <a class="el" href="rs__time_8rsh.html#adea2682186fd903752431ad848bd8bf4">rs_time.rsh</a>
 </li>
 <li>rsGetElementAt()
-: <a class="el" href="rs__allocation_8rsh.html#a3fd30b4388748601e025bb3566ce0cbc">rs_allocation.rsh</a>
+: <a class="el" href="rs__allocation_8rsh.html#a56157b6ddef754b36833ca1f8e66aec2">rs_allocation.rsh</a>
+</li>
+<li>rsGetElementAtYuv_uchar_U()
+: <a class="el" href="rs__allocation_8rsh.html#a41f61be02113ee22c039ea51fdedb20e">rs_allocation.rsh</a>
 </li>
-<li>rsgFontColor()
-: <a class="el" href="rs__graphics_8rsh.html#abda8c344092ed6310c7a8f353a6df876">rs_graphics.rsh</a>
+<li>rsGetElementAtYuv_uchar_V()
+: <a class="el" href="rs__allocation_8rsh.html#af03cadb582fa80bbf7f39177d96df17e">rs_allocation.rsh</a>
 </li>
-<li>rsgGetHeight()
-: <a class="el" href="rs__graphics_8rsh.html#a7e6565cd5d5e44f442a8bf8ba68f4681">rs_graphics.rsh</a>
+<li>rsGetElementAtYuv_uchar_Y()
+: <a class="el" href="rs__allocation_8rsh.html#ad7ffa1aa16511a75b4bc2c05bd0e0a75">rs_allocation.rsh</a>
 </li>
-<li>rsgGetWidth()
-: <a class="el" href="rs__graphics_8rsh.html#a67f4ed1ca4bba27d5c952ada89cd0717">rs_graphics.rsh</a>
+<li>rsgMeshGetIndexAllocation()
+: <a class="el" href="rs__mesh_8rsh.html#a05257c9252e7804397d6a6f7549bae5a">rs_mesh.rsh</a>
 </li>
-<li>rsgMeasureText()
-: <a class="el" href="rs__graphics_8rsh.html#a5c599f4ea989f3d0616cbf8e983688c4">rs_graphics.rsh</a>
+<li>rsgMeshGetPrimitive()
+: <a class="el" href="rs__mesh_8rsh.html#af467f1c21cc9221071334f8234c29466">rs_mesh.rsh</a>
 </li>
-<li>rsgMeshComputeBoundingBox()
-: <a class="el" href="rs__graphics_8rsh.html#a0978c54902dd1d60180f8dbb0b781105">rs_graphics.rsh</a>
+<li>rsgMeshGetPrimitiveCount()
+: <a class="el" href="rs__mesh_8rsh.html#ae0a0178cc02508517013486be4500d7f">rs_mesh.rsh</a>
 </li>
-<li>rsgProgramFragmentConstantColor()
-: <a class="el" href="rs__graphics_8rsh.html#a35ac8c3759e25047e6a458c15520c887">rs_graphics.rsh</a>
+<li>rsgMeshGetVertexAllocation()
+: <a class="el" href="rs__mesh_8rsh.html#a43e1d84147176cb0a1659552fa8da49f">rs_mesh.rsh</a>
 </li>
-<li>rsgProgramVertexGetProjectionMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a2b767d209b36ffcd2e0fc0cf6f4c5706">rs_graphics.rsh</a>
+<li>rsgMeshGetVertexAllocationCount()
+: <a class="el" href="rs__mesh_8rsh.html#a7578d6d93154ac881715ab511449fab9">rs_mesh.rsh</a>
 </li>
-<li>rsgProgramVertexLoadModelMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a976b8594cccb4b94d7ce520b44d884e3">rs_graphics.rsh</a>
+<li>rsgProgramRasterGetCullMode()
+: <a class="el" href="rs__program_8rsh.html#a633d6dbdec98ef89c2b70c92ea707502">rs_program.rsh</a>
 </li>
-<li>rsgProgramVertexLoadProjectionMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a83a87d8efa3f26ed3f8fb25e49f29059">rs_graphics.rsh</a>
+<li>rsgProgramRasterIsPointSpriteEnabled()
+: <a class="el" href="rs__program_8rsh.html#a86aeccd846ed2cd2c9498ab57e2535f3">rs_program.rsh</a>
 </li>
-<li>rsgProgramVertexLoadTextureMatrix()
-: <a class="el" href="rs__graphics_8rsh.html#a377b7b394c4bf0881532b1241d4be168">rs_graphics.rsh</a>
+<li>rsgProgramStoreGetBlendDstFunc()
+: <a class="el" href="rs__program_8rsh.html#a0ad38d595e35712f24c384ef20b69025">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreGetBlendSrcFunc()
+: <a class="el" href="rs__program_8rsh.html#afb38256c5804cdb9b410419c43ce03ab">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreGetDepthFunc()
+: <a class="el" href="rs__program_8rsh.html#a6a9c06c54d230f61edc0667a091aac77">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsColorMaskAlphaEnabled()
+: <a class="el" href="rs__program_8rsh.html#ab038edb7399044a3ea96ebb17d7b6601">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsColorMaskBlueEnabled()
+: <a class="el" href="rs__program_8rsh.html#a279ad1b4611aca268053337f6719a22c">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsColorMaskGreenEnabled()
+: <a class="el" href="rs__program_8rsh.html#a1a57f706bc42ce49b545021c8403964c">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsColorMaskRedEnabled()
+: <a class="el" href="rs__program_8rsh.html#a4a50df1d2495567536dd6f394d38ee5d">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsDepthMaskEnabled()
+: <a class="el" href="rs__program_8rsh.html#afa27fa6103c9e29f5e098e2d99663f0b">rs_program.rsh</a>
+</li>
+<li>rsgProgramStoreIsDitherEnabled()
+: <a class="el" href="rs__program_8rsh.html#abe7c55547a72dd291e0996de050bb749">rs_program.rsh</a>
 </li>
 <li>rsIsObject()
-: <a class="el" href="rs__object_8rsh.html#ac1d6da920f12974b3633d25ed078da2d">rs_object.rsh</a>
+: <a class="el" href="rs__object_8rsh.html#a547cd0a8071d895139893f1e10f5c3fd">rs_object.rsh</a>
 </li>
 <li>rsIsSphereInFrustum()
 : <a class="el" href="rs__math_8rsh.html#a7bbeaf44838e08e68d5cf3e3d7b0818c">rs_math.rsh</a>
 : <a class="el" href="rs__time_8rsh.html#a08a8fcadae964f7416aef487da624110">rs_time.rsh</a>
 </li>
 <li>rsMatrixGet()
-: <a class="el" href="rs__matrix_8rsh.html#af1fb87eb02f166bb85ef10a92333bb49">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#ad485084684991796cffdd8a008557569">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixInverse()
 : <a class="el" href="rs__matrix_8rsh.html#a00b6a334ba5ac94d84850f22ec9f4de5">rs_matrix.rsh</a>
 : <a class="el" href="rs__matrix_8rsh.html#ac05080d52da2d99a759ef34fa0655e82">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoad()
-: <a class="el" href="rs__matrix_8rsh.html#a06176acb38405937cb94c835a712a3b3">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a5f3697805c794c9c9f2f8cfdde4b9a44">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixLoadFrustum()
 : <a class="el" href="rs__matrix_8rsh.html#ad25760aaf01e95d0055237afab41bbb3">rs_matrix.rsh</a>
 : <a class="el" href="rs__matrix_8rsh.html#a1b521c8a3d1260fa732cbf0a71af0e74">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixMultiply()
-: <a class="el" href="rs__matrix_8rsh.html#a97953ab2606900a839e5816c619abe66">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#ab1973ad3efa0ab2d53f466dd9fb190bb">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixRotate()
 : <a class="el" href="rs__matrix_8rsh.html#ad5ed05ca4880397fb29615e3c6798de1">rs_matrix.rsh</a>
 : <a class="el" href="rs__matrix_8rsh.html#a94cc6b22bd1a6c07a9a1c1d21afb392c">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixSet()
-: <a class="el" href="rs__matrix_8rsh.html#ada106cb8f08e4b23930d7ba1a0ce5609">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#ad6ea242218e0f1a031f754df0317e6e7">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixTranslate()
 : <a class="el" href="rs__matrix_8rsh.html#a4df5f9b5bb6044f3c3426f2f58b94405">rs_matrix.rsh</a>
 </li>
 <li>rsMatrixTranspose()
-: <a class="el" href="rs__matrix_8rsh.html#ac52acb31a705f6c68af8bddea0e79969">rs_matrix.rsh</a>
+: <a class="el" href="rs__matrix_8rsh.html#a49164dd4d4e85b212196028b1fd89dc1">rs_matrix.rsh</a>
 </li>
 <li>rsPackColorTo8888()
-: <a class="el" href="rs__math_8rsh.html#a628c8d13e3fe41fc860ad937184e4dcd">rs_math.rsh</a>
+: <a class="el" href="rs__math_8rsh.html#a1f1107cf778cf1f614edfb5b8ac436a0">rs_math.rsh</a>
 </li>
 <li>rsqrt()
-: <a class="el" href="rs__cl_8rsh.html#a5db00fde9e6bff693a38f3a37e7a1f70">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a8a3992b97cb199b1c8d598996b600988">rs_cl.rsh</a>
 </li>
 <li>rsQuaternionAdd()
 : <a class="el" href="rs__quaternion_8rsh.html#a5e6e493b9917336b0d9118fdd4e91444">rs_quaternion.rsh</a>
 : <a class="el" href="rs__quaternion_8rsh.html#aa72a43cf3d7b5924de1ddfaa5766db09">rs_quaternion.rsh</a>
 </li>
 <li>rsQuaternionMultiply()
-: <a class="el" href="rs__quaternion_8rsh.html#a4f3d214912facf72f6a6d57e95aa3c3b">rs_quaternion.rsh</a>
+: <a class="el" href="rs__quaternion_8rsh.html#a8bbbb286a2e2cb71b416c053f44844c3">rs_quaternion.rsh</a>
 </li>
 <li>rsQuaternionNormalize()
 : <a class="el" href="rs__quaternion_8rsh.html#abb31aad2416044ad5bbf44ee7c838e2a">rs_quaternion.rsh</a>
 </li>
 <li>rsQuaternionSet()
-: <a class="el" href="rs__quaternion_8rsh.html#a249782133e54f13a8096d1fbe295714d">rs_quaternion.rsh</a>
+: <a class="el" href="rs__quaternion_8rsh.html#a5ff868dbc33e710a666a102fdcc6670a">rs_quaternion.rsh</a>
 </li>
 <li>rsQuaternionSlerp()
 : <a class="el" href="rs__quaternion_8rsh.html#a7da94a30e287cbb8148771a5cd768dbd">rs_quaternion.rsh</a>
 </li>
 <li>rsRand()
-: <a class="el" href="rs__math_8rsh.html#ad9106e5aae5b1248870f21061f36a1c9">rs_math.rsh</a>
+: <a class="el" href="rs__math_8rsh.html#a03e898d810ac44158e7461b2b2b1c356">rs_math.rsh</a>
+</li>
+<li>rsSample()
+: <a class="el" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rs_allocation.rsh</a>
+</li>
+<li>rsSamplerGetAnisotropy()
+: <a class="el" href="rs__sampler_8rsh.html#ab1e79984609469604cba8e2b76a98844">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetMagnification()
+: <a class="el" href="rs__sampler_8rsh.html#a5bddb73826cd20a79c31f012a4637e83">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetMinification()
+: <a class="el" href="rs__sampler_8rsh.html#acb1bec2c3d1edd752dd60499c8db58a4">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetWrapS()
+: <a class="el" href="rs__sampler_8rsh.html#a68a7ab6724019c6e72fae8eb45aa48dd">rs_sampler.rsh</a>
+</li>
+<li>rsSamplerGetWrapT()
+: <a class="el" href="rs__sampler_8rsh.html#ab6b25d3b9afa16f418e2dee78ebb4a75">rs_sampler.rsh</a>
 </li>
 <li>rsSendToClient()
 : <a class="el" href="rs__core_8rsh.html#a91cfbca99f87ef144bea2cdf1e8473ca">rs_core.rsh</a>
 <li>rsSendToClientBlocking()
 : <a class="el" href="rs__core_8rsh.html#afc93b00be08f58512a6ab6a87feb9515">rs_core.rsh</a>
 </li>
+<li>rsSetElementAt()
+: <a class="el" href="rs__allocation_8rsh.html#a351627f335b9a091a5152db7ac9134dc">rs_allocation.rsh</a>
+</li>
 <li>rsSetObject()
 : <a class="el" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rs_object.rsh</a>
 </li>
 : <a class="el" href="rs__time_8rsh.html#a555f9324acb8c3d0c6f09a1d05478ce2">rs_time.rsh</a>
 </li>
 <li>rsUnpackColor8888()
-: <a class="el" href="rs__math_8rsh.html#a26525a4f5093bd0f13191efe06127f4b">rs_math.rsh</a>
+: <a class="el" href="rs__math_8rsh.html#a48bb0c2e7b1f2b62b2a8970c7d709eca">rs_math.rsh</a>
 </li>
 <li>rsUptimeMillis()
 : <a class="el" href="rs__time_8rsh.html#a3c406e51a769718dd1c760518b9cad44">rs_time.rsh</a>
 
 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
 <li>sign()
-: <a class="el" href="rs__cl_8rsh.html#a3e6d477a06dec7070f073eec9d8f420c">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9fe423cc7d4c6d767f8a608d2ee76657">rs_cl.rsh</a>
 </li>
 <li>sin()
 : <a class="el" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">rs_cl.rsh</a>
 </li>
 <li>sincos()
-: <a class="el" href="rs__cl_8rsh.html#a240f7c7c20b432a30dc660b5dd4cd320">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a892c91a30bbc713aa77105d8e9e25881">rs_cl.rsh</a>
 </li>
 <li>sinh()
 : <a class="el" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">rs_cl.rsh</a>
 </li>
 <li>sinpi()
-: <a class="el" href="rs__cl_8rsh.html#a4fe4fef049786e888526d6f37b912b0a">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9ca027af0acf3ff22d91cd9489766976">rs_cl.rsh</a>
 </li>
 <li>sqrt()
 : <a class="el" href="rs__cl_8rsh.html#a92da0faef80c4d8f66e954c8c169a729">rs_cl.rsh</a>
 </li>
 <li>step()
-: <a class="el" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#a9f40337dfee48d1881b87b35aa8133dd">rs_cl.rsh</a>
 </li>
 </ul>
 
 : <a class="el" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">rs_cl.rsh</a>
 </li>
 <li>tanpi()
-: <a class="el" href="rs__cl_8rsh.html#ad8bfb083dd3979a305e594a0d6e581c4">rs_cl.rsh</a>
+: <a class="el" href="rs__cl_8rsh.html#aee96c8910a7d8b0082574813b6b68b9a">rs_cl.rsh</a>
 </li>
 <li>tgamma()
 : <a class="el" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">rs_cl.rsh</a>
index 238a6c4..1d1ffd7 100644 (file)
@@ -28,6 +28,7 @@
       <li><a href="globals_func.html"><span>Functions</span></a></li>
       <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
       <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
     </ul>
   </div>
   <div id="navrow4" class="tabs3">
index 212f000..2e3a449 100644 (file)
@@ -24,9 +24,8 @@
   </div>
 </div>
 <div class="contents">
-<div class="textblock"><p>Renderscript is a high-performance runtime that provides graphics rendering and compute operations at the native level. Renderscript code is compiled on devices at runtime to allow platform-independence as well. This reference documentation describes the Renderscript runtime APIs, which you can utilize to write Renderscript code in C99. The Renderscript header files are automatically included for you.</p>
-<p>To use Renderscript, you need to utilize the Renderscript runtime APIs documented here as well as the Android framework APIs for Renderscript. For documentation on the Android framework APIs, see the <a href="http://developer.android.com/reference/android/renderscript/package-summary.html" target="_parent">android.renderscript</a> package reference.</p>
-<p>For more information on how to develop with Renderscript and how the runtime and Android framework APIs interact, see the <a href="http://developer.android.com/guide/topics/renderscript/index.html" target="_parent">Renderscript developer guide</a> and the Renderscript SDK samples. </p>
+<div class="textblock"><p>RenderScript is a high-performance runtime that provides compute operations at the native level. RenderScript code is compiled on devices at runtime to allow platform-independence as well. This reference documentation describes the RenderScript runtime APIs, which you can utilize to write RenderScript code in C99. The RenderScript compute header files are automatically included for you.</p>
+<p>To use RenderScript, you need to utilize the RenderScript runtime APIs documented here as well as the Android framework APIs for RenderScript. For documentation on the Android framework APIs, see the <a href="http://developer.android.com/reference/android/renderscript/package-summary.html" target="_parent">android.renderscript</a> package reference. For more information on how to develop with RenderScript and how the runtime and Android framework APIs interact, see the <a href="http://developer.android.com/guide/topics/renderscript/index.html" target="_parent">RenderScript developer guide</a> and the <a href="http://developer.android.com/resources/samples/RenderScript/index.html" target="_parent">RenderScript samples</a>. </p>
 </div></div>
 
 </body>
index 9dd06d3..31736a6 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_allocation.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_allocation.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -27,7 +27,7 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_allocation.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_allocation.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
@@ -39,15 +39,202 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#acd6f1a2b2443e6ea39e6154577645d2c">rsAllocationGetDimZ</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a>)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#ac42a07c079d6b3c6bb21975170d4e11c">rsAllocationGetDimLOD</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a>)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#ac85f7ed88f38b35482c6d63b56d470fe">rsAllocationGetDimFaces</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a>)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a3fd30b4388748601e025bb3566ce0cbc">rsGetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a>, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a7e0a1753a930557f6dc87f25ed3fd23b">rsGetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a>, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a049ba2f6e6e18d47f2267474b2092822">rsGetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a>, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> z)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a3a1098a3ea3a5106955dd4398b8904e1">rsAllocationCopy1DRange</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> dstAlloc, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstOff, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstMip, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> count, <a class="el" href="structrs__allocation.html">rs_allocation</a> srcAlloc, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcOff, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcMip)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a7f7e2369b3ed7d7db31729b6db7ba07e">rsAllocationCopy2DRange</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> dstAlloc, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstXoff, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstYoff, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstMip, <a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_allocation_cubemap_face</a> dstFace, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> width, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> height, <a class="el" href="structrs__allocation.html">rs_allocation</a> srcAlloc, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcXoff, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcYoff, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcMip, <a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_allocation_cubemap_face</a> srcFace)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a56157b6ddef754b36833ca1f8e66aec2">rsGetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#aea4f2338fb36faf73021ff7179fa5930">rsGetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a4256e51301797517cafd5474d7d4b26f">rsGetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> z)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#afe9ebb2f89c6366c59f5e05ee4849c0a">rsAllocationIoSend</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a05f7391230a92d239fdb619d791162b5">rsAllocationIoReceive</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a6a3b6512bc269f6b369bdc54d12a45ff">rsAllocationGetElement</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rsSample</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="structrs__sampler.html">rs_sampler</a> s, float location)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#aa9574fd5f1655f6e74b4872aace618bf">rsSample</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="structrs__sampler.html">rs_sampler</a> s, float location, float lod)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a36ef1e609e360a9a5a5ff5dce13b5100">rsSetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, void *ptr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a351627f335b9a091a5152db7ac9134dc">rsSetElementAt</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, void *ptr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#ad7ffa1aa16511a75b4bc2c05bd0e0a75">rsGetElementAtYuv_uchar_Y</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#a41f61be02113ee22c039ea51fdedb20e">rsGetElementAtYuv_uchar_U</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__allocation_8rsh.html#af03cadb582fa80bbf7f39177d96df17e">rsGetElementAtYuv_uchar_V</a> (<a class="el" href="structrs__allocation.html">rs_allocation</a> a, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Allocation routines. </p>
 
 <p>Definition in file <a class="el" href="rs__allocation_8rsh_source.html">rs_allocation.rsh</a>.</p>
 </div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a3a1098a3ea3a5106955dd4398b8904e1"></a><!-- doxytag: member="rs_allocation.rsh::rsAllocationCopy1DRange" ref="a3a1098a3ea3a5106955dd4398b8904e1" args="(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t count, rs_allocation srcAlloc, uint32_t srcOff, uint32_t srcMip)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsAllocationCopy1DRange </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>dstAlloc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>dstOff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>dstMip</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>count</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>srcAlloc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>srcOff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>srcMip</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Copy part of an allocation from another allocation.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dstAlloc</td><td>Allocation to copy data into. </td></tr>
+    <tr><td class="paramname">dstOff</td><td>The offset of the first element to be copied in the destination allocation. </td></tr>
+    <tr><td class="paramname">dstMip</td><td>Mip level in the destination allocation. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of elements to be copied. </td></tr>
+    <tr><td class="paramname">srcAlloc</td><td>The source data allocation. </td></tr>
+    <tr><td class="paramname">srcOff</td><td>The offset of the first element in data to be copied in the source allocation. </td></tr>
+    <tr><td class="paramname">srcMip</td><td>Mip level in the source allocation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7f7e2369b3ed7d7db31729b6db7ba07e"></a><!-- doxytag: member="rs_allocation.rsh::rsAllocationCopy2DRange" ref="a7f7e2369b3ed7d7db31729b6db7ba07e" args="(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstMip, rs_allocation_cubemap_face dstFace, uint32_t width, uint32_t height, rs_allocation srcAlloc, uint32_t srcXoff, uint32_t srcYoff, uint32_t srcMip, rs_allocation_cubemap_face srcFace)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsAllocationCopy2DRange </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>dstAlloc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>dstXoff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>dstYoff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>dstMip</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_allocation_cubemap_face</a>&#160;</td>
+          <td class="paramname"><em>dstFace</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>height</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>srcAlloc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>srcXoff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>srcYoff</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>srcMip</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_allocation_cubemap_face</a>&#160;</td>
+          <td class="paramname"><em>srcFace</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Copy a rectangular region into the allocation from another allocation.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dstAlloc</td><td>allocation to copy data into. </td></tr>
+    <tr><td class="paramname">dstXoff</td><td>X offset of the region to update in the destination allocation. </td></tr>
+    <tr><td class="paramname">dstYoff</td><td>Y offset of the region to update in the destination allocation. </td></tr>
+    <tr><td class="paramname">dstMip</td><td>Mip level in the destination allocation. </td></tr>
+    <tr><td class="paramname">dstFace</td><td>Cubemap face of the destination allocation, ignored for allocations that aren't cubemaps. </td></tr>
+    <tr><td class="paramname">width</td><td>Width of the incoming region to update. </td></tr>
+    <tr><td class="paramname">height</td><td>Height of the incoming region to update. </td></tr>
+    <tr><td class="paramname">srcAlloc</td><td>The source data allocation. </td></tr>
+    <tr><td class="paramname">srcXoff</td><td>X offset in data of the source allocation. </td></tr>
+    <tr><td class="paramname">srcYoff</td><td>Y offset in data of the source allocation. </td></tr>
+    <tr><td class="paramname">srcMip</td><td>Mip level in the source allocation. </td></tr>
+    <tr><td class="paramname">srcFace</td><td>Cubemap face of the source allocation, ignored for allocations that aren't cubemaps. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
 <a class="anchor" id="ac85f7ed88f38b35482c6d63b56d470fe"></a><!-- doxytag: member="rs_allocation.rsh::rsAllocationGetDimFaces" ref="ac85f7ed88f38b35482c6d63b56d470fe" args="(rs_allocation)" -->
 <div class="memitem">
 <div class="memproto">
@@ -143,6 +330,79 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a6a3b6512bc269f6b369bdc54d12a45ff"></a><!-- doxytag: member="rs_allocation.rsh::rsAllocationGetElement" ref="a6a3b6512bc269f6b369bdc54d12a45ff" args="(rs_allocation a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structrs__element.html">rs_element</a> rsAllocationGetElement </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get the element object describing the allocation's layout </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>allocation to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>element describing allocation layout </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a05f7391230a92d239fdb619d791162b5"></a><!-- doxytag: member="rs_allocation.rsh::rsAllocationIoReceive" ref="a05f7391230a92d239fdb619d791162b5" args="(rs_allocation a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const void rsAllocationIoReceive </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Receive a new set of contents from the queue. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>allocation to work on </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afe9ebb2f89c6366c59f5e05ee4849c0a"></a><!-- doxytag: member="rs_allocation.rsh::rsAllocationIoSend" ref="afe9ebb2f89c6366c59f5e05ee4849c0a" args="(rs_allocation a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const void rsAllocationIoSend </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Send the contents of the Allocation to the queue. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>allocation to work on </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
 <a class="anchor" id="aadad7654929c451be299df125061c9ba"></a><!-- doxytag: member="rs_allocation.rsh::rsGetAllocation" ref="aadad7654929c451be299df125061c9ba" args="(const void *)" -->
 <div class="memitem">
 <div class="memproto">
@@ -157,11 +417,12 @@ Functions</h2></td></tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Returns the Allocation for a given pointer. The pointer should point within a valid allocation. The results are undefined if the pointer is not from a valid allocation. </p>
+<p>Returns the Allocation for a given pointer. The pointer should point within a valid allocation. The results are undefined if the pointer is not from a valid allocation.</p>
+<p>This function is deprecated and will be removed in the SDK from a future release. </p>
 
 </div>
 </div>
-<a class="anchor" id="a3fd30b4388748601e025bb3566ce0cbc"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAt" ref="a3fd30b4388748601e025bb3566ce0cbc" args="(rs_allocation, uint32_t x)" -->
+<a class="anchor" id="a56157b6ddef754b36833ca1f8e66aec2"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAt" ref="a56157b6ddef754b36833ca1f8e66aec2" args="(rs_allocation a, uint32_t x)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -169,7 +430,7 @@ Functions</h2></td></tr>
           <td class="memname">const void* rsGetElementAt </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
-          <td class="paramname">, </td>
+          <td class="paramname"><em>a</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -189,7 +450,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a7e0a1753a930557f6dc87f25ed3fd23b"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAt" ref="a7e0a1753a930557f6dc87f25ed3fd23b" args="(rs_allocation, uint32_t x, uint32_t y)" -->
+<a class="anchor" id="aea4f2338fb36faf73021ff7179fa5930"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAt" ref="aea4f2338fb36faf73021ff7179fa5930" args="(rs_allocation a, uint32_t x, uint32_t y)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -197,7 +458,7 @@ Functions</h2></td></tr>
           <td class="memname">const void* rsGetElementAt </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
-          <td class="paramname">, </td>
+          <td class="paramname"><em>a</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -223,7 +484,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a049ba2f6e6e18d47f2267474b2092822"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAt" ref="a049ba2f6e6e18d47f2267474b2092822" args="(rs_allocation, uint32_t x, uint32_t y, uint32_t z)" -->
+<a class="anchor" id="a4256e51301797517cafd5474d7d4b26f"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAt" ref="a4256e51301797517cafd5474d7d4b26f" args="(rs_allocation a, uint32_t x, uint32_t y, uint32_t z)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -231,7 +492,7 @@ Functions</h2></td></tr>
           <td class="memname">const void* rsGetElementAt </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
-          <td class="paramname">, </td>
+          <td class="paramname"><em>a</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -263,6 +524,294 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a41f61be02113ee22c039ea51fdedb20e"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAtYuv_uchar_U" ref="a41f61be02113ee22c039ea51fdedb20e" args="(rs_allocation a, uint32_t x, uint32_t y)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> rsGetElementAtYuv_uchar_U </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Extract a single element from an allocation.</p>
+<p>Coordinates are in the dimensions of the Y plane </p>
+
+</div>
+</div>
+<a class="anchor" id="af03cadb582fa80bbf7f39177d96df17e"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAtYuv_uchar_V" ref="af03cadb582fa80bbf7f39177d96df17e" args="(rs_allocation a, uint32_t x, uint32_t y)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> rsGetElementAtYuv_uchar_V </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Extract a single element from an allocation.</p>
+<p>Coordinates are in the dimensions of the Y plane </p>
+
+</div>
+</div>
+<a class="anchor" id="ad7ffa1aa16511a75b4bc2c05bd0e0a75"></a><!-- doxytag: member="rs_allocation.rsh::rsGetElementAtYuv_uchar_Y" ref="ad7ffa1aa16511a75b4bc2c05bd0e0a75" args="(rs_allocation a, uint32_t x, uint32_t y)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> rsGetElementAtYuv_uchar_Y </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Extract a single element from an allocation. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1ed04c0bfab4044b875bb31577b53407"></a><!-- doxytag: member="rs_allocation.rsh::rsSample" ref="a1ed04c0bfab4044b875bb31577b53407" args="(rs_allocation a, rs_sampler s, float location)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> rsSample </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>location</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Fetch allocation in a way described by the sampler </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>1D allocation to sample from </td></tr>
+    <tr><td class="paramname">s</td><td>sampler state </td></tr>
+    <tr><td class="paramname">location</td><td>to sample from</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Fetch allocation in a way described by the sampler </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>2D allocation to sample from </td></tr>
+    <tr><td class="paramname">s</td><td>sampler state </td></tr>
+    <tr><td class="paramname">location</td><td>to sample from </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa9574fd5f1655f6e74b4872aace618bf"></a><!-- doxytag: member="rs_allocation.rsh::rsSample" ref="aa9574fd5f1655f6e74b4872aace618bf" args="(rs_allocation a, rs_sampler s, float location, float lod)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> rsSample </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>location</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lod</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Fetch allocation in a way described by the sampler </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>1D allocation to sample from </td></tr>
+    <tr><td class="paramname">s</td><td>sampler state </td></tr>
+    <tr><td class="paramname">location</td><td>to sample from </td></tr>
+    <tr><td class="paramname">lod</td><td>mip level to sample from, for fractional values mip levels will be interpolated if RS_SAMPLER_LINEAR_MIP_LINEAR is used</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>Fetch allocation in a way described by the sampler </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>2D allocation to sample from </td></tr>
+    <tr><td class="paramname">s</td><td>sampler state </td></tr>
+    <tr><td class="paramname">location</td><td>to sample from </td></tr>
+    <tr><td class="paramname">lod</td><td>mip level to sample from, for fractional values mip levels will be interpolated if RS_SAMPLER_LINEAR_MIP_LINEAR is used </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a36ef1e609e360a9a5a5ff5dce13b5100"></a><!-- doxytag: member="rs_allocation.rsh::rsSetElementAt" ref="a36ef1e609e360a9a5a5ff5dce13b5100" args="(rs_allocation a, void *ptr, uint32_t x)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsSetElementAt </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>ptr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>x</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Set single element of an allocation. </p>
+
+</div>
+</div>
+<a class="anchor" id="a351627f335b9a091a5152db7ac9134dc"></a><!-- doxytag: member="rs_allocation.rsh::rsSetElementAt" ref="a351627f335b9a091a5152db7ac9134dc" args="(rs_allocation a, void *ptr, uint32_t x, uint32_t y)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsSetElementAt </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>ptr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
+
+</div>
+</div>
 </div>
 
 </body>
index 3358cff..6d925a8 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_allocation.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_allocation.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_allocation.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_allocation.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__allocation_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00023"></a>00023 <span class="preprocessor">#ifndef __RS_ALLOCATION_RSH__</span>
 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define __RS_ALLOCATION_RSH__</span>
 <a name="l00025"></a>00025 <span class="preprocessor"></span>
-<a name="l00031"></a>00031 <span class="keyword">extern</span> <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> __attribute__((overloadable))
-<a name="l00032"></a>00032     <a class="code" href="rs__allocation_8rsh.html#aadad7654929c451be299df125061c9ba">rsGetAllocation</a>(const <span class="keywordtype">void</span> *);
-<a name="l00033"></a>00033 
-<a name="l00039"></a>00039 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00040"></a>00040     <a class="code" href="rs__allocation_8rsh.html#a3ca7f505a97d5b7f477bc65b9e77dafb">rsAllocationGetDimX</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a>);
-<a name="l00041"></a>00041 
-<a name="l00047"></a>00047 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00048"></a>00048     <a class="code" href="rs__allocation_8rsh.html#ac889b866b465580eb313e5d2a9fcac3d">rsAllocationGetDimY</a>(rs_allocation);
-<a name="l00049"></a>00049 
-<a name="l00055"></a>00055 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00056"></a>00056     <a class="code" href="rs__allocation_8rsh.html#acd6f1a2b2443e6ea39e6154577645d2c">rsAllocationGetDimZ</a>(rs_allocation);
-<a name="l00057"></a>00057 
-<a name="l00063"></a>00063 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00064"></a>00064     <a class="code" href="rs__allocation_8rsh.html#ac42a07c079d6b3c6bb21975170d4e11c">rsAllocationGetDimLOD</a>(rs_allocation);
-<a name="l00065"></a>00065 
-<a name="l00071"></a>00071 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00072"></a>00072     <a class="code" href="rs__allocation_8rsh.html#ac85f7ed88f38b35482c6d63b56d470fe">rsAllocationGetDimFaces</a>(rs_allocation);
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14))</span>
-<a name="l00075"></a>00075 <span class="preprocessor"></span>
-<a name="l00089"></a>00089 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00090"></a>00090     rsAllocationCopy1DRange(rs_allocation dstAlloc,
-<a name="l00091"></a>00091                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstOff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstMip,
-<a name="l00092"></a>00092                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> count,
-<a name="l00093"></a>00093                             rs_allocation srcAlloc,
-<a name="l00094"></a>00094                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcOff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcMip);
-<a name="l00095"></a>00095 
-<a name="l00117"></a>00117 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00118"></a>00118     rsAllocationCopy2DRange(rs_allocation dstAlloc,
-<a name="l00119"></a>00119                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstXoff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstYoff,
-<a name="l00120"></a>00120                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstMip,
-<a name="l00121"></a>00121                             rs_allocation_cubemap_face dstFace,
-<a name="l00122"></a>00122                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> width, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> height,
-<a name="l00123"></a>00123                             rs_allocation srcAlloc,
-<a name="l00124"></a>00124                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcXoff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcYoff,
-<a name="l00125"></a>00125                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcMip,
-<a name="l00126"></a>00126                             rs_allocation_cubemap_face srcFace);
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128 <span class="preprocessor">#endif //defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14)</span>
-<a name="l00129"></a>00129 <span class="preprocessor"></span>
-<a name="l00133"></a>00133 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">void</span> * __attribute__((overloadable))
-<a name="l00134"></a>00134     <a class="code" href="rs__allocation_8rsh.html#a3fd30b4388748601e025bb3566ce0cbc">rsGetElementAt</a>(rs_allocation, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x);
-<a name="l00138"></a>00138 extern const <span class="keywordtype">void</span> * __attribute__((overloadable))
-<a name="l00139"></a>00139     <a class="code" href="rs__allocation_8rsh.html#a3fd30b4388748601e025bb3566ce0cbc">rsGetElementAt</a>(rs_allocation, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y);
-<a name="l00143"></a>00143 extern const <span class="keywordtype">void</span> * __attribute__((overloadable))
-<a name="l00144"></a>00144     <a class="code" href="rs__allocation_8rsh.html#a3fd30b4388748601e025bb3566ce0cbc">rsGetElementAt</a>(rs_allocation, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> z);
-<a name="l00145"></a>00145 
-<a name="l00146"></a>00146 <span class="comment">// New API&#39;s</span>
-<a name="l00147"></a>00147 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
-<a name="l00148"></a>00148 <span class="preprocessor"></span>
-<a name="l00153"></a>00153 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00154"></a>00154     rsAllocationIoSend(rs_allocation a);
-<a name="l00155"></a>00155 
-<a name="l00160"></a>00160 extern const <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00161"></a>00161     rsAllocationIoReceive(rs_allocation a);
-<a name="l00162"></a>00162 
-<a name="l00163"></a>00163 
-<a name="l00169"></a>00169 extern <a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a> __attribute__((overloadable))
-<a name="l00170"></a>00170     rsAllocationGetElement(rs_allocation a);
-<a name="l00171"></a>00171 
-<a name="l00178"></a>00178 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
-<a name="l00179"></a>00179     rsSample(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s, <span class="keywordtype">float</span> location);
-<a name="l00189"></a>00189 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
-<a name="l00190"></a>00190     rsSample(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s, <span class="keywordtype">float</span> location, <span class="keywordtype">float</span> lod);
-<a name="l00191"></a>00191 
-<a name="l00198"></a>00198 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
-<a name="l00199"></a>00199     rsSample(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> location);
-<a name="l00200"></a>00200 
-<a name="l00210"></a>00210 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
-<a name="l00211"></a>00211     rsSample(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> location, <span class="keywordtype">float</span> lod);
-<a name="l00212"></a>00212 
-<a name="l00213"></a>00213 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
-<a name="l00214"></a>00214 <span class="preprocessor"></span>
-<a name="l00215"></a>00215 <span class="preprocessor">#endif</span>
+<a name="l00034"></a>00034 <span class="keyword">extern</span> <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> __attribute__((overloadable))
+<a name="l00035"></a>00035     <a class="code" href="rs__allocation_8rsh.html#aadad7654929c451be299df125061c9ba">rsGetAllocation</a>(const <span class="keywordtype">void</span> *);
+<a name="l00036"></a>00036 
+<a name="l00042"></a>00042 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
+<a name="l00043"></a>00043     <a class="code" href="rs__allocation_8rsh.html#a3ca7f505a97d5b7f477bc65b9e77dafb">rsAllocationGetDimX</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a>);
+<a name="l00044"></a>00044 
+<a name="l00050"></a>00050 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
+<a name="l00051"></a>00051     <a class="code" href="rs__allocation_8rsh.html#ac889b866b465580eb313e5d2a9fcac3d">rsAllocationGetDimY</a>(rs_allocation);
+<a name="l00052"></a>00052 
+<a name="l00058"></a>00058 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
+<a name="l00059"></a>00059     <a class="code" href="rs__allocation_8rsh.html#acd6f1a2b2443e6ea39e6154577645d2c">rsAllocationGetDimZ</a>(rs_allocation);
+<a name="l00060"></a>00060 
+<a name="l00066"></a>00066 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
+<a name="l00067"></a>00067     <a class="code" href="rs__allocation_8rsh.html#ac42a07c079d6b3c6bb21975170d4e11c">rsAllocationGetDimLOD</a>(rs_allocation);
+<a name="l00068"></a>00068 
+<a name="l00074"></a>00074 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
+<a name="l00075"></a>00075     <a class="code" href="rs__allocation_8rsh.html#ac85f7ed88f38b35482c6d63b56d470fe">rsAllocationGetDimFaces</a>(rs_allocation);
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14))</span>
+<a name="l00078"></a>00078 <span class="preprocessor"></span>
+<a name="l00092"></a>00092 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00093"></a>00093     <a class="code" href="rs__allocation_8rsh.html#a3a1098a3ea3a5106955dd4398b8904e1">rsAllocationCopy1DRange</a>(rs_allocation dstAlloc,
+<a name="l00094"></a>00094                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstOff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstMip,
+<a name="l00095"></a>00095                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> count,
+<a name="l00096"></a>00096                             rs_allocation srcAlloc,
+<a name="l00097"></a>00097                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcOff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcMip);
+<a name="l00098"></a>00098 
+<a name="l00120"></a>00120 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00121"></a>00121     <a class="code" href="rs__allocation_8rsh.html#a7f7e2369b3ed7d7db31729b6db7ba07e">rsAllocationCopy2DRange</a>(rs_allocation dstAlloc,
+<a name="l00122"></a>00122                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstXoff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstYoff,
+<a name="l00123"></a>00123                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> dstMip,
+<a name="l00124"></a>00124                             <a class="code" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229" title="Enum for selecting cube map faces.">rs_allocation_cubemap_face</a> dstFace,
+<a name="l00125"></a>00125                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> width, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> height,
+<a name="l00126"></a>00126                             rs_allocation srcAlloc,
+<a name="l00127"></a>00127                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcXoff, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcYoff,
+<a name="l00128"></a>00128                             <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> srcMip,
+<a name="l00129"></a>00129                             <a class="code" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229" title="Enum for selecting cube map faces.">rs_allocation_cubemap_face</a> srcFace);
+<a name="l00130"></a>00130 
+<a name="l00131"></a>00131 <span class="preprocessor">#endif //defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14)</span>
+<a name="l00132"></a>00132 <span class="preprocessor"></span>
+<a name="l00136"></a>00136 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">void</span> * __attribute__((overloadable))
+<a name="l00137"></a>00137     <a class="code" href="rs__allocation_8rsh.html#a56157b6ddef754b36833ca1f8e66aec2">rsGetElementAt</a>(rs_allocation a, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x);
+<a name="l00141"></a>00141 extern const <span class="keywordtype">void</span> * __attribute__((overloadable))
+<a name="l00142"></a>00142     <a class="code" href="rs__allocation_8rsh.html#a56157b6ddef754b36833ca1f8e66aec2">rsGetElementAt</a>(rs_allocation a, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y);
+<a name="l00146"></a>00146 extern const <span class="keywordtype">void</span> * __attribute__((overloadable))
+<a name="l00147"></a>00147     <a class="code" href="rs__allocation_8rsh.html#a56157b6ddef754b36833ca1f8e66aec2">rsGetElementAt</a>(rs_allocation a, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> z);
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 18))</span>
+<a name="l00151"></a>00151 <span class="preprocessor"></span><span class="preprocessor">    #define GET_ELEMENT_AT(T) \</span>
+<a name="l00152"></a>00152 <span class="preprocessor">    extern T __attribute__((overloadable)) \</span>
+<a name="l00153"></a>00153 <span class="preprocessor">            rsGetElementAt_##T(rs_allocation a, uint32_t x); \</span>
+<a name="l00154"></a>00154 <span class="preprocessor">    extern T __attribute__((overloadable)) \</span>
+<a name="l00155"></a>00155 <span class="preprocessor">            rsGetElementAt_##T(rs_allocation a, uint32_t x, uint32_t y);  \</span>
+<a name="l00156"></a>00156 <span class="preprocessor">    extern T __attribute__((overloadable)) \</span>
+<a name="l00157"></a>00157 <span class="preprocessor">            rsGetElementAt_##T(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);</span>
+<a name="l00158"></a>00158 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor">    #define GET_ELEMENT_AT(T) \</span>
+<a name="l00160"></a>00160 <span class="preprocessor">    static inline T __attribute__((overloadable)) \</span>
+<a name="l00161"></a>00161 <span class="preprocessor">            rsGetElementAt_##T(rs_allocation a, uint32_t x) {  \</span>
+<a name="l00162"></a>00162 <span class="preprocessor">        return ((T *)rsGetElementAt(a, x))[0]; \</span>
+<a name="l00163"></a>00163 <span class="preprocessor">    } \</span>
+<a name="l00164"></a>00164 <span class="preprocessor">    static inline T __attribute__((overloadable)) \</span>
+<a name="l00165"></a>00165 <span class="preprocessor">            rsGetElementAt_##T(rs_allocation a, uint32_t x, uint32_t y) {  \</span>
+<a name="l00166"></a>00166 <span class="preprocessor">        return ((T *)rsGetElementAt(a, x, y))[0]; \</span>
+<a name="l00167"></a>00167 <span class="preprocessor">    } \</span>
+<a name="l00168"></a>00168 <span class="preprocessor">    static inline T __attribute__((overloadable)) \</span>
+<a name="l00169"></a>00169 <span class="preprocessor">            rsGetElementAt_##T(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {  \</span>
+<a name="l00170"></a>00170 <span class="preprocessor">        return ((T *)rsGetElementAt(a, x, y, z))[0]; \</span>
+<a name="l00171"></a>00171 <span class="preprocessor">    }</span>
+<a name="l00172"></a>00172 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00173"></a>00173 <span class="preprocessor"></span>
+<a name="l00174"></a>00174 GET_ELEMENT_AT(<span class="keywordtype">char</span>)
+<a name="l00175"></a>00175 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a>)
+<a name="l00176"></a>00176 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">char3</a>)
+<a name="l00177"></a>00177 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">char4</a>)
+<a name="l00178"></a>00178 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>)
+<a name="l00179"></a>00179 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>)
+<a name="l00180"></a>00180 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">uchar3</a>)
+<a name="l00181"></a>00181 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>)
+<a name="l00182"></a>00182 GET_ELEMENT_AT(<span class="keywordtype">short</span>)
+<a name="l00183"></a>00183 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a>)
+<a name="l00184"></a>00184 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">short3</a>)
+<a name="l00185"></a>00185 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">short4</a>)
+<a name="l00186"></a>00186 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>)
+<a name="l00187"></a>00187 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a>)
+<a name="l00188"></a>00188 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">ushort3</a>)
+<a name="l00189"></a>00189 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">ushort4</a>)
+<a name="l00190"></a>00190 GET_ELEMENT_AT(<span class="keywordtype">int</span>)
+<a name="l00191"></a>00191 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a>)
+<a name="l00192"></a>00192 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">int3</a>)
+<a name="l00193"></a>00193 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">int4</a>)
+<a name="l00194"></a>00194 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>)
+<a name="l00195"></a>00195 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a>)
+<a name="l00196"></a>00196 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">uint3</a>)
+<a name="l00197"></a>00197 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">uint4</a>)
+<a name="l00198"></a>00198 GET_ELEMENT_AT(<span class="keywordtype">long</span>)
+<a name="l00199"></a>00199 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a>)
+<a name="l00200"></a>00200 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">long3</a>)
+<a name="l00201"></a>00201 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">long4</a>)
+<a name="l00202"></a>00202 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a>)
+<a name="l00203"></a>00203 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a>)
+<a name="l00204"></a>00204 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">ulong3</a>)
+<a name="l00205"></a>00205 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">ulong4</a>)
+<a name="l00206"></a>00206 GET_ELEMENT_AT(<span class="keywordtype">float</span>)
+<a name="l00207"></a>00207 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>)
+<a name="l00208"></a>00208 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>)
+<a name="l00209"></a>00209 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>)
+<a name="l00210"></a>00210 GET_ELEMENT_AT(<span class="keywordtype">double</span>)
+<a name="l00211"></a>00211 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">double2</a>)
+<a name="l00212"></a>00212 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aa3c90d5a23d674185a13e95402eda7eb">double3</a>)
+<a name="l00213"></a>00213 GET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a60f4b04e076f0dd0ecc99c365fc4ca21">double4</a>)
+<a name="l00214"></a>00214 
+<a name="l00215"></a>00215 <span class="preprocessor">#undef GET_ELEMENT_AT</span>
 <a name="l00216"></a>00216 <span class="preprocessor"></span>
+<a name="l00217"></a>00217 <span class="comment">// Jelly Bean</span>
+<a name="l00218"></a>00218 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
+<a name="l00219"></a>00219 <span class="preprocessor"></span>
+<a name="l00224"></a>00224 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00225"></a>00225     <a class="code" href="rs__allocation_8rsh.html#afe9ebb2f89c6366c59f5e05ee4849c0a">rsAllocationIoSend</a>(rs_allocation a);
+<a name="l00226"></a>00226 
+<a name="l00231"></a>00231 extern const <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00232"></a>00232     <a class="code" href="rs__allocation_8rsh.html#a05f7391230a92d239fdb619d791162b5">rsAllocationIoReceive</a>(rs_allocation a);
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234 
+<a name="l00240"></a>00240 extern <a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a> __attribute__((overloadable))
+<a name="l00241"></a>00241     <a class="code" href="rs__allocation_8rsh.html#a6a3b6512bc269f6b369bdc54d12a45ff">rsAllocationGetElement</a>(rs_allocation a);
+<a name="l00242"></a>00242 
+<a name="l00249"></a>00249 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
+<a name="l00250"></a>00250     <a class="code" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rsSample</a>(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s, <span class="keywordtype">float</span> location);
+<a name="l00260"></a>00260 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
+<a name="l00261"></a>00261     <a class="code" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rsSample</a>(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s, <span class="keywordtype">float</span> location, <span class="keywordtype">float</span> lod);
+<a name="l00262"></a>00262 
+<a name="l00269"></a>00269 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
+<a name="l00270"></a>00270     <a class="code" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rsSample</a>(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> location);
+<a name="l00271"></a>00271 
+<a name="l00281"></a>00281 extern const <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable))
+<a name="l00282"></a>00282     <a class="code" href="rs__allocation_8rsh.html#a1ed04c0bfab4044b875bb31577b53407">rsSample</a>(rs_allocation a, <a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> location, <span class="keywordtype">float</span> lod);
+<a name="l00283"></a>00283 
+<a name="l00284"></a>00284 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
+<a name="l00285"></a>00285 <span class="preprocessor"></span>
+<a name="l00286"></a>00286 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 18))</span>
+<a name="l00287"></a>00287 <span class="preprocessor"></span>
+<a name="l00291"></a>00291 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00292"></a>00292     <a class="code" href="rs__allocation_8rsh.html#a36ef1e609e360a9a5a5ff5dce13b5100">rsSetElementAt</a>(rs_allocation a, <span class="keywordtype">void</span>* ptr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x);
+<a name="l00293"></a>00293 
+<a name="l00297"></a>00297 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00298"></a>00298     <a class="code" href="rs__allocation_8rsh.html#a36ef1e609e360a9a5a5ff5dce13b5100">rsSetElementAt</a>(rs_allocation a, <span class="keywordtype">void</span>* ptr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y);
+<a name="l00299"></a>00299 
+<a name="l00300"></a>00300 <span class="preprocessor">#define SET_ELEMENT_AT(T)                                               \</span>
+<a name="l00301"></a>00301 <span class="preprocessor">    extern void __attribute__((overloadable))                           \</span>
+<a name="l00302"></a>00302 <span class="preprocessor">    rsSetElementAt_##T(rs_allocation a, T val, uint32_t x);             \</span>
+<a name="l00303"></a>00303 <span class="preprocessor">    extern void __attribute__((overloadable))                           \</span>
+<a name="l00304"></a>00304 <span class="preprocessor">    rsSetElementAt_##T(rs_allocation a, T val, uint32_t x, uint32_t y); \</span>
+<a name="l00305"></a>00305 <span class="preprocessor">    extern void __attribute__((overloadable))                           \</span>
+<a name="l00306"></a>00306 <span class="preprocessor">    rsSetElementAt_##T(rs_allocation a, T val, uint32_t x, uint32_t y, uint32_t z);</span>
+<a name="l00307"></a>00307 <span class="preprocessor"></span>
+<a name="l00308"></a>00308 
+<a name="l00309"></a>00309 SET_ELEMENT_AT(<span class="keywordtype">char</span>)
+<a name="l00310"></a>00310 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a>)
+<a name="l00311"></a>00311 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">char3</a>)
+<a name="l00312"></a>00312 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">char4</a>)
+<a name="l00313"></a>00313 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>)
+<a name="l00314"></a>00314 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>)
+<a name="l00315"></a>00315 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">uchar3</a>)
+<a name="l00316"></a>00316 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>)
+<a name="l00317"></a>00317 SET_ELEMENT_AT(<span class="keywordtype">short</span>)
+<a name="l00318"></a>00318 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a>)
+<a name="l00319"></a>00319 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">short3</a>)
+<a name="l00320"></a>00320 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">short4</a>)
+<a name="l00321"></a>00321 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>)
+<a name="l00322"></a>00322 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a>)
+<a name="l00323"></a>00323 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">ushort3</a>)
+<a name="l00324"></a>00324 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">ushort4</a>)
+<a name="l00325"></a>00325 SET_ELEMENT_AT(<span class="keywordtype">int</span>)
+<a name="l00326"></a>00326 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a>)
+<a name="l00327"></a>00327 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">int3</a>)
+<a name="l00328"></a>00328 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">int4</a>)
+<a name="l00329"></a>00329 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>)
+<a name="l00330"></a>00330 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a>)
+<a name="l00331"></a>00331 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">uint3</a>)
+<a name="l00332"></a>00332 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">uint4</a>)
+<a name="l00333"></a>00333 SET_ELEMENT_AT(<span class="keywordtype">long</span>)
+<a name="l00334"></a>00334 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a>)
+<a name="l00335"></a>00335 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">long3</a>)
+<a name="l00336"></a>00336 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">long4</a>)
+<a name="l00337"></a>00337 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a>)
+<a name="l00338"></a>00338 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a>)
+<a name="l00339"></a>00339 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">ulong3</a>)
+<a name="l00340"></a>00340 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">ulong4</a>)
+<a name="l00341"></a>00341 SET_ELEMENT_AT(<span class="keywordtype">float</span>)
+<a name="l00342"></a>00342 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>)
+<a name="l00343"></a>00343 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>)
+<a name="l00344"></a>00344 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>)
+<a name="l00345"></a>00345 SET_ELEMENT_AT(<span class="keywordtype">double</span>)
+<a name="l00346"></a>00346 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">double2</a>)
+<a name="l00347"></a>00347 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#aa3c90d5a23d674185a13e95402eda7eb">double3</a>)
+<a name="l00348"></a>00348 SET_ELEMENT_AT(<a class="code" href="rs__types_8rsh.html#a60f4b04e076f0dd0ecc99c365fc4ca21">double4</a>)
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350 <span class="preprocessor">#undef SET_ELEMENT_AT</span>
+<a name="l00351"></a>00351 <span class="preprocessor"></span>
+<a name="l00352"></a>00352 
+<a name="l00356"></a>00356 <span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> __attribute__((overloadable))
+<a name="l00357"></a>00357     <a class="code" href="rs__allocation_8rsh.html#ad7ffa1aa16511a75b4bc2c05bd0e0a75">rsGetElementAtYuv_uchar_Y</a>(rs_allocation a, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y);
+<a name="l00358"></a>00358 
+<a name="l00364"></a>00364 extern const <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> __attribute__((overloadable))
+<a name="l00365"></a>00365     <a class="code" href="rs__allocation_8rsh.html#a41f61be02113ee22c039ea51fdedb20e">rsGetElementAtYuv_uchar_U</a>(rs_allocation a, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y);
+<a name="l00366"></a>00366 
+<a name="l00372"></a>00372 extern const <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> __attribute__((overloadable))
+<a name="l00373"></a>00373     <a class="code" href="rs__allocation_8rsh.html#af03cadb582fa80bbf7f39177d96df17e">rsGetElementAtYuv_uchar_V</a>(rs_allocation a, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> x, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> y);
+<a name="l00374"></a>00374 
+<a name="l00375"></a>00375 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 18))</span>
+<a name="l00376"></a>00376 <span class="preprocessor"></span>
+<a name="l00377"></a>00377 <span class="preprocessor">#endif</span>
+<a name="l00378"></a>00378 <span class="preprocessor"></span>
 </pre></div></div>
 </div>
 
index bb33fc3..94c16ef 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_atomic.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_atomic.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 </div>
 <div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_atomic.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_atomic.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a619e7a489500a650569a76ccd93e105f">rsAtomicInc</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a9c7a2b449852ba9d3297747ec3ca06e3">rsAtomicInc</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a16a69784a343d7c11bf6bd7fec9686ca">rsAtomicDec</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a77902e5015557fa7336a7926ebdccdae">rsAtomicDec</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#ab46665eff81030200f86db9c2181072a">rsAtomicAdd</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#ab206947a5a724f02cb1ab36dd7df82d7">rsAtomicAdd</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a800dced6abbf09716391f35bc488900b">rsAtomicSub</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#ae5770ea0b22cb47e517b3391763c14a5">rsAtomicSub</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a7fdf5633662dd5b0898ad5a149e3c8ad">rsAtomicAnd</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a9d4e93fa4b55b49c75d4d1bd7708cf41">rsAtomicAnd</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a477f6eb17c4806bb715bfd975b6369cd">rsAtomicOr</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a611cde98a711ba690e1c07ddb502ce97">rsAtomicOr</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a5590505ea65c53b3bb26fa48a6b9c313">rsAtomicXor</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#ab9fe2263cd7814fc5292c6af81ed69eb">rsAtomicXor</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a9f3cddc86f1075ca194a762fb8a3330a">rsAtomicMin</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a8de83596fd23f119ab8620a8dad223b1">rsAtomicMin</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a1d49d69d14956152fcde34efe9cdff87">rsAtomicMax</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a6d4cb5118131a8f1e73b704c093401aa">rsAtomicMax</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#a205d66a8eb29eee8968f886e488b4402">rsAtomicCas</a> (volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> compareValue, <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> newValue)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__atomic_8rsh.html#aa46bb0a2933a93bed2858585a088b173">rsAtomicCas</a> (volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *addr, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> compareValue, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> newValue)</td></tr>
+</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Atomic routines. </p>
 
 <p>Definition in file <a class="el" href="rs__atomic_8rsh_source.html">rs_atomic.rsh</a>.</p>
-</div></div>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ab46665eff81030200f86db9c2181072a"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicAdd" ref="ab46665eff81030200f86db9c2181072a" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicAdd </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic add a value to the value at addr. addr[0] += value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to add to the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab206947a5a724f02cb1ab36dd7df82d7"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicAdd" ref="ab206947a5a724f02cb1ab36dd7df82d7" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicAdd </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic add a value to the value at addr. addr[0] += value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to add to the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7fdf5633662dd5b0898ad5a149e3c8ad"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicAnd" ref="a7fdf5633662dd5b0898ad5a149e3c8ad" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicAnd </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Bitwise and a value from the value at addr. addr[0] &amp;= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to and with the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9d4e93fa4b55b49c75d4d1bd7708cf41"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicAnd" ref="a9d4e93fa4b55b49c75d4d1bd7708cf41" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicAnd </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Bitwise and a value from the value at addr. addr[0] &amp;= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to and with the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a205d66a8eb29eee8968f886e488b4402"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicCas" ref="a205d66a8eb29eee8968f886e488b4402" args="(volatile int32_t *addr, int32_t compareValue, int32_t newValue)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicCas </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>compareValue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>newValue</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Compare-and-set operation with a full memory barrier.</p>
+<p>If the value at addr matches compareValue then newValue is written.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>The address to compare and replace if the compare passes. </td></tr>
+    <tr><td class="paramname">compareValue</td><td>The value to test addr[0] against. </td></tr>
+    <tr><td class="paramname">newValue</td><td>The value to write if the test passes.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa46bb0a2933a93bed2858585a088b173"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicCas" ref="aa46bb0a2933a93bed2858585a088b173" args="(volatile uint32_t *addr, uint32_t compareValue, uint32_t newValue)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicCas </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>compareValue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>newValue</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Compare-and-set operation with a full memory barrier.</p>
+<p>If the value at addr matches compareValue then newValue is written.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>The address to compare and replace if the compare passes. </td></tr>
+    <tr><td class="paramname">compareValue</td><td>The value to test addr[0] against. </td></tr>
+    <tr><td class="paramname">newValue</td><td>The value to write if the test passes.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a16a69784a343d7c11bf6bd7fec9686ca"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicDec" ref="a16a69784a343d7c11bf6bd7fec9686ca" args="(volatile int32_t *addr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicDec </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic subtract one from the value at addr. Equal to rsAtomicSub(addr, 1)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to decrement</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a77902e5015557fa7336a7926ebdccdae"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicDec" ref="a77902e5015557fa7336a7926ebdccdae" args="(volatile uint32_t *addr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicDec </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic subtract one from the value at addr. Equal to rsAtomicSub(addr, 1)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to decrement</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a619e7a489500a650569a76ccd93e105f"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicInc" ref="a619e7a489500a650569a76ccd93e105f" args="(volatile int32_t *addr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicInc </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic add one to the value at addr. Equal to rsAtomicAdd(addr, 1)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to increment</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9c7a2b449852ba9d3297747ec3ca06e3"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicInc" ref="a9c7a2b449852ba9d3297747ec3ca06e3" args="(volatile uint32_t *addr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicInc </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic add one to the value at addr. Equal to rsAtomicAdd(addr, 1)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to increment</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1d49d69d14956152fcde34efe9cdff87"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicMax" ref="a1d49d69d14956152fcde34efe9cdff87" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicMax </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Set the value at addr to the max of addr and value addr[0] = rsMax(addr[0], value)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>comparison value</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6d4cb5118131a8f1e73b704c093401aa"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicMax" ref="a6d4cb5118131a8f1e73b704c093401aa" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicMax </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Set the value at addr to the max of addr and value addr[0] = rsMin(addr[0], value)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>comparison value</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9f3cddc86f1075ca194a762fb8a3330a"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicMin" ref="a9f3cddc86f1075ca194a762fb8a3330a" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicMin </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Set the value at addr to the min of addr and value addr[0] = rsMin(addr[0], value)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>comparison value</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8de83596fd23f119ab8620a8dad223b1"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicMin" ref="a8de83596fd23f119ab8620a8dad223b1" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicMin </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Set the value at addr to the min of addr and value addr[0] = rsMin(addr[0], value)</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>comparison value</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a477f6eb17c4806bb715bfd975b6369cd"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicOr" ref="a477f6eb17c4806bb715bfd975b6369cd" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicOr </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Bitwise or a value from the value at addr. addr[0] |= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to or with the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a611cde98a711ba690e1c07ddb502ce97"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicOr" ref="a611cde98a711ba690e1c07ddb502ce97" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicOr </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Bitwise or a value from the value at addr. addr[0] |= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to or with the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a800dced6abbf09716391f35bc488900b"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicSub" ref="a800dced6abbf09716391f35bc488900b" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicSub </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Subtract a value from the value at addr. addr[0] -= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to subtract from the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae5770ea0b22cb47e517b3391763c14a5"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicSub" ref="ae5770ea0b22cb47e517b3391763c14a5" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicSub </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Subtract a value from the value at addr. addr[0] -= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to subtract from the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5590505ea65c53b3bb26fa48a6b9c313"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicXor" ref="a5590505ea65c53b3bb26fa48a6b9c313" args="(volatile uint32_t *addr, uint32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsAtomicXor </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Bitwise xor a value from the value at addr. addr[0] ^= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to xor with the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab9fe2263cd7814fc5292c6af81ed69eb"></a><!-- doxytag: member="rs_atomic.rsh::rsAtomicXor" ref="ab9fe2263cd7814fc5292c6af81ed69eb" args="(volatile int32_t *addr, int32_t value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> rsAtomicXor </td>
+          <td>(</td>
+          <td class="paramtype">volatile <a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Atomic Bitwise xor a value from the value at addr. addr[0] ^= value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">addr</td><td>Address of value to modify </td></tr>
+    <tr><td class="paramname">value</td><td>Amount to xor with the value at addr</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>old value </dd></dl>
+
+</div>
+</div>
+</div>
 
 </body>
 </html>
index 63d1a68..2136df4 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_atomic.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_atomic.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_atomic.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_atomic.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__atomic_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00026"></a>00026 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14))</span>
 <a name="l00027"></a>00027 <span class="preprocessor"></span>
 <a name="l00036"></a>00036 <span class="keyword">extern</span> <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00037"></a>00037     rsAtomicInc(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr);
+<a name="l00037"></a>00037     <a class="code" href="rs__atomic_8rsh.html#a619e7a489500a650569a76ccd93e105f">rsAtomicInc</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr);
 <a name="l00046"></a>00046 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00047"></a>00047     rsAtomicInc(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr);
+<a name="l00047"></a>00047     <a class="code" href="rs__atomic_8rsh.html#a619e7a489500a650569a76ccd93e105f">rsAtomicInc</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr);
 <a name="l00048"></a>00048 
 <a name="l00056"></a>00056 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00057"></a>00057     rsAtomicDec(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr);
+<a name="l00057"></a>00057     <a class="code" href="rs__atomic_8rsh.html#a16a69784a343d7c11bf6bd7fec9686ca">rsAtomicDec</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr);
 <a name="l00065"></a>00065 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00066"></a>00066     rsAtomicDec(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr);
+<a name="l00066"></a>00066     <a class="code" href="rs__atomic_8rsh.html#a16a69784a343d7c11bf6bd7fec9686ca">rsAtomicDec</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr);
 <a name="l00067"></a>00067 
 <a name="l00076"></a>00076 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00077"></a>00077     rsAtomicAdd(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00077"></a>00077     <a class="code" href="rs__atomic_8rsh.html#ab46665eff81030200f86db9c2181072a">rsAtomicAdd</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00086"></a>00086 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00087"></a>00087     rsAtomicAdd(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00087"></a>00087     <a class="code" href="rs__atomic_8rsh.html#ab46665eff81030200f86db9c2181072a">rsAtomicAdd</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00088"></a>00088 
 <a name="l00097"></a>00097 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00098"></a>00098     rsAtomicSub(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00098"></a>00098     <a class="code" href="rs__atomic_8rsh.html#a800dced6abbf09716391f35bc488900b">rsAtomicSub</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00107"></a>00107 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00108"></a>00108     rsAtomicSub(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00108"></a>00108     <a class="code" href="rs__atomic_8rsh.html#a800dced6abbf09716391f35bc488900b">rsAtomicSub</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00109"></a>00109 
 <a name="l00118"></a>00118 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00119"></a>00119     rsAtomicAnd(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00119"></a>00119     <a class="code" href="rs__atomic_8rsh.html#a7fdf5633662dd5b0898ad5a149e3c8ad">rsAtomicAnd</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00128"></a>00128 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00129"></a>00129     rsAtomicAnd(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00129"></a>00129     <a class="code" href="rs__atomic_8rsh.html#a7fdf5633662dd5b0898ad5a149e3c8ad">rsAtomicAnd</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00130"></a>00130 
 <a name="l00139"></a>00139 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00140"></a>00140     rsAtomicOr(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00140"></a>00140     <a class="code" href="rs__atomic_8rsh.html#a477f6eb17c4806bb715bfd975b6369cd">rsAtomicOr</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00149"></a>00149 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00150"></a>00150     rsAtomicOr(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00150"></a>00150     <a class="code" href="rs__atomic_8rsh.html#a477f6eb17c4806bb715bfd975b6369cd">rsAtomicOr</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00151"></a>00151 
 <a name="l00160"></a>00160 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00161"></a>00161     rsAtomicXor(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00161"></a>00161     <a class="code" href="rs__atomic_8rsh.html#a5590505ea65c53b3bb26fa48a6b9c313">rsAtomicXor</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00170"></a>00170 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00171"></a>00171     rsAtomicXor(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00171"></a>00171     <a class="code" href="rs__atomic_8rsh.html#a5590505ea65c53b3bb26fa48a6b9c313">rsAtomicXor</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00172"></a>00172 
 <a name="l00182"></a>00182 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00183"></a>00183     rsAtomicMin(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00183"></a>00183     <a class="code" href="rs__atomic_8rsh.html#a9f3cddc86f1075ca194a762fb8a3330a">rsAtomicMin</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00193"></a>00193 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00194"></a>00194     rsAtomicMin(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00194"></a>00194     <a class="code" href="rs__atomic_8rsh.html#a9f3cddc86f1075ca194a762fb8a3330a">rsAtomicMin</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00195"></a>00195 
 <a name="l00205"></a>00205 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00206"></a>00206     rsAtomicMax(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
+<a name="l00206"></a>00206     <a class="code" href="rs__atomic_8rsh.html#a1d49d69d14956152fcde34efe9cdff87">rsAtomicMax</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> value);
 <a name="l00216"></a>00216 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00217"></a>00217     rsAtomicMax(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
+<a name="l00217"></a>00217     <a class="code" href="rs__atomic_8rsh.html#a1d49d69d14956152fcde34efe9cdff87">rsAtomicMax</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> value);
 <a name="l00218"></a>00218 
 <a name="l00230"></a>00230 extern <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> __attribute__((overloadable))
-<a name="l00231"></a>00231     rsAtomicCas(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> compareValue, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> newValue);
+<a name="l00231"></a>00231     <a class="code" href="rs__atomic_8rsh.html#a205d66a8eb29eee8968f886e488b4402">rsAtomicCas</a>(volatile <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> compareValue, <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> newValue);
 <a name="l00232"></a>00232 
 <a name="l00244"></a>00244 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00245"></a>00245     rsAtomicCas(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> compareValue, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> newValue);
+<a name="l00245"></a>00245     <a class="code" href="rs__atomic_8rsh.html#a205d66a8eb29eee8968f886e488b4402">rsAtomicCas</a>(volatile <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>* addr, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> compareValue, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> newValue);
 <a name="l00246"></a>00246 
 <a name="l00247"></a>00247 <span class="preprocessor">#endif //defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14)</span>
 <a name="l00248"></a>00248 <span class="preprocessor"></span>
index 999fe0d..2a781b6 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_cl.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_cl.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_cl.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_cl.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a67421c4b17df15a1c726d912770e5ca4">convert_char2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a833bb5476683ec5692feaf0cd5dcdd80">convert_uchar2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a83e89db1940f3190fbec5bd823a99fc5">convert_short2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a6862ea6ddfba8a59796bc681a544fb4f">convert_ushort2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9d2e4b8f0f25a7ccaed05248edc21f06">convert_int2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a01ff256469203ba33ba0f220b54e70d1">convert_uint2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a1ad62d449c1e3548573c2f9c1a5cb13a">convert_float2</a> (<a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">acos</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">acosh</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a2c0c7c00815bd480fcda80d1144ac20d">acospi</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a2c9092eb07e9df891935e93469e70d4e">acospi</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">asin</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">asinh</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a679b63e86358fc962cb343eb6263496b">asinpi</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a812eb4521e65a451161417f9898384f7">asinpi</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">atan</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">atan2</a> (float y, float x)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">atanh</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a420d4aaea0e53d7172845a21a1e648ea">atanpi</a> (float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9aed0a1613c86acf5e4c5ad3290a4745">atan2pi</a> (float y, float x)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a5052e31ce616d35aee25a3a83f6fc117">atanpi</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a89ec5f6a2f64a0f9e97438fbd41aaace">atan2pi</a> (float y, float x)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ae9d1787b55c2587478a24d96573225df">cbrt</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aa8fc6daff743a1b635ccbf9af83fe4e4">ceil</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">copysign</a> (float x, float y)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a8eec7aeb4b0c46b06cbcd1a3ac3e6f05">cos</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">cosh</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a07b12188bd53c6b584274892f6abf425">cospi</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a258d2c828fd46eae2867373884d834a9">cospi</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a2e24dc8594e758b64c340153f67a533c">erfc</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a139f102df651c25c26dd35d549173f57">erf</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">exp</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">exp2</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">pow</a> (float x, float y)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4b51589157c9ce600ea6156be51d8d18">exp10</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a0225ff40d79f78260293e776c6a77422">exp10</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a7996044b67be921a5e58e2fe76af66e2">expm1</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">fabs</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">fdim</a> (float, float)</td></tr>
@@ -64,7 +71,8 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a60f2072d8a746e7fe05cd46dea0fefcc">fmax</a> (float x, float y)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a1fd9d57c6c992866bf5161be2cf4c447">fmin</a> (float x, float y)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">fmod</a> (float x, float y)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ac5277212e0df309a0a7c908424f7b14b">fract</a> (float v, float *iptr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a> (float v, float *iptr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a84b546baf72a871a5ba688d434d6ce2b">fract</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">frexp</a> (float v, int *iptr)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">hypot</a> (float x, float y)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aad9a8beba52acb77b1efeba432e6cc2c">ilogb</a> (float)</td></tr>
@@ -73,46 +81,78 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a735f4e14e33c50348ef41220f9210bcc">lgamma</a> (float x, int *y)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a3ff85f5f4b206ecf9ec9d128d7d18a08">log</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#af5c1bdba2a13aa2e2b0722287f6a919f">log10</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a2fb571ae932f671ff3e9e97f2d3fabb7">log2</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aab1c4f06daf6f2a50fd73f0c28929213">log2</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">log1p</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">logb</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">mad</a> (float a, float b, float c)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">modf</a> (float x, float *iret)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">nextafter</a> (float x, float y)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#afd46205452017b741abb2e17fc28557d">pown</a> (float v, int p)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a3ff65421721ec8e6ce8d875a563d005f">powr</a> (float v, float p)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a67d1fe795e092003f687f3cc6d3c407a">pown</a> (float v, int p)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a316c30ba3e6bc11673bfd34bb4746d24">powr</a> (float v, float p)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">remainder</a> (float x, float y)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rint</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#af169e7e1c575b7c24c1834569223077f">rootn</a> (float v, int n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a2776b517528b8185a6bb50753af0f6cf">rootn</a> (float v, int n)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">round</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a92da0faef80c4d8f66e954c8c169a729">sqrt</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a5db00fde9e6bff693a38f3a37e7a1f70">rsqrt</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a8a3992b97cb199b1c8d598996b600988">rsqrt</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">sin</a> (float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a240f7c7c20b432a30dc660b5dd4cd320">sincos</a> (float v, float *cosptr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a892c91a30bbc713aa77105d8e9e25881">sincos</a> (float v, float *cosptr)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">sinh</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4fe4fef049786e888526d6f37b912b0a">sinpi</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9ca027af0acf3ff22d91cd9489766976">sinpi</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#af12e245af8ff9bb72b5000e7c26cd8fe">tan</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">tanh</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ad8bfb083dd3979a305e594a0d6e581c4">tanpi</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aee96c8910a7d8b0082574813b6b68b9a">tanpi</a> (float v)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">tgamma</a> (float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ad1a7c65693231219db1babeae1c41f15">trunc</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a> (float amount, float low, float high)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#adc1b551193e66d8037daa1721df4d29c">degrees</a> (float radians)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a> (float start, float stop, float amount)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aaef2526c4d190ba6f7301b4e810917a7">radians</a> (float degrees)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a> (float edge, float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a3e6d477a06dec7070f073eec9d8f420c">sign</a> (float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a0f7beb26bb4aa30535babd14492a7e90">cross</a> (<a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> lhs, <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> rhs)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a> (float lhs, float rhs)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a> (float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">distance</a> (float lhs, float rhs)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">normalize</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a1ed0afedda2068ad1f9ad14ef3449e50">abs</a> (char v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a8a0f94dce3caa2a50cbf2d9f4bc674ac">clz</a> (<a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a5f61ca44b3ad4b11365b0c4137a22658">min</a> (<a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v1, <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a616bf7a90d8d3c73a48d2c395d9dc4ea">max</a> (<a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v1, <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v2)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#afae5eac13e35acd0f47d7e3c601e16ed">clamp</a> (float amount, float low, float high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a0276b63d6905fa802032f1490a24515b">degrees</a> (float radians)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a254612a612ff7539b01a1478e03d8697">mix</a> (float start, float stop, float amount)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aceb63a0da6393b8ac2ed229bae6232d6">radians</a> (float degrees)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9f40337dfee48d1881b87b35aa8133dd">step</a> (float edge, float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a9fe423cc7d4c6d767f8a608d2ee76657">sign</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#add745d593bc2b23285bd10e52a204e25">cross</a> (<a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> lhs, <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a> (float lhs, float rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a412bf215ae838c65079560bbefefaca7">distance</a> (float lhs, float rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a69c2a56f743593439d5ae5e3ec8e517f">normalize</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a49050a8e32c95f60df4eaba9d7dfdca6">half_recip</a> (float)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a26e2c17b20ee4c98b78c365d390e4fb8">half_sqrt</a> (float)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a0925ceb22d33dcbb45914350ffa2edea">half_rsqrt</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a7c8f2f987044a360b5f616a80a74a4d5">fast_length</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a4fcbdb9099e7d653a951cb344ba3c3c9">fast_distance</a> (float lhs, float rhs)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a3878bee2879351f518be68e015d76a35">fast_normalize</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#ab354691ecd844549b27ef9202e17f7ac">native_exp2</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a45d8176823a05b891313f3d96decf491">native_exp</a> (float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__cl_8rsh.html#a601ee3d2bf769f1cdc39a886f7a6c986">native_exp10</a> (float v)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Basic math functions. </p>
 
 <p>Definition in file <a class="el" href="rs__cl_8rsh_source.html">rs_cl.rsh</a>.</p>
 </div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a1ed0afedda2068ad1f9ad14ef3449e50"></a><!-- doxytag: member="rs_cl.rsh::abs" ref="a1ed0afedda2068ad1f9ad14ef3449e50" args="(char v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> abs </td>
+          <td>(</td>
+          <td class="paramtype">char&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the absolute value of a value.</p>
+<p>Supports 1,2,3,4 components of char, short, int. </p>
+
+</div>
+</div>
 <a class="anchor" id="a07648648c7f857cfd1479821d4389751"></a><!-- doxytag: member="rs_cl.rsh::acos" ref="a07648648c7f857cfd1479821d4389751" args="(float)" -->
 <div class="memitem">
 <div class="memproto">
@@ -151,12 +191,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a2c0c7c00815bd480fcda80d1144ac20d"></a><!-- doxytag: member="rs_cl.rsh::acospi" ref="a2c0c7c00815bd480fcda80d1144ac20d" args="(float v)" -->
+<a class="anchor" id="a2c9092eb07e9df891935e93469e70d4e"></a><!-- doxytag: member="rs_cl.rsh::acospi" ref="a2c9092eb07e9df891935e93469e70d4e" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float acospi </td>
+          <td class="memname">float acospi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -208,12 +248,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a679b63e86358fc962cb343eb6263496b"></a><!-- doxytag: member="rs_cl.rsh::asinpi" ref="a679b63e86358fc962cb343eb6263496b" args="(float v)" -->
+<a class="anchor" id="a812eb4521e65a451161417f9898384f7"></a><!-- doxytag: member="rs_cl.rsh::asinpi" ref="a812eb4521e65a451161417f9898384f7" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float asinpi </td>
+          <td class="memname">float asinpi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -282,12 +322,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a9aed0a1613c86acf5e4c5ad3290a4745"></a><!-- doxytag: member="rs_cl.rsh::atan2pi" ref="a9aed0a1613c86acf5e4c5ad3290a4745" args="(float y, float x)" -->
+<a class="anchor" id="a89ec5f6a2f64a0f9e97438fbd41aaace"></a><!-- doxytag: member="rs_cl.rsh::atan2pi" ref="a89ec5f6a2f64a0f9e97438fbd41aaace" args="(float y, float x)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float atan2pi </td>
+          <td class="memname">float atan2pi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>y</em>, </td>
@@ -337,12 +377,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a420d4aaea0e53d7172845a21a1e648ea"></a><!-- doxytag: member="rs_cl.rsh::atanpi" ref="a420d4aaea0e53d7172845a21a1e648ea" args="(float v)" -->
+<a class="anchor" id="a5052e31ce616d35aee25a3a83f6fc117"></a><!-- doxytag: member="rs_cl.rsh::atanpi" ref="a5052e31ce616d35aee25a3a83f6fc117" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float atanpi </td>
+          <td class="memname">float atanpi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -394,12 +434,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ad4dab580aba6cf15539b407b9163dfde"></a><!-- doxytag: member="rs_cl.rsh::clamp" ref="ad4dab580aba6cf15539b407b9163dfde" args="(float amount, float low, float high)" -->
+<a class="anchor" id="afae5eac13e35acd0f47d7e3c601e16ed"></a><!-- doxytag: member="rs_cl.rsh::clamp" ref="afae5eac13e35acd0f47d7e3c601e16ed" args="(float amount, float low, float high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> clamp </td>
+          <td class="memname">float clamp </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -424,9 +464,7 @@ Functions</h2></td></tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Return the minimum of two values.</p>
-<p>Supports 1,2,3,4 components of uchar, char, ushort, short, uint, int, float. Return the maximum of two values.</p>
-<p>Supports 1,2,3,4 components of uchar, char, ushort, short, uint, int, float. Clamp a value to a specified high and low bound.</p>
+<p>Clamp a value to a specified high and low bound.</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">amount</td><td>value to be clamped. Supports 1,2,3,4 components </td></tr>
@@ -438,6 +476,158 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a8a0f94dce3caa2a50cbf2d9f4bc674ac"></a><!-- doxytag: member="rs_cl.rsh::clz" ref="a8a0f94dce3caa2a50cbf2d9f4bc674ac" args="(uchar v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> clz </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the number of leading 0-bits in a value.</p>
+<p>Supports 1,2,3,4 components of uchar, char, ushort, short, uint, int. </p>
+
+</div>
+</div>
+<a class="anchor" id="a67421c4b17df15a1c726d912770e5ca4"></a><!-- doxytag: member="rs_cl.rsh::convert_char2" ref="a67421c4b17df15a1c726d912770e5ca4" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a> convert_char2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to char.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1ad62d449c1e3548573c2f9c1a5cb13a"></a><!-- doxytag: member="rs_cl.rsh::convert_float2" ref="a1ad62d449c1e3548573c2f9c1a5cb13a" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> convert_float2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to float.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a9d2e4b8f0f25a7ccaed05248edc21f06"></a><!-- doxytag: member="rs_cl.rsh::convert_int2" ref="a9d2e4b8f0f25a7ccaed05248edc21f06" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a> convert_int2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to int.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a83e89db1940f3190fbec5bd823a99fc5"></a><!-- doxytag: member="rs_cl.rsh::convert_short2" ref="a83e89db1940f3190fbec5bd823a99fc5" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a> convert_short2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to short.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a833bb5476683ec5692feaf0cd5dcdd80"></a><!-- doxytag: member="rs_cl.rsh::convert_uchar2" ref="a833bb5476683ec5692feaf0cd5dcdd80" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> convert_uchar2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to unsigned char.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a01ff256469203ba33ba0f220b54e70d1"></a><!-- doxytag: member="rs_cl.rsh::convert_uint2" ref="a01ff256469203ba33ba0f220b54e70d1" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a> convert_uint2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to unsigned int.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6862ea6ddfba8a59796bc681a544fb4f"></a><!-- doxytag: member="rs_cl.rsh::convert_ushort2" ref="a6862ea6ddfba8a59796bc681a544fb4f" args="(uchar2 v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a> convert_ushort2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Convert to unsigned short.</p>
+<p>Supports 2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
 <a class="anchor" id="a29f2602d95aa7b3950e2b77b3e268f7e"></a><!-- doxytag: member="rs_cl.rsh::copysign" ref="a29f2602d95aa7b3950e2b77b3e268f7e" args="(float x, float y)" -->
 <div class="memitem">
 <div class="memproto">
@@ -512,12 +702,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a07b12188bd53c6b584274892f6abf425"></a><!-- doxytag: member="rs_cl.rsh::cospi" ref="a07b12188bd53c6b584274892f6abf425" args="(float v)" -->
+<a class="anchor" id="a258d2c828fd46eae2867373884d834a9"></a><!-- doxytag: member="rs_cl.rsh::cospi" ref="a258d2c828fd46eae2867373884d834a9" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float cospi </td>
+          <td class="memname">float cospi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -531,12 +721,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a0f7beb26bb4aa30535babd14492a7e90"></a><!-- doxytag: member="rs_cl.rsh::cross" ref="a0f7beb26bb4aa30535babd14492a7e90" args="(float3 lhs, float3 rhs)" -->
+<a class="anchor" id="add745d593bc2b23285bd10e52a204e25"></a><!-- doxytag: member="rs_cl.rsh::cross" ref="add745d593bc2b23285bd10e52a204e25" args="(float3 lhs, float3 rhs)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> cross </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> cross </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>&#160;</td>
           <td class="paramname"><em>lhs</em>, </td>
@@ -560,12 +750,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="adc1b551193e66d8037daa1721df4d29c"></a><!-- doxytag: member="rs_cl.rsh::degrees" ref="adc1b551193e66d8037daa1721df4d29c" args="(float radians)" -->
+<a class="anchor" id="a0276b63d6905fa802032f1490a24515b"></a><!-- doxytag: member="rs_cl.rsh::degrees" ref="a0276b63d6905fa802032f1490a24515b" args="(float radians)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float degrees </td>
+          <td class="memname">float degrees </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>radians</em></td><td>)</td>
@@ -579,12 +769,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a4488863373be92e113e9d24aa3d21e76"></a><!-- doxytag: member="rs_cl.rsh::distance" ref="a4488863373be92e113e9d24aa3d21e76" args="(float lhs, float rhs)" -->
+<a class="anchor" id="a412bf215ae838c65079560bbefefaca7"></a><!-- doxytag: member="rs_cl.rsh::distance" ref="a412bf215ae838c65079560bbefefaca7" args="(float lhs, float rhs)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float distance </td>
+          <td class="memname">float distance </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>lhs</em>, </td>
@@ -608,12 +798,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a70544acaca578035a849eef67d62c449"></a><!-- doxytag: member="rs_cl.rsh::dot" ref="a70544acaca578035a849eef67d62c449" args="(float lhs, float rhs)" -->
+<a class="anchor" id="aa26d85eac3067e9769b33b6914b180f2"></a><!-- doxytag: member="rs_cl.rsh::dot" ref="aa26d85eac3067e9769b33b6914b180f2" args="(float lhs, float rhs)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float dot </td>
+          <td class="memname">float dot </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>lhs</em>, </td>
@@ -694,12 +884,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a4b51589157c9ce600ea6156be51d8d18"></a><!-- doxytag: member="rs_cl.rsh::exp10" ref="a4b51589157c9ce600ea6156be51d8d18" args="(float v)" -->
+<a class="anchor" id="a0225ff40d79f78260293e776c6a77422"></a><!-- doxytag: member="rs_cl.rsh::exp10" ref="a0225ff40d79f78260293e776c6a77422" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float exp10 </td>
+          <td class="memname">float exp10 </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -770,6 +960,73 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a4fcbdb9099e7d653a951cb344ba3c3c9"></a><!-- doxytag: member="rs_cl.rsh::fast_distance" ref="a4fcbdb9099e7d653a951cb344ba3c3c9" args="(float lhs, float rhs)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float fast_distance </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Compute the approximate distance between two points.</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
+<a class="anchor" id="a7c8f2f987044a360b5f616a80a74a4d5"></a><!-- doxytag: member="rs_cl.rsh::fast_length" ref="a7c8f2f987044a360b5f616a80a74a4d5" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float fast_length </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Compute the approximate length of a vector.</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
+<a class="anchor" id="a3878bee2879351f518be68e015d76a35"></a><!-- doxytag: member="rs_cl.rsh::fast_normalize" ref="a3878bee2879351f518be68e015d76a35" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float fast_normalize </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Approximately normalize a vector.</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
 <a class="anchor" id="ae7a7bac0f4e244594078f87b42c8716a"></a><!-- doxytag: member="rs_cl.rsh::fdim" ref="ae7a7bac0f4e244594078f87b42c8716a" args="(float, float)" -->
 <div class="memitem">
 <div class="memproto">
@@ -953,12 +1210,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ac5277212e0df309a0a7c908424f7b14b"></a><!-- doxytag: member="rs_cl.rsh::fract" ref="ac5277212e0df309a0a7c908424f7b14b" args="(float v, float *iptr)" -->
+<a class="anchor" id="a9374786a1bbe3d2dd886cfad642bfec6"></a><!-- doxytag: member="rs_cl.rsh::fract" ref="a9374786a1bbe3d2dd886cfad642bfec6" args="(float v, float *iptr)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float fract </td>
+          <td class="memname">float fract </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em>, </td>
@@ -987,6 +1244,27 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a84b546baf72a871a5ba688d434d6ce2b"></a><!-- doxytag: member="rs_cl.rsh::fract" ref="a84b546baf72a871a5ba688d434d6ce2b" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> fract </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td><code> [inline, static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return fractional part of v</p>
+<p>Supports float, float2, float3, float4. </p>
+
+<p>Definition at line <a class="el" href="rs__cl_8rsh_source.html#l00485">485</a> of file <a class="el" href="rs__cl_8rsh_source.html">rs_cl.rsh</a>.</p>
+
+</div>
+</div>
 <a class="anchor" id="a778635fffed3cee8ab0800482ba53a30"></a><!-- doxytag: member="rs_cl.rsh::frexp" ref="a778635fffed3cee8ab0800482ba53a30" args="(float v, int *iptr)" -->
 <div class="memitem">
 <div class="memproto">
@@ -1022,6 +1300,63 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a49050a8e32c95f60df4eaba9d7dfdca6"></a><!-- doxytag: member="rs_cl.rsh::half_recip" ref="a49050a8e32c95f60df4eaba9d7dfdca6" args="(float)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float half_recip </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the approximate reciprocal of a value.</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
+<a class="anchor" id="a0925ceb22d33dcbb45914350ffa2edea"></a><!-- doxytag: member="rs_cl.rsh::half_rsqrt" ref="a0925ceb22d33dcbb45914350ffa2edea" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float half_rsqrt </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the approximate value of (1 / sqrt(value)).</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
+<a class="anchor" id="a26e2c17b20ee4c98b78c365d390e4fb8"></a><!-- doxytag: member="rs_cl.rsh::half_sqrt" ref="a26e2c17b20ee4c98b78c365d390e4fb8" args="(float)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float half_sqrt </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the approximate square root of a value.</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
 <a class="anchor" id="a147f38d6e41f45de9b5e7c6f3dcac010"></a><!-- doxytag: member="rs_cl.rsh::hypot" ref="a147f38d6e41f45de9b5e7c6f3dcac010" args="(float x, float y)" -->
 <div class="memitem">
 <div class="memproto">
@@ -1105,12 +1440,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a1a222b7879342279e1e0070d6afd9e18"></a><!-- doxytag: member="rs_cl.rsh::length" ref="a1a222b7879342279e1e0070d6afd9e18" args="(float v)" -->
+<a class="anchor" id="a902d4d2fab31ba8f9631b1f681e99baa"></a><!-- doxytag: member="rs_cl.rsh::length" ref="a902d4d2fab31ba8f9631b1f681e99baa" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float length </td>
+          <td class="memname">float length </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -1235,12 +1570,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a2fb571ae932f671ff3e9e97f2d3fabb7"></a><!-- doxytag: member="rs_cl.rsh::log2" ref="a2fb571ae932f671ff3e9e97f2d3fabb7" args="(float v)" -->
+<a class="anchor" id="aab1c4f06daf6f2a50fd73f0c28929213"></a><!-- doxytag: member="rs_cl.rsh::log2" ref="aab1c4f06daf6f2a50fd73f0c28929213" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float log2 </td>
+          <td class="memname">float log2 </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -1308,12 +1643,70 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="af4c76d51368c8e330cb59ea5a0a2310e"></a><!-- doxytag: member="rs_cl.rsh::mix" ref="af4c76d51368c8e330cb59ea5a0a2310e" args="(float start, float stop, float amount)" -->
+<a class="anchor" id="a616bf7a90d8d3c73a48d2c395d9dc4ea"></a><!-- doxytag: member="rs_cl.rsh::max" ref="a616bf7a90d8d3c73a48d2c395d9dc4ea" args="(uchar v1, uchar v2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> max </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td>
+          <td class="paramname"><em>v1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td>
+          <td class="paramname"><em>v2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the maximum of two values.</p>
+<p>Supports 1,2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5f61ca44b3ad4b11365b0c4137a22658"></a><!-- doxytag: member="rs_cl.rsh::min" ref="a5f61ca44b3ad4b11365b0c4137a22658" args="(uchar v1, uchar v2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> min </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td>
+          <td class="paramname"><em>v1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td>
+          <td class="paramname"><em>v2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Return the minimum of two values.</p>
+<p>Supports 1,2,3,4 components of uchar, char, ushort, short, uint, int, float. </p>
+
+</div>
+</div>
+<a class="anchor" id="a254612a612ff7539b01a1478e03d8697"></a><!-- doxytag: member="rs_cl.rsh::mix" ref="a254612a612ff7539b01a1478e03d8697" args="(float start, float stop, float amount)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> mix </td>
+          <td class="memname">float mix </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>start</em>, </td>
@@ -1367,7 +1760,7 @@ Functions</h2></td></tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Return the integral and fractional components of a number Supports 1,2,3,4 components</p>
+<p>Return the integral and fractional components of a number. Supports 1,2,3,4 components</p>
 <dl><dt><b>Parameters:</b></dt><dd>
   <table class="params">
     <tr><td class="paramname">x</td><td>Source value </td></tr>
@@ -1379,6 +1772,63 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a45d8176823a05b891313f3d96decf491"></a><!-- doxytag: member="rs_cl.rsh::native_exp" ref="a45d8176823a05b891313f3d96decf491" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float native_exp </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Fast approximate exp valid for inputs -86.f to 86.f Max 8192 ulps of error</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
+<a class="anchor" id="a601ee3d2bf769f1cdc39a886f7a6c986"></a><!-- doxytag: member="rs_cl.rsh::native_exp10" ref="a601ee3d2bf769f1cdc39a886f7a6c986" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float native_exp10 </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Fast approximate exp10 valid for inputs -37.f to 37.f Max 8192 ulps of error</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
+<a class="anchor" id="ab354691ecd844549b27ef9202e17f7ac"></a><!-- doxytag: member="rs_cl.rsh::native_exp2" ref="ab354691ecd844549b27ef9202e17f7ac" args="(float v)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float native_exp2 </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Fast approximate exp2 valid for inputs -125.f to 125.f Max 8192 ulps of error</p>
+<p>Supports 1,2,3,4 components </p>
+
+</div>
+</div>
 <a class="anchor" id="adb11df05fb9985595af0a7bd882bdeac"></a><!-- doxytag: member="rs_cl.rsh::nextafter" ref="adb11df05fb9985595af0a7bd882bdeac" args="(float x, float y)" -->
 <div class="memitem">
 <div class="memproto">
@@ -1408,12 +1858,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a373e03e92a1b7f3fdea5ca4ca159d2a8"></a><!-- doxytag: member="rs_cl.rsh::normalize" ref="a373e03e92a1b7f3fdea5ca4ca159d2a8" args="(float v)" -->
+<a class="anchor" id="a69c2a56f743593439d5ae5e3ec8e517f"></a><!-- doxytag: member="rs_cl.rsh::normalize" ref="a69c2a56f743593439d5ae5e3ec8e517f" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> normalize </td>
+          <td class="memname">float normalize </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -1456,12 +1906,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="afd46205452017b741abb2e17fc28557d"></a><!-- doxytag: member="rs_cl.rsh::pown" ref="afd46205452017b741abb2e17fc28557d" args="(float v, int p)" -->
+<a class="anchor" id="a67d1fe795e092003f687f3cc6d3c407a"></a><!-- doxytag: member="rs_cl.rsh::pown" ref="a67d1fe795e092003f687f3cc6d3c407a" args="(float v, int p)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float pown </td>
+          <td class="memname">float pown </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em>, </td>
@@ -1485,12 +1935,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a3ff65421721ec8e6ce8d875a563d005f"></a><!-- doxytag: member="rs_cl.rsh::powr" ref="a3ff65421721ec8e6ce8d875a563d005f" args="(float v, float p)" -->
+<a class="anchor" id="a316c30ba3e6bc11673bfd34bb4746d24"></a><!-- doxytag: member="rs_cl.rsh::powr" ref="a316c30ba3e6bc11673bfd34bb4746d24" args="(float v, float p)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float powr </td>
+          <td class="memname">float powr </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em>, </td>
@@ -1520,12 +1970,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="aaef2526c4d190ba6f7301b4e810917a7"></a><!-- doxytag: member="rs_cl.rsh::radians" ref="aaef2526c4d190ba6f7301b4e810917a7" args="(float degrees)" -->
+<a class="anchor" id="aceb63a0da6393b8ac2ed229bae6232d6"></a><!-- doxytag: member="rs_cl.rsh::radians" ref="aceb63a0da6393b8ac2ed229bae6232d6" args="(float degrees)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float radians </td>
+          <td class="memname">float radians </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>degrees</em></td><td>)</td>
@@ -1587,12 +2037,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="af169e7e1c575b7c24c1834569223077f"></a><!-- doxytag: member="rs_cl.rsh::rootn" ref="af169e7e1c575b7c24c1834569223077f" args="(float v, int n)" -->
+<a class="anchor" id="a2776b517528b8185a6bb50753af0f6cf"></a><!-- doxytag: member="rs_cl.rsh::rootn" ref="a2776b517528b8185a6bb50753af0f6cf" args="(float v, int n)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float rootn </td>
+          <td class="memname">float rootn </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em>, </td>
@@ -1635,12 +2085,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a5db00fde9e6bff693a38f3a37e7a1f70"></a><!-- doxytag: member="rs_cl.rsh::rsqrt" ref="a5db00fde9e6bff693a38f3a37e7a1f70" args="(float v)" -->
+<a class="anchor" id="a8a3992b97cb199b1c8d598996b600988"></a><!-- doxytag: member="rs_cl.rsh::rsqrt" ref="a8a3992b97cb199b1c8d598996b600988" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float rsqrt </td>
+          <td class="memname">float rsqrt </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -1650,21 +2100,16 @@ Functions</h2></td></tr>
 </div>
 <div class="memdoc">
 <p>Return (1 / sqrt(value)).</p>
-<dl><dt><b>Parameters:</b></dt><dd>
-  <table class="params">
-    <tr><td class="paramname">v</td><td>The incoming value in radians Supports 1,2,3,4 components </td></tr>
-  </table>
-  </dd>
-</dl>
+<p>Supports 1,2,3,4 components </p>
 
 </div>
 </div>
-<a class="anchor" id="a3e6d477a06dec7070f073eec9d8f420c"></a><!-- doxytag: member="rs_cl.rsh::sign" ref="a3e6d477a06dec7070f073eec9d8f420c" args="(float v)" -->
+<a class="anchor" id="a9fe423cc7d4c6d767f8a608d2ee76657"></a><!-- doxytag: member="rs_cl.rsh::sign" ref="a9fe423cc7d4c6d767f8a608d2ee76657" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float sign </td>
+          <td class="memname">float sign </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -1673,6 +2118,7 @@ Functions</h2></td></tr>
       </table>
 </div>
 <div class="memdoc">
+<p>Return the sign of a value.</p>
 <p>if (v &lt; 0) return -1.f; else if (v &gt; 0) return 1.f; else return 0.f;</p>
 <p>Supports 1,2,3,4 components </p>
 
@@ -1702,12 +2148,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a240f7c7c20b432a30dc660b5dd4cd320"></a><!-- doxytag: member="rs_cl.rsh::sincos" ref="a240f7c7c20b432a30dc660b5dd4cd320" args="(float v, float *cosptr)" -->
+<a class="anchor" id="a892c91a30bbc713aa77105d8e9e25881"></a><!-- doxytag: member="rs_cl.rsh::sincos" ref="a892c91a30bbc713aa77105d8e9e25881" args="(float v, float *cosptr)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float sincos </td>
+          <td class="memname">float sincos </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em>, </td>
@@ -1758,12 +2204,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a4fe4fef049786e888526d6f37b912b0a"></a><!-- doxytag: member="rs_cl.rsh::sinpi" ref="a4fe4fef049786e888526d6f37b912b0a" args="(float v)" -->
+<a class="anchor" id="a9ca027af0acf3ff22d91cd9489766976"></a><!-- doxytag: member="rs_cl.rsh::sinpi" ref="a9ca027af0acf3ff22d91cd9489766976" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float sinpi </td>
+          <td class="memname">float sinpi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -1796,12 +2242,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a4f7ba6882099d16853d0415982121900"></a><!-- doxytag: member="rs_cl.rsh::step" ref="a4f7ba6882099d16853d0415982121900" args="(float edge, float v)" -->
+<a class="anchor" id="a9f40337dfee48d1881b87b35aa8133dd"></a><!-- doxytag: member="rs_cl.rsh::step" ref="a9f40337dfee48d1881b87b35aa8133dd" args="(float edge, float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> step </td>
+          <td class="memname">float step </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>edge</em>, </td>
@@ -1875,12 +2321,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ad8bfb083dd3979a305e594a0d6e581c4"></a><!-- doxytag: member="rs_cl.rsh::tanpi" ref="ad8bfb083dd3979a305e594a0d6e581c4" args="(float v)" -->
+<a class="anchor" id="aee96c8910a7d8b0082574813b6b68b9a"></a><!-- doxytag: member="rs_cl.rsh::tanpi" ref="aee96c8910a7d8b0082574813b6b68b9a" args="(float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float tanpi </td>
+          <td class="memname">float tanpi </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
index 8cc3cb7..ae5f70e 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_cl.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_cl.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_cl.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_cl.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__cl_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
-<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011 The Android Open Source Project</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011-2012 The Android Open Source Project</span>
 <a name="l00003"></a>00003 <span class="comment"> *</span>
 <a name="l00004"></a>00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
 <a name="l00005"></a>00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
 <a name="l00025"></a>00025 <span class="preprocessor"></span>
 <a name="l00026"></a>00026 <span class="comment">// Conversions</span>
 <a name="l00027"></a>00027 <span class="preprocessor">#define CVT_FUNC_2(typeout, typein)                             \</span>
-<a name="l00028"></a>00028 <span class="preprocessor">_RS_RUNTIME typeout##2 __attribute__((overloadable))             \</span>
+<a name="l00028"></a>00028 <span class="preprocessor">_RS_RUNTIME typeout##2 __attribute__((overloadable))            \</span>
 <a name="l00029"></a>00029 <span class="preprocessor">        convert_##typeout##2(typein##2 v);                      \</span>
-<a name="l00030"></a>00030 <span class="preprocessor">_RS_RUNTIME typeout##3 __attribute__((overloadable))             \</span>
+<a name="l00030"></a>00030 <span class="preprocessor">_RS_RUNTIME typeout##3 __attribute__((overloadable))            \</span>
 <a name="l00031"></a>00031 <span class="preprocessor">        convert_##typeout##3(typein##3 v);                      \</span>
-<a name="l00032"></a>00032 <span class="preprocessor">_RS_RUNTIME typeout##4 __attribute__((overloadable))             \</span>
+<a name="l00032"></a>00032 <span class="preprocessor">_RS_RUNTIME typeout##4 __attribute__((overloadable))            \</span>
 <a name="l00033"></a>00033 <span class="preprocessor">        convert_##typeout##4(typein##4 v);</span>
 <a name="l00034"></a>00034 <span class="preprocessor"></span>
 <a name="l00035"></a>00035 
 <a name="l00041"></a>00041 <span class="preprocessor">                        CVT_FUNC_2(type, int)       \</span>
 <a name="l00042"></a>00042 <span class="preprocessor">                        CVT_FUNC_2(type, float)</span>
 <a name="l00043"></a>00043 <span class="preprocessor"></span>
-<a name="l00044"></a>00044 CVT_FUNC(<span class="keywordtype">char</span>)
-<a name="l00045"></a>00045 CVT_FUNC(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>)
-<a name="l00046"></a>00046 CVT_FUNC(<span class="keywordtype">short</span>)
-<a name="l00047"></a>00047 CVT_FUNC(<a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>)
-<a name="l00048"></a>00048 CVT_FUNC(<span class="keywordtype">int</span>)
-<a name="l00049"></a>00049 CVT_FUNC(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>)
-<a name="l00050"></a>00050 CVT_FUNC(<span class="keywordtype">float</span>)
+<a name="l00049"></a>00049 CVT_FUNC(<span class="keywordtype">char</span>)
+<a name="l00050"></a>00050 
 <a name="l00051"></a>00051 
-<a name="l00052"></a>00052 <span class="comment">// Float ops, 6.11.2</span>
-<a name="l00053"></a>00053 
-<a name="l00054"></a>00054 <span class="preprocessor">#define FN_FUNC_FN(fnc)                                         \</span>
-<a name="l00055"></a>00055 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v);  \</span>
-<a name="l00056"></a>00056 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v);  \</span>
-<a name="l00057"></a>00057 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v);</span>
-<a name="l00058"></a>00058 <span class="preprocessor"></span>
-<a name="l00059"></a>00059 <span class="preprocessor">#define IN_FUNC_FN(fnc)                                         \</span>
-<a name="l00060"></a>00060 <span class="preprocessor">_RS_RUNTIME int2 __attribute__((overloadable)) fnc(float2 v);    \</span>
-<a name="l00061"></a>00061 <span class="preprocessor">_RS_RUNTIME int3 __attribute__((overloadable)) fnc(float3 v);    \</span>
-<a name="l00062"></a>00062 <span class="preprocessor">_RS_RUNTIME int4 __attribute__((overloadable)) fnc(float4 v);</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span>
-<a name="l00064"></a>00064 <span class="preprocessor">#define FN_FUNC_FN_FN(fnc)                                                  \</span>
-<a name="l00065"></a>00065 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, float2 v2);  \</span>
-<a name="l00066"></a>00066 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, float3 v2);  \</span>
-<a name="l00067"></a>00067 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, float4 v2);</span>
-<a name="l00068"></a>00068 <span class="preprocessor"></span>
-<a name="l00069"></a>00069 <span class="preprocessor">#define FN_FUNC_FN_F(fnc)                                                   \</span>
-<a name="l00070"></a>00070 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, float v2);   \</span>
-<a name="l00071"></a>00071 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, float v2);   \</span>
-<a name="l00072"></a>00072 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, float v2);</span>
-<a name="l00073"></a>00073 <span class="preprocessor"></span>
-<a name="l00074"></a>00074 <span class="preprocessor">#define FN_FUNC_FN_IN(fnc)                                                  \</span>
-<a name="l00075"></a>00075 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, int2 v2);    \</span>
-<a name="l00076"></a>00076 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, int3 v2);    \</span>
-<a name="l00077"></a>00077 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, int4 v2);    \</span>
-<a name="l00078"></a>00078 <span class="preprocessor"></span>
-<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_I(fnc)                                                   \</span>
-<a name="l00080"></a>00080 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, int v2);     \</span>
-<a name="l00081"></a>00081 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, int v2);     \</span>
-<a name="l00082"></a>00082 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, int v2);</span>
-<a name="l00083"></a>00083 <span class="preprocessor"></span>
-<a name="l00084"></a>00084 <span class="preprocessor">#define FN_FUNC_FN_PFN(fnc)                     \</span>
-<a name="l00085"></a>00085 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) \</span>
-<a name="l00086"></a>00086 <span class="preprocessor">        fnc(float2 v1, float2 *v2);             \</span>
-<a name="l00087"></a>00087 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) \</span>
-<a name="l00088"></a>00088 <span class="preprocessor">        fnc(float3 v1, float3 *v2);             \</span>
-<a name="l00089"></a>00089 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) \</span>
-<a name="l00090"></a>00090 <span class="preprocessor">        fnc(float4 v1, float4 *v2);</span>
-<a name="l00091"></a>00091 <span class="preprocessor"></span>
-<a name="l00092"></a>00092 <span class="preprocessor">#define FN_FUNC_FN_PIN(fnc)                                                 \</span>
-<a name="l00093"></a>00093 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, int2 *v2);   \</span>
-<a name="l00094"></a>00094 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, int3 *v2);   \</span>
-<a name="l00095"></a>00095 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, int4 *v2);</span>
+<a name="l00056"></a>00056 CVT_FUNC(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>)
+<a name="l00057"></a>00057 
+<a name="l00063"></a>00063 CVT_FUNC(<span class="keywordtype">short</span>)
+<a name="l00064"></a>00064 
+<a name="l00070"></a>00070 CVT_FUNC(<a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>)
+<a name="l00071"></a>00071 
+<a name="l00077"></a>00077 CVT_FUNC(<span class="keywordtype">int</span>)
+<a name="l00078"></a>00078 
+<a name="l00084"></a>00084 CVT_FUNC(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>)
+<a name="l00085"></a>00085 
+<a name="l00091"></a>00091 CVT_FUNC(<span class="keywordtype">float</span>)
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 <span class="comment">// Float ops, 6.11.2</span>
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 <span class="preprocessor">#ifdef DOXYGEN</span>
 <a name="l00096"></a>00096 <span class="preprocessor"></span>
-<a name="l00097"></a>00097 <span class="preprocessor">#define FN_FUNC_FN_FN_FN(fnc)                   \</span>
-<a name="l00098"></a>00098 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) \</span>
-<a name="l00099"></a>00099 <span class="preprocessor">        fnc(float2 v1, float2 v2, float2 v3);   \</span>
-<a name="l00100"></a>00100 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) \</span>
-<a name="l00101"></a>00101 <span class="preprocessor">        fnc(float3 v1, float3 v2, float3 v3);   \</span>
-<a name="l00102"></a>00102 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) \</span>
-<a name="l00103"></a>00103 <span class="preprocessor">        fnc(float4 v1, float4 v2, float4 v3);</span>
-<a name="l00104"></a>00104 <span class="preprocessor"></span>
-<a name="l00105"></a>00105 <span class="preprocessor">#define FN_FUNC_FN_FN_PIN(fnc)                  \</span>
-<a name="l00106"></a>00106 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) \</span>
-<a name="l00107"></a>00107 <span class="preprocessor">        fnc(float2 v1, float2 v2, int2 *v3);    \</span>
-<a name="l00108"></a>00108 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) \</span>
-<a name="l00109"></a>00109 <span class="preprocessor">        fnc(float3 v1, float3 v2, int3 *v3);    \</span>
-<a name="l00110"></a>00110 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) \</span>
-<a name="l00111"></a>00111 <span class="preprocessor">        fnc(float4 v1, float4 v2, int4 *v3);</span>
-<a name="l00112"></a>00112 <span class="preprocessor"></span>
-<a name="l00113"></a>00113 
-<a name="l00119"></a>00119 <span class="keyword">extern</span> <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">acos</a>(<span class="keywordtype">float</span>);
-<a name="l00120"></a>00120 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">acos</a>)
-<a name="l00121"></a>00121 
-<a name="l00127"></a>00127 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">acosh</a>(<span class="keywordtype">float</span>);
-<a name="l00128"></a>00128 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">acosh</a>)
-<a name="l00129"></a>00129 
-<a name="l00135"></a>00135 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a2c0c7c00815bd480fcda80d1144ac20d">acospi</a>(<span class="keywordtype">float</span> v);
-<a name="l00136"></a>00136 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a2c0c7c00815bd480fcda80d1144ac20d">acospi</a>)
-<a name="l00137"></a>00137 
-<a name="l00143"></a>00143 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">asin</a>(<span class="keywordtype">float</span>);
-<a name="l00144"></a>00144 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">asin</a>)
-<a name="l00145"></a>00145 
-<a name="l00151"></a>00151 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">asinh</a>(<span class="keywordtype">float</span>);
-<a name="l00152"></a>00152 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">asinh</a>)
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154 
-<a name="l00160"></a>00160 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a679b63e86358fc962cb343eb6263496b">asinpi</a>(<span class="keywordtype">float</span> v);
-<a name="l00161"></a>00161 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a679b63e86358fc962cb343eb6263496b">asinpi</a>)
-<a name="l00162"></a>00162 
-<a name="l00168"></a>00168 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">atan</a>(<span class="keywordtype">float</span>);
-<a name="l00169"></a>00169 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">atan</a>)
-<a name="l00170"></a>00170 
-<a name="l00180"></a>00180 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">atan2</a>(<span class="keywordtype">float</span> y, <span class="keywordtype">float</span> x);
-<a name="l00181"></a>00181 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">atan2</a>)
-<a name="l00182"></a>00182 
-<a name="l00188"></a>00188 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">atanh</a>(<span class="keywordtype">float</span>);
-<a name="l00189"></a>00189 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">atanh</a>)
-<a name="l00190"></a>00190 
-<a name="l00196"></a>00196 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a420d4aaea0e53d7172845a21a1e648ea">atanpi</a>(<span class="keywordtype">float</span> v);
-<a name="l00197"></a>00197 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a420d4aaea0e53d7172845a21a1e648ea">atanpi</a>)
-<a name="l00198"></a>00198 
-<a name="l00208"></a>00208 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9aed0a1613c86acf5e4c5ad3290a4745">atan2pi</a>(<span class="keywordtype">float</span> y, <span class="keywordtype">float</span> x);
-<a name="l00209"></a>00209 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a9aed0a1613c86acf5e4c5ad3290a4745">atan2pi</a>)
-<a name="l00210"></a>00210 
-<a name="l00211"></a>00211 
-<a name="l00217"></a>00217 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae9d1787b55c2587478a24d96573225df">cbrt</a>(<span class="keywordtype">float</span>);
-<a name="l00218"></a>00218 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ae9d1787b55c2587478a24d96573225df">cbrt</a>)
-<a name="l00219"></a>00219 
-<a name="l00225"></a>00225 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aa8fc6daff743a1b635ccbf9af83fe4e4">ceil</a>(<span class="keywordtype">float</span>);
-<a name="l00226"></a>00226 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aa8fc6daff743a1b635ccbf9af83fe4e4">ceil</a>)
-<a name="l00227"></a>00227 
-<a name="l00237"></a>00237 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">copysign</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00238"></a>00238 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">copysign</a>)
-<a name="l00239"></a>00239 
-<a name="l00245"></a>00245 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a8eec7aeb4b0c46b06cbcd1a3ac3e6f05">cos</a>(<span class="keywordtype">float</span>);
-<a name="l00246"></a>00246 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a8eec7aeb4b0c46b06cbcd1a3ac3e6f05">cos</a>)
-<a name="l00247"></a>00247 
-<a name="l00253"></a>00253 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">cosh</a>(<span class="keywordtype">float</span>);
-<a name="l00254"></a>00254 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">cosh</a>)
-<a name="l00255"></a>00255 
-<a name="l00261"></a>00261 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a07b12188bd53c6b584274892f6abf425">cospi</a>(<span class="keywordtype">float</span> v);
-<a name="l00262"></a>00262 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a07b12188bd53c6b584274892f6abf425">cospi</a>)
-<a name="l00263"></a>00263 
-<a name="l00269"></a>00269 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a2e24dc8594e758b64c340153f67a533c">erfc</a>(<span class="keywordtype">float</span>);
-<a name="l00270"></a>00270 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a2e24dc8594e758b64c340153f67a533c">erfc</a>)
-<a name="l00271"></a>00271 
-<a name="l00277"></a>00277 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a139f102df651c25c26dd35d549173f57">erf</a>(<span class="keywordtype">float</span>);
-<a name="l00278"></a>00278 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a139f102df651c25c26dd35d549173f57">erf</a>)
-<a name="l00279"></a>00279 
-<a name="l00285"></a>00285 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">exp</a>(<span class="keywordtype">float</span>);
-<a name="l00286"></a>00286 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">exp</a>)
-<a name="l00287"></a>00287 
-<a name="l00293"></a>00293 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">exp2</a>(<span class="keywordtype">float</span>);
-<a name="l00294"></a>00294 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">exp2</a>)
-<a name="l00295"></a>00295 
-<a name="l00302"></a>00302 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">pow</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00303"></a>00303 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">pow</a>)
-<a name="l00304"></a>00304 
-<a name="l00310"></a>00310 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4b51589157c9ce600ea6156be51d8d18">exp10</a>(<span class="keywordtype">float</span> v);
-<a name="l00311"></a>00311 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a4b51589157c9ce600ea6156be51d8d18">exp10</a>)
-<a name="l00312"></a>00312 
-<a name="l00318"></a>00318 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a7996044b67be921a5e58e2fe76af66e2">expm1</a>(<span class="keywordtype">float</span>);
-<a name="l00319"></a>00319 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a7996044b67be921a5e58e2fe76af66e2">expm1</a>)
-<a name="l00320"></a>00320 
-<a name="l00326"></a>00326 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">fabs</a>(<span class="keywordtype">float</span>);
-<a name="l00327"></a>00327 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">fabs</a>)
-<a name="l00328"></a>00328 
-<a name="l00335"></a>00335 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">fdim</a>(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
-<a name="l00336"></a>00336 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">fdim</a>)
-<a name="l00337"></a>00337 
-<a name="l00343"></a>00343 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aae2da38a7246378dff8014ec407a30c3">floor</a>(<span class="keywordtype">float</span>);
-<a name="l00344"></a>00344 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aae2da38a7246378dff8014ec407a30c3">floor</a>)
-<a name="l00345"></a>00345 
-<a name="l00351"></a>00351 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ac42909daec463fe449743e70baf8360d">fma</a>(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> c);
-<a name="l00352"></a>00352 FN_FUNC_FN_FN_FN(<a class="code" href="rs__cl_8rsh.html#ac42909daec463fe449743e70baf8360d">fma</a>)
-<a name="l00353"></a>00353 
-<a name="l00361"></a>00361 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a60f2072d8a746e7fe05cd46dea0fefcc">fmax</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00362"></a>00362 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a60f2072d8a746e7fe05cd46dea0fefcc">fmax</a>);
-<a name="l00363"></a>00363 FN_FUNC_FN_F(fmax);
-<a name="l00364"></a>00364 
-<a name="l00371"></a>00371 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a1fd9d57c6c992866bf5161be2cf4c447">fmin</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00372"></a>00372 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a1fd9d57c6c992866bf5161be2cf4c447">fmin</a>);
-<a name="l00373"></a>00373 FN_FUNC_FN_F(fmin);
-<a name="l00374"></a>00374 
-<a name="l00380"></a>00380 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">fmod</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00381"></a>00381 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">fmod</a>)
-<a name="l00382"></a>00382 
+<a name="l00097"></a>00097 <span class="preprocessor">#define FN_FUNC_FN(fnc)</span>
+<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor">#define F_FUNC_FN(fnc)</span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#define IN_FUNC_FN(fnc)</span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_FN(fnc)</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor">#define F_FUNC_FN_FN(fnc)</span>
+<a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_F(fnc)</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_IN(fnc)</span>
+<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_I(fnc)</span>
+<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_PFN(fnc)</span>
+<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_PIN(fnc)</span>
+<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_FN_FN(fnc)</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_FN_F(fnc)</span>
+<a name="l00109"></a>00109 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_F_F(fnc)</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_FN_PIN(fnc)</span>
+<a name="l00111"></a>00111 <span class="preprocessor"></span>
+<a name="l00112"></a>00112 <span class="preprocessor">#else</span>
+<a name="l00113"></a>00113 <span class="preprocessor"></span>
+<a name="l00114"></a>00114 <span class="preprocessor">#define FN_FUNC_FN(fnc)                                         \</span>
+<a name="l00115"></a>00115 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v); \</span>
+<a name="l00116"></a>00116 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v); \</span>
+<a name="l00117"></a>00117 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v);</span>
+<a name="l00118"></a>00118 <span class="preprocessor"></span>
+<a name="l00119"></a>00119 <span class="preprocessor">#define F_FUNC_FN(fnc)                                          \</span>
+<a name="l00120"></a>00120 <span class="preprocessor">_RS_RUNTIME float __attribute__((overloadable)) fnc(float2 v);  \</span>
+<a name="l00121"></a>00121 <span class="preprocessor">_RS_RUNTIME float __attribute__((overloadable)) fnc(float3 v);  \</span>
+<a name="l00122"></a>00122 <span class="preprocessor">_RS_RUNTIME float __attribute__((overloadable)) fnc(float4 v);</span>
+<a name="l00123"></a>00123 <span class="preprocessor"></span>
+<a name="l00124"></a>00124 <span class="preprocessor">#define IN_FUNC_FN(fnc)                                         \</span>
+<a name="l00125"></a>00125 <span class="preprocessor">_RS_RUNTIME int2 __attribute__((overloadable)) fnc(float2 v);   \</span>
+<a name="l00126"></a>00126 <span class="preprocessor">_RS_RUNTIME int3 __attribute__((overloadable)) fnc(float3 v);   \</span>
+<a name="l00127"></a>00127 <span class="preprocessor">_RS_RUNTIME int4 __attribute__((overloadable)) fnc(float4 v);</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span>
+<a name="l00129"></a>00129 <span class="preprocessor">#define FN_FUNC_FN_FN(fnc)                                                  \</span>
+<a name="l00130"></a>00130 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, float2 v2); \</span>
+<a name="l00131"></a>00131 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, float3 v2); \</span>
+<a name="l00132"></a>00132 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, float4 v2);</span>
+<a name="l00133"></a>00133 <span class="preprocessor"></span>
+<a name="l00134"></a>00134 <span class="preprocessor">#define F_FUNC_FN_FN(fnc)                                                   \</span>
+<a name="l00135"></a>00135 <span class="preprocessor">_RS_RUNTIME float __attribute__((overloadable)) fnc(float2 v1, float2 v2);  \</span>
+<a name="l00136"></a>00136 <span class="preprocessor">_RS_RUNTIME float __attribute__((overloadable)) fnc(float3 v1, float3 v2);  \</span>
+<a name="l00137"></a>00137 <span class="preprocessor">_RS_RUNTIME float __attribute__((overloadable)) fnc(float4 v1, float4 v2);</span>
+<a name="l00138"></a>00138 <span class="preprocessor"></span>
+<a name="l00139"></a>00139 <span class="preprocessor">#define FN_FUNC_FN_F(fnc)                                                   \</span>
+<a name="l00140"></a>00140 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, float v2);  \</span>
+<a name="l00141"></a>00141 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, float v2);  \</span>
+<a name="l00142"></a>00142 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, float v2);</span>
+<a name="l00143"></a>00143 <span class="preprocessor"></span>
+<a name="l00144"></a>00144 <span class="preprocessor">#define FN_FUNC_FN_IN(fnc)                                                  \</span>
+<a name="l00145"></a>00145 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, int2 v2);   \</span>
+<a name="l00146"></a>00146 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, int3 v2);   \</span>
+<a name="l00147"></a>00147 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, int4 v2);   \</span>
+<a name="l00148"></a>00148 <span class="preprocessor"></span>
+<a name="l00149"></a>00149 <span class="preprocessor"></span><span class="preprocessor">#define FN_FUNC_FN_I(fnc)                                                   \</span>
+<a name="l00150"></a>00150 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, int v2);    \</span>
+<a name="l00151"></a>00151 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, int v2);    \</span>
+<a name="l00152"></a>00152 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, int v2);</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span>
+<a name="l00154"></a>00154 <span class="preprocessor">#define FN_FUNC_FN_PFN(fnc)                         \</span>
+<a name="l00155"></a>00155 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable))    \</span>
+<a name="l00156"></a>00156 <span class="preprocessor">        fnc(float2 v1, float2 *v2);                 \</span>
+<a name="l00157"></a>00157 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable))    \</span>
+<a name="l00158"></a>00158 <span class="preprocessor">        fnc(float3 v1, float3 *v2);                 \</span>
+<a name="l00159"></a>00159 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable))    \</span>
+<a name="l00160"></a>00160 <span class="preprocessor">        fnc(float4 v1, float4 *v2);</span>
+<a name="l00161"></a>00161 <span class="preprocessor"></span>
+<a name="l00162"></a>00162 <span class="preprocessor">#define FN_FUNC_FN_PIN(fnc)                                                 \</span>
+<a name="l00163"></a>00163 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable)) fnc(float2 v1, int2 *v2);  \</span>
+<a name="l00164"></a>00164 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable)) fnc(float3 v1, int3 *v2);  \</span>
+<a name="l00165"></a>00165 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable)) fnc(float4 v1, int4 *v2);</span>
+<a name="l00166"></a>00166 <span class="preprocessor"></span>
+<a name="l00167"></a>00167 <span class="preprocessor">#define FN_FUNC_FN_FN_FN(fnc)                       \</span>
+<a name="l00168"></a>00168 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable))    \</span>
+<a name="l00169"></a>00169 <span class="preprocessor">        fnc(float2 v1, float2 v2, float2 v3);       \</span>
+<a name="l00170"></a>00170 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable))    \</span>
+<a name="l00171"></a>00171 <span class="preprocessor">        fnc(float3 v1, float3 v2, float3 v3);       \</span>
+<a name="l00172"></a>00172 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable))    \</span>
+<a name="l00173"></a>00173 <span class="preprocessor">        fnc(float4 v1, float4 v2, float4 v3);</span>
+<a name="l00174"></a>00174 <span class="preprocessor"></span>
+<a name="l00175"></a>00175 <span class="preprocessor">#define FN_FUNC_FN_FN_F(fnc)                        \</span>
+<a name="l00176"></a>00176 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable))    \</span>
+<a name="l00177"></a>00177 <span class="preprocessor">        fnc(float2 v1, float2 v2, float v3);        \</span>
+<a name="l00178"></a>00178 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable))    \</span>
+<a name="l00179"></a>00179 <span class="preprocessor">        fnc(float3 v1, float3 v2, float v3);        \</span>
+<a name="l00180"></a>00180 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable))    \</span>
+<a name="l00181"></a>00181 <span class="preprocessor">        fnc(float4 v1, float4 v2, float v3);</span>
+<a name="l00182"></a>00182 <span class="preprocessor"></span>
+<a name="l00183"></a>00183 <span class="preprocessor">#define FN_FUNC_FN_F_F(fnc)                         \</span>
+<a name="l00184"></a>00184 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable))    \</span>
+<a name="l00185"></a>00185 <span class="preprocessor">        fnc(float2 v1, float v2, float v3);         \</span>
+<a name="l00186"></a>00186 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable))    \</span>
+<a name="l00187"></a>00187 <span class="preprocessor">        fnc(float3 v1, float v2, float v3);         \</span>
+<a name="l00188"></a>00188 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable))    \</span>
+<a name="l00189"></a>00189 <span class="preprocessor">        fnc(float4 v1, float v2, float v3);</span>
+<a name="l00190"></a>00190 <span class="preprocessor"></span>
+<a name="l00191"></a>00191 <span class="preprocessor">#define FN_FUNC_FN_FN_PIN(fnc)                      \</span>
+<a name="l00192"></a>00192 <span class="preprocessor">_RS_RUNTIME float2 __attribute__((overloadable))    \</span>
+<a name="l00193"></a>00193 <span class="preprocessor">        fnc(float2 v1, float2 v2, int2 *v3);        \</span>
+<a name="l00194"></a>00194 <span class="preprocessor">_RS_RUNTIME float3 __attribute__((overloadable))    \</span>
+<a name="l00195"></a>00195 <span class="preprocessor">        fnc(float3 v1, float3 v2, int3 *v3);        \</span>
+<a name="l00196"></a>00196 <span class="preprocessor">_RS_RUNTIME float4 __attribute__((overloadable))    \</span>
+<a name="l00197"></a>00197 <span class="preprocessor">        fnc(float4 v1, float4 v2, int4 *v3);</span>
+<a name="l00198"></a>00198 <span class="preprocessor"></span>
+<a name="l00199"></a>00199 <span class="preprocessor">#endif  // DOXYGEN</span>
+<a name="l00200"></a>00200 <span class="preprocessor"></span>
+<a name="l00201"></a>00201 
+<a name="l00207"></a>00207 <span class="keyword">extern</span> <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">acos</a>(<span class="keywordtype">float</span>);
+<a name="l00208"></a>00208 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a07648648c7f857cfd1479821d4389751">acos</a>)
+<a name="l00209"></a>00209 
+<a name="l00215"></a>00215 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">acosh</a>(<span class="keywordtype">float</span>);
+<a name="l00216"></a>00216 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a6575106413ec72448439ef67f1309424">acosh</a>)
+<a name="l00217"></a>00217 
+<a name="l00223"></a>00223 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a2c9092eb07e9df891935e93469e70d4e">acospi</a>(<span class="keywordtype">float</span> v);
+<a name="l00224"></a>00224 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a2c9092eb07e9df891935e93469e70d4e">acospi</a>)
+<a name="l00225"></a>00225 
+<a name="l00231"></a>00231 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">asin</a>(<span class="keywordtype">float</span>);
+<a name="l00232"></a>00232 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a78b9d0583bd0699e2eac30d2a136817a">asin</a>)
+<a name="l00233"></a>00233 
+<a name="l00239"></a>00239 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">asinh</a>(<span class="keywordtype">float</span>);
+<a name="l00240"></a>00240 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a4e3fe465ed5541af53192c59c80af1a0">asinh</a>)
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242 
+<a name="l00248"></a>00248 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a812eb4521e65a451161417f9898384f7">asinpi</a>(<span class="keywordtype">float</span> v);
+<a name="l00249"></a>00249 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a812eb4521e65a451161417f9898384f7">asinpi</a>)
+<a name="l00250"></a>00250 
+<a name="l00256"></a>00256 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">atan</a>(<span class="keywordtype">float</span>);
+<a name="l00257"></a>00257 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ab790c3a7df8fcbeab77f6c0e3b4dcada">atan</a>)
+<a name="l00258"></a>00258 
+<a name="l00268"></a>00268 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">atan2</a>(<span class="keywordtype">float</span> y, <span class="keywordtype">float</span> x);
+<a name="l00269"></a>00269 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#aaf4b636b09041878e1542054c73d81e9">atan2</a>)
+<a name="l00270"></a>00270 
+<a name="l00276"></a>00276 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">atanh</a>(<span class="keywordtype">float</span>);
+<a name="l00277"></a>00277 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a83bdf415cc561ff6237a124273d9fb0d">atanh</a>)
+<a name="l00278"></a>00278 
+<a name="l00284"></a>00284 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a5052e31ce616d35aee25a3a83f6fc117">atanpi</a>(<span class="keywordtype">float</span> v);
+<a name="l00285"></a>00285 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a5052e31ce616d35aee25a3a83f6fc117">atanpi</a>)
+<a name="l00286"></a>00286 
+<a name="l00296"></a>00296 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a89ec5f6a2f64a0f9e97438fbd41aaace">atan2pi</a>(<span class="keywordtype">float</span> y, <span class="keywordtype">float</span> x);
+<a name="l00297"></a>00297 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a89ec5f6a2f64a0f9e97438fbd41aaace">atan2pi</a>)
+<a name="l00298"></a>00298 
+<a name="l00299"></a>00299 
+<a name="l00305"></a>00305 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae9d1787b55c2587478a24d96573225df">cbrt</a>(<span class="keywordtype">float</span>);
+<a name="l00306"></a>00306 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ae9d1787b55c2587478a24d96573225df">cbrt</a>)
+<a name="l00307"></a>00307 
+<a name="l00313"></a>00313 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aa8fc6daff743a1b635ccbf9af83fe4e4">ceil</a>(<span class="keywordtype">float</span>);
+<a name="l00314"></a>00314 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aa8fc6daff743a1b635ccbf9af83fe4e4">ceil</a>)
+<a name="l00315"></a>00315 
+<a name="l00325"></a>00325 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">copysign</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00326"></a>00326 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a29f2602d95aa7b3950e2b77b3e268f7e">copysign</a>)
+<a name="l00327"></a>00327 
+<a name="l00333"></a>00333 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a8eec7aeb4b0c46b06cbcd1a3ac3e6f05">cos</a>(<span class="keywordtype">float</span>);
+<a name="l00334"></a>00334 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a8eec7aeb4b0c46b06cbcd1a3ac3e6f05">cos</a>)
+<a name="l00335"></a>00335 
+<a name="l00341"></a>00341 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">cosh</a>(<span class="keywordtype">float</span>);
+<a name="l00342"></a>00342 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ac8d88d83182afd591401eaed101d9670">cosh</a>)
+<a name="l00343"></a>00343 
+<a name="l00349"></a>00349 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a258d2c828fd46eae2867373884d834a9">cospi</a>(<span class="keywordtype">float</span> v);
+<a name="l00350"></a>00350 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a258d2c828fd46eae2867373884d834a9">cospi</a>)
+<a name="l00351"></a>00351 
+<a name="l00357"></a>00357 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a2e24dc8594e758b64c340153f67a533c">erfc</a>(<span class="keywordtype">float</span>);
+<a name="l00358"></a>00358 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a2e24dc8594e758b64c340153f67a533c">erfc</a>)
+<a name="l00359"></a>00359 
+<a name="l00365"></a>00365 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a139f102df651c25c26dd35d549173f57">erf</a>(<span class="keywordtype">float</span>);
+<a name="l00366"></a>00366 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a139f102df651c25c26dd35d549173f57">erf</a>)
+<a name="l00367"></a>00367 
+<a name="l00373"></a>00373 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">exp</a>(<span class="keywordtype">float</span>);
+<a name="l00374"></a>00374 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a6d9aac64c2686961ca8f30e3c34fef36">exp</a>)
+<a name="l00375"></a>00375 
+<a name="l00381"></a>00381 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">exp2</a>(<span class="keywordtype">float</span>);
+<a name="l00382"></a>00382 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a39bca19ee2b1aa95144e58eb4a1e4f88">exp2</a>)
 <a name="l00383"></a>00383 
-<a name="l00390"></a>00390 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ac5277212e0df309a0a7c908424f7b14b">fract</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> *iptr);
-<a name="l00391"></a>00391 FN_FUNC_FN_PFN(<a class="code" href="rs__cl_8rsh.html#ac5277212e0df309a0a7c908424f7b14b">fract</a>)
+<a name="l00390"></a>00390 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">pow</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00391"></a>00391 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a9243de1d67fcc847a89f95748d664b19">pow</a>)
 <a name="l00392"></a>00392 
-<a name="l00399"></a>00399 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">frexp</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">int</span> *iptr);
-<a name="l00400"></a>00400 FN_FUNC_FN_PIN(<a class="code" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">frexp</a>)
-<a name="l00401"></a>00401 
-<a name="l00407"></a>00407 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">hypot</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00408"></a>00408 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">hypot</a>)
-<a name="l00409"></a>00409 
-<a name="l00415"></a>00415 extern <span class="keywordtype">int</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aad9a8beba52acb77b1efeba432e6cc2c">ilogb</a>(<span class="keywordtype">float</span>);
-<a name="l00416"></a>00416 IN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aad9a8beba52acb77b1efeba432e6cc2c">ilogb</a>)
-<a name="l00417"></a>00417 
-<a name="l00424"></a>00424 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">ldexp</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">int</span> y);
-<a name="l00425"></a>00425 FN_FUNC_FN_IN(<a class="code" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">ldexp</a>)
-<a name="l00426"></a>00426 FN_FUNC_FN_I(<a class="code" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">ldexp</a>)
-<a name="l00427"></a>00427 
-<a name="l00433"></a>00433 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>(<span class="keywordtype">float</span>);
-<a name="l00434"></a>00434 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>)
-<a name="l00435"></a>00435 
-<a name="l00442"></a>00442 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">int</span>* y);
-<a name="l00443"></a>00443 FN_FUNC_FN_PIN(<a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>)
-<a name="l00444"></a>00444 
-<a name="l00450"></a>00450 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff85f5f4b206ecf9ec9d128d7d18a08">log</a>(<span class="keywordtype">float</span>);
-<a name="l00451"></a>00451 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a3ff85f5f4b206ecf9ec9d128d7d18a08">log</a>)
+<a name="l00398"></a>00398 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a0225ff40d79f78260293e776c6a77422">exp10</a>(<span class="keywordtype">float</span> v);
+<a name="l00399"></a>00399 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a0225ff40d79f78260293e776c6a77422">exp10</a>)
+<a name="l00400"></a>00400 
+<a name="l00406"></a>00406 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a7996044b67be921a5e58e2fe76af66e2">expm1</a>(<span class="keywordtype">float</span>);
+<a name="l00407"></a>00407 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a7996044b67be921a5e58e2fe76af66e2">expm1</a>)
+<a name="l00408"></a>00408 
+<a name="l00414"></a>00414 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">fabs</a>(<span class="keywordtype">float</span>);
+<a name="l00415"></a>00415 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ad6e897f1acae252ec0901e3b122992ea">fabs</a>)
+<a name="l00416"></a>00416 
+<a name="l00423"></a>00423 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">fdim</a>(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
+<a name="l00424"></a>00424 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#ae7a7bac0f4e244594078f87b42c8716a">fdim</a>)
+<a name="l00425"></a>00425 
+<a name="l00431"></a>00431 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aae2da38a7246378dff8014ec407a30c3">floor</a>(<span class="keywordtype">float</span>);
+<a name="l00432"></a>00432 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aae2da38a7246378dff8014ec407a30c3">floor</a>)
+<a name="l00433"></a>00433 
+<a name="l00439"></a>00439 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ac42909daec463fe449743e70baf8360d">fma</a>(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> c);
+<a name="l00440"></a>00440 FN_FUNC_FN_FN_FN(<a class="code" href="rs__cl_8rsh.html#ac42909daec463fe449743e70baf8360d">fma</a>)
+<a name="l00441"></a>00441 
+<a name="l00449"></a>00449 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a60f2072d8a746e7fe05cd46dea0fefcc">fmax</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00450"></a>00450 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a60f2072d8a746e7fe05cd46dea0fefcc">fmax</a>);
+<a name="l00451"></a>00451 FN_FUNC_FN_F(fmax);
 <a name="l00452"></a>00452 
-<a name="l00458"></a>00458 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af5c1bdba2a13aa2e2b0722287f6a919f">log10</a>(<span class="keywordtype">float</span>);
-<a name="l00459"></a>00459 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#af5c1bdba2a13aa2e2b0722287f6a919f">log10</a>)
-<a name="l00460"></a>00460 
-<a name="l00466"></a>00466 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a2fb571ae932f671ff3e9e97f2d3fabb7">log2</a>(<span class="keywordtype">float</span> v);
-<a name="l00467"></a>00467 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a2fb571ae932f671ff3e9e97f2d3fabb7">log2</a>)
-<a name="l00468"></a>00468 
-<a name="l00474"></a>00474 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">log1p</a>(<span class="keywordtype">float</span> v);
-<a name="l00475"></a>00475 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">log1p</a>)
-<a name="l00476"></a>00476 
-<a name="l00482"></a>00482 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">logb</a>(<span class="keywordtype">float</span>);
-<a name="l00483"></a>00483 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">logb</a>)
-<a name="l00484"></a>00484 
-<a name="l00490"></a>00490 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">mad</a>(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> c);
-<a name="l00491"></a>00491 FN_FUNC_FN_FN_FN(<a class="code" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">mad</a>)
-<a name="l00492"></a>00492 
-<a name="l00501"></a>00501 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">modf</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> *iret);
-<a name="l00502"></a>00502 FN_FUNC_FN_PFN(<a class="code" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">modf</a>);
-<a name="l00503"></a>00503 
-<a name="l00504"></a>00504 extern <span class="keywordtype">float</span> __attribute__((overloadable)) nan(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>);
-<a name="l00505"></a>00505 
-<a name="l00511"></a>00511 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">nextafter</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00512"></a>00512 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">nextafter</a>)
+<a name="l00459"></a>00459 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a1fd9d57c6c992866bf5161be2cf4c447">fmin</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00460"></a>00460 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a1fd9d57c6c992866bf5161be2cf4c447">fmin</a>);
+<a name="l00461"></a>00461 FN_FUNC_FN_F(fmin);
+<a name="l00462"></a>00462 
+<a name="l00468"></a>00468 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">fmod</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00469"></a>00469 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a31d5e179730ae44e1dbc74c1535f392e">fmod</a>)
+<a name="l00470"></a>00470 
+<a name="l00477"></a>00477 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> *iptr);
+<a name="l00478"></a>00478 FN_FUNC_FN_PFN(<a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>)
+<a name="l00479"></a>00479 
+<a name="l00485"></a><a class="code" href="rs__cl_8rsh.html#a84b546baf72a871a5ba688d434d6ce2b">00485</a> static inline <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(<span class="keywordtype">float</span> v) {
+<a name="l00486"></a>00486     <span class="keywordtype">float</span> unused;
+<a name="l00487"></a>00487     <span class="keywordflow">return</span> <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(v, &amp;unused);
+<a name="l00488"></a>00488 }
+<a name="l00489"></a>00489 
+<a name="l00490"></a>00490 <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> v) {
+<a name="l00491"></a>00491     <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> unused;
+<a name="l00492"></a>00492     <span class="keywordflow">return</span> <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(v, &amp;unused);
+<a name="l00493"></a>00493 }
+<a name="l00494"></a>00494 
+<a name="l00495"></a>00495 <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> v) {
+<a name="l00496"></a>00496     <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> unused;
+<a name="l00497"></a>00497     <span class="keywordflow">return</span> <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(v, &amp;unused);
+<a name="l00498"></a>00498 }
+<a name="l00499"></a>00499 
+<a name="l00500"></a>00500 <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> v) {
+<a name="l00501"></a>00501     <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> unused;
+<a name="l00502"></a>00502     <span class="keywordflow">return</span> <a class="code" href="rs__cl_8rsh.html#a9374786a1bbe3d2dd886cfad642bfec6">fract</a>(v, &amp;unused);
+<a name="l00503"></a>00503 }
+<a name="l00504"></a>00504 
+<a name="l00511"></a>00511 <span class="keyword">extern</span> <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">frexp</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">int</span> *iptr);
+<a name="l00512"></a>00512 FN_FUNC_FN_PIN(<a class="code" href="rs__cl_8rsh.html#a778635fffed3cee8ab0800482ba53a30">frexp</a>)
 <a name="l00513"></a>00513 
-<a name="l00519"></a>00519 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#afd46205452017b741abb2e17fc28557d">pown</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">int</span> p);
-<a name="l00520"></a>00520 FN_FUNC_FN_IN(<a class="code" href="rs__cl_8rsh.html#afd46205452017b741abb2e17fc28557d">pown</a>)
+<a name="l00519"></a>00519 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">hypot</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00520"></a>00520 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a147f38d6e41f45de9b5e7c6f3dcac010">hypot</a>)
 <a name="l00521"></a>00521 
-<a name="l00528"></a>00528 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff65421721ec8e6ce8d875a563d005f">powr</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> p);
-<a name="l00529"></a>00529 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a3ff65421721ec8e6ce8d875a563d005f">powr</a>)
-<a name="l00530"></a>00530 
-<a name="l00536"></a>00536 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">remainder</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
-<a name="l00537"></a>00537 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">remainder</a>)
-<a name="l00538"></a>00538 
-<a name="l00539"></a>00539 <span class="comment">// document once we know the precision of bionic</span>
-<a name="l00540"></a>00540 extern <span class="keywordtype">float</span> __attribute__((overloadable)) remquo(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">int</span> *);
-<a name="l00541"></a>00541 FN_FUNC_FN_FN_PIN(remquo)
-<a name="l00542"></a>00542 
-<a name="l00548"></a>00548 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rint</a>(<span class="keywordtype">float</span>);
-<a name="l00549"></a>00549 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rint</a>)
-<a name="l00550"></a>00550 
-<a name="l00556"></a>00556 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af169e7e1c575b7c24c1834569223077f">rootn</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">int</span> n);
-<a name="l00557"></a>00557 FN_FUNC_FN_IN(<a class="code" href="rs__cl_8rsh.html#af169e7e1c575b7c24c1834569223077f">rootn</a>)
-<a name="l00558"></a>00558 
-<a name="l00564"></a>00564 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">round</a>(<span class="keywordtype">float</span>);
-<a name="l00565"></a>00565 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">round</a>)
-<a name="l00566"></a>00566 
-<a name="l00572"></a>00572 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a92da0faef80c4d8f66e954c8c169a729">sqrt</a>(<span class="keywordtype">float</span>);
-<a name="l00573"></a>00573 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a92da0faef80c4d8f66e954c8c169a729">sqrt</a>)
-<a name="l00574"></a>00574 
-<a name="l00581"></a>00581 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a5db00fde9e6bff693a38f3a37e7a1f70">rsqrt</a>(<span class="keywordtype">float</span> v);
-<a name="l00582"></a>00582 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a5db00fde9e6bff693a38f3a37e7a1f70">rsqrt</a>)
-<a name="l00583"></a>00583 
-<a name="l00590"></a>00590 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">sin</a>(<span class="keywordtype">float</span> v);
-<a name="l00591"></a>00591 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">sin</a>)
-<a name="l00592"></a>00592 
-<a name="l00602"></a>00602 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a240f7c7c20b432a30dc660b5dd4cd320">sincos</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> *cosptr);
-<a name="l00603"></a>00603 FN_FUNC_FN_PFN(<a class="code" href="rs__cl_8rsh.html#a240f7c7c20b432a30dc660b5dd4cd320">sincos</a>);
+<a name="l00527"></a>00527 extern <span class="keywordtype">int</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aad9a8beba52acb77b1efeba432e6cc2c">ilogb</a>(<span class="keywordtype">float</span>);
+<a name="l00528"></a>00528 IN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aad9a8beba52acb77b1efeba432e6cc2c">ilogb</a>)
+<a name="l00529"></a>00529 
+<a name="l00536"></a>00536 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">ldexp</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">int</span> y);
+<a name="l00537"></a>00537 FN_FUNC_FN_IN(<a class="code" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">ldexp</a>)
+<a name="l00538"></a>00538 FN_FUNC_FN_I(<a class="code" href="rs__cl_8rsh.html#a013bc1dcda984cbc608e123ed38491e6">ldexp</a>)
+<a name="l00539"></a>00539 
+<a name="l00545"></a>00545 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>(<span class="keywordtype">float</span>);
+<a name="l00546"></a>00546 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>)
+<a name="l00547"></a>00547 
+<a name="l00554"></a>00554 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">int</span>* y);
+<a name="l00555"></a>00555 FN_FUNC_FN_PIN(<a class="code" href="rs__cl_8rsh.html#a3ff36f9b21927d6b4b58616e48fddcb4">lgamma</a>)
+<a name="l00556"></a>00556 
+<a name="l00562"></a>00562 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3ff85f5f4b206ecf9ec9d128d7d18a08">log</a>(<span class="keywordtype">float</span>);
+<a name="l00563"></a>00563 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a3ff85f5f4b206ecf9ec9d128d7d18a08">log</a>)
+<a name="l00564"></a>00564 
+<a name="l00570"></a>00570 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af5c1bdba2a13aa2e2b0722287f6a919f">log10</a>(<span class="keywordtype">float</span>);
+<a name="l00571"></a>00571 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#af5c1bdba2a13aa2e2b0722287f6a919f">log10</a>)
+<a name="l00572"></a>00572 
+<a name="l00578"></a>00578 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aab1c4f06daf6f2a50fd73f0c28929213">log2</a>(<span class="keywordtype">float</span> v);
+<a name="l00579"></a>00579 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aab1c4f06daf6f2a50fd73f0c28929213">log2</a>)
+<a name="l00580"></a>00580 
+<a name="l00586"></a>00586 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">log1p</a>(<span class="keywordtype">float</span> v);
+<a name="l00587"></a>00587 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ae10541ede49062ef7f977712c4878c1f">log1p</a>)
+<a name="l00588"></a>00588 
+<a name="l00594"></a>00594 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">logb</a>(<span class="keywordtype">float</span>);
+<a name="l00595"></a>00595 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a28742d6ce2f20a61f16ecc08ed499871">logb</a>)
+<a name="l00596"></a>00596 
+<a name="l00602"></a>00602 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">mad</a>(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> c);
+<a name="l00603"></a>00603 FN_FUNC_FN_FN_FN(<a class="code" href="rs__cl_8rsh.html#a4f9086698f1eb466ba2dccf7e331cdc3">mad</a>)
 <a name="l00604"></a>00604 
-<a name="l00610"></a>00610 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">sinh</a>(<span class="keywordtype">float</span>);
-<a name="l00611"></a>00611 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">sinh</a>)
-<a name="l00612"></a>00612 
-<a name="l00618"></a>00618 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4fe4fef049786e888526d6f37b912b0a">sinpi</a>(<span class="keywordtype">float</span> v);
-<a name="l00619"></a>00619 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a4fe4fef049786e888526d6f37b912b0a">sinpi</a>)
-<a name="l00620"></a>00620 
-<a name="l00627"></a>00627 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af12e245af8ff9bb72b5000e7c26cd8fe">tan</a>(<span class="keywordtype">float</span> v);
-<a name="l00628"></a>00628 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#af12e245af8ff9bb72b5000e7c26cd8fe">tan</a>)
-<a name="l00629"></a>00629 
-<a name="l00636"></a>00636 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">tanh</a>(<span class="keywordtype">float</span>);
-<a name="l00637"></a>00637 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">tanh</a>)
-<a name="l00638"></a>00638 
-<a name="l00644"></a>00644 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad8bfb083dd3979a305e594a0d6e581c4">tanpi</a>(<span class="keywordtype">float</span> v);
-<a name="l00645"></a>00645 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ad8bfb083dd3979a305e594a0d6e581c4">tanpi</a>)
-<a name="l00646"></a>00646 
-<a name="l00652"></a>00652 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">tgamma</a>(<span class="keywordtype">float</span>);
-<a name="l00653"></a>00653 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">tgamma</a>)
+<a name="l00613"></a>00613 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">modf</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> *iret);
+<a name="l00614"></a>00614 FN_FUNC_FN_PFN(<a class="code" href="rs__cl_8rsh.html#a841633bcdcaeb6a514d9c6460f0adf2d">modf</a>);
+<a name="l00615"></a>00615 
+<a name="l00616"></a>00616 extern <span class="keywordtype">float</span> __attribute__((overloadable)) nan(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>);
+<a name="l00617"></a>00617 
+<a name="l00623"></a>00623 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">nextafter</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00624"></a>00624 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#adb11df05fb9985595af0a7bd882bdeac">nextafter</a>)
+<a name="l00625"></a>00625 
+<a name="l00631"></a>00631 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a67d1fe795e092003f687f3cc6d3c407a">pown</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">int</span> p);
+<a name="l00632"></a>00632 FN_FUNC_FN_IN(<a class="code" href="rs__cl_8rsh.html#a67d1fe795e092003f687f3cc6d3c407a">pown</a>)
+<a name="l00633"></a>00633 
+<a name="l00640"></a>00640 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a316c30ba3e6bc11673bfd34bb4746d24">powr</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> p);
+<a name="l00641"></a>00641 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a316c30ba3e6bc11673bfd34bb4746d24">powr</a>)
+<a name="l00642"></a>00642 
+<a name="l00648"></a>00648 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">remainder</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);
+<a name="l00649"></a>00649 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a5188ac0e3af95b0956c6abeafb74fda9">remainder</a>)
+<a name="l00650"></a>00650 
+<a name="l00651"></a>00651 <span class="comment">// document once we know the precision of bionic</span>
+<a name="l00652"></a>00652 extern <span class="keywordtype">float</span> __attribute__((overloadable)) remquo(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">int</span> *);
+<a name="l00653"></a>00653 FN_FUNC_FN_FN_PIN(remquo)
 <a name="l00654"></a>00654 
-<a name="l00660"></a>00660 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad1a7c65693231219db1babeae1c41f15">trunc</a>(<span class="keywordtype">float</span>);
-<a name="l00661"></a>00661 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ad1a7c65693231219db1babeae1c41f15">trunc</a>)
+<a name="l00660"></a>00660 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rint</a>(<span class="keywordtype">float</span>);
+<a name="l00661"></a>00661 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#adb0ffe344ae56ca7fc9083c1f2943e55">rint</a>)
 <a name="l00662"></a>00662 
-<a name="l00663"></a>00663 
-<a name="l00664"></a>00664 <span class="preprocessor">#define XN_FUNC_YN(typeout, fnc, typein)                                \</span>
-<a name="l00665"></a>00665 <span class="preprocessor">extern typeout __attribute__((overloadable)) fnc(typein);               \</span>
-<a name="l00666"></a>00666 <span class="preprocessor">_RS_RUNTIME typeout##2 __attribute__((overloadable)) fnc(typein##2 v);   \</span>
-<a name="l00667"></a>00667 <span class="preprocessor">_RS_RUNTIME typeout##3 __attribute__((overloadable)) fnc(typein##3 v);   \</span>
-<a name="l00668"></a>00668 <span class="preprocessor">_RS_RUNTIME typeout##4 __attribute__((overloadable)) fnc(typein##4 v);</span>
-<a name="l00669"></a>00669 <span class="preprocessor"></span>
-<a name="l00670"></a>00670 <span class="preprocessor">#define UIN_FUNC_IN(fnc)          \</span>
-<a name="l00671"></a>00671 <span class="preprocessor">XN_FUNC_YN(uchar, fnc, char)      \</span>
-<a name="l00672"></a>00672 <span class="preprocessor">XN_FUNC_YN(ushort, fnc, short)    \</span>
-<a name="l00673"></a>00673 <span class="preprocessor">XN_FUNC_YN(uint, fnc, int)</span>
-<a name="l00674"></a>00674 <span class="preprocessor"></span>
-<a name="l00675"></a>00675 <span class="preprocessor">#define IN_FUNC_IN(fnc)           \</span>
-<a name="l00676"></a>00676 <span class="preprocessor">XN_FUNC_YN(uchar, fnc, uchar)     \</span>
-<a name="l00677"></a>00677 <span class="preprocessor">XN_FUNC_YN(char, fnc, char)       \</span>
-<a name="l00678"></a>00678 <span class="preprocessor">XN_FUNC_YN(ushort, fnc, ushort)   \</span>
-<a name="l00679"></a>00679 <span class="preprocessor">XN_FUNC_YN(short, fnc, short)     \</span>
-<a name="l00680"></a>00680 <span class="preprocessor">XN_FUNC_YN(uint, fnc, uint)       \</span>
-<a name="l00681"></a>00681 <span class="preprocessor">XN_FUNC_YN(int, fnc, int)</span>
-<a name="l00682"></a>00682 <span class="preprocessor"></span>
-<a name="l00683"></a>00683 
-<a name="l00684"></a>00684 <span class="preprocessor">#define XN_FUNC_XN_XN_BODY(type, fnc, body)         \</span>
-<a name="l00685"></a>00685 <span class="preprocessor">_RS_RUNTIME type __attribute__((overloadable))       \</span>
-<a name="l00686"></a>00686 <span class="preprocessor">        fnc(type v1, type v2);                      \</span>
-<a name="l00687"></a>00687 <span class="preprocessor">_RS_RUNTIME type##2 __attribute__((overloadable))    \</span>
-<a name="l00688"></a>00688 <span class="preprocessor">        fnc(type##2 v1, type##2 v2);                \</span>
-<a name="l00689"></a>00689 <span class="preprocessor">_RS_RUNTIME type##3 __attribute__((overloadable))    \</span>
-<a name="l00690"></a>00690 <span class="preprocessor">        fnc(type##3 v1, type##3 v2);                \</span>
-<a name="l00691"></a>00691 <span class="preprocessor">_RS_RUNTIME type##4 __attribute__((overloadable))    \</span>
-<a name="l00692"></a>00692 <span class="preprocessor">        fnc(type##4 v1, type##4 v2);</span>
-<a name="l00693"></a>00693 <span class="preprocessor"></span>
-<a name="l00694"></a>00694 <span class="preprocessor">#define IN_FUNC_IN_IN_BODY(fnc, body) \</span>
-<a name="l00695"></a>00695 <span class="preprocessor">XN_FUNC_XN_XN_BODY(uchar, fnc, body)  \</span>
-<a name="l00696"></a>00696 <span class="preprocessor">XN_FUNC_XN_XN_BODY(char, fnc, body)   \</span>
-<a name="l00697"></a>00697 <span class="preprocessor">XN_FUNC_XN_XN_BODY(ushort, fnc, body) \</span>
-<a name="l00698"></a>00698 <span class="preprocessor">XN_FUNC_XN_XN_BODY(short, fnc, body)  \</span>
-<a name="l00699"></a>00699 <span class="preprocessor">XN_FUNC_XN_XN_BODY(uint, fnc, body)   \</span>
-<a name="l00700"></a>00700 <span class="preprocessor">XN_FUNC_XN_XN_BODY(int, fnc, body)    \</span>
-<a name="l00701"></a>00701 <span class="preprocessor">XN_FUNC_XN_XN_BODY(float, fnc, body)</span>
-<a name="l00702"></a>00702 <span class="preprocessor"></span>
-<a name="l00703"></a>00703 UIN_FUNC_IN(abs)
-<a name="l00704"></a>00704 IN_FUNC_IN(clz)
-<a name="l00705"></a>00705 
-<a name="l00711"></a>00711 IN_FUNC_IN_IN_BODY(min, (v1 &lt; v2 ? v1 : v2))
-<a name="l00712"></a>00712 FN_FUNC_FN_F(min)
-<a name="l00713"></a>00713 
-<a name="l00719"></a>00719 IN_FUNC_IN_IN_BODY(max, (v1 &gt; v2 ? v1 : v2))
-<a name="l00720"></a>00720 FN_FUNC_FN_F(max)
-<a name="l00721"></a>00721 
-<a name="l00729"></a>00729 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<span class="keywordtype">float</span> amount, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high);
-<a name="l00730"></a>00730 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> amount, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> low, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> high);
-<a name="l00731"></a>00731 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> amount, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> low, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> high);
-<a name="l00732"></a>00732 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> amount, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> low, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> high);
-<a name="l00733"></a>00733 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> amount, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high);
-<a name="l00734"></a>00734 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> amount, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high);
-<a name="l00735"></a>00735 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad4dab580aba6cf15539b407b9163dfde">clamp</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> amount, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high);
-<a name="l00736"></a>00736 
-<a name="l00742"></a>00742 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#adc1b551193e66d8037daa1721df4d29c">degrees</a>(<span class="keywordtype">float</span> <a class="code" href="rs__cl_8rsh.html#aaef2526c4d190ba6f7301b4e810917a7">radians</a>);
-<a name="l00743"></a>00743 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#adc1b551193e66d8037daa1721df4d29c">degrees</a>)
-<a name="l00744"></a>00744 
-<a name="l00750"></a>00750 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<span class="keywordtype">float</span> start, <span class="keywordtype">float</span> stop, <span class="keywordtype">float</span> amount);
-<a name="l00751"></a>00751 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> start, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> stop, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> amount);
-<a name="l00752"></a>00752 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> start, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> stop, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> amount);
-<a name="l00753"></a>00753 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> start, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> stop, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> amount);
-<a name="l00754"></a>00754 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> start, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> stop, <span class="keywordtype">float</span> amount);
-<a name="l00755"></a>00755 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> start, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> stop, <span class="keywordtype">float</span> amount);
-<a name="l00756"></a>00756 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af4c76d51368c8e330cb59ea5a0a2310e">mix</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> start, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> stop, <span class="keywordtype">float</span> amount);
+<a name="l00668"></a>00668 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a2776b517528b8185a6bb50753af0f6cf">rootn</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">int</span> n);
+<a name="l00669"></a>00669 FN_FUNC_FN_IN(<a class="code" href="rs__cl_8rsh.html#a2776b517528b8185a6bb50753af0f6cf">rootn</a>)
+<a name="l00670"></a>00670 
+<a name="l00676"></a>00676 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">round</a>(<span class="keywordtype">float</span>);
+<a name="l00677"></a>00677 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aff4846ab5b947550814d5414a2c3626f">round</a>)
+<a name="l00678"></a>00678 
+<a name="l00684"></a>00684 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a92da0faef80c4d8f66e954c8c169a729">sqrt</a>(<span class="keywordtype">float</span>);
+<a name="l00685"></a>00685 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a92da0faef80c4d8f66e954c8c169a729">sqrt</a>)
+<a name="l00686"></a>00686 
+<a name="l00692"></a>00692 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a8a3992b97cb199b1c8d598996b600988">rsqrt</a>(<span class="keywordtype">float</span> v);
+<a name="l00693"></a>00693 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a8a3992b97cb199b1c8d598996b600988">rsqrt</a>)
+<a name="l00694"></a>00694 
+<a name="l00701"></a>00701 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">sin</a>(<span class="keywordtype">float</span> v);
+<a name="l00702"></a>00702 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a8c8cd526b44eb55aede77cf659f24306">sin</a>)
+<a name="l00703"></a>00703 
+<a name="l00713"></a>00713 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a892c91a30bbc713aa77105d8e9e25881">sincos</a>(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> *cosptr);
+<a name="l00714"></a>00714 FN_FUNC_FN_PFN(<a class="code" href="rs__cl_8rsh.html#a892c91a30bbc713aa77105d8e9e25881">sincos</a>);
+<a name="l00715"></a>00715 
+<a name="l00721"></a>00721 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">sinh</a>(<span class="keywordtype">float</span>);
+<a name="l00722"></a>00722 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ae686e0cc567f7ee2b0a84706aa486e4a">sinh</a>)
+<a name="l00723"></a>00723 
+<a name="l00729"></a>00729 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9ca027af0acf3ff22d91cd9489766976">sinpi</a>(<span class="keywordtype">float</span> v);
+<a name="l00730"></a>00730 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a9ca027af0acf3ff22d91cd9489766976">sinpi</a>)
+<a name="l00731"></a>00731 
+<a name="l00738"></a>00738 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#af12e245af8ff9bb72b5000e7c26cd8fe">tan</a>(<span class="keywordtype">float</span> v);
+<a name="l00739"></a>00739 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#af12e245af8ff9bb72b5000e7c26cd8fe">tan</a>)
+<a name="l00740"></a>00740 
+<a name="l00747"></a>00747 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">tanh</a>(<span class="keywordtype">float</span>);
+<a name="l00748"></a>00748 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#abc36e89ddb87ea78451d1c5921ddbd8d">tanh</a>)
+<a name="l00749"></a>00749 
+<a name="l00755"></a>00755 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aee96c8910a7d8b0082574813b6b68b9a">tanpi</a>(<span class="keywordtype">float</span> v);
+<a name="l00756"></a>00756 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#aee96c8910a7d8b0082574813b6b68b9a">tanpi</a>)
 <a name="l00757"></a>00757 
-<a name="l00763"></a>00763 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) radians(<span class="keywordtype">float</span> <a class="code" href="rs__cl_8rsh.html#adc1b551193e66d8037daa1721df4d29c">degrees</a>);
-<a name="l00764"></a>00764 FN_FUNC_FN(radians)
+<a name="l00763"></a>00763 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">tgamma</a>(<span class="keywordtype">float</span>);
+<a name="l00764"></a>00764 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ab9f4cbfd2470420ee302f28cf3de6dd0">tgamma</a>)
 <a name="l00765"></a>00765 
-<a name="l00774"></a>00774 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<span class="keywordtype">float</span> edge, <span class="keywordtype">float</span> v);
-<a name="l00775"></a>00775 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> edge, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> v);
-<a name="l00776"></a>00776 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> edge, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> v);
-<a name="l00777"></a>00777 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> edge, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> v);
-<a name="l00778"></a>00778 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> edge, <span class="keywordtype">float</span> v);
-<a name="l00779"></a>00779 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> edge, <span class="keywordtype">float</span> v);
-<a name="l00780"></a>00780 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4f7ba6882099d16853d0415982121900">step</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> edge, <span class="keywordtype">float</span> v);
-<a name="l00781"></a>00781 
-<a name="l00782"></a>00782 <span class="comment">// not implemented</span>
-<a name="l00783"></a>00783 extern <span class="keywordtype">float</span> __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
-<a name="l00784"></a>00784 extern <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) smoothstep(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>, float2, float2);
-<a name="l00785"></a>00785 extern <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) smoothstep(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>, float3, float3);
-<a name="l00786"></a>00786 extern <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) smoothstep(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>, float4, float4);
-<a name="l00787"></a>00787 extern float2 __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, float2);
-<a name="l00788"></a>00788 extern float3 __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, float3);
-<a name="l00789"></a>00789 extern float4 __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, float4);
-<a name="l00790"></a>00790 
-<a name="l00798"></a>00798 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3e6d477a06dec7070f073eec9d8f420c">sign</a>(<span class="keywordtype">float</span> v);
-<a name="l00799"></a>00799 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a3e6d477a06dec7070f073eec9d8f420c">sign</a>)
-<a name="l00800"></a>00800 
-<a name="l00806"></a>00806 _RS_RUNTIME float3 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a0f7beb26bb4aa30535babd14492a7e90">cross</a>(float3 lhs, float3 rhs);
-<a name="l00807"></a>00807 _RS_RUNTIME float4 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a0f7beb26bb4aa30535babd14492a7e90">cross</a>(float4 lhs, float4 rhs);
-<a name="l00808"></a>00808 
-<a name="l00814"></a>00814 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(<span class="keywordtype">float</span> lhs, <span class="keywordtype">float</span> rhs);
-<a name="l00815"></a>00815 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(float2 lhs, float2 rhs);
-<a name="l00816"></a>00816 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(float3 lhs, float3 rhs);
-<a name="l00817"></a>00817 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(float4 lhs, float4 rhs);
-<a name="l00818"></a>00818 
-<a name="l00824"></a>00824 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(<span class="keywordtype">float</span> v);
-<a name="l00825"></a>00825 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(float2 v);
-<a name="l00826"></a>00826 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(float3 v);
-<a name="l00827"></a>00827 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(float4 v);
-<a name="l00828"></a>00828 
-<a name="l00834"></a>00834 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">distance</a>(<span class="keywordtype">float</span> lhs, <span class="keywordtype">float</span> rhs);
-<a name="l00835"></a>00835 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">distance</a>(float2 lhs, float2 rhs);
-<a name="l00836"></a>00836 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">distance</a>(float3 lhs, float3 rhs);
-<a name="l00837"></a>00837 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4488863373be92e113e9d24aa3d21e76">distance</a>(float4 lhs, float4 rhs);
-<a name="l00838"></a>00838 
-<a name="l00844"></a>00844 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">normalize</a>(<span class="keywordtype">float</span> v);
-<a name="l00845"></a>00845 _RS_RUNTIME float2 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">normalize</a>(float2 v);
-<a name="l00846"></a>00846 _RS_RUNTIME float3 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">normalize</a>(float3 v);
-<a name="l00847"></a>00847 _RS_RUNTIME float4 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a373e03e92a1b7f3fdea5ca4ca159d2a8">normalize</a>(float4 v);
-<a name="l00848"></a>00848 
-<a name="l00849"></a>00849 <span class="preprocessor">#undef CVT_FUNC</span>
-<a name="l00850"></a>00850 <span class="preprocessor"></span><span class="preprocessor">#undef CVT_FUNC_2</span>
-<a name="l00851"></a>00851 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN</span>
-<a name="l00852"></a>00852 <span class="preprocessor"></span><span class="preprocessor">#undef IN_FUNC_FN</span>
-<a name="l00853"></a>00853 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN</span>
-<a name="l00854"></a>00854 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_F</span>
-<a name="l00855"></a>00855 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_IN</span>
-<a name="l00856"></a>00856 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_I</span>
-<a name="l00857"></a>00857 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_PFN</span>
-<a name="l00858"></a>00858 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_PIN</span>
-<a name="l00859"></a>00859 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN_FN</span>
-<a name="l00860"></a>00860 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN_PIN</span>
-<a name="l00861"></a>00861 <span class="preprocessor"></span><span class="preprocessor">#undef XN_FUNC_YN</span>
-<a name="l00862"></a>00862 <span class="preprocessor"></span><span class="preprocessor">#undef UIN_FUNC_IN</span>
-<a name="l00863"></a>00863 <span class="preprocessor"></span><span class="preprocessor">#undef IN_FUNC_IN</span>
-<a name="l00864"></a>00864 <span class="preprocessor"></span><span class="preprocessor">#undef XN_FUNC_XN_XN_BODY</span>
-<a name="l00865"></a>00865 <span class="preprocessor"></span><span class="preprocessor">#undef IN_FUNC_IN_IN_BODY</span>
-<a name="l00866"></a>00866 <span class="preprocessor"></span>
-<a name="l00867"></a>00867 <span class="preprocessor">#endif</span>
+<a name="l00771"></a>00771 extern <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ad1a7c65693231219db1babeae1c41f15">trunc</a>(<span class="keywordtype">float</span>);
+<a name="l00772"></a>00772 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ad1a7c65693231219db1babeae1c41f15">trunc</a>)
+<a name="l00773"></a>00773 
+<a name="l00774"></a>00774 <span class="preprocessor">#ifdef DOXYGEN</span>
+<a name="l00775"></a>00775 <span class="preprocessor"></span>
+<a name="l00776"></a>00776 <span class="preprocessor">#define XN_FUNC_YN(typeout, fnc, typein)                                \</span>
+<a name="l00777"></a>00777 <span class="preprocessor">extern typeout __attribute__((overloadable)) fnc(typein v);</span>
+<a name="l00778"></a>00778 <span class="preprocessor"></span>
+<a name="l00779"></a>00779 <span class="preprocessor">#define XN_FUNC_XN_XN_BODY(type, fnc, body)         \</span>
+<a name="l00780"></a>00780 <span class="preprocessor">_RS_RUNTIME type __attribute__((overloadable))      \</span>
+<a name="l00781"></a>00781 <span class="preprocessor">        fnc(type v1, type v2);</span>
+<a name="l00782"></a>00782 <span class="preprocessor"></span>
+<a name="l00783"></a>00783 <span class="preprocessor">#else</span>
+<a name="l00784"></a>00784 <span class="preprocessor"></span>
+<a name="l00785"></a>00785 <span class="preprocessor">#define XN_FUNC_YN(typeout, fnc, typein)                                \</span>
+<a name="l00786"></a>00786 <span class="preprocessor">extern typeout __attribute__((overloadable)) fnc(typein v);             \</span>
+<a name="l00787"></a>00787 <span class="preprocessor">_RS_RUNTIME typeout##2 __attribute__((overloadable)) fnc(typein##2 v);  \</span>
+<a name="l00788"></a>00788 <span class="preprocessor">_RS_RUNTIME typeout##3 __attribute__((overloadable)) fnc(typein##3 v);  \</span>
+<a name="l00789"></a>00789 <span class="preprocessor">_RS_RUNTIME typeout##4 __attribute__((overloadable)) fnc(typein##4 v);</span>
+<a name="l00790"></a>00790 <span class="preprocessor"></span>
+<a name="l00791"></a>00791 <span class="preprocessor">#define XN_FUNC_XN_XN_BODY(type, fnc, body)         \</span>
+<a name="l00792"></a>00792 <span class="preprocessor">_RS_RUNTIME type __attribute__((overloadable))      \</span>
+<a name="l00793"></a>00793 <span class="preprocessor">        fnc(type v1, type v2);                      \</span>
+<a name="l00794"></a>00794 <span class="preprocessor">_RS_RUNTIME type##2 __attribute__((overloadable))   \</span>
+<a name="l00795"></a>00795 <span class="preprocessor">        fnc(type##2 v1, type##2 v2);                \</span>
+<a name="l00796"></a>00796 <span class="preprocessor">_RS_RUNTIME type##3 __attribute__((overloadable))   \</span>
+<a name="l00797"></a>00797 <span class="preprocessor">        fnc(type##3 v1, type##3 v2);                \</span>
+<a name="l00798"></a>00798 <span class="preprocessor">_RS_RUNTIME type##4 __attribute__((overloadable))   \</span>
+<a name="l00799"></a>00799 <span class="preprocessor">        fnc(type##4 v1, type##4 v2);</span>
+<a name="l00800"></a>00800 <span class="preprocessor"></span>
+<a name="l00801"></a>00801 <span class="preprocessor">#endif  // DOXYGEN</span>
+<a name="l00802"></a>00802 <span class="preprocessor"></span>
+<a name="l00803"></a>00803 <span class="preprocessor">#define UIN_FUNC_IN(fnc)          \</span>
+<a name="l00804"></a>00804 <span class="preprocessor">XN_FUNC_YN(uchar, fnc, char)      \</span>
+<a name="l00805"></a>00805 <span class="preprocessor">XN_FUNC_YN(ushort, fnc, short)    \</span>
+<a name="l00806"></a>00806 <span class="preprocessor">XN_FUNC_YN(uint, fnc, int)</span>
+<a name="l00807"></a>00807 <span class="preprocessor"></span>
+<a name="l00808"></a>00808 <span class="preprocessor">#define IN_FUNC_IN(fnc)           \</span>
+<a name="l00809"></a>00809 <span class="preprocessor">XN_FUNC_YN(uchar, fnc, uchar)     \</span>
+<a name="l00810"></a>00810 <span class="preprocessor">XN_FUNC_YN(char, fnc, char)       \</span>
+<a name="l00811"></a>00811 <span class="preprocessor">XN_FUNC_YN(ushort, fnc, ushort)   \</span>
+<a name="l00812"></a>00812 <span class="preprocessor">XN_FUNC_YN(short, fnc, short)     \</span>
+<a name="l00813"></a>00813 <span class="preprocessor">XN_FUNC_YN(uint, fnc, uint)       \</span>
+<a name="l00814"></a>00814 <span class="preprocessor">XN_FUNC_YN(int, fnc, int)</span>
+<a name="l00815"></a>00815 <span class="preprocessor"></span>
+<a name="l00816"></a>00816 <span class="preprocessor">#define IN_FUNC_IN_IN_BODY(fnc, body)   \</span>
+<a name="l00817"></a>00817 <span class="preprocessor">XN_FUNC_XN_XN_BODY(uchar, fnc, body)    \</span>
+<a name="l00818"></a>00818 <span class="preprocessor">XN_FUNC_XN_XN_BODY(char, fnc, body)     \</span>
+<a name="l00819"></a>00819 <span class="preprocessor">XN_FUNC_XN_XN_BODY(ushort, fnc, body)   \</span>
+<a name="l00820"></a>00820 <span class="preprocessor">XN_FUNC_XN_XN_BODY(short, fnc, body)    \</span>
+<a name="l00821"></a>00821 <span class="preprocessor">XN_FUNC_XN_XN_BODY(uint, fnc, body)     \</span>
+<a name="l00822"></a>00822 <span class="preprocessor">XN_FUNC_XN_XN_BODY(int, fnc, body)      \</span>
+<a name="l00823"></a>00823 <span class="preprocessor">XN_FUNC_XN_XN_BODY(float, fnc, body)</span>
+<a name="l00824"></a>00824 <span class="preprocessor"></span>
+<a name="l00831"></a>00831 UIN_FUNC_IN(<a class="code" href="rs__cl_8rsh.html#a1ed0afedda2068ad1f9ad14ef3449e50">abs</a>)
+<a name="l00832"></a>00832 
+<a name="l00833"></a>00833 
+<a name="l00838"></a>00838 IN_FUNC_IN(<a class="code" href="rs__cl_8rsh.html#a8a0f94dce3caa2a50cbf2d9f4bc674ac">clz</a>)
+<a name="l00839"></a>00839 
+<a name="l00845"></a>00845 IN_FUNC_IN_IN_BODY(<a class="code" href="rs__cl_8rsh.html#a5f61ca44b3ad4b11365b0c4137a22658">min</a>, (v1 &lt; v2 ? v1 : v2))
+<a name="l00846"></a>00846 FN_FUNC_FN_F(min)
+<a name="l00847"></a>00847 
+<a name="l00853"></a>00853 IN_FUNC_IN_IN_BODY(<a class="code" href="rs__cl_8rsh.html#a616bf7a90d8d3c73a48d2c395d9dc4ea">max</a>, (v1 &gt; v2 ? v1 : v2))
+<a name="l00854"></a>00854 FN_FUNC_FN_F(max)
+<a name="l00855"></a>00855 
+<a name="l00863"></a>00863 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#afae5eac13e35acd0f47d7e3c601e16ed">clamp</a>(<span class="keywordtype">float</span> amount, <span class="keywordtype">float</span> low, <span class="keywordtype">float</span> high);
+<a name="l00864"></a>00864 FN_FUNC_FN_FN_FN(<a class="code" href="rs__cl_8rsh.html#afae5eac13e35acd0f47d7e3c601e16ed">clamp</a>)
+<a name="l00865"></a>00865 FN_FUNC_FN_F_F(<a class="code" href="rs__cl_8rsh.html#afae5eac13e35acd0f47d7e3c601e16ed">clamp</a>)
+<a name="l00866"></a>00866 
+<a name="l00872"></a>00872 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a0276b63d6905fa802032f1490a24515b">degrees</a>(<span class="keywordtype">float</span> <a class="code" href="rs__cl_8rsh.html#aceb63a0da6393b8ac2ed229bae6232d6">radians</a>);
+<a name="l00873"></a>00873 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a0276b63d6905fa802032f1490a24515b">degrees</a>)
+<a name="l00874"></a>00874 
+<a name="l00880"></a>00880 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a254612a612ff7539b01a1478e03d8697">mix</a>(<span class="keywordtype">float</span> start, <span class="keywordtype">float</span> stop, <span class="keywordtype">float</span> amount);
+<a name="l00881"></a>00881 FN_FUNC_FN_FN_FN(<a class="code" href="rs__cl_8rsh.html#a254612a612ff7539b01a1478e03d8697">mix</a>)
+<a name="l00882"></a>00882 FN_FUNC_FN_FN_F(<a class="code" href="rs__cl_8rsh.html#a254612a612ff7539b01a1478e03d8697">mix</a>)
+<a name="l00883"></a>00883 
+<a name="l00889"></a>00889 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) radians(<span class="keywordtype">float</span> <a class="code" href="rs__cl_8rsh.html#a0276b63d6905fa802032f1490a24515b">degrees</a>);
+<a name="l00890"></a>00890 FN_FUNC_FN(radians)
+<a name="l00891"></a>00891 
+<a name="l00900"></a>00900 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9f40337dfee48d1881b87b35aa8133dd">step</a>(<span class="keywordtype">float</span> edge, <span class="keywordtype">float</span> v);
+<a name="l00901"></a>00901 FN_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a9f40337dfee48d1881b87b35aa8133dd">step</a>)
+<a name="l00902"></a>00902 FN_FUNC_FN_F(<a class="code" href="rs__cl_8rsh.html#a9f40337dfee48d1881b87b35aa8133dd">step</a>)
+<a name="l00903"></a>00903 
+<a name="l00904"></a>00904 <span class="comment">// not implemented</span>
+<a name="l00905"></a>00905 extern <span class="keywordtype">float</span> __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
+<a name="l00906"></a>00906 extern <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((overloadable)) smoothstep(<a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>, float2, float2);
+<a name="l00907"></a>00907 extern <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((overloadable)) smoothstep(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>, float3, float3);
+<a name="l00908"></a>00908 extern <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) smoothstep(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>, float4, float4);
+<a name="l00909"></a>00909 extern float2 __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, float2);
+<a name="l00910"></a>00910 extern float3 __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, float3);
+<a name="l00911"></a>00911 extern float4 __attribute__((overloadable)) smoothstep(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>, float4);
+<a name="l00912"></a>00912 
+<a name="l00922"></a>00922 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a9fe423cc7d4c6d767f8a608d2ee76657">sign</a>(<span class="keywordtype">float</span> v);
+<a name="l00923"></a>00923 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a9fe423cc7d4c6d767f8a608d2ee76657">sign</a>)
+<a name="l00924"></a>00924 
+<a name="l00930"></a>00930 _RS_RUNTIME float3 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#add745d593bc2b23285bd10e52a204e25">cross</a>(float3 lhs, float3 rhs);
+<a name="l00931"></a>00931 _RS_RUNTIME float4 __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#add745d593bc2b23285bd10e52a204e25">cross</a>(float4 lhs, float4 rhs);
+<a name="l00932"></a>00932 
+<a name="l00938"></a>00938 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(<span class="keywordtype">float</span> lhs, <span class="keywordtype">float</span> rhs);
+<a name="l00939"></a>00939 F_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>)
+<a name="l00940"></a>00940 
+<a name="l00946"></a>00946 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(<span class="keywordtype">float</span> v);
+<a name="l00947"></a>00947 F_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>)
+<a name="l00948"></a>00948 
+<a name="l00954"></a>00954 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a412bf215ae838c65079560bbefefaca7">distance</a>(<span class="keywordtype">float</span> lhs, <span class="keywordtype">float</span> rhs);
+<a name="l00955"></a>00955 F_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a412bf215ae838c65079560bbefefaca7">distance</a>)
+<a name="l00956"></a>00956 
+<a name="l00962"></a>00962 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a69c2a56f743593439d5ae5e3ec8e517f">normalize</a>(<span class="keywordtype">float</span> v);
+<a name="l00963"></a>00963 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a69c2a56f743593439d5ae5e3ec8e517f">normalize</a>)
+<a name="l00964"></a>00964 
+<a name="l00965"></a>00965 
+<a name="l00966"></a>00966 <span class="comment">// New approx API functions</span>
+<a name="l00967"></a>00967 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 17))</span>
+<a name="l00968"></a>00968 <span class="preprocessor"></span>
+<a name="l00974"></a>00974 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a49050a8e32c95f60df4eaba9d7dfdca6">half_recip</a>(<span class="keywordtype">float</span>);
+<a name="l00975"></a>00975 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a49050a8e32c95f60df4eaba9d7dfdca6">half_recip</a>)
+<a name="l00976"></a>00976 
+<a name="l00982"></a>00982 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a26e2c17b20ee4c98b78c365d390e4fb8">half_sqrt</a>(<span class="keywordtype">float</span>);
+<a name="l00983"></a>00983 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a26e2c17b20ee4c98b78c365d390e4fb8">half_sqrt</a>)
+<a name="l00984"></a>00984 
+<a name="l00990"></a>00990 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a0925ceb22d33dcbb45914350ffa2edea">half_rsqrt</a>(<span class="keywordtype">float</span> v);
+<a name="l00991"></a>00991 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a0925ceb22d33dcbb45914350ffa2edea">half_rsqrt</a>)
+<a name="l00992"></a>00992 
+<a name="l00998"></a>00998 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a7c8f2f987044a360b5f616a80a74a4d5">fast_length</a>(<span class="keywordtype">float</span> v);
+<a name="l00999"></a>00999 F_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a7c8f2f987044a360b5f616a80a74a4d5">fast_length</a>)
+<a name="l01000"></a>01000 
+<a name="l01006"></a>01006 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a4fcbdb9099e7d653a951cb344ba3c3c9">fast_distance</a>(<span class="keywordtype">float</span> lhs, <span class="keywordtype">float</span> rhs);
+<a name="l01007"></a>01007 F_FUNC_FN_FN(<a class="code" href="rs__cl_8rsh.html#a4fcbdb9099e7d653a951cb344ba3c3c9">fast_distance</a>)
+<a name="l01008"></a>01008 
+<a name="l01014"></a>01014 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a3878bee2879351f518be68e015d76a35">fast_normalize</a>(<span class="keywordtype">float</span> v);
+<a name="l01015"></a>01015 F_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a3878bee2879351f518be68e015d76a35">fast_normalize</a>)
+<a name="l01016"></a>01016 
+<a name="l01017"></a>01017 <span class="preprocessor">#endif  // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 17))</span>
+<a name="l01018"></a>01018 <span class="preprocessor"></span>
+<a name="l01019"></a>01019 
+<a name="l01020"></a>01020 
+<a name="l01021"></a>01021 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 18))</span>
+<a name="l01022"></a>01022 <span class="preprocessor"></span><span class="comment">// Fast native math functions.</span>
+<a name="l01023"></a>01023 
+<a name="l01024"></a>01024 
+<a name="l01032"></a>01032 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#ab354691ecd844549b27ef9202e17f7ac">native_exp2</a>(<span class="keywordtype">float</span> v);
+<a name="l01033"></a>01033 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#ab354691ecd844549b27ef9202e17f7ac">native_exp2</a>)
+<a name="l01034"></a>01034 
+<a name="l01042"></a>01042 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a45d8176823a05b891313f3d96decf491">native_exp</a>(<span class="keywordtype">float</span> v);
+<a name="l01043"></a>01043 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a45d8176823a05b891313f3d96decf491">native_exp</a>)
+<a name="l01044"></a>01044 
+<a name="l01052"></a>01052 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) <a class="code" href="rs__cl_8rsh.html#a601ee3d2bf769f1cdc39a886f7a6c986">native_exp10</a>(<span class="keywordtype">float</span> v);
+<a name="l01053"></a>01053 FN_FUNC_FN(<a class="code" href="rs__cl_8rsh.html#a601ee3d2bf769f1cdc39a886f7a6c986">native_exp10</a>)
+<a name="l01054"></a>01054 
+<a name="l01055"></a>01055 
+<a name="l01056"></a>01056 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) native_log2(<span class="keywordtype">float</span> v);
+<a name="l01057"></a>01057 FN_FUNC_FN(native_log2)
+<a name="l01058"></a>01058 
+<a name="l01059"></a>01059 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) native_log(<span class="keywordtype">float</span> v);
+<a name="l01060"></a>01060 FN_FUNC_FN(native_log)
+<a name="l01061"></a>01061 
+<a name="l01062"></a>01062 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) native_log10(<span class="keywordtype">float</span> v);
+<a name="l01063"></a>01063 FN_FUNC_FN(native_log10)
+<a name="l01064"></a>01064 
+<a name="l01065"></a>01065 
+<a name="l01066"></a>01066 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable)) native_powr(<span class="keywordtype">float</span> v, <span class="keywordtype">float</span> y);
+<a name="l01067"></a>01067 FN_FUNC_FN_FN(native_powr)
+<a name="l01068"></a>01068 
+<a name="l01069"></a>01069 
+<a name="l01070"></a>01070 <span class="preprocessor">#endif  // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 18))</span>
+<a name="l01071"></a>01071 <span class="preprocessor"></span>
+<a name="l01072"></a>01072 
+<a name="l01073"></a>01073 <span class="preprocessor">#undef CVT_FUNC</span>
+<a name="l01074"></a>01074 <span class="preprocessor"></span><span class="preprocessor">#undef CVT_FUNC_2</span>
+<a name="l01075"></a>01075 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN</span>
+<a name="l01076"></a>01076 <span class="preprocessor"></span><span class="preprocessor">#undef F_FUNC_FN</span>
+<a name="l01077"></a>01077 <span class="preprocessor"></span><span class="preprocessor">#undef IN_FUNC_FN</span>
+<a name="l01078"></a>01078 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN</span>
+<a name="l01079"></a>01079 <span class="preprocessor"></span><span class="preprocessor">#undef F_FUNC_FN_FN</span>
+<a name="l01080"></a>01080 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_F</span>
+<a name="l01081"></a>01081 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_IN</span>
+<a name="l01082"></a>01082 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_I</span>
+<a name="l01083"></a>01083 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_PFN</span>
+<a name="l01084"></a>01084 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_PIN</span>
+<a name="l01085"></a>01085 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN_FN</span>
+<a name="l01086"></a>01086 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN_F</span>
+<a name="l01087"></a>01087 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_F_F</span>
+<a name="l01088"></a>01088 <span class="preprocessor"></span><span class="preprocessor">#undef FN_FUNC_FN_FN_PIN</span>
+<a name="l01089"></a>01089 <span class="preprocessor"></span><span class="preprocessor">#undef XN_FUNC_YN</span>
+<a name="l01090"></a>01090 <span class="preprocessor"></span><span class="preprocessor">#undef UIN_FUNC_IN</span>
+<a name="l01091"></a>01091 <span class="preprocessor"></span><span class="preprocessor">#undef IN_FUNC_IN</span>
+<a name="l01092"></a>01092 <span class="preprocessor"></span><span class="preprocessor">#undef XN_FUNC_XN_XN_BODY</span>
+<a name="l01093"></a>01093 <span class="preprocessor"></span><span class="preprocessor">#undef IN_FUNC_IN_IN_BODY</span>
+<a name="l01094"></a>01094 <span class="preprocessor"></span>
+<a name="l01095"></a>01095 <span class="preprocessor">#endif</span>
 </pre></div></div>
 </div>
 
index 6212598..132488d 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_core.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_core.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -30,7 +30,7 @@
 <a href="#enum-members">Enumerations</a> &#124;
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_core.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_core.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>&quot;</code><br/>
@@ -61,11 +61,13 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#a508003cadad2d37d41e2de7e9226f859">rsSendToClient</a> (int cmdID, const void *data, <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> len)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#a6e4ff6388e8c6978ed17447214f2a2e2">rsSendToClientBlocking</a> (int cmdID)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#afc93b00be08f58512a6ab6a87feb9515">rsSendToClientBlocking</a> (int cmdID, const void *data, <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> len)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rsForEach</a> (<a class="el" href="structrs__script.html">rs_script</a> script, <a class="el" href="structrs__allocation.html">rs_allocation</a> input, <a class="el" href="structrs__allocation.html">rs_allocation</a> output, const void *usrData, const <a class="el" href="rs__core_8rsh.html#ae8756b32e23445f287960b9d0ffb449c">rs_script_call_t</a> *sc)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#ae62dc9d507e0e62c064217c71cc94101">rsForEach</a> (<a class="el" href="structrs__script.html">rs_script</a> script, <a class="el" href="structrs__allocation.html">rs_allocation</a> input, <a class="el" href="structrs__allocation.html">rs_allocation</a> output, const void *usrData)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rsForEach</a> (<a class="el" href="structrs__script.html">rs_script</a> script, <a class="el" href="structrs__allocation.html">rs_allocation</a> input, <a class="el" href="structrs__allocation.html">rs_allocation</a> output, const void *usrData, <a class="el" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">size_t</a> usrDataLen, const <a class="el" href="rs__core_8rsh.html#ae8756b32e23445f287960b9d0ffb449c">rs_script_call_t</a> *)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#a38c803ed805dd1362442977eae70c41d">rsForEach</a> (<a class="el" href="structrs__script.html">rs_script</a> script, <a class="el" href="structrs__allocation.html">rs_allocation</a> input, <a class="el" href="structrs__allocation.html">rs_allocation</a> output, const void *usrData, <a class="el" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">size_t</a> usrDataLen)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__core_8rsh.html#a6c541fa49b6fb9b528c2a147eaf764da">rsForEach</a> (<a class="el" href="structrs__script.html">rs_script</a> script, <a class="el" href="structrs__allocation.html">rs_allocation</a> input, <a class="el" href="structrs__allocation.html">rs_allocation</a> output)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock">
+<div class="textblock"><p>todo-jsams </p>
+
 <p>Definition in file <a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a>.</p>
 </div><hr/><h2>Typedef Documentation</h2>
 <a class="anchor" id="ae8756b32e23445f287960b9d0ffb449c"></a><!-- doxytag: member="rs_core.rsh::rs_script_call_t" ref="ae8756b32e23445f287960b9d0ffb449c" args="" -->
@@ -96,12 +98,12 @@ Functions</h2></td></tr>
 <p>Launch order hint for rsForEach calls. This provides a hint to the system to determine in which order the root function of the target is called with each cell of the allocation.</p>
 <p>This is a hint and implementations may not obey the order. </p>
 
-<p>Definition at line <a class="el" href="rs__core_8rsh_source.html#l00092">92</a> of file <a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__core_8rsh_source.html#l00096">96</a> of file <a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a>.</p>
 
 </div>
 </div>
 <hr/><h2>Function Documentation</h2>
-<a class="anchor" id="a95ebbf7a8923193df144649c066daae6"></a><!-- doxytag: member="rs_core.rsh::rsForEach" ref="a95ebbf7a8923193df144649c066daae6" args="(rs_script script, rs_allocation input, rs_allocation output, const void *usrData, const rs_script_call_t *sc)" -->
+<a class="anchor" id="a64271d266928b06ebd82ec90b756eb23"></a><!-- doxytag: member="rs_core.rsh::rsForEach" ref="a64271d266928b06ebd82ec90b756eb23" args="(rs_script script, rs_allocation input, rs_allocation output, const void *usrData, size_t usrDataLen, const rs_script_call_t *)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -132,8 +134,14 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">size_t</a>&#160;</td>
+          <td class="paramname"><em>usrDataLen</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
           <td class="paramtype">const <a class="el" href="rs__core_8rsh.html#ae8756b32e23445f287960b9d0ffb449c">rs_script_call_t</a> *&#160;</td>
-          <td class="paramname"><em>sc</em>&#160;</td>
+          <td class="paramname">&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -150,6 +158,12 @@ Functions</h2></td></tr>
     <tr><td class="paramname">input</td><td>The allocation to source data from </td></tr>
     <tr><td class="paramname">output</td><td>the allocation to write date into </td></tr>
     <tr><td class="paramname">usrData</td><td>The user definied params to pass to the root script. May be NULL. </td></tr>
+    <tr><td class="paramname">sc</td><td>Extra control infomation used to select a sub-region of the allocation to be processed or suggest a walking strategy. May be NULL. Make a script to script call to launch work. One of the input or output is required to be a valid object. The input and output must be of the same dimensions. API 14+</td></tr>
+    <tr><td class="paramname">script</td><td>The target script to call </td></tr>
+    <tr><td class="paramname">input</td><td>The allocation to source data from </td></tr>
+    <tr><td class="paramname">output</td><td>the allocation to write date into </td></tr>
+    <tr><td class="paramname">usrData</td><td>The user definied params to pass to the root script. May be NULL. </td></tr>
+    <tr><td class="paramname">usrDataLen</td><td>The size of the userData structure. This will be used to perform a shallow copy of the data if necessary. </td></tr>
     <tr><td class="paramname">sc</td><td>Extra control infomation used to select a sub-region of the allocation to be processed or suggest a walking strategy. May be NULL. </td></tr>
   </table>
   </dd>
@@ -157,7 +171,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ae62dc9d507e0e62c064217c71cc94101"></a><!-- doxytag: member="rs_core.rsh::rsForEach" ref="ae62dc9d507e0e62c064217c71cc94101" args="(rs_script script, rs_allocation input, rs_allocation output, const void *usrData)" -->
+<a class="anchor" id="a38c803ed805dd1362442977eae70c41d"></a><!-- doxytag: member="rs_core.rsh::rsForEach" ref="a38c803ed805dd1362442977eae70c41d" args="(rs_script script, rs_allocation input, rs_allocation output, const void *usrData, size_t usrDataLen)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -183,7 +197,47 @@ Functions</h2></td></tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const void *&#160;</td>
-          <td class="paramname"><em>usrData</em>&#160;</td>
+          <td class="paramname"><em>usrData</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">size_t</a>&#160;</td>
+          <td class="paramname"><em>usrDataLen</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6c541fa49b6fb9b528c2a147eaf764da"></a><!-- doxytag: member="rs_core.rsh::rsForEach" ref="a6c541fa49b6fb9b528c2a147eaf764da" args="(rs_script script, rs_allocation input, rs_allocation output)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsForEach </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__script.html">rs_script</a>&#160;</td>
+          <td class="paramname"><em>script</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>input</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td>
+          <td class="paramname"><em>output</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
index 888a8b4..ddc870d 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_core.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_core.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_core.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_core.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__core_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00014"></a>00014 <span class="comment"> * limitations under the License.</span>
 <a name="l00015"></a>00015 <span class="comment"> */</span>
 <a name="l00016"></a>00016 
-<a name="l00042"></a>00042 <span class="preprocessor">#ifndef __RS_CORE_RSH__</span>
-<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#define __RS_CORE_RSH__</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span>
-<a name="l00045"></a>00045 <span class="preprocessor">#define _RS_RUNTIME extern</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;<a class="code" href="rs__types_8rsh.html">rs_types.rsh</a>&quot;</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;<a class="code" href="rs__allocation_8rsh.html" title="Allocation routines.">rs_allocation.rsh</a>&quot;</span>
-<a name="l00049"></a>00049 <span class="preprocessor">#include &quot;<a class="code" href="rs__atomic_8rsh.html" title="Atomic routines.">rs_atomic.rsh</a>&quot;</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;<a class="code" href="rs__cl_8rsh.html" title="Basic math functions.">rs_cl.rsh</a>&quot;</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include &quot;<a class="code" href="rs__debug_8rsh.html" title="Utility debugging routines.">rs_debug.rsh</a>&quot;</span>
-<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="rs__element_8rsh.html" title="Element routines.">rs_element.rsh</a>&quot;</span>
-<a name="l00053"></a>00053 <span class="preprocessor">#include &quot;<a class="code" href="rs__math_8rsh.html">rs_math.rsh</a>&quot;</span>
-<a name="l00054"></a>00054 <span class="preprocessor">#include &quot;<a class="code" href="rs__matrix_8rsh.html" title="Matrix routines.">rs_matrix.rsh</a>&quot;</span>
-<a name="l00055"></a>00055 <span class="preprocessor">#include &quot;<a class="code" href="rs__object_8rsh.html" title="Object routines.">rs_object.rsh</a>&quot;</span>
-<a name="l00056"></a>00056 <span class="preprocessor">#include &quot;<a class="code" href="rs__quaternion_8rsh.html" title="Quaternion routines.">rs_quaternion.rsh</a>&quot;</span>
-<a name="l00057"></a>00057 <span class="preprocessor">#include &quot;<a class="code" href="rs__sampler_8rsh.html" title="Sampler routines.">rs_sampler.rsh</a>&quot;</span>
-<a name="l00058"></a>00058 <span class="preprocessor">#include &quot;<a class="code" href="rs__time_8rsh.html" title="Renderscript time routines.">rs_time.rsh</a>&quot;</span>
-<a name="l00059"></a>00059 
-<a name="l00065"></a>00065 <span class="keyword">extern</span> <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00066"></a>00066     <a class="code" href="rs__core_8rsh.html#a91cfbca99f87ef144bea2cdf1e8473ca">rsSendToClient</a>(<span class="keywordtype">int</span> cmdID);
-<a name="l00070"></a>00070 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00071"></a>00071     <a class="code" href="rs__core_8rsh.html#a91cfbca99f87ef144bea2cdf1e8473ca">rsSendToClient</a>(<span class="keywordtype">int</span> cmdID, const <span class="keywordtype">void</span> *data, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> len);
-<a name="l00076"></a>00076 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00077"></a>00077     <a class="code" href="rs__core_8rsh.html#a6e4ff6388e8c6978ed17447214f2a2e2">rsSendToClientBlocking</a>(<span class="keywordtype">int</span> cmdID);
-<a name="l00081"></a>00081 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00082"></a>00082     <a class="code" href="rs__core_8rsh.html#a6e4ff6388e8c6978ed17447214f2a2e2">rsSendToClientBlocking</a>(<span class="keywordtype">int</span> cmdID, const <span class="keywordtype">void</span> *data, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> len);
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084 
-<a name="l00092"></a><a class="code" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">00092</a> enum <a class="code" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">rs_for_each_strategy</a> {
-<a name="l00093"></a>00093     RS_FOR_EACH_STRATEGY_SERIAL,
-<a name="l00094"></a>00094     RS_FOR_EACH_STRATEGY_DONT_CARE,
-<a name="l00095"></a>00095     RS_FOR_EACH_STRATEGY_DST_LINEAR,
-<a name="l00096"></a>00096     RS_FOR_EACH_STRATEGY_TILE_SMALL,
-<a name="l00097"></a>00097     RS_FOR_EACH_STRATEGY_TILE_MEDIUM,
-<a name="l00098"></a>00098     RS_FOR_EACH_STRATEGY_TILE_LARGE
-<a name="l00099"></a>00099 };
-<a name="l00100"></a>00100 
-<a name="l00101"></a>00101 
-<a name="l00106"></a><a class="code" href="structrs__script__call.html">00106</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structrs__script__call.html">rs_script_call</a> {
-<a name="l00107"></a>00107     <span class="keyword">enum</span> <a class="code" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">rs_for_each_strategy</a> strategy;
-<a name="l00108"></a>00108     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> xStart;
-<a name="l00109"></a>00109     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> xEnd;
-<a name="l00110"></a>00110     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> yStart;
-<a name="l00111"></a>00111     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> yEnd;
-<a name="l00112"></a>00112     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> zStart;
-<a name="l00113"></a>00113     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> zEnd;
-<a name="l00114"></a>00114     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> arrayStart;
-<a name="l00115"></a>00115     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> arrayEnd;
-<a name="l00116"></a>00116 } <a class="code" href="rs__core_8rsh.html#ae8756b32e23445f287960b9d0ffb449c">rs_script_call_t</a>;
-<a name="l00117"></a>00117 
-<a name="l00134"></a>00134 <span class="preprocessor">#if !defined(RS_VERSION) || (RS_VERSION &lt; 14)</span>
-<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00136"></a>00136     <a class="code" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> input,
-<a name="l00137"></a>00137               <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> output, const <span class="keywordtype">void</span> * usrData,
-<a name="l00138"></a>00138               const <a class="code" href="structrs__script__call.html">rs_script_call_t</a> *sc);
-<a name="l00142"></a>00142 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00143"></a>00143     <a class="code" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> input,
-<a name="l00144"></a>00144               <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> output, const <span class="keywordtype">void</span> * usrData);
-<a name="l00145"></a>00145 <span class="preprocessor">#else</span>
-<a name="l00146"></a>00146 <span class="preprocessor"></span>
-<a name="l00165"></a>00165 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00166"></a>00166     <a class="code" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> input, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> output,
-<a name="l00167"></a>00167               const <span class="keywordtype">void</span> * usrData, <span class="keywordtype">size_t</span> usrDataLen, const <a class="code" href="structrs__script__call.html">rs_script_call_t</a> *);
-<a name="l00171"></a>00171 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00172"></a>00172     <a class="code" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> input, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> output,
-<a name="l00173"></a>00173               const <span class="keywordtype">void</span> * usrData, <span class="keywordtype">size_t</span> usrDataLen);
-<a name="l00177"></a>00177 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00178"></a>00178     <a class="code" href="rs__core_8rsh.html#a95ebbf7a8923193df144649c066daae6">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> input, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> output);
-<a name="l00179"></a>00179 <span class="preprocessor">#endif</span>
-<a name="l00180"></a>00180 <span class="preprocessor"></span>
-<a name="l00181"></a>00181 
-<a name="l00182"></a>00182 
-<a name="l00183"></a>00183 <span class="preprocessor">#undef _RS_RUNTIME</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#ifndef __RS_CORE_RSH__</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define __RS_CORE_RSH__</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>
+<a name="l00049"></a>00049 <span class="preprocessor">#define _RS_RUNTIME extern</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include &quot;<a class="code" href="rs__types_8rsh.html">rs_types.rsh</a>&quot;</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="rs__allocation_8rsh.html" title="Allocation routines.">rs_allocation.rsh</a>&quot;</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include &quot;<a class="code" href="rs__atomic_8rsh.html" title="Atomic routines.">rs_atomic.rsh</a>&quot;</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include &quot;<a class="code" href="rs__cl_8rsh.html" title="Basic math functions.">rs_cl.rsh</a>&quot;</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#include &quot;<a class="code" href="rs__debug_8rsh.html" title="Utility debugging routines.">rs_debug.rsh</a>&quot;</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#include &quot;<a class="code" href="rs__element_8rsh.html" title="Element routines.">rs_element.rsh</a>&quot;</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#include &quot;<a class="code" href="rs__math_8rsh.html">rs_math.rsh</a>&quot;</span>
+<a name="l00058"></a>00058 <span class="preprocessor">#include &quot;<a class="code" href="rs__matrix_8rsh.html" title="Matrix routines.">rs_matrix.rsh</a>&quot;</span>
+<a name="l00059"></a>00059 <span class="preprocessor">#include &quot;<a class="code" href="rs__object_8rsh.html" title="Object routines.">rs_object.rsh</a>&quot;</span>
+<a name="l00060"></a>00060 <span class="preprocessor">#include &quot;<a class="code" href="rs__quaternion_8rsh.html" title="Quaternion routines.">rs_quaternion.rsh</a>&quot;</span>
+<a name="l00061"></a>00061 <span class="preprocessor">#include &quot;<a class="code" href="rs__sampler_8rsh.html" title="Sampler routines.">rs_sampler.rsh</a>&quot;</span>
+<a name="l00062"></a>00062 <span class="preprocessor">#include &quot;<a class="code" href="rs__time_8rsh.html" title="RenderScript time routines.">rs_time.rsh</a>&quot;</span>
+<a name="l00063"></a>00063 
+<a name="l00069"></a>00069 <span class="keyword">extern</span> <span class="keywordtype">bool</span> __attribute__((overloadable))
+<a name="l00070"></a>00070     <a class="code" href="rs__core_8rsh.html#a91cfbca99f87ef144bea2cdf1e8473ca">rsSendToClient</a>(<span class="keywordtype">int</span> cmdID);
+<a name="l00074"></a>00074 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
+<a name="l00075"></a>00075     <a class="code" href="rs__core_8rsh.html#a91cfbca99f87ef144bea2cdf1e8473ca">rsSendToClient</a>(<span class="keywordtype">int</span> cmdID, const <span class="keywordtype">void</span> *data, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> len);
+<a name="l00080"></a>00080 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00081"></a>00081     <a class="code" href="rs__core_8rsh.html#a6e4ff6388e8c6978ed17447214f2a2e2">rsSendToClientBlocking</a>(<span class="keywordtype">int</span> cmdID);
+<a name="l00085"></a>00085 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00086"></a>00086     <a class="code" href="rs__core_8rsh.html#a6e4ff6388e8c6978ed17447214f2a2e2">rsSendToClientBlocking</a>(<span class="keywordtype">int</span> cmdID, const <span class="keywordtype">void</span> *data, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> len);
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 
+<a name="l00096"></a><a class="code" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">00096</a> enum <a class="code" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">rs_for_each_strategy</a> {
+<a name="l00097"></a>00097     RS_FOR_EACH_STRATEGY_SERIAL = 0,
+<a name="l00098"></a>00098     RS_FOR_EACH_STRATEGY_DONT_CARE = 1,
+<a name="l00099"></a>00099     RS_FOR_EACH_STRATEGY_DST_LINEAR = 2,
+<a name="l00100"></a>00100     RS_FOR_EACH_STRATEGY_TILE_SMALL= 3,
+<a name="l00101"></a>00101     RS_FOR_EACH_STRATEGY_TILE_MEDIUM = 4,
+<a name="l00102"></a>00102     RS_FOR_EACH_STRATEGY_TILE_LARGE = 5
+<a name="l00103"></a>00103 };
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105 
+<a name="l00110"></a><a class="code" href="structrs__script__call.html">00110</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structrs__script__call.html">rs_script_call</a> {
+<a name="l00111"></a>00111     <span class="keyword">enum</span> <a class="code" href="rs__core_8rsh.html#ae1755c901e8acb42510ad10b4e104746">rs_for_each_strategy</a> strategy;
+<a name="l00112"></a>00112     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> xStart;
+<a name="l00113"></a>00113     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> xEnd;
+<a name="l00114"></a>00114     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> yStart;
+<a name="l00115"></a>00115     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> yEnd;
+<a name="l00116"></a>00116     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> zStart;
+<a name="l00117"></a>00117     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> zEnd;
+<a name="l00118"></a>00118     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> arrayStart;
+<a name="l00119"></a>00119     <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> arrayEnd;
+<a name="l00120"></a>00120 } <a class="code" href="rs__core_8rsh.html#ae8756b32e23445f287960b9d0ffb449c">rs_script_call_t</a>;
+<a name="l00121"></a>00121 
+<a name="l00138"></a>00138 <span class="preprocessor">#if !defined(RS_VERSION) || (RS_VERSION &lt; 14)</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00140"></a>00140     <a class="code" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> input,
+<a name="l00141"></a>00141               <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> output, const <span class="keywordtype">void</span> * usrData,
+<a name="l00142"></a>00142               const <a class="code" href="structrs__script__call.html">rs_script_call_t</a> *sc);
+<a name="l00146"></a>00146 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00147"></a>00147     <a class="code" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> input,
+<a name="l00148"></a>00148               <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> output, const <span class="keywordtype">void</span> * usrData);
+<a name="l00149"></a>00149 <span class="preprocessor">#else</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span>
+<a name="l00169"></a>00169 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00170"></a>00170     <a class="code" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> input, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> output,
+<a name="l00171"></a>00171               const <span class="keywordtype">void</span> * usrData, <span class="keywordtype">size_t</span> usrDataLen, const <a class="code" href="structrs__script__call.html">rs_script_call_t</a> *);
+<a name="l00175"></a>00175 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00176"></a>00176     <a class="code" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> input, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> output,
+<a name="l00177"></a>00177               const <span class="keywordtype">void</span> * usrData, <span class="keywordtype">size_t</span> usrDataLen);
+<a name="l00181"></a>00181 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00182"></a>00182     <a class="code" href="rs__core_8rsh.html#a64271d266928b06ebd82ec90b756eb23">rsForEach</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> script, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> input, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> output);
+<a name="l00183"></a>00183 <span class="preprocessor">#endif</span>
 <a name="l00184"></a>00184 <span class="preprocessor"></span>
-<a name="l00185"></a>00185 <span class="preprocessor">#endif</span>
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186 
+<a name="l00187"></a>00187 <span class="preprocessor">#undef _RS_RUNTIME</span>
+<a name="l00188"></a>00188 <span class="preprocessor"></span>
+<a name="l00189"></a>00189 <span class="preprocessor">#endif</span>
 </pre></div></div>
 </div>
 
index 7259cf2..cb7eb65 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_debug.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_debug.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_debug.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_debug.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a> (const char *, float)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a> (const char *, float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#aebd4d3e687a397db1a817ca6d46aed29">rsDebug</a> (const char *, float, float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#ab1731408774f01186aff59b89c47fe32">rsDebug</a> (const char *, float, float, float)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#a6bb20c16c9fcc613158ca8c6f0dd81bd">rsDebug</a> (const char *, float, float, float, float)</td></tr>
@@ -46,6 +46,13 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#aa75aa9faf7646ceeafeb19279416e9e8">rsDebug</a> (const char *, long)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#aa371f42b8d323a1a20d56461011fc664">rsDebug</a> (const char *, unsigned long)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#ab5a58069a9d914e413f52b0f9bd62a00">rsDebug</a> (const char *, const void *)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#aa8b0824fa7ebb7568475aa9fe59db2a7">rsDebug</a> (const char *, char)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#ae15778f8dce1f1afb184223aa2ea16d7">rsDebug</a> (const char *, unsigned char)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#a9ae73c92436ef2ebb3aa003dfe32b47e">rsDebug</a> (const char *, <a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#ad2ac07fa7f59cd1ec4c3e411a726e3bf">rsDebug</a> (const char *, short)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#a914fe650bcd59de44d33fc4b72d6d494">rsDebug</a> (const char *, <a class="el" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#a52c6ade9360a550eb25c044ea2380f4b">rsDebug</a> (const char *, <a class="el" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__debug_8rsh.html#ad723b521df57125a4165812004f107c4">rsDebug</a> (const char *, <a class="el" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a>)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Utility debugging routines. </p>
@@ -53,12 +60,12 @@ Functions</h2></td></tr>
 
 <p>Definition in file <a class="el" href="rs__debug_8rsh_source.html">rs_debug.rsh</a>.</p>
 </div><hr/><h2>Function Documentation</h2>
-<a class="anchor" id="a9a86fd617111dee78b3179a293afb66c"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="a9a86fd617111dee78b3179a293afb66c" args="(const char *, float)" -->
+<a class="anchor" id="aff35df661796c13fa9e616d1d387df0d"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="aff35df661796c13fa9e616d1d387df0d" args="(const char *, float)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME void rsDebug </td>
+          <td class="memname">void rsDebug </td>
           <td>(</td>
           <td class="paramtype">const char *&#160;</td>
           <td class="paramname">, </td>
@@ -453,6 +460,202 @@ Functions</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="aa8b0824fa7ebb7568475aa9fe59db2a7"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="aa8b0824fa7ebb7568475aa9fe59db2a7" args="(const char *, char)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
+<a class="anchor" id="ae15778f8dce1f1afb184223aa2ea16d7"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="ae15778f8dce1f1afb184223aa2ea16d7" args="(const char *, unsigned char)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned&#160;</td>
+          <td class="paramname"><em>char</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
+<a class="anchor" id="a9ae73c92436ef2ebb3aa003dfe32b47e"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="a9ae73c92436ef2ebb3aa003dfe32b47e" args="(const char *, uchar2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad2ac07fa7f59cd1ec4c3e411a726e3bf"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="ad2ac07fa7f59cd1ec4c3e411a726e3bf" args="(const char *, short)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">short&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
+<a class="anchor" id="a914fe650bcd59de44d33fc4b72d6d494"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="a914fe650bcd59de44d33fc4b72d6d494" args="(const char *, ushort2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a>&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
+<a class="anchor" id="a52c6ade9360a550eb25c044ea2380f4b"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="a52c6ade9360a550eb25c044ea2380f4b" args="(const char *, long2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a>&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad723b521df57125a4165812004f107c4"></a><!-- doxytag: member="rs_debug.rsh::rsDebug" ref="ad723b521df57125a4165812004f107c4" args="(const char *, ulong2)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void rsDebug </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a>&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Debug function. Prints a string and value to the log. </p>
+
+</div>
+</div>
 </div>
 
 </body>
index b1589aa..cd5895d 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_debug.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_debug.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_debug.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_debug.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__debug_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define __RS_DEBUG_RSH__</span>
 <a name="l00028"></a>00028 <span class="preprocessor"></span>
 <a name="l00029"></a>00029 
-<a name="l00030"></a>00030 
-<a name="l00034"></a>00034 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00035"></a>00035     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>);
-<a name="l00039"></a>00039 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00040"></a>00040     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
-<a name="l00044"></a>00044 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00045"></a>00045     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
-<a name="l00049"></a>00049 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00050"></a>00050     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
-<a name="l00054"></a>00054 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00055"></a>00055     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">double</span>);
-<a name="l00059"></a>00059 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00060"></a>00060     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, const <a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *);
-<a name="l00064"></a>00064 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00065"></a>00065     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, const <a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *);
-<a name="l00069"></a>00069 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00070"></a>00070     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, const <a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a> *);
-<a name="l00074"></a>00074 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00075"></a>00075     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
-<a name="l00079"></a>00079 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00080"></a>00080     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>);
-<a name="l00084"></a>00084 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00085"></a>00085     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">long</span>);
-<a name="l00089"></a>00089 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00090"></a>00090     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>);
-<a name="l00094"></a>00094 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00095"></a>00095     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">long</span> <span class="keywordtype">long</span>);
-<a name="l00099"></a>00099 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00100"></a>00100     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>);
-<a name="l00104"></a>00104 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00105"></a>00105     <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *, const <span class="keywordtype">void</span> *);
-<a name="l00106"></a>00106 <span class="preprocessor">#define RS_DEBUG(a) rsDebug(#a, a)</span>
-<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)</span>
-<a name="l00108"></a>00108 <span class="preprocessor"></span>
-<a name="l00109"></a>00109 
-<a name="l00113"></a>00113 _RS_RUNTIME <span class="keywordtype">void</span> __attribute__((overloadable)) <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *s, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> v);
-<a name="l00117"></a>00117 _RS_RUNTIME <span class="keywordtype">void</span> __attribute__((overloadable)) <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *s, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> v);
-<a name="l00121"></a>00121 _RS_RUNTIME <span class="keywordtype">void</span> __attribute__((overloadable)) <a class="code" href="rs__debug_8rsh.html#a9a86fd617111dee78b3179a293afb66c">rsDebug</a>(const <span class="keywordtype">char</span> *s, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> v);
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123 <span class="preprocessor">#endif</span>
+<a name="l00033"></a>00033 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00034"></a>00034     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>);
+<a name="l00038"></a>00038 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00039"></a>00039     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
+<a name="l00043"></a>00043 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00044"></a>00044     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
+<a name="l00048"></a>00048 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00049"></a>00049     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>, <span class="keywordtype">float</span>);
+<a name="l00053"></a>00053 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00054"></a>00054     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>);
+<a name="l00058"></a>00058 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00059"></a>00059     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>);
+<a name="l00063"></a>00063 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00064"></a>00064     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>);
+<a name="l00068"></a>00068 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00069"></a>00069     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">double</span>);
+<a name="l00073"></a>00073 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00074"></a>00074     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, const <a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *);
+<a name="l00078"></a>00078 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00079"></a>00079     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, const <a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *);
+<a name="l00083"></a>00083 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00084"></a>00084     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, const <a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a> *);
+<a name="l00088"></a>00088 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00089"></a>00089     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
+<a name="l00093"></a>00093 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00094"></a>00094     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>);
+<a name="l00098"></a>00098 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00099"></a>00099     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">long</span>);
+<a name="l00103"></a>00103 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00104"></a>00104     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>);
+<a name="l00108"></a>00108 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00109"></a>00109     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">long</span> <span class="keywordtype">long</span>);
+<a name="l00113"></a>00113 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00114"></a>00114     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>);
+<a name="l00118"></a>00118 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00119"></a>00119     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, const <span class="keywordtype">void</span> *);
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 17))</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span>
+<a name="l00125"></a>00125 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00126"></a>00126     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">char</span>);
+<a name="l00130"></a>00130 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00131"></a>00131     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a>);
+<a name="l00135"></a>00135 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00136"></a>00136     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">char3</a>);
+<a name="l00140"></a>00140 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00141"></a>00141     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">char4</a>);
+<a name="l00145"></a>00145 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00146"></a>00146     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>);
+<a name="l00150"></a>00150 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00151"></a>00151     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a>);
+<a name="l00155"></a>00155 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00156"></a>00156     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">uchar3</a>);
+<a name="l00160"></a>00160 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00161"></a>00161     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>);
+<a name="l00165"></a>00165 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00166"></a>00166     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">short</span>);
+<a name="l00170"></a>00170 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00171"></a>00171     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a>);
+<a name="l00175"></a>00175 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00176"></a>00176     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">short3</a>);
+<a name="l00180"></a>00180 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00181"></a>00181     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">short4</a>);
+<a name="l00185"></a>00185 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00186"></a>00186     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>);
+<a name="l00190"></a>00190 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00191"></a>00191     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a>);
+<a name="l00195"></a>00195 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00196"></a>00196     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">ushort3</a>);
+<a name="l00200"></a>00200 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00201"></a>00201     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">ushort4</a>);
+<a name="l00205"></a>00205 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00206"></a>00206     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a>);
+<a name="l00210"></a>00210 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00211"></a>00211     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">int3</a>);
+<a name="l00215"></a>00215 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00216"></a>00216     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">int4</a>);
+<a name="l00220"></a>00220 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00221"></a>00221     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a>);
+<a name="l00225"></a>00225 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00226"></a>00226     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">uint3</a>);
+<a name="l00230"></a>00230 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00231"></a>00231     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">uint4</a>);
+<a name="l00235"></a>00235 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00236"></a>00236     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a>);
+<a name="l00240"></a>00240 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00241"></a>00241     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">long3</a>);
+<a name="l00245"></a>00245 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00246"></a>00246     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">long4</a>);
+<a name="l00250"></a>00250 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00251"></a>00251     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a>);
+<a name="l00255"></a>00255 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00256"></a>00256     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">ulong3</a>);
+<a name="l00260"></a>00260 extern <span class="keywordtype">void</span> __attribute__((overloadable))
+<a name="l00261"></a>00261     <a class="code" href="rs__debug_8rsh.html#aff35df661796c13fa9e616d1d387df0d">rsDebug</a>(const <span class="keywordtype">char</span> *, <a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">ulong4</a>);
+<a name="l00262"></a>00262 <span class="preprocessor">#endif  // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 17))</span>
+<a name="l00263"></a>00263 <span class="preprocessor"></span>
+<a name="l00264"></a>00264 <span class="preprocessor">#define RS_DEBUG(a) rsDebug(#a, a)</span>
+<a name="l00265"></a>00265 <span class="preprocessor"></span><span class="preprocessor">#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)</span>
+<a name="l00266"></a>00266 <span class="preprocessor"></span>
+<a name="l00267"></a>00267 <span class="preprocessor">#endif</span>
 </pre></div></div>
 </div>
 
index 5f23ae9..201f71c 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_element.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_element.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 </div>
 <div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_element.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_element.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a2ecab064ea2b720bc3af27b523388f31">rsElementGetSubElementCount</a> (<a class="el" href="structrs__element.html">rs_element</a> e)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a8c690bce7d32be759fd787740c270c92">rsElementGetSubElement</a> (<a class="el" href="structrs__element.html">rs_element</a>, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a94834eb1d91b50a5df3cbe161c22e37d">rsElementGetSubElementNameLength</a> (<a class="el" href="structrs__element.html">rs_element</a> e, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a3c1446166c43aa6ba3d5359f6c982f02">rsElementGetSubElementName</a> (<a class="el" href="structrs__element.html">rs_element</a> e, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index, char *name, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> nameLength)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a9c3140c18139db451279d9b221808eee">rsElementGetSubElementArraySize</a> (<a class="el" href="structrs__element.html">rs_element</a> e, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a840d53f1e91bb6887b40a4d8983c53ed">rsElementGetSubElementOffsetBytes</a> (<a class="el" href="structrs__element.html">rs_element</a> e, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#ac54592168af5896d3fba5283af286f98">rsElementGetBytesSize</a> (<a class="el" href="structrs__element.html">rs_element</a> e)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">rs_data_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a9a3569d242be363517ea2354d98cf382">rsElementGetDataType</a> (<a class="el" href="structrs__element.html">rs_element</a> e)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">rs_data_kind</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#af072702a530e158093d69353072da5f9">rsElementGetDataKind</a> (<a class="el" href="structrs__element.html">rs_element</a> e)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__element_8rsh.html#a727997de25ae43c07dffcfd484928d53">rsElementGetVectorSize</a> (<a class="el" href="structrs__element.html">rs_element</a> e)</td></tr>
+</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Element routines. </p>
 
 <p>Definition in file <a class="el" href="rs__element_8rsh_source.html">rs_element.rsh</a>.</p>
-</div></div>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ac54592168af5896d3fba5283af286f98"></a><!-- doxytag: member="rs_element.rsh::rsElementGetBytesSize" ref="ac54592168af5896d3fba5283af286f98" args="(rs_element e)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetBytesSize </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns the size of element in bytes</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>total size of the element in bytes </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af072702a530e158093d69353072da5f9"></a><!-- doxytag: member="rs_element.rsh::rsElementGetDataKind" ref="af072702a530e158093d69353072da5f9" args="(rs_element e)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">rs_data_kind</a> rsElementGetDataKind </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns the element's data kind</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>element's data size </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9a3569d242be363517ea2354d98cf382"></a><!-- doxytag: member="rs_element.rsh::rsElementGetDataType" ref="a9a3569d242be363517ea2354d98cf382" args="(rs_element e)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">rs_data_type</a> rsElementGetDataType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns the element's data type</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>element's data type </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8c690bce7d32be759fd787740c270c92"></a><!-- doxytag: member="rs_element.rsh::rsElementGetSubElement" ref="a8c690bce7d32be759fd787740c270c92" args="(rs_element, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structrs__element.html">rs_element</a> rsElementGetSubElement </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>For complex elements, this function will return the sub-element at index</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the sub-element to return </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>sub-element in this element at given index </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9c3140c18139db451279d9b221808eee"></a><!-- doxytag: member="rs_element.rsh::rsElementGetSubElementArraySize" ref="a9c3140c18139db451279d9b221808eee" args="(rs_element e, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetSubElementArraySize </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>For complex elements, some sub-elements could be statically sized arrays. This function will return the array size for sub-element at index</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the sub-element </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>array size of sub-element in this element at given index </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a2ecab064ea2b720bc3af27b523388f31"></a><!-- doxytag: member="rs_element.rsh::rsElementGetSubElementCount" ref="a2ecab064ea2b720bc3af27b523388f31" args="(rs_element e)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetSubElementCount </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Elements could be simple, such as an int or a float, or a structure with multiple sub elements, such as a collection of floats, float2, float4. This function returns zero for simple elements or the number of sub-elements otherwise.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>number of sub-elements in this element </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3c1446166c43aa6ba3d5359f6c982f02"></a><!-- doxytag: member="rs_element.rsh::rsElementGetSubElementName" ref="a3c1446166c43aa6ba3d5359f6c982f02" args="(rs_element e, uint32_t index, char *name, uint32_t nameLength)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetSubElementName </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>nameLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>For complex elements, this function will return the sub-element name at index</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the sub-element </td></tr>
+    <tr><td class="paramname">name</td><td>array to store the name into </td></tr>
+    <tr><td class="paramname">nameLength</td><td>length of the provided name array </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>number of characters actually written, excluding the null terminator </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a94834eb1d91b50a5df3cbe161c22e37d"></a><!-- doxytag: member="rs_element.rsh::rsElementGetSubElementNameLength" ref="a94834eb1d91b50a5df3cbe161c22e37d" args="(rs_element e, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetSubElementNameLength </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>For complex elements, this function will return the length of sub-element name at index</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the sub-element to return </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>length of the sub-element name including the null terminator (size of buffer needed to write the name) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a840d53f1e91bb6887b40a4d8983c53ed"></a><!-- doxytag: member="rs_element.rsh::rsElementGetSubElementOffsetBytes" ref="a840d53f1e91bb6887b40a4d8983c53ed" args="(rs_element e, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetSubElementOffsetBytes </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>This function specifies the location of a sub-element within the element</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the sub-element </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>offset in bytes of sub-element in this element at given index </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a727997de25ae43c07dffcfd484928d53"></a><!-- doxytag: member="rs_element.rsh::rsElementGetVectorSize" ref="a727997de25ae43c07dffcfd484928d53" args="(rs_element e)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsElementGetVectorSize </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__element.html">rs_element</a>&#160;</td>
+          <td class="paramname"><em>e</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns the element's vector size</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">e</td><td>element to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>length of the element vector (for float2, float3, etc.) </dd></dl>
+
+</div>
+</div>
+</div>
 
 </body>
 </html>
index 47ebb4d..1d2601e 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_element.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_element.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_element.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_element.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__element_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00027"></a>00027 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00028"></a>00028 <span class="preprocessor"></span>
 <a name="l00038"></a>00038 <span class="keyword">extern</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00039"></a>00039     rsElementGetSubElementCount(<a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a> e);
+<a name="l00039"></a>00039     <a class="code" href="rs__element_8rsh.html#a2ecab064ea2b720bc3af27b523388f31">rsElementGetSubElementCount</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a> e);
 <a name="l00040"></a>00040 
-<a name="l00049"></a>00049 extern <a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a> __attribute__((overloadable))
-<a name="l00050"></a>00050     rsElementGetSubElement(<a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a>, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00049"></a>00049 extern <a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a> __attribute__((overloadable))
+<a name="l00050"></a>00050     <a class="code" href="rs__element_8rsh.html#a8c690bce7d32be759fd787740c270c92">rsElementGetSubElement</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a>, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00051"></a>00051 
 <a name="l00061"></a>00061 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00062"></a>00062     rsElementGetSubElementNameLength(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00062"></a>00062     <a class="code" href="rs__element_8rsh.html#a94834eb1d91b50a5df3cbe161c22e37d">rsElementGetSubElementNameLength</a>(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00063"></a>00063 
 <a name="l00075"></a>00075 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00076"></a>00076     rsElementGetSubElementName(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index, <span class="keywordtype">char</span> *name, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> nameLength);
+<a name="l00076"></a>00076     <a class="code" href="rs__element_8rsh.html#a3c1446166c43aa6ba3d5359f6c982f02">rsElementGetSubElementName</a>(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index, <span class="keywordtype">char</span> *name, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> nameLength);
 <a name="l00077"></a>00077 
 <a name="l00088"></a>00088 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00089"></a>00089     rsElementGetSubElementArraySize(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00089"></a>00089     <a class="code" href="rs__element_8rsh.html#a9c3140c18139db451279d9b221808eee">rsElementGetSubElementArraySize</a>(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00090"></a>00090 
 <a name="l00100"></a>00100 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00101"></a>00101     rsElementGetSubElementOffsetBytes(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00101"></a>00101     <a class="code" href="rs__element_8rsh.html#a840d53f1e91bb6887b40a4d8983c53ed">rsElementGetSubElementOffsetBytes</a>(rs_element e, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00102"></a>00102 
 <a name="l00109"></a>00109 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00110"></a>00110     rsElementGetBytesSize(rs_element e);
+<a name="l00110"></a>00110     <a class="code" href="rs__element_8rsh.html#ac54592168af5896d3fba5283af286f98">rsElementGetBytesSize</a>(rs_element e);
 <a name="l00111"></a>00111 
-<a name="l00118"></a>00118 extern rs_data_type __attribute__((overloadable))
-<a name="l00119"></a>00119     rsElementGetDataType(rs_element e);
+<a name="l00118"></a>00118 extern <a class="code" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647" title="Enumeration for possible element data types.">rs_data_type</a> __attribute__((overloadable))
+<a name="l00119"></a>00119     <a class="code" href="rs__element_8rsh.html#a9a3569d242be363517ea2354d98cf382">rsElementGetDataType</a>(rs_element e);
 <a name="l00120"></a>00120 
-<a name="l00127"></a>00127 extern rs_data_kind __attribute__((overloadable))
-<a name="l00128"></a>00128     rsElementGetDataKind(rs_element e);
+<a name="l00127"></a>00127 extern <a class="code" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a" title="Enumeration for possible element data kind.">rs_data_kind</a> __attribute__((overloadable))
+<a name="l00128"></a>00128     <a class="code" href="rs__element_8rsh.html#af072702a530e158093d69353072da5f9">rsElementGetDataKind</a>(rs_element e);
 <a name="l00129"></a>00129 
 <a name="l00137"></a>00137 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00138"></a>00138     rsElementGetVectorSize(rs_element e);
+<a name="l00138"></a>00138     <a class="code" href="rs__element_8rsh.html#a727997de25ae43c07dffcfd484928d53">rsElementGetVectorSize</a>(rs_element e);
 <a name="l00139"></a>00139 
 <a name="l00140"></a>00140 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00141"></a>00141 <span class="preprocessor"></span>
index 96d5e8f..7379f54 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_math.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_math.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -27,7 +27,7 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_math.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_math.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
@@ -38,30 +38,30 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a03e898d810ac44158e7461b2b2b1c356">rsRand</a> (float max_value)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a84b2e7468314873b3aa02969e310d9e4">rsRand</a> (float min_value, float max_value)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#ac4f127e78da0849321c7f6db14f9e989">rsFrac</a> (float)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a> (<a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> amount, <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> low, <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> high)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#ad36abebbb36ffc5312fb2ed8baf98d39">rsClamp</a> (int amount, int low, int high)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a1f9e5f628fc42e8215e9dcf89ebc6897">rsClamp</a> (<a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> amount, <a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> low, <a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> high)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a7b8cb9e970171f866b75d333abf68d89">rsClamp</a> (short amount, short low, short high)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a08fe0a967cc59f2ad831115557c86c50">rsClamp</a> (<a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> amount, <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> low, <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> high)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#ae31137028793c4aaf4df839535135837">rsClamp</a> (char amount, char low, char high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a> (<a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> amount, <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> low, <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#ad5732b8b1f1d0d53d605a7dc6908dc85">rsClamp</a> (int amount, int low, int high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#af5e17f571b13c3391d860eac172be1c6">rsClamp</a> (<a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> amount, <a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> low, <a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a40eddbf6c2462eada177a581a49bd3c6">rsClamp</a> (short amount, short low, short high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a2845f16757fe9eb7204bfb6f94d7fcc6">rsClamp</a> (<a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> amount, <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> low, <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> high)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a33122202f10764687e2d3ab1a8c27062">rsClamp</a> (char amount, char low, char high)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">static __inline__ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a191f9c687c56322c18b7d71491602122">rsExtractFrustumPlanes</a> (const <a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *viewProj, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *left, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *right, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *top, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *bottom, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *near, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *far)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">static __inline__ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a7bbeaf44838e08e68d5cf3e3d7b0818c">rsIsSphereInFrustum</a> (<a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *sphere, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *left, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *right, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *top, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *bottom, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *near, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *far)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a628c8d13e3fe41fc860ad937184e4dcd">rsPackColorTo8888</a> (float r, float g, float b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a84d08e07ec8421c51ee8bd57d5b8b33e">rsPackColorTo8888</a> (float r, float g, float b, float a)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a22e0be7e18b317a7453ebad4300934f6">rsPackColorTo8888</a> (<a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> color)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a26525a4f5093bd0f13191efe06127f4b">rsUnpackColor8888</a> (<a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a5e20d326a6e2532d19a493b01f948c17">rsPackColorTo8888</a> (float r, float g, float b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a1f1107cf778cf1f614edfb5b8ac436a0">rsPackColorTo8888</a> (float r, float g, float b, float a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#ac30a8c020eade2b57fd5966cb7c8665e">rsPackColorTo8888</a> (<a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> color)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__math_8rsh.html#a48bb0c2e7b1f2b62b2a8970c7d709eca">rsUnpackColor8888</a> (<a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> c)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>todo-jsams </p>
 
 <p>Definition in file <a class="el" href="rs__math_8rsh_source.html">rs_math.rsh</a>.</p>
 </div><hr/><h2>Function Documentation</h2>
-<a class="anchor" id="ad40f2fb8f416e2ab7d2879de3b3d885e"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="ad40f2fb8f416e2ab7d2879de3b3d885e" args="(uint amount, uint low, uint high)" -->
+<a class="anchor" id="a5de277f7518a61646c3d74f3a0b9e893"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a5de277f7518a61646c3d74f3a0b9e893" args="(uint amount, uint low, uint high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> rsClamp </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> rsClamp </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -98,12 +98,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ad36abebbb36ffc5312fb2ed8baf98d39"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="ad36abebbb36ffc5312fb2ed8baf98d39" args="(int amount, int low, int high)" -->
+<a class="anchor" id="ad5732b8b1f1d0d53d605a7dc6908dc85"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="ad5732b8b1f1d0d53d605a7dc6908dc85" args="(int amount, int low, int high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME int rsClamp </td>
+          <td class="memname">int rsClamp </td>
           <td>(</td>
           <td class="paramtype">int&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -132,12 +132,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a1f9e5f628fc42e8215e9dcf89ebc6897"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a1f9e5f628fc42e8215e9dcf89ebc6897" args="(ushort amount, ushort low, ushort high)" -->
+<a class="anchor" id="af5e17f571b13c3391d860eac172be1c6"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="af5e17f571b13c3391d860eac172be1c6" args="(ushort amount, ushort low, ushort high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> rsClamp </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> rsClamp </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -166,12 +166,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a7b8cb9e970171f866b75d333abf68d89"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a7b8cb9e970171f866b75d333abf68d89" args="(short amount, short low, short high)" -->
+<a class="anchor" id="a40eddbf6c2462eada177a581a49bd3c6"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a40eddbf6c2462eada177a581a49bd3c6" args="(short amount, short low, short high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME short rsClamp </td>
+          <td class="memname">short rsClamp </td>
           <td>(</td>
           <td class="paramtype">short&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -200,12 +200,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a08fe0a967cc59f2ad831115557c86c50"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a08fe0a967cc59f2ad831115557c86c50" args="(uchar amount, uchar low, uchar high)" -->
+<a class="anchor" id="a2845f16757fe9eb7204bfb6f94d7fcc6"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a2845f16757fe9eb7204bfb6f94d7fcc6" args="(uchar amount, uchar low, uchar high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> rsClamp </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> rsClamp </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -234,12 +234,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ae31137028793c4aaf4df839535135837"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="ae31137028793c4aaf4df839535135837" args="(char amount, char low, char high)" -->
+<a class="anchor" id="a33122202f10764687e2d3ab1a8c27062"></a><!-- doxytag: member="rs_math.rsh::rsClamp" ref="a33122202f10764687e2d3ab1a8c27062" args="(char amount, char low, char high)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME char rsClamp </td>
+          <td class="memname">char rsClamp </td>
           <td>(</td>
           <td class="paramtype">char&#160;</td>
           <td class="paramname"><em>amount</em>, </td>
@@ -430,12 +430,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a628c8d13e3fe41fc860ad937184e4dcd"></a><!-- doxytag: member="rs_math.rsh::rsPackColorTo8888" ref="a628c8d13e3fe41fc860ad937184e4dcd" args="(float r, float g, float b)" -->
+<a class="anchor" id="a5e20d326a6e2532d19a493b01f948c17"></a><!-- doxytag: member="rs_math.rsh::rsPackColorTo8888" ref="a5e20d326a6e2532d19a493b01f948c17" args="(float r, float g, float b)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> rsPackColorTo8888 </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> rsPackColorTo8888 </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>r</em>, </td>
@@ -473,12 +473,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a84d08e07ec8421c51ee8bd57d5b8b33e"></a><!-- doxytag: member="rs_math.rsh::rsPackColorTo8888" ref="a84d08e07ec8421c51ee8bd57d5b8b33e" args="(float r, float g, float b, float a)" -->
+<a class="anchor" id="a1f1107cf778cf1f614edfb5b8ac436a0"></a><!-- doxytag: member="rs_math.rsh::rsPackColorTo8888" ref="a1f1107cf778cf1f614edfb5b8ac436a0" args="(float r, float g, float b, float a)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> rsPackColorTo8888 </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> rsPackColorTo8888 </td>
           <td>(</td>
           <td class="paramtype">float&#160;</td>
           <td class="paramname"><em>r</em>, </td>
@@ -523,12 +523,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a22e0be7e18b317a7453ebad4300934f6"></a><!-- doxytag: member="rs_math.rsh::rsPackColorTo8888" ref="a22e0be7e18b317a7453ebad4300934f6" args="(float3 color)" -->
+<a class="anchor" id="ac30a8c020eade2b57fd5966cb7c8665e"></a><!-- doxytag: member="rs_math.rsh::rsPackColorTo8888" ref="ac30a8c020eade2b57fd5966cb7c8665e" args="(float3 color)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> rsPackColorTo8888 </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> rsPackColorTo8888 </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>&#160;</td>
           <td class="paramname"><em>color</em></td><td>)</td>
@@ -648,12 +648,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a26525a4f5093bd0f13191efe06127f4b"></a><!-- doxytag: member="rs_math.rsh::rsUnpackColor8888" ref="a26525a4f5093bd0f13191efe06127f4b" args="(uchar4 c)" -->
+<a class="anchor" id="a48bb0c2e7b1f2b62b2a8970c7d709eca"></a><!-- doxytag: member="rs_math.rsh::rsUnpackColor8888" ref="a48bb0c2e7b1f2b62b2a8970c7d709eca" args="(uchar4 c)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> rsUnpackColor8888 </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> rsUnpackColor8888 </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a>&#160;</td>
           <td class="paramname"><em>c</em></td><td>)</td>
index eb4ddac..513ce48 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_math.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_math.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_math.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_math.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__math_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00055"></a>00055 
 <a name="l00057"></a>00057 <span class="comment">// int ops</span>
 <a name="l00059"></a>00059 <span class="comment"></span>
-<a name="l00067"></a>00067 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a>(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> amount, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> low, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> high);
+<a name="l00067"></a>00067 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a>(<a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> amount, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> low, <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> high);
 <a name="l00068"></a>00068 
-<a name="l00072"></a>00072 _RS_RUNTIME <span class="keywordtype">int</span> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a>(<span class="keywordtype">int</span> amount, <span class="keywordtype">int</span> low, <span class="keywordtype">int</span> high);
-<a name="l00076"></a>00076 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a>(<a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> amount, <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> low, <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> high);
-<a name="l00080"></a>00080 _RS_RUNTIME <span class="keywordtype">short</span> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a>(<span class="keywordtype">short</span> amount, <span class="keywordtype">short</span> low, <span class="keywordtype">short</span> high);
-<a name="l00084"></a>00084 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a>(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> amount, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> low, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> high);
-<a name="l00088"></a>00088 _RS_RUNTIME <span class="keywordtype">char</span> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#ad40f2fb8f416e2ab7d2879de3b3d885e">rsClamp</a>(<span class="keywordtype">char</span> amount, <span class="keywordtype">char</span> low, <span class="keywordtype">char</span> high);
+<a name="l00072"></a>00072 _RS_RUNTIME <span class="keywordtype">int</span> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a>(<span class="keywordtype">int</span> amount, <span class="keywordtype">int</span> low, <span class="keywordtype">int</span> high);
+<a name="l00076"></a>00076 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a>(<a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> amount, <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> low, <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> high);
+<a name="l00080"></a>00080 _RS_RUNTIME <span class="keywordtype">short</span> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a>(<span class="keywordtype">short</span> amount, <span class="keywordtype">short</span> low, <span class="keywordtype">short</span> high);
+<a name="l00084"></a>00084 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a>(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> amount, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> low, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> high);
+<a name="l00088"></a>00088 _RS_RUNTIME <span class="keywordtype">char</span> __attribute__((overloadable, always_inline)) <a class="code" href="rs__math_8rsh.html#a5de277f7518a61646c3d74f3a0b9e893">rsClamp</a>(<span class="keywordtype">char</span> amount, <span class="keywordtype">char</span> low, <span class="keywordtype">char</span> high);
 <a name="l00089"></a>00089 
 <a name="l00090"></a>00090 
 <a name="l00101"></a>00101 __inline__ static <span class="keywordtype">void</span> __attribute__((overloadable, always_inline))
 <a name="l00134"></a>00134     far-&gt;z = viewProj-&gt;m[11] - viewProj-&gt;m[10];
 <a name="l00135"></a>00135     far-&gt;w = viewProj-&gt;m[15] - viewProj-&gt;m[14];
 <a name="l00136"></a>00136 
-<a name="l00137"></a>00137     <span class="keywordtype">float</span> len = <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(left-&gt;xyz);
+<a name="l00137"></a>00137     <span class="keywordtype">float</span> len = <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(left-&gt;xyz);
 <a name="l00138"></a>00138     *left /= len;
-<a name="l00139"></a>00139     len = <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(right-&gt;xyz);
+<a name="l00139"></a>00139     len = <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(right-&gt;xyz);
 <a name="l00140"></a>00140     *right /= len;
-<a name="l00141"></a>00141     len = <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(top-&gt;xyz);
+<a name="l00141"></a>00141     len = <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(top-&gt;xyz);
 <a name="l00142"></a>00142     *top /= len;
-<a name="l00143"></a>00143     len = <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(bottom-&gt;xyz);
+<a name="l00143"></a>00143     len = <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(bottom-&gt;xyz);
 <a name="l00144"></a>00144     *bottom /= len;
-<a name="l00145"></a>00145     len = <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(near-&gt;xyz);
+<a name="l00145"></a>00145     len = <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(near-&gt;xyz);
 <a name="l00146"></a>00146     *near /= len;
-<a name="l00147"></a>00147     len = <a class="code" href="rs__cl_8rsh.html#a1a222b7879342279e1e0070d6afd9e18">length</a>(far-&gt;xyz);
+<a name="l00147"></a>00147     len = <a class="code" href="rs__cl_8rsh.html#a902d4d2fab31ba8f9631b1f681e99baa">length</a>(far-&gt;xyz);
 <a name="l00148"></a>00148     *far /= len;
 <a name="l00149"></a>00149 }
 <a name="l00150"></a>00150 
 <a name="l00164"></a>00164                       <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *top, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *bottom,
 <a name="l00165"></a>00165                       <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *near, <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> *far) {
 <a name="l00166"></a>00166 
-<a name="l00167"></a>00167     <span class="keywordtype">float</span> distToCenter = <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(left-&gt;xyz, sphere-&gt;xyz) + left-&gt;w;
+<a name="l00167"></a>00167     <span class="keywordtype">float</span> distToCenter = <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(left-&gt;xyz, sphere-&gt;xyz) + left-&gt;w;
 <a name="l00168"></a>00168     <span class="keywordflow">if</span> (distToCenter &lt; -sphere-&gt;w) {
 <a name="l00169"></a>00169         <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00170"></a>00170     }
-<a name="l00171"></a>00171     distToCenter = <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(right-&gt;xyz, sphere-&gt;xyz) + right-&gt;w;
+<a name="l00171"></a>00171     distToCenter = <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(right-&gt;xyz, sphere-&gt;xyz) + right-&gt;w;
 <a name="l00172"></a>00172     <span class="keywordflow">if</span> (distToCenter &lt; -sphere-&gt;w) {
 <a name="l00173"></a>00173         <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00174"></a>00174     }
-<a name="l00175"></a>00175     distToCenter = <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(top-&gt;xyz, sphere-&gt;xyz) + top-&gt;w;
+<a name="l00175"></a>00175     distToCenter = <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(top-&gt;xyz, sphere-&gt;xyz) + top-&gt;w;
 <a name="l00176"></a>00176     <span class="keywordflow">if</span> (distToCenter &lt; -sphere-&gt;w) {
 <a name="l00177"></a>00177         <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00178"></a>00178     }
-<a name="l00179"></a>00179     distToCenter = <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(bottom-&gt;xyz, sphere-&gt;xyz) + bottom-&gt;w;
+<a name="l00179"></a>00179     distToCenter = <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(bottom-&gt;xyz, sphere-&gt;xyz) + bottom-&gt;w;
 <a name="l00180"></a>00180     <span class="keywordflow">if</span> (distToCenter &lt; -sphere-&gt;w) {
 <a name="l00181"></a>00181         <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00182"></a>00182     }
-<a name="l00183"></a>00183     distToCenter = <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(near-&gt;xyz, sphere-&gt;xyz) + near-&gt;w;
+<a name="l00183"></a>00183     distToCenter = <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(near-&gt;xyz, sphere-&gt;xyz) + near-&gt;w;
 <a name="l00184"></a>00184     <span class="keywordflow">if</span> (distToCenter &lt; -sphere-&gt;w) {
 <a name="l00185"></a>00185         <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00186"></a>00186     }
-<a name="l00187"></a>00187     distToCenter = <a class="code" href="rs__cl_8rsh.html#a70544acaca578035a849eef67d62c449">dot</a>(far-&gt;xyz, sphere-&gt;xyz) + far-&gt;w;
+<a name="l00187"></a>00187     distToCenter = <a class="code" href="rs__cl_8rsh.html#aa26d85eac3067e9769b33b6914b180f2">dot</a>(far-&gt;xyz, sphere-&gt;xyz) + far-&gt;w;
 <a name="l00188"></a>00188     <span class="keywordflow">if</span> (distToCenter &lt; -sphere-&gt;w) {
 <a name="l00189"></a>00189         <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00190"></a>00190     }
 <a name="l00192"></a>00192 }
 <a name="l00193"></a>00193 
 <a name="l00194"></a>00194 
-<a name="l00205"></a>00205 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a628c8d13e3fe41fc860ad937184e4dcd">rsPackColorTo8888</a>(<span class="keywordtype">float</span> r, <span class="keywordtype">float</span> g, <span class="keywordtype">float</span> b);
+<a name="l00205"></a>00205 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a5e20d326a6e2532d19a493b01f948c17">rsPackColorTo8888</a>(<span class="keywordtype">float</span> r, <span class="keywordtype">float</span> g, <span class="keywordtype">float</span> b);
 <a name="l00206"></a>00206 
-<a name="l00217"></a>00217 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a628c8d13e3fe41fc860ad937184e4dcd">rsPackColorTo8888</a>(<span class="keywordtype">float</span> r, <span class="keywordtype">float</span> g, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> a);
+<a name="l00217"></a>00217 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a5e20d326a6e2532d19a493b01f948c17">rsPackColorTo8888</a>(<span class="keywordtype">float</span> r, <span class="keywordtype">float</span> g, <span class="keywordtype">float</span> b, <span class="keywordtype">float</span> a);
 <a name="l00218"></a>00218 
-<a name="l00227"></a>00227 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a628c8d13e3fe41fc860ad937184e4dcd">rsPackColorTo8888</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> color);
+<a name="l00227"></a>00227 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a5e20d326a6e2532d19a493b01f948c17">rsPackColorTo8888</a>(<a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> color);
 <a name="l00228"></a>00228 
-<a name="l00236"></a>00236 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a628c8d13e3fe41fc860ad937184e4dcd">rsPackColorTo8888</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> color);
+<a name="l00236"></a>00236 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) <a class="code" href="rs__math_8rsh.html#a5e20d326a6e2532d19a493b01f948c17">rsPackColorTo8888</a>(<a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> color);
 <a name="l00237"></a>00237 
-<a name="l00245"></a>00245 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> <a class="code" href="rs__math_8rsh.html#a26525a4f5093bd0f13191efe06127f4b">rsUnpackColor8888</a>(<a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> c);
+<a name="l00245"></a>00245 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> <a class="code" href="rs__math_8rsh.html#a48bb0c2e7b1f2b62b2a8970c7d709eca">rsUnpackColor8888</a>(<a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> c);
 <a name="l00246"></a>00246 
-<a name="l00247"></a>00247 
-<a name="l00248"></a>00248 <span class="preprocessor">#endif</span>
+<a name="l00247"></a>00247 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((overloadable)) rsYuvToRGBA_uchar4(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> y, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> u, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v);
+<a name="l00248"></a>00248 _RS_RUNTIME <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((overloadable)) rsYuvToRGBA_float4(<a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> y, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> u, <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> v);
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251 <span class="preprocessor">#endif</span>
 </pre></div></div>
 </div>
 
index 583a92a..69cc373 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_matrix.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_matrix.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_matrix.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_matrix.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
 <tr><td colspan="2"><h2><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a68e320f7fa2cc5a5b4759e3ab679ee10">rsMatrixSet</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ada106cb8f08e4b23930d7ba1a0ce5609">rsMatrixSet</a> (<a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a086c4f1cd21500f8e332226af4f62001">rsMatrixSet</a> (<a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, float v)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#af1fb87eb02f166bb85ef10a92333bb49">rsMatrixGet</a> (const <a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a90b0548da8dbe1f643bcbac8466e5b72">rsMatrixGet</a> (const <a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a22a46174a3c72452c9f6c33403aeae19">rsMatrixGet</a> (const <a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ad6ea242218e0f1a031f754df0317e6e7">rsMatrixSet</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ab69543f85a673f23fbb5f893e5824395">rsMatrixSet</a> (<a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a0a85c8d3607f1b75019f6991c5b19fca">rsMatrixSet</a> (<a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, float v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a22e983b67d3089c5cb97032e249ca335">rsMatrixGet</a> (const <a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ad485084684991796cffdd8a008557569">rsMatrixGet</a> (const <a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#aaa86b029d5c5c15fead5338bba02e4c3">rsMatrixGet</a> (const <a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a0ffd9de971cf10d0a663ff565be8d3cc">rsMatrixLoadIdentity</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a5b31e83553efa947db2198674d5db043">rsMatrixLoadIdentity</a> (<a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ad2954a5ac11d2370227296be89e92471">rsMatrixLoadIdentity</a> (<a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m)</td></tr>
@@ -65,9 +65,9 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a4c59884a0e534dbbcdc5655842732d43">rsMatrixLoadOrtho</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, float left, float right, float bottom, float top, float near, float far)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ad25760aaf01e95d0055237afab41bbb3">rsMatrixLoadFrustum</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, float left, float right, float bottom, float top, float near, float far)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#aa404c34d7478f2921f7415d2da95d02b">rsMatrixLoadPerspective</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, float fovy, float aspect, float near, float far)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a47b6abbf32ffaf77bb13d96c3f05779f">rsMatrixMultiply</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> in)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a716bc2d29b80eb25388aba3ba8845aef">rsMatrixMultiply</a> (<a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m, <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> in)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a4d9a8bb7c3f5d67b14fa349bdd531d13">rsMatrixMultiply</a> (<a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m, <a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> in)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a2f11c3d7cc34ddce90ba785b93af8da2">rsMatrixMultiply</a> (const <a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m, <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> in)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a88ae2ed203769cb4a7917f84f6c1a2e2">rsMatrixMultiply</a> (const <a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *m, <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> in)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a8d81a7143d5d45f60f7e91f955579bab">rsMatrixMultiply</a> (const <a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *m, <a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> in)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a00b6a334ba5ac94d84850f22ec9f4de5">rsMatrixInverse</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#ac05080d52da2d99a759ef34fa0655e82">rsMatrixInverseTranspose</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__matrix_8rsh.html#a88095c70f1550c760844b3e32e41a31a">rsMatrixTranspose</a> (<a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *m)</td></tr>
@@ -79,12 +79,12 @@ Functions</h2></td></tr>
 
 <p>Definition in file <a class="el" href="rs__matrix_8rsh_source.html">rs_matrix.rsh</a>.</p>
 </div><hr/><h2>Function Documentation</h2>
-<a class="anchor" id="af1fb87eb02f166bb85ef10a92333bb49"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixGet" ref="af1fb87eb02f166bb85ef10a92333bb49" args="(const rs_matrix4x4 *m, uint32_t row, uint32_t col)" -->
+<a class="anchor" id="a22e983b67d3089c5cb97032e249ca335"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixGet" ref="a22e983b67d3089c5cb97032e249ca335" args="(const rs_matrix4x4 *m, uint32_t row, uint32_t col)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float rsMatrixGet </td>
+          <td class="memname">float rsMatrixGet </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
@@ -122,12 +122,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a90b0548da8dbe1f643bcbac8466e5b72"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixGet" ref="a90b0548da8dbe1f643bcbac8466e5b72" args="(const rs_matrix3x3 *m, uint32_t row, uint32_t col)" -->
+<a class="anchor" id="ad485084684991796cffdd8a008557569"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixGet" ref="ad485084684991796cffdd8a008557569" args="(const rs_matrix3x3 *m, uint32_t row, uint32_t col)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float rsMatrixGet </td>
+          <td class="memname">float rsMatrixGet </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
@@ -156,12 +156,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a22a46174a3c72452c9f6c33403aeae19"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixGet" ref="a22a46174a3c72452c9f6c33403aeae19" args="(const rs_matrix2x2 *m, uint32_t row, uint32_t col)" -->
+<a class="anchor" id="aaa86b029d5c5c15fead5338bba02e4c3"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixGet" ref="aaa86b029d5c5c15fead5338bba02e4c3" args="(const rs_matrix2x2 *m, uint32_t row, uint32_t col)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME float rsMatrixGet </td>
+          <td class="memname">float rsMatrixGet </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
@@ -1085,14 +1085,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a47b6abbf32ffaf77bb13d96c3f05779f"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixMultiply" ref="a47b6abbf32ffaf77bb13d96c3f05779f" args="(rs_matrix4x4 *m, float4 in)" -->
+<a class="anchor" id="a2f11c3d7cc34ddce90ba785b93af8da2"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixMultiply" ref="a2f11c3d7cc34ddce90ba785b93af8da2" args="(const rs_matrix4x4 *m, float4 in)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> rsMatrixMultiply </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> rsMatrixMultiply </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *&#160;</td>
+          <td class="paramtype">const <a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
         </tr>
         <tr>
@@ -1109,19 +1109,19 @@ Functions</h2></td></tr>
       </table>
 </div>
 <div class="memdoc">
-<p>Multiply a vector by a matrix and return the result vector. API version 10-13</p>
+<p>Multiply a vector by a matrix and return the result vector. API version 14+</p>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
 </div>
 </div>
-<a class="anchor" id="a716bc2d29b80eb25388aba3ba8845aef"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixMultiply" ref="a716bc2d29b80eb25388aba3ba8845aef" args="(rs_matrix3x3 *m, float3 in)" -->
+<a class="anchor" id="a88ae2ed203769cb4a7917f84f6c1a2e2"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixMultiply" ref="a88ae2ed203769cb4a7917f84f6c1a2e2" args="(const rs_matrix3x3 *m, float3 in)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> rsMatrixMultiply </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> rsMatrixMultiply </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *&#160;</td>
+          <td class="paramtype">const <a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
         </tr>
         <tr>
@@ -1142,14 +1142,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a4d9a8bb7c3f5d67b14fa349bdd531d13"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixMultiply" ref="a4d9a8bb7c3f5d67b14fa349bdd531d13" args="(rs_matrix2x2 *m, float2 in)" -->
+<a class="anchor" id="a8d81a7143d5d45f60f7e91f955579bab"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixMultiply" ref="a8d81a7143d5d45f60f7e91f955579bab" args="(const rs_matrix2x2 *m, float2 in)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME <a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> rsMatrixMultiply </td>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> rsMatrixMultiply </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *&#160;</td>
+          <td class="paramtype">const <a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
         </tr>
         <tr>
@@ -1275,12 +1275,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a68e320f7fa2cc5a5b4759e3ab679ee10"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixSet" ref="a68e320f7fa2cc5a5b4759e3ab679ee10" args="(rs_matrix4x4 *m, uint32_t row, uint32_t col, float v)" -->
+<a class="anchor" id="ad6ea242218e0f1a031f754df0317e6e7"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixSet" ref="ad6ea242218e0f1a031f754df0317e6e7" args="(rs_matrix4x4 *m, uint32_t row, uint32_t col, float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME void rsMatrixSet </td>
+          <td class="memname">void rsMatrixSet </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
@@ -1325,12 +1325,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ada106cb8f08e4b23930d7ba1a0ce5609"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixSet" ref="ada106cb8f08e4b23930d7ba1a0ce5609" args="(rs_matrix3x3 *m, uint32_t row, uint32_t col, float v)" -->
+<a class="anchor" id="ab69543f85a673f23fbb5f893e5824395"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixSet" ref="ab69543f85a673f23fbb5f893e5824395" args="(rs_matrix3x3 *m, uint32_t row, uint32_t col, float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME void rsMatrixSet </td>
+          <td class="memname">void rsMatrixSet </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
@@ -1365,12 +1365,12 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a086c4f1cd21500f8e332226af4f62001"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixSet" ref="a086c4f1cd21500f8e332226af4f62001" args="(rs_matrix2x2 *m, uint32_t row, uint32_t col, float v)" -->
+<a class="anchor" id="a0a85c8d3607f1b75019f6991c5b19fca"></a><!-- doxytag: member="rs_matrix.rsh::rsMatrixSet" ref="a0a85c8d3607f1b75019f6991c5b19fca" args="(rs_matrix2x2 *m, uint32_t row, uint32_t col, float v)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">_RS_RUNTIME void rsMatrixSet </td>
+          <td class="memname">void rsMatrixSet </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structrs__matrix2x2.html">rs_matrix2x2</a> *&#160;</td>
           <td class="paramname"><em>m</em>, </td>
index be83c9b..c1aaeb2 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_matrix.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_matrix.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_matrix.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_matrix.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__matrix_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define __RS_MATRIX_RSH__</span>
 <a name="l00025"></a>00025 <span class="preprocessor"></span>
 <a name="l00036"></a>00036 _RS_RUNTIME <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00037"></a>00037 <a class="code" href="rs__matrix_8rsh.html#a68e320f7fa2cc5a5b4759e3ab679ee10">rsMatrixSet</a>(<a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, <span class="keywordtype">float</span> v);
+<a name="l00037"></a>00037 <a class="code" href="rs__matrix_8rsh.html#ad6ea242218e0f1a031f754df0317e6e7">rsMatrixSet</a>(<a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, <span class="keywordtype">float</span> v);
 <a name="l00041"></a>00041 _RS_RUNTIME <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00042"></a>00042 <a class="code" href="rs__matrix_8rsh.html#a68e320f7fa2cc5a5b4759e3ab679ee10">rsMatrixSet</a>(<a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, <span class="keywordtype">float</span> v);
+<a name="l00042"></a>00042 <a class="code" href="rs__matrix_8rsh.html#ad6ea242218e0f1a031f754df0317e6e7">rsMatrixSet</a>(<a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, <span class="keywordtype">float</span> v);
 <a name="l00046"></a>00046 _RS_RUNTIME <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00047"></a>00047 <a class="code" href="rs__matrix_8rsh.html#a68e320f7fa2cc5a5b4759e3ab679ee10">rsMatrixSet</a>(<a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, <span class="keywordtype">float</span> v);
+<a name="l00047"></a>00047 <a class="code" href="rs__matrix_8rsh.html#ad6ea242218e0f1a031f754df0317e6e7">rsMatrixSet</a>(<a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col, <span class="keywordtype">float</span> v);
 <a name="l00048"></a>00048 
 <a name="l00058"></a>00058 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable))
-<a name="l00059"></a>00059 <a class="code" href="rs__matrix_8rsh.html#af1fb87eb02f166bb85ef10a92333bb49">rsMatrixGet</a>(const <a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col);
+<a name="l00059"></a>00059 <a class="code" href="rs__matrix_8rsh.html#a22e983b67d3089c5cb97032e249ca335">rsMatrixGet</a>(const <a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col);
 <a name="l00063"></a>00063 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable))
-<a name="l00064"></a>00064 <a class="code" href="rs__matrix_8rsh.html#af1fb87eb02f166bb85ef10a92333bb49">rsMatrixGet</a>(const <a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col);
+<a name="l00064"></a>00064 <a class="code" href="rs__matrix_8rsh.html#a22e983b67d3089c5cb97032e249ca335">rsMatrixGet</a>(const <a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col);
 <a name="l00068"></a>00068 _RS_RUNTIME <span class="keywordtype">float</span> __attribute__((overloadable))
-<a name="l00069"></a>00069 <a class="code" href="rs__matrix_8rsh.html#af1fb87eb02f166bb85ef10a92333bb49">rsMatrixGet</a>(const <a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col);
+<a name="l00069"></a>00069 <a class="code" href="rs__matrix_8rsh.html#a22e983b67d3089c5cb97032e249ca335">rsMatrixGet</a>(const <a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a> *m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> row, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> col);
 <a name="l00070"></a>00070 
 <a name="l00076"></a>00076 extern <span class="keywordtype">void</span> __attribute__((overloadable)) <a class="code" href="rs__matrix_8rsh.html#a0ffd9de971cf10d0a663ff565be8d3cc">rsMatrixLoadIdentity</a>(<a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a> *m);
 <a name="l00080"></a>00080 extern <span class="keywordtype">void</span> __attribute__((overloadable)) <a class="code" href="rs__matrix_8rsh.html#a0ffd9de971cf10d0a663ff565be8d3cc">rsMatrixLoadIdentity</a>(<a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a> *m);
index 81ac93e..82824ad 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_mesh.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_mesh.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 </div>
 <div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_mesh.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_mesh.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__mesh_8rsh.html#a7578d6d93154ac881715ab511449fab9">rsgMeshGetVertexAllocationCount</a> (<a class="el" href="structrs__mesh.html">rs_mesh</a> m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__mesh_8rsh.html#ae0a0178cc02508517013486be4500d7f">rsgMeshGetPrimitiveCount</a> (<a class="el" href="structrs__mesh.html">rs_mesh</a> m)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__mesh_8rsh.html#a43e1d84147176cb0a1659552fa8da49f">rsgMeshGetVertexAllocation</a> (<a class="el" href="structrs__mesh.html">rs_mesh</a> m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structrs__allocation.html">rs_allocation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__mesh_8rsh.html#a05257c9252e7804397d6a6f7549bae5a">rsgMeshGetIndexAllocation</a> (<a class="el" href="structrs__mesh.html">rs_mesh</a> m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_primitive</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__mesh_8rsh.html#af467f1c21cc9221071334f8234c29466">rsgMeshGetPrimitive</a> (<a class="el" href="structrs__mesh.html">rs_mesh</a> m, <a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index)</td></tr>
+</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Mesh routines. </p>
 
 <p>Definition in file <a class="el" href="rs__mesh_8rsh_source.html">rs_mesh.rsh</a>.</p>
-</div></div>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a05257c9252e7804397d6a6f7549bae5a"></a><!-- doxytag: member="rs_mesh.rsh::rsgMeshGetIndexAllocation" ref="a05257c9252e7804397d6a6f7549bae5a" args="(rs_mesh m, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structrs__allocation.html">rs_allocation</a> rsgMeshGetIndexAllocation </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__mesh.html">rs_mesh</a>&#160;</td>
+          <td class="paramname"><em>m</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns an allocation containing index data or a null allocation if only the primitive is specified</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">m</td><td>mesh to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the index allocation </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>allocation containing index data </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af467f1c21cc9221071334f8234c29466"></a><!-- doxytag: member="rs_mesh.rsh::rsgMeshGetPrimitive" ref="af467f1c21cc9221071334f8234c29466" args="(rs_mesh m, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_primitive</a> rsgMeshGetPrimitive </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__mesh.html">rs_mesh</a>&#160;</td>
+          <td class="paramname"><em>m</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns the primitive describing how a part of the mesh is rendered</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">m</td><td>mesh to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the primitive </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>primitive describing how the mesh is rendered </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae0a0178cc02508517013486be4500d7f"></a><!-- doxytag: member="rs_mesh.rsh::rsgMeshGetPrimitiveCount" ref="ae0a0178cc02508517013486be4500d7f" args="(rs_mesh m)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsgMeshGetPrimitiveCount </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__mesh.html">rs_mesh</a>&#160;</td>
+          <td class="paramname"><em>m</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Meshes could have multiple index sets, this function returns the number.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">m</td><td>mesh to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>number of primitive groups in the mesh. This would include simple primitives as well as allocations containing index data </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a43e1d84147176cb0a1659552fa8da49f"></a><!-- doxytag: member="rs_mesh.rsh::rsgMeshGetVertexAllocation" ref="a43e1d84147176cb0a1659552fa8da49f" args="(rs_mesh m, uint32_t index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structrs__allocation.html">rs_allocation</a> rsgMeshGetVertexAllocation </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__mesh.html">rs_mesh</a>&#160;</td>
+          <td class="paramname"><em>m</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns an allocation that is part of the mesh and contains vertex data, e.g. positions, normals, texcoords</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">m</td><td>mesh to get data from </td></tr>
+    <tr><td class="paramname">index</td><td>index of the vertex allocation </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>allocation containing vertex data </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7578d6d93154ac881715ab511449fab9"></a><!-- doxytag: member="rs_mesh.rsh::rsgMeshGetVertexAllocationCount" ref="a7578d6d93154ac881715ab511449fab9" args="(rs_mesh m)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> rsgMeshGetVertexAllocationCount </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__mesh.html">rs_mesh</a>&#160;</td>
+          <td class="paramname"><em>m</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Returns the number of allocations in the mesh that contain vertex data</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">m</td><td>mesh to get data from </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>number of allocations in the mesh that contain vertex data </dd></dl>
+
+</div>
+</div>
+</div>
 
 </body>
 </html>
index e344b47..f9416c8 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_mesh.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_mesh.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_mesh.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_mesh.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__mesh_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00027"></a>00027 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00028"></a>00028 <span class="preprocessor"></span>
 <a name="l00037"></a>00037 <span class="keyword">extern</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00038"></a>00038     rsgMeshGetVertexAllocationCount(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> m);
+<a name="l00038"></a>00038     <a class="code" href="rs__mesh_8rsh.html#a7578d6d93154ac881715ab511449fab9">rsgMeshGetVertexAllocationCount</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> m);
 <a name="l00039"></a>00039 
 <a name="l00049"></a>00049 extern <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> __attribute__((overloadable))
-<a name="l00050"></a>00050     rsgMeshGetPrimitiveCount(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> m);
+<a name="l00050"></a>00050     <a class="code" href="rs__mesh_8rsh.html#ae0a0178cc02508517013486be4500d7f">rsgMeshGetPrimitiveCount</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> m);
 <a name="l00051"></a>00051 
-<a name="l00060"></a>00060 extern <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> __attribute__((overloadable))
-<a name="l00061"></a>00061     rsgMeshGetVertexAllocation(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00060"></a>00060 extern <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> __attribute__((overloadable))
+<a name="l00061"></a>00061     <a class="code" href="rs__mesh_8rsh.html#a43e1d84147176cb0a1659552fa8da49f">rsgMeshGetVertexAllocation</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00062"></a>00062 
-<a name="l00071"></a>00071 extern <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> __attribute__((overloadable))
-<a name="l00072"></a>00072     rsgMeshGetIndexAllocation(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00071"></a>00071 extern <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> __attribute__((overloadable))
+<a name="l00072"></a>00072     <a class="code" href="rs__mesh_8rsh.html#a05257c9252e7804397d6a6f7549bae5a">rsgMeshGetIndexAllocation</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00073"></a>00073 
-<a name="l00082"></a>00082 extern rs_primitive __attribute__((overloadable))
-<a name="l00083"></a>00083     rsgMeshGetPrimitive(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
+<a name="l00082"></a>00082 extern <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_primitive</a> __attribute__((overloadable))
+<a name="l00083"></a>00083     <a class="code" href="rs__mesh_8rsh.html#af467f1c21cc9221071334f8234c29466">rsgMeshGetPrimitive</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> m, <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> index);
 <a name="l00084"></a>00084 
 <a name="l00085"></a>00085 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00086"></a>00086 <span class="preprocessor"></span>
index 9ac7bb8..6ace343 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_object.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_object.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -27,7 +27,7 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_object.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_object.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
index e55769b..9cd43b4 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_object.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_object.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_object.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_object.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__object_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00025"></a>00025 <span class="preprocessor"></span>
 <a name="l00026"></a>00026 
 <a name="l00033"></a>00033 <span class="keyword">extern</span> <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00034"></a>00034     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a> *dst, <a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a> src);
+<a name="l00034"></a>00034     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a> *dst, <a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a> src);
 <a name="l00038"></a>00038 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00039"></a>00039     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__type.html" title="Opaque handle to a Renderscript type.">rs_type</a> *dst, <a class="code" href="structrs__type.html" title="Opaque handle to a Renderscript type.">rs_type</a> src);
+<a name="l00039"></a>00039     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__type.html" title="Opaque handle to a RenderScript type.">rs_type</a> *dst, <a class="code" href="structrs__type.html" title="Opaque handle to a RenderScript type.">rs_type</a> src);
 <a name="l00043"></a>00043 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00044"></a>00044     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> *dst, <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> src);
+<a name="l00044"></a>00044     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> *dst, <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> src);
 <a name="l00048"></a>00048 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00049"></a>00049     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> *dst, <a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> src);
+<a name="l00049"></a>00049     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> *dst, <a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> src);
 <a name="l00053"></a>00053 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00054"></a>00054     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> *dst, <a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> src);
+<a name="l00054"></a>00054     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> *dst, <a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> src);
 <a name="l00058"></a>00058 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00059"></a>00059     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__path.html" title="Opaque handle to a Renderscript Path object.">rs_path</a> *dst, <a class="code" href="structrs__path.html" title="Opaque handle to a Renderscript Path object.">rs_path</a> src);
+<a name="l00059"></a>00059     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__path.html" title="Opaque handle to a RenderScript Path object.">rs_path</a> *dst, <a class="code" href="structrs__path.html" title="Opaque handle to a RenderScript Path object.">rs_path</a> src);
 <a name="l00063"></a>00063 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00064"></a>00064     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> *dst, <a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> src);
+<a name="l00064"></a>00064     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> *dst, <a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> src);
 <a name="l00068"></a>00068 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00069"></a>00069     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__fragment.html" title="Opaque handle to a Renderscript ProgramFragment object.">rs_program_fragment</a> *dst, <a class="code" href="structrs__program__fragment.html" title="Opaque handle to a Renderscript ProgramFragment object.">rs_program_fragment</a> src);
+<a name="l00069"></a>00069     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__fragment.html" title="Opaque handle to a RenderScript ProgramFragment object.">rs_program_fragment</a> *dst, <a class="code" href="structrs__program__fragment.html" title="Opaque handle to a RenderScript ProgramFragment object.">rs_program_fragment</a> src);
 <a name="l00073"></a>00073 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00074"></a>00074     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__vertex.html" title="Opaque handle to a Renderscript ProgramVertex object.">rs_program_vertex</a> *dst, <a class="code" href="structrs__program__vertex.html" title="Opaque handle to a Renderscript ProgramVertex object.">rs_program_vertex</a> src);
+<a name="l00074"></a>00074     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__vertex.html" title="Opaque handle to a RenderScript ProgramVertex object.">rs_program_vertex</a> *dst, <a class="code" href="structrs__program__vertex.html" title="Opaque handle to a RenderScript ProgramVertex object.">rs_program_vertex</a> src);
 <a name="l00078"></a>00078 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00079"></a>00079     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a> *dst, <a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a> src);
+<a name="l00079"></a>00079     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a> *dst, <a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a> src);
 <a name="l00083"></a>00083 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00084"></a>00084     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> *dst, <a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> src);
+<a name="l00084"></a>00084     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> *dst, <a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> src);
 <a name="l00088"></a>00088 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00089"></a>00089     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__font.html" title="Opaque handle to a Renderscript font object.">rs_font</a> *dst, <a class="code" href="structrs__font.html" title="Opaque handle to a Renderscript font object.">rs_font</a> src);
+<a name="l00089"></a>00089     <a class="code" href="rs__object_8rsh.html#af6983a1578621ce283acc07f876cda62">rsSetObject</a>(<a class="code" href="structrs__font.html" title="Opaque handle to a RenderScript font object.">rs_font</a> *dst, <a class="code" href="structrs__font.html" title="Opaque handle to a RenderScript font object.">rs_font</a> src);
 <a name="l00090"></a>00090 
 <a name="l00096"></a>00096 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00097"></a>00097     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a> *dst);
+<a name="l00097"></a>00097     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a> *dst);
 <a name="l00101"></a>00101 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00102"></a>00102     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__type.html" title="Opaque handle to a Renderscript type.">rs_type</a> *dst);
+<a name="l00102"></a>00102     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__type.html" title="Opaque handle to a RenderScript type.">rs_type</a> *dst);
 <a name="l00106"></a>00106 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00107"></a>00107     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a> *dst);
+<a name="l00107"></a>00107     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a> *dst);
 <a name="l00111"></a>00111 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00112"></a>00112     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> *dst);
+<a name="l00112"></a>00112     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> *dst);
 <a name="l00116"></a>00116 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00117"></a>00117     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a> *dst);
+<a name="l00117"></a>00117     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a> *dst);
 <a name="l00121"></a>00121 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00122"></a>00122     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__path.html" title="Opaque handle to a Renderscript Path object.">rs_path</a> *dst);
+<a name="l00122"></a>00122     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__path.html" title="Opaque handle to a RenderScript Path object.">rs_path</a> *dst);
 <a name="l00126"></a>00126 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00127"></a>00127     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a> *dst);
+<a name="l00127"></a>00127     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a> *dst);
 <a name="l00131"></a>00131 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00132"></a>00132     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__fragment.html" title="Opaque handle to a Renderscript ProgramFragment object.">rs_program_fragment</a> *dst);
+<a name="l00132"></a>00132     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__fragment.html" title="Opaque handle to a RenderScript ProgramFragment object.">rs_program_fragment</a> *dst);
 <a name="l00136"></a>00136 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00137"></a>00137     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__vertex.html" title="Opaque handle to a Renderscript ProgramVertex object.">rs_program_vertex</a> *dst);
+<a name="l00137"></a>00137     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__vertex.html" title="Opaque handle to a RenderScript ProgramVertex object.">rs_program_vertex</a> *dst);
 <a name="l00141"></a>00141 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00142"></a>00142     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a> *dst);
+<a name="l00142"></a>00142     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a> *dst);
 <a name="l00146"></a>00146 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00147"></a>00147     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> *dst);
+<a name="l00147"></a>00147     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> *dst);
 <a name="l00151"></a>00151 extern <span class="keywordtype">void</span> __attribute__((overloadable))
-<a name="l00152"></a>00152     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__font.html" title="Opaque handle to a Renderscript font object.">rs_font</a> *dst);
+<a name="l00152"></a>00152     <a class="code" href="rs__object_8rsh.html#aab5f47dc11b9044b3d02c4ed818fe6e7">rsClearObject</a>(<a class="code" href="structrs__font.html" title="Opaque handle to a RenderScript font object.">rs_font</a> *dst);
 <a name="l00153"></a>00153 
 <a name="l00154"></a>00154 
 <a name="l00155"></a>00155 
 <a name="l00162"></a>00162 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00163"></a>00163     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a>);
+<a name="l00163"></a>00163     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a>);
 <a name="l00167"></a>00167 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00168"></a>00168     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__type.html" title="Opaque handle to a Renderscript type.">rs_type</a>);
+<a name="l00168"></a>00168     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__type.html" title="Opaque handle to a RenderScript type.">rs_type</a>);
 <a name="l00172"></a>00172 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00173"></a>00173     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a>);
+<a name="l00173"></a>00173     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a>);
 <a name="l00177"></a>00177 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00178"></a>00178     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a>);
+<a name="l00178"></a>00178     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a>);
 <a name="l00182"></a>00182 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00183"></a>00183     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a>);
+<a name="l00183"></a>00183     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a>);
 <a name="l00187"></a>00187 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00188"></a>00188     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__path.html" title="Opaque handle to a Renderscript Path object.">rs_path</a>);
+<a name="l00188"></a>00188     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__path.html" title="Opaque handle to a RenderScript Path object.">rs_path</a>);
 <a name="l00192"></a>00192 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00193"></a>00193     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a>);
+<a name="l00193"></a>00193     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a>);
 <a name="l00197"></a>00197 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00198"></a>00198     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__fragment.html" title="Opaque handle to a Renderscript ProgramFragment object.">rs_program_fragment</a>);
+<a name="l00198"></a>00198     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__fragment.html" title="Opaque handle to a RenderScript ProgramFragment object.">rs_program_fragment</a>);
 <a name="l00202"></a>00202 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00203"></a>00203     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__vertex.html" title="Opaque handle to a Renderscript ProgramVertex object.">rs_program_vertex</a>);
+<a name="l00203"></a>00203     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__vertex.html" title="Opaque handle to a RenderScript ProgramVertex object.">rs_program_vertex</a>);
 <a name="l00207"></a>00207 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00208"></a>00208     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a>);
+<a name="l00208"></a>00208     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a>);
 <a name="l00212"></a>00212 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00213"></a>00213     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a>);
+<a name="l00213"></a>00213     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a>);
 <a name="l00217"></a>00217 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00218"></a>00218     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__font.html" title="Opaque handle to a Renderscript font object.">rs_font</a>);
+<a name="l00218"></a>00218     <a class="code" href="rs__object_8rsh.html#a81f862730b961bd93ac132c24cbc0f82">rsIsObject</a>(<a class="code" href="structrs__font.html" title="Opaque handle to a RenderScript font object.">rs_font</a>);
 <a name="l00219"></a>00219 
 <a name="l00220"></a>00220 <span class="preprocessor">#endif</span>
 </pre></div></div>
index f64cc7b..9988383 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_program.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_program.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 </div>
 <div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_program.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_program.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_depth_func</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a6a9c06c54d230f61edc0667a091aac77">rsgProgramStoreGetDepthFunc</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#afa27fa6103c9e29f5e098e2d99663f0b">rsgProgramStoreIsDepthMaskEnabled</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a4a50df1d2495567536dd6f394d38ee5d">rsgProgramStoreIsColorMaskRedEnabled</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a1a57f706bc42ce49b545021c8403964c">rsgProgramStoreIsColorMaskGreenEnabled</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a279ad1b4611aca268053337f6719a22c">rsgProgramStoreIsColorMaskBlueEnabled</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#ab038edb7399044a3ea96ebb17d7b6601">rsgProgramStoreIsColorMaskAlphaEnabled</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_blend_src_func&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#afb38256c5804cdb9b410419c43ce03ab">rsgProgramStoreGetBlendSrcFunc</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_blend_dst_func&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a0ad38d595e35712f24c384ef20b69025">rsgProgramStoreGetBlendDstFunc</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#abe7c55547a72dd291e0996de050bb749">rsgProgramStoreIsDitherEnabled</a> (<a class="el" href="structrs__program__store.html">rs_program_store</a> ps)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a86aeccd846ed2cd2c9498ab57e2535f3">rsgProgramRasterIsPointSpriteEnabled</a> (<a class="el" href="structrs__program__raster.html">rs_program_raster</a> pr)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_cull_mode&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__program_8rsh.html#a633d6dbdec98ef89c2b70c92ea707502">rsgProgramRasterGetCullMode</a> (<a class="el" href="structrs__program__raster.html">rs_program_raster</a> pr)</td></tr>
+</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Program object routines. </p>
 
 <p>Definition in file <a class="el" href="rs__program_8rsh_source.html">rs_program.rsh</a>.</p>
-</div></div>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a633d6dbdec98ef89c2b70c92ea707502"></a><!-- doxytag: member="rs_program.rsh::rsgProgramRasterGetCullMode" ref="a633d6dbdec98ef89c2b70c92ea707502" args="(rs_program_raster pr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_cull_mode rsgProgramRasterGetCullMode </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__raster.html">rs_program_raster</a>&#160;</td>
+          <td class="paramname"><em>pr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program raster cull mode</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pr</td><td>program raster to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a86aeccd846ed2cd2c9498ab57e2535f3"></a><!-- doxytag: member="rs_program.rsh::rsgProgramRasterIsPointSpriteEnabled" ref="a86aeccd846ed2cd2c9498ab57e2535f3" args="(rs_program_raster pr)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramRasterIsPointSpriteEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__raster.html">rs_program_raster</a>&#160;</td>
+          <td class="paramname"><em>pr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program raster point sprite state</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pr</td><td>program raster to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0ad38d595e35712f24c384ef20b69025"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreGetBlendDstFunc" ref="a0ad38d595e35712f24c384ef20b69025" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_blend_dst_func rsgProgramStoreGetBlendDstFunc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store blend destination function</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afb38256c5804cdb9b410419c43ce03ab"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreGetBlendSrcFunc" ref="afb38256c5804cdb9b410419c43ce03ab" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_blend_src_func rsgProgramStoreGetBlendSrcFunc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store blend source function</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a6a9c06c54d230f61edc0667a091aac77"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreGetDepthFunc" ref="a6a9c06c54d230f61edc0667a091aac77" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_depth_func</a> rsgProgramStoreGetDepthFunc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store depth function</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ab038edb7399044a3ea96ebb17d7b6601"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreIsColorMaskAlphaEnabled" ref="ab038edb7399044a3ea96ebb17d7b6601" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramStoreIsColorMaskAlphaEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store alpha component color mask</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a279ad1b4611aca268053337f6719a22c"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreIsColorMaskBlueEnabled" ref="a279ad1b4611aca268053337f6719a22c" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramStoreIsColorMaskBlueEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store blur component color mask</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a1a57f706bc42ce49b545021c8403964c"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreIsColorMaskGreenEnabled" ref="a1a57f706bc42ce49b545021c8403964c" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramStoreIsColorMaskGreenEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store green component color mask</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a4a50df1d2495567536dd6f394d38ee5d"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreIsColorMaskRedEnabled" ref="a4a50df1d2495567536dd6f394d38ee5d" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramStoreIsColorMaskRedEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store red component color mask</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="afa27fa6103c9e29f5e098e2d99663f0b"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreIsDepthMaskEnabled" ref="afa27fa6103c9e29f5e098e2d99663f0b" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramStoreIsDepthMaskEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store depth mask</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="abe7c55547a72dd291e0996de050bb749"></a><!-- doxytag: member="rs_program.rsh::rsgProgramStoreIsDitherEnabled" ref="abe7c55547a72dd291e0996de050bb749" args="(rs_program_store ps)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool rsgProgramStoreIsDitherEnabled </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__program__store.html">rs_program_store</a>&#160;</td>
+          <td class="paramname"><em>ps</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get program store dither state</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ps</td><td>program store to query </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div>
 
 </body>
 </html>
index dc901b3..ed326b1 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_program.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_program.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_program.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_program.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__program_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00025"></a>00025 <span class="preprocessor"></span>
 <a name="l00026"></a>00026 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00027"></a>00027 <span class="preprocessor"></span>
-<a name="l00033"></a>00033 <span class="keyword">extern</span> rs_depth_func __attribute__((overloadable))
-<a name="l00034"></a>00034     rsgProgramStoreGetDepthFunc(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00033"></a>00033 <span class="keyword">extern</span> <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_depth_func</a> __attribute__((overloadable))
+<a name="l00034"></a>00034     <a class="code" href="rs__program_8rsh.html#a6a9c06c54d230f61edc0667a091aac77">rsgProgramStoreGetDepthFunc</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00035"></a>00035 
 <a name="l00041"></a>00041 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00042"></a>00042     rsgProgramStoreIsDepthMaskEnabled(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00042"></a>00042     <a class="code" href="rs__program_8rsh.html#afa27fa6103c9e29f5e098e2d99663f0b">rsgProgramStoreIsDepthMaskEnabled</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00048"></a>00048 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00049"></a>00049     rsgProgramStoreIsColorMaskRedEnabled(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00049"></a>00049     <a class="code" href="rs__program_8rsh.html#a4a50df1d2495567536dd6f394d38ee5d">rsgProgramStoreIsColorMaskRedEnabled</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00050"></a>00050 
 <a name="l00056"></a>00056 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00057"></a>00057     rsgProgramStoreIsColorMaskGreenEnabled(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00057"></a>00057     <a class="code" href="rs__program_8rsh.html#a1a57f706bc42ce49b545021c8403964c">rsgProgramStoreIsColorMaskGreenEnabled</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00058"></a>00058 
 <a name="l00064"></a>00064 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00065"></a>00065     rsgProgramStoreIsColorMaskBlueEnabled(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00065"></a>00065     <a class="code" href="rs__program_8rsh.html#a279ad1b4611aca268053337f6719a22c">rsgProgramStoreIsColorMaskBlueEnabled</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00066"></a>00066 
 <a name="l00072"></a>00072 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00073"></a>00073     rsgProgramStoreIsColorMaskAlphaEnabled(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00073"></a>00073     <a class="code" href="rs__program_8rsh.html#ab038edb7399044a3ea96ebb17d7b6601">rsgProgramStoreIsColorMaskAlphaEnabled</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00074"></a>00074 
 <a name="l00080"></a>00080 extern rs_blend_src_func __attribute__((overloadable))
-<a name="l00081"></a>00081         rsgProgramStoreGetBlendSrcFunc(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00081"></a>00081         <a class="code" href="rs__program_8rsh.html#afb38256c5804cdb9b410419c43ce03ab">rsgProgramStoreGetBlendSrcFunc</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00082"></a>00082 
 <a name="l00088"></a>00088 extern rs_blend_dst_func __attribute__((overloadable))
-<a name="l00089"></a>00089     rsgProgramStoreGetBlendDstFunc(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00089"></a>00089     <a class="code" href="rs__program_8rsh.html#a0ad38d595e35712f24c384ef20b69025">rsgProgramStoreGetBlendDstFunc</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00090"></a>00090 
 <a name="l00096"></a>00096 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00097"></a>00097     rsgProgramStoreIsDitherEnabled(<a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a> ps);
+<a name="l00097"></a>00097     <a class="code" href="rs__program_8rsh.html#abe7c55547a72dd291e0996de050bb749">rsgProgramStoreIsDitherEnabled</a>(<a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a> ps);
 <a name="l00098"></a>00098 
 <a name="l00104"></a>00104 extern <span class="keywordtype">bool</span> __attribute__((overloadable))
-<a name="l00105"></a>00105     rsgProgramRasterIsPointSpriteEnabled(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a> pr);
+<a name="l00105"></a>00105     <a class="code" href="rs__program_8rsh.html#a86aeccd846ed2cd2c9498ab57e2535f3">rsgProgramRasterIsPointSpriteEnabled</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a> pr);
 <a name="l00106"></a>00106 
 <a name="l00112"></a>00112 extern rs_cull_mode __attribute__((overloadable))
-<a name="l00113"></a>00113     rsgProgramRasterGetCullMode(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a> pr);
+<a name="l00113"></a>00113     <a class="code" href="rs__program_8rsh.html#a633d6dbdec98ef89c2b70c92ea707502">rsgProgramRasterGetCullMode</a>(<a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a> pr);
 <a name="l00114"></a>00114 
 <a name="l00115"></a>00115 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00116"></a>00116 <span class="preprocessor"></span>
index 389b792..ce94e04 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_quaternion.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_quaternion.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -27,7 +27,7 @@
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_quaternion.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_quaternion.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
index 93e4e5d..d286018 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_quaternion.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_quaternion.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_quaternion.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_quaternion.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__quaternion_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
index f45dd28..6393ade 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_sampler.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_sampler.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 </div>
 <div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_sampler.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_sampler.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_sampler_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__sampler_8rsh.html#acb1bec2c3d1edd752dd60499c8db58a4">rsSamplerGetMinification</a> (<a class="el" href="structrs__sampler.html">rs_sampler</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_sampler_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__sampler_8rsh.html#a5bddb73826cd20a79c31f012a4637e83">rsSamplerGetMagnification</a> (<a class="el" href="structrs__sampler.html">rs_sampler</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_sampler_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__sampler_8rsh.html#a68a7ab6724019c6e72fae8eb45aa48dd">rsSamplerGetWrapS</a> (<a class="el" href="structrs__sampler.html">rs_sampler</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rs_sampler_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__sampler_8rsh.html#ab6b25d3b9afa16f418e2dee78ebb4a75">rsSamplerGetWrapT</a> (<a class="el" href="structrs__sampler.html">rs_sampler</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__sampler_8rsh.html#ab1e79984609469604cba8e2b76a98844">rsSamplerGetAnisotropy</a> (<a class="el" href="structrs__sampler.html">rs_sampler</a> s)</td></tr>
+</table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Sampler routines. </p>
 
 <p>Definition in file <a class="el" href="rs__sampler_8rsh_source.html">rs_sampler.rsh</a>.</p>
-</div></div>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ab1e79984609469604cba8e2b76a98844"></a><!-- doxytag: member="rs_sampler.rsh::rsSamplerGetAnisotropy" ref="ab1e79984609469604cba8e2b76a98844" args="(rs_sampler s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float rsSamplerGetAnisotropy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get sampler anisotropy</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">s</td><td>sampler to query </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>anisotropy </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a5bddb73826cd20a79c31f012a4637e83"></a><!-- doxytag: member="rs_sampler.rsh::rsSamplerGetMagnification" ref="a5bddb73826cd20a79c31f012a4637e83" args="(rs_sampler s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_sampler_value rsSamplerGetMagnification </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get sampler magnification value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">s</td><td>sampler to query </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>magnification value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="acb1bec2c3d1edd752dd60499c8db58a4"></a><!-- doxytag: member="rs_sampler.rsh::rsSamplerGetMinification" ref="acb1bec2c3d1edd752dd60499c8db58a4" args="(rs_sampler s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_sampler_value rsSamplerGetMinification </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get sampler minification value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">s</td><td>sampler to query </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>minification value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a68a7ab6724019c6e72fae8eb45aa48dd"></a><!-- doxytag: member="rs_sampler.rsh::rsSamplerGetWrapS" ref="a68a7ab6724019c6e72fae8eb45aa48dd" args="(rs_sampler s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_sampler_value rsSamplerGetWrapS </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get sampler wrap S value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">s</td><td>sampler to query </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>wrap S value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab6b25d3b9afa16f418e2dee78ebb4a75"></a><!-- doxytag: member="rs_sampler.rsh::rsSamplerGetWrapT" ref="ab6b25d3b9afa16f418e2dee78ebb4a75" args="(rs_sampler s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">rs_sampler_value rsSamplerGetWrapT </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structrs__sampler.html">rs_sampler</a>&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Get sampler wrap T value</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table class="params">
+    <tr><td class="paramname">s</td><td>sampler to query </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>wrap T value </dd></dl>
+
+</div>
+</div>
+</div>
 
 </body>
 </html>
index 30fb9c0..82a7cfa 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_sampler.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_sampler.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_sampler.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_sampler.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__sampler_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
 <a name="l00027"></a>00027 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00028"></a>00028 <span class="preprocessor"></span>
 <a name="l00035"></a>00035 <span class="keyword">extern</span> rs_sampler_value __attribute__((overloadable))
-<a name="l00036"></a>00036     rsSamplerGetMinification(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s);
+<a name="l00036"></a>00036     <a class="code" href="rs__sampler_8rsh.html#acb1bec2c3d1edd752dd60499c8db58a4">rsSamplerGetMinification</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s);
 <a name="l00037"></a>00037 
 <a name="l00044"></a>00044 extern rs_sampler_value __attribute__((overloadable))
-<a name="l00045"></a>00045     rsSamplerGetMagnification(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s);
+<a name="l00045"></a>00045     <a class="code" href="rs__sampler_8rsh.html#a5bddb73826cd20a79c31f012a4637e83">rsSamplerGetMagnification</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s);
 <a name="l00046"></a>00046 
 <a name="l00053"></a>00053 extern rs_sampler_value __attribute__((overloadable))
-<a name="l00054"></a>00054     rsSamplerGetWrapS(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s);
+<a name="l00054"></a>00054     <a class="code" href="rs__sampler_8rsh.html#a68a7ab6724019c6e72fae8eb45aa48dd">rsSamplerGetWrapS</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s);
 <a name="l00055"></a>00055 
 <a name="l00062"></a>00062 extern rs_sampler_value __attribute__((overloadable))
-<a name="l00063"></a>00063     rsSamplerGetWrapT(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s);
+<a name="l00063"></a>00063     <a class="code" href="rs__sampler_8rsh.html#ab6b25d3b9afa16f418e2dee78ebb4a75">rsSamplerGetWrapT</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s);
 <a name="l00064"></a>00064 
 <a name="l00071"></a>00071 extern <span class="keywordtype">float</span> __attribute__((overloadable))
-<a name="l00072"></a>00072     rsSamplerGetAnisotropy(<a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a> s);
+<a name="l00072"></a>00072     <a class="code" href="rs__sampler_8rsh.html#ab1e79984609469604cba8e2b76a98844">rsSamplerGetAnisotropy</a>(<a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a> s);
 <a name="l00073"></a>00073 
 <a name="l00074"></a>00074 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
 <a name="l00075"></a>00075 <span class="preprocessor"></span>
index a3e63d0..8be550a 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_time.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_time.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -29,7 +29,7 @@
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">rs_time.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_time.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <table class="memberdecls">
@@ -48,8 +48,8 @@ Functions</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__time_8rsh.html#adea2682186fd903752431ad848bd8bf4">rsGetDt</a> (void)</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Renderscript time routines. </p>
-<p>This file contains Renderscript functions relating to time and date manipulation. </p>
+<div class="textblock"><p>RenderScript time routines. </p>
+<p>This file contains RenderScript functions relating to time and date manipulation. </p>
 
 <p>Definition in file <a class="el" href="rs__time_8rsh_source.html">rs_time.rsh</a>.</p>
 </div><hr/><h2>Typedef Documentation</h2>
index 208924a..482fd77 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_time.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_time.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
@@ -24,7 +24,7 @@
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_time.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_time.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__time_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
index c3caa6f..cbaa750 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_types.rsh File Reference</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_types.rsh File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
 <div class="header">
   <div class="summary">
 <a href="#nested-classes">Data Structures</a> &#124;
-<a href="#typedef-members">Typedefs</a>  </div>
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a>  </div>
   <div class="headertitle">
-<div class="title">rs_types.rsh File Reference</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_types.rsh File Reference</div>  </div>
 </div>
 <div class="contents">
 <div class="textblock"><code>#include &quot;stdbool.h&quot;</code><br/>
 <tr><td colspan="2"><h2><a name="nested-classes"></a>
 Data Structures</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__element.html">rs_element</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript element.  <a href="structrs__element.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript element.  <a href="structrs__element.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__type.html">rs_type</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript type.  <a href="structrs__type.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript type.  <a href="structrs__type.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__allocation.html">rs_allocation</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript allocation.  <a href="structrs__allocation.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript allocation.  <a href="structrs__allocation.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__sampler.html">rs_sampler</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript sampler object.  <a href="structrs__sampler.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript sampler object.  <a href="structrs__sampler.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__script.html">rs_script</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript script object.  <a href="structrs__script.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript script object.  <a href="structrs__script.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__mesh.html">rs_mesh</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript mesh object.  <a href="structrs__mesh.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript mesh object.  <a href="structrs__mesh.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__path.html">rs_path</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript Path object.  <a href="structrs__path.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript Path object.  <a href="structrs__path.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__program__fragment.html">rs_program_fragment</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript ProgramFragment object.  <a href="structrs__program__fragment.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript ProgramFragment object.  <a href="structrs__program__fragment.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__program__vertex.html">rs_program_vertex</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript ProgramVertex object.  <a href="structrs__program__vertex.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript ProgramVertex object.  <a href="structrs__program__vertex.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__program__raster.html">rs_program_raster</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript ProgramRaster object.  <a href="structrs__program__raster.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript ProgramRaster object.  <a href="structrs__program__raster.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__program__store.html">rs_program_store</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript ProgramStore object.  <a href="structrs__program__store.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript ProgramStore object.  <a href="structrs__program__store.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__font.html">rs_font</a></td></tr>
-<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a Renderscript font object.  <a href="structrs__font.html#details">More...</a><br/></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque handle to a RenderScript font object.  <a href="structrs__font.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__matrix4x4.html">rs_matrix4x4</a></td></tr>
 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">4x4 float matrix  <a href="structrs__matrix4x4.html#details">More...</a><br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrs__matrix3x3.html">rs_matrix3x3</a></td></tr>
@@ -112,9 +113,42 @@ Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">long3</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">long4</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#a86f99f382dc35fc8ad98b524fe6d5447">rs_quaternion</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">rs_allocation_cubemap_face</a> </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for selecting cube map faces. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171">rs_allocation_usage_type</a> </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitfield to specify the usage types for an allocation.  <a href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_primitive</a> { <br/>
+&#160;&#160;<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a337ab7046b7cb5cc9eb14bc325ae3158">RS_PRIMITIVE_POINT</a> =  0, 
+<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a09a49eaa42585d6181c8a2f711b63ddf">RS_PRIMITIVE_LINE</a> =  1, 
+<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951abe563a9f68706a5aa567793a5088b4da">RS_PRIMITIVE_LINE_STRIP</a> =  2, 
+<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951aeb062ef8811156915afccfc5f4259b79">RS_PRIMITIVE_TRIANGLE</a> =  3, 
+<br/>
+&#160;&#160;<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a497d5376ef6c9f9ead810a053b9b35d9">RS_PRIMITIVE_TRIANGLE_STRIP</a> =  4, 
+<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951afadd96d3a17724e061d9eb07bfca4a01">RS_PRIMITIVE_TRIANGLE_FAN</a> =  5, 
+<a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a136481c7695b09f01126da71bb132c9d">RS_PRIMITIVE_INVALID</a> =  100
+<br/>
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">rs_data_type</a> </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for possible element data types.  <a href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">rs_data_kind</a> </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for possible element data kind.  <a href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_depth_func</a> { <br/>
+&#160;&#160;<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa8d469fa992bac113a001d75aa7cfbb5a">RS_DEPTH_FUNC_ALWAYS</a> =  0, 
+<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfac1ddb06fe80be898bf8d4a517187575a">RS_DEPTH_FUNC_LESS</a> =  1, 
+<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa62459990f41930a88542b878ddd53d9f">RS_DEPTH_FUNC_LEQUAL</a> =  2, 
+<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa412bb65be35e058a7699b8211cc2ef7d">RS_DEPTH_FUNC_GREATER</a> =  3, 
+<br/>
+&#160;&#160;<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2858ef91becfeb84d8f34a1458a4126d">RS_DEPTH_FUNC_GEQUAL</a> =  4, 
+<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa56339400e4089e546199547717bdcd21">RS_DEPTH_FUNC_EQUAL</a> =  5, 
+<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2105e438ae89b89a2f4361483e65966d">RS_DEPTH_FUNC_NOTEQUAL</a> =  6, 
+<a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfadfc3917c562a540b4114181440b909e3">RS_DEPTH_FUNC_INVALID</a> =  100
+<br/>
+ }</td></tr>
 </table>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Define the standard Renderscript types</p>
+<div class="textblock"><p>Define the standard RenderScript types</p>
 <p>Integers 8 bit: char, int8_t 16 bit: short, int16_t 32 bit: int, in32_t 64 bit: long, long long, int64_t</p>
 <p>Unsigned Integers 8 bit: uchar, uint8_t 16 bit: ushort, uint16_t 32 bit: uint, uint32_t 64 bit: ulong, uint64_t</p>
 <p>Floating point 32 bit: float 64 bit: double</p>
@@ -134,7 +168,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic char type. Provides two char fields packed into a single 16 bit field with 16 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00279">279</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00292">292</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -150,7 +184,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic char type. Provides three char fields packed into a single 32 bit field with 32 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00284">284</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00297">297</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -166,7 +200,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic char type. Provides four char fields packed into a single 32 bit field with 32 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00289">289</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00302">302</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -182,7 +216,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic double type. Provides two double fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00199">199</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00212">212</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -198,7 +232,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic double type. Provides three double fields packed into a single 256 bit field with 256 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00204">204</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00217">217</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -214,7 +248,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic double type. Provides four double fields packed into a single 256 bit field with 256 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00209">209</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00222">222</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -230,7 +264,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic float type. Provides two float fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00182">182</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00195">195</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -246,7 +280,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic float type. Provides three float fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00187">187</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00200">200</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -262,7 +296,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic float type. Provides four float fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00193">193</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00206">206</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -278,7 +312,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>16 bit integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00054">54</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00067">67</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -294,7 +328,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic int type. Provides two int fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00311">311</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00324">324</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -310,7 +344,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic int type. Provides three int fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00316">316</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00329">329</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -326,7 +360,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>32 bit integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00058">58</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00071">71</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -342,7 +376,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic int type. Provides two four fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00321">321</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00334">334</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -358,7 +392,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>64 bit integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00062">62</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00075">75</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -374,7 +408,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>8 bit integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00050">50</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00063">63</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -390,7 +424,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic long type. Provides two long fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00327">327</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00340">340</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -406,7 +440,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic long type. Provides three long fields packed into a single 256 bit field with 256 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00332">332</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00345">345</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -422,7 +456,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic long type. Provides four long fields packed into a single 256 bit field with 256 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00337">337</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00350">350</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -438,7 +472,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>quaternion type for use with the quaternion functions </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00370">370</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00383">383</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -454,7 +488,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic short type. Provides two short fields packed into a single 32 bit field with 32 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00295">295</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00308">308</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -470,7 +504,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic short type. Provides three short fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00300">300</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00313">313</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -486,7 +520,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic short type. Provides four short fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00305">305</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00318">318</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -502,7 +536,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Typedef for unsigned int </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00098">98</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00111">111</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -518,7 +552,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Typedef for int (use for 32-bit integers) </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00102">102</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00115">115</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -534,7 +568,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>8 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00082">82</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00095">95</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -550,7 +584,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic uchar type. Provides two uchar fields packed into a single 16 bit field with 16 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00215">215</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00228">228</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -566,7 +600,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic uchar type. Provides three uchar fields packed into a single 32 bit field with 32 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00220">220</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00233">233</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -582,7 +616,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic uchar type. Provides four uchar fields packed into a single 32 bit field with 32 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00225">225</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00238">238</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -598,7 +632,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>32 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00090">90</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00103">103</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -614,7 +648,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>16 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00070">70</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00083">83</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -630,7 +664,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic uint type. Provides two uint fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00247">247</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00260">260</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -646,7 +680,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic uint type. Provides three uint fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00252">252</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00265">265</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -662,7 +696,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>32 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00074">74</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00087">87</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -678,7 +712,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic uint type. Provides four uint fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00257">257</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00270">270</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -694,7 +728,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>64 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00078">78</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00091">91</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -710,7 +744,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>8 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00066">66</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00079">79</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -726,7 +760,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Typedef for unsigned long (use for 64-bit unsigned integers) </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00094">94</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00107">107</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -742,7 +776,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic ulong type. Provides two ulong fields packed into a single 128 bit field with 128 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00263">263</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00276">276</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -758,7 +792,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic ulong type. Provides three ulong fields packed into a single 256 bit field with 256 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00268">268</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00281">281</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -774,7 +808,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic ulong type. Provides four ulong fields packed into a single 256 bit field with 256 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00273">273</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00286">286</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -790,7 +824,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>16 bit unsigned integer type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00086">86</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00099">99</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -806,7 +840,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic ushort type. Provides two ushort fields packed into a single 32 bit field with 32 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00231">231</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00244">244</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -822,7 +856,7 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic ushort type. Provides three ushort fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00236">236</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00249">249</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
@@ -838,7 +872,148 @@ Typedefs</h2></td></tr>
 <div class="memdoc">
 <p>Vector version of the basic ushort type. Provides four ushort fields packed into a single 64 bit field with 64 bit alignment. </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00241">241</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00254">254</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="af8c988b9715d55b6e41e0ee1925fb171"></a><!-- doxytag: member="rs_types.rsh::rs_allocation_usage_type" ref="af8c988b9715d55b6e41e0ee1925fb171" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171">rs_allocation_usage_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Bitfield to specify the usage types for an allocation. </p>
+<p>These values are ORed together to specify which usages or memory spaces are relevant to an allocation or an operation on an allocation. </p>
+
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00408">408</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1692d177c4a3fe1544bd91172056581a"></a><!-- doxytag: member="rs_types.rsh::rs_data_kind" ref="a1692d177c4a3fe1544bd91172056581a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">rs_data_kind</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enumeration for possible element data kind. </p>
+<p>The special interpretation of the data if required. This is primarly useful for graphical data. USER indicates no special interpretation is expected. PIXEL is used in conjunction with the standard data types for representing texture formats. </p>
+
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00524">524</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae7551db5705f864fde49c13660aff647"></a><!-- doxytag: member="rs_types.rsh::rs_data_type" ref="ae7551db5705f864fde49c13660aff647" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">rs_data_type</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>Enumeration for possible element data types. </p>
+<p>DataType represents the basic type information for a basic element. The naming convention follows. For numeric types it is FLOAT, SIGNED, or UNSIGNED followed by the _BITS where BITS is the size of the data. BOOLEAN is a true / false (1,0) represented in an 8 bit container. The UNSIGNED variants with multiple bit definitions are for packed graphical data formats and represent vectors with per vector member sizes which are treated as a single unit for packing and alignment purposes.</p>
+<p>MATRIX the three matrix types contain FLOAT_32 elements and are treated as 32 bits for alignment purposes.</p>
+<p>RS_* objects. 32 bit opaque handles. </p>
+
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00478">478</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bf"></a><!-- doxytag: member="rs_types.rsh::rs_depth_func" ref="a03e91ad8ebfc283ba20f7443dea4a4bf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_depth_func</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfa8d469fa992bac113a001d75aa7cfbb5a"></a><!-- doxytag: member="RS_DEPTH_FUNC_ALWAYS" ref="a03e91ad8ebfc283ba20f7443dea4a4bfa8d469fa992bac113a001d75aa7cfbb5a" args="" -->RS_DEPTH_FUNC_ALWAYS</em>&nbsp;</td><td>
+<p>Always drawn </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfac1ddb06fe80be898bf8d4a517187575a"></a><!-- doxytag: member="RS_DEPTH_FUNC_LESS" ref="a03e91ad8ebfc283ba20f7443dea4a4bfac1ddb06fe80be898bf8d4a517187575a" args="" -->RS_DEPTH_FUNC_LESS</em>&nbsp;</td><td>
+<p>Drawn if the incoming depth value is less than that in the depth buffer </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfa62459990f41930a88542b878ddd53d9f"></a><!-- doxytag: member="RS_DEPTH_FUNC_LEQUAL" ref="a03e91ad8ebfc283ba20f7443dea4a4bfa62459990f41930a88542b878ddd53d9f" args="" -->RS_DEPTH_FUNC_LEQUAL</em>&nbsp;</td><td>
+<p>Drawn if the incoming depth value is less or equal to that in the depth buffer </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfa412bb65be35e058a7699b8211cc2ef7d"></a><!-- doxytag: member="RS_DEPTH_FUNC_GREATER" ref="a03e91ad8ebfc283ba20f7443dea4a4bfa412bb65be35e058a7699b8211cc2ef7d" args="" -->RS_DEPTH_FUNC_GREATER</em>&nbsp;</td><td>
+<p>Drawn if the incoming depth value is greater than that in the depth buffer </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfa2858ef91becfeb84d8f34a1458a4126d"></a><!-- doxytag: member="RS_DEPTH_FUNC_GEQUAL" ref="a03e91ad8ebfc283ba20f7443dea4a4bfa2858ef91becfeb84d8f34a1458a4126d" args="" -->RS_DEPTH_FUNC_GEQUAL</em>&nbsp;</td><td>
+<p>Drawn if the incoming depth value is greater or equal to that in the depth buffer </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfa56339400e4089e546199547717bdcd21"></a><!-- doxytag: member="RS_DEPTH_FUNC_EQUAL" ref="a03e91ad8ebfc283ba20f7443dea4a4bfa56339400e4089e546199547717bdcd21" args="" -->RS_DEPTH_FUNC_EQUAL</em>&nbsp;</td><td>
+<p>Drawn if the incoming depth value is equal to that in the depth buffer </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfa2105e438ae89b89a2f4361483e65966d"></a><!-- doxytag: member="RS_DEPTH_FUNC_NOTEQUAL" ref="a03e91ad8ebfc283ba20f7443dea4a4bfa2105e438ae89b89a2f4361483e65966d" args="" -->RS_DEPTH_FUNC_NOTEQUAL</em>&nbsp;</td><td>
+<p>Drawn if the incoming depth value is not equal to that in the depth buffer </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a03e91ad8ebfc283ba20f7443dea4a4bfadfc3917c562a540b4114181440b909e3"></a><!-- doxytag: member="RS_DEPTH_FUNC_INVALID" ref="a03e91ad8ebfc283ba20f7443dea4a4bfadfc3917c562a540b4114181440b909e3" args="" -->RS_DEPTH_FUNC_INVALID</em>&nbsp;</td><td>
+<p>Invalid depth function </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00538">538</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951"></a><!-- doxytag: member="rs_types.rsh::rs_primitive" ref="aaaa4ecd4a284cf9cccc6e06407229951" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_primitive</a></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>Describes the way mesh vertex data is interpreted when rendering </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951a337ab7046b7cb5cc9eb14bc325ae3158"></a><!-- doxytag: member="RS_PRIMITIVE_POINT" ref="aaaa4ecd4a284cf9cccc6e06407229951a337ab7046b7cb5cc9eb14bc325ae3158" args="" -->RS_PRIMITIVE_POINT</em>&nbsp;</td><td>
+<p>Vertex data will be rendered as a series of points </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951a09a49eaa42585d6181c8a2f711b63ddf"></a><!-- doxytag: member="RS_PRIMITIVE_LINE" ref="aaaa4ecd4a284cf9cccc6e06407229951a09a49eaa42585d6181c8a2f711b63ddf" args="" -->RS_PRIMITIVE_LINE</em>&nbsp;</td><td>
+<p>Vertex pairs will be rendered as lines </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951abe563a9f68706a5aa567793a5088b4da"></a><!-- doxytag: member="RS_PRIMITIVE_LINE_STRIP" ref="aaaa4ecd4a284cf9cccc6e06407229951abe563a9f68706a5aa567793a5088b4da" args="" -->RS_PRIMITIVE_LINE_STRIP</em>&nbsp;</td><td>
+<p>Vertex data will be rendered as a connected line strip </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951aeb062ef8811156915afccfc5f4259b79"></a><!-- doxytag: member="RS_PRIMITIVE_TRIANGLE" ref="aaaa4ecd4a284cf9cccc6e06407229951aeb062ef8811156915afccfc5f4259b79" args="" -->RS_PRIMITIVE_TRIANGLE</em>&nbsp;</td><td>
+<p>Vertices will be rendered as individual triangles </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951a497d5376ef6c9f9ead810a053b9b35d9"></a><!-- doxytag: member="RS_PRIMITIVE_TRIANGLE_STRIP" ref="aaaa4ecd4a284cf9cccc6e06407229951a497d5376ef6c9f9ead810a053b9b35d9" args="" -->RS_PRIMITIVE_TRIANGLE_STRIP</em>&nbsp;</td><td>
+<p>Vertices will be rendered as a connected triangle strip defined by the first three vertices with each additional triangle defined by a new vertex </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951afadd96d3a17724e061d9eb07bfca4a01"></a><!-- doxytag: member="RS_PRIMITIVE_TRIANGLE_FAN" ref="aaaa4ecd4a284cf9cccc6e06407229951afadd96d3a17724e061d9eb07bfca4a01" args="" -->RS_PRIMITIVE_TRIANGLE_FAN</em>&nbsp;</td><td>
+<p>Vertices will be rendered as a sequence of triangles that all share first vertex as the origin </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="aaaa4ecd4a284cf9cccc6e06407229951a136481c7695b09f01126da71bb132c9d"></a><!-- doxytag: member="RS_PRIMITIVE_INVALID" ref="aaaa4ecd4a284cf9cccc6e06407229951a136481c7695b09f01126da71bb132c9d" args="" -->RS_PRIMITIVE_INVALID</em>&nbsp;</td><td>
+<p>Invalid primitive </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00425">425</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 
 </div>
 </div>
index 641a753..f580306 100644 (file)
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
-<title>rs_types.rsh Source File</title>
+<title>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_types.rsh Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 
   </div>
 <div class="header">
   <div class="headertitle">
-<div class="title">rs_types.rsh</div>  </div>
+<div class="title">/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/rs_types.rsh</div>  </div>
 </div>
 <div class="contents">
 <a href="rs__types_8rsh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
-<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2011 The Android Open Source Project</span>
+<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2013 The Android Open Source Project</span>
 <a name="l00003"></a>00003 <span class="comment"> *</span>
 <a name="l00004"></a>00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
 <a name="l00005"></a>00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
 <a name="l00041"></a>00041 <span class="preprocessor">#ifndef __RS_TYPES_RSH__</span>
 <a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#define __RS_TYPES_RSH__</span>
 <a name="l00043"></a>00043 <span class="preprocessor"></span>
-<a name="l00044"></a>00044 <span class="preprocessor">#define M_PI        3.14159265358979323846264338327950288f   </span><span class="comment">/* pi */</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#include &quot;stdbool.h&quot;</span>
-<a name="l00050"></a><a class="code" href="rs__types_8rsh.html#ad566f6541e98b74246db1a3a3a85ad49">00050</a> <span class="keyword">typedef</span> <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#ad566f6541e98b74246db1a3a3a85ad49">int8_t</a>;
-<a name="l00054"></a><a class="code" href="rs__types_8rsh.html#aa343fa3b3d06292b959ffdd4c4703b06">00054</a> <span class="keyword">typedef</span> <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#aa343fa3b3d06292b959ffdd4c4703b06">int16_t</a>;
-<a name="l00058"></a><a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">00058</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>;
-<a name="l00062"></a><a class="code" href="rs__types_8rsh.html#a996e72f71b11a5bb8b3b7b6936b1516d">00062</a> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#a996e72f71b11a5bb8b3b7b6936b1516d">int64_t</a>;
-<a name="l00066"></a><a class="code" href="rs__types_8rsh.html#aba7bc1797add20fe3efdf37ced1182c5">00066</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>;
-<a name="l00070"></a><a class="code" href="rs__types_8rsh.html#a273cf69d639a59973b6019625df33e30">00070</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>;
-<a name="l00074"></a><a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">00074</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>;
-<a name="l00078"></a><a class="code" href="rs__types_8rsh.html#aaa5d1cd013383c889537491c3cfd9aad">00078</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a>;
-<a name="l00082"></a><a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">00082</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>;
-<a name="l00086"></a><a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">00086</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>;
-<a name="l00090"></a><a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">00090</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>;
-<a name="l00094"></a><a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">00094</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a> <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a>;
-<a name="l00098"></a><a class="code" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">00098</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">size_t</a>;
-<a name="l00102"></a><a class="code" href="rs__types_8rsh.html#a170745d0d946e79c4c2a056d1d158996">00102</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> <a class="code" href="rs__types_8rsh.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a>;
-<a name="l00103"></a>00103 
-<a name="l00109"></a><a class="code" href="structrs__element.html">00109</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__element.html" title="Opaque handle to a Renderscript element.">rs_element</a>;
-<a name="l00115"></a><a class="code" href="structrs__type.html">00115</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__type.html" title="Opaque handle to a Renderscript type.">rs_type</a>;
-<a name="l00121"></a><a class="code" href="structrs__allocation.html">00121</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__allocation.html" title="Opaque handle to a Renderscript allocation.">rs_allocation</a>;
-<a name="l00127"></a><a class="code" href="structrs__sampler.html">00127</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__sampler.html" title="Opaque handle to a Renderscript sampler object.">rs_sampler</a>;
-<a name="l00133"></a><a class="code" href="structrs__script.html">00133</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__script.html" title="Opaque handle to a Renderscript script object.">rs_script</a>;
-<a name="l00139"></a><a class="code" href="structrs__mesh.html">00139</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__mesh.html" title="Opaque handle to a Renderscript mesh object.">rs_mesh</a>;
-<a name="l00145"></a><a class="code" href="structrs__path.html">00145</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__path.html" title="Opaque handle to a Renderscript Path object.">rs_path</a>;
-<a name="l00151"></a><a class="code" href="structrs__program__fragment.html">00151</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__fragment.html" title="Opaque handle to a Renderscript ProgramFragment object.">rs_program_fragment</a>;
-<a name="l00157"></a><a class="code" href="structrs__program__vertex.html">00157</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__vertex.html" title="Opaque handle to a Renderscript ProgramVertex object.">rs_program_vertex</a>;
-<a name="l00163"></a><a class="code" href="structrs__program__raster.html">00163</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__raster.html" title="Opaque handle to a Renderscript ProgramRaster object.">rs_program_raster</a>;
-<a name="l00169"></a><a class="code" href="structrs__program__store.html">00169</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__store.html" title="Opaque handle to a Renderscript ProgramStore object.">rs_program_store</a>;
-<a name="l00175"></a><a class="code" href="structrs__font.html">00175</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__font.html" title="Opaque handle to a Renderscript font object.">rs_font</a>;
-<a name="l00176"></a>0017
-<a name="l00182"></a><a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">00182</a> typedef <span class="keywordtype">float</span> <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((ext_vector_type(2)));
-<a name="l00187"></a><a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">00187</a> typedef <span class="keywordtype">float</span> <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((ext_vector_type(3)));
-<a name="l00193"></a><a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">00193</a> typedef <span class="keywordtype">float</span> <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((ext_vector_type(4)));
-<a name="l00194"></a>00194 
-<a name="l00199"></a><a class="code" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">00199</a> typedef <span class="keywordtype">double</span> <a class="code" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">double2</a> __attribute__((ext_vector_type(2)));
-<a name="l00204"></a><a class="code" href="rs__types_8rsh.html#aa3c90d5a23d674185a13e95402eda7eb">00204</a> typedef <span class="keywordtype">double</span> <a class="code" href="rs__types_8rsh.html#aa3c90d5a23d674185a13e95402eda7eb">double3</a> __attribute__((ext_vector_type(3)));
-<a name="l00209"></a><a class="code" href="rs__types_8rsh.html#a60f4b04e076f0dd0ecc99c365fc4ca21">00209</a> typedef <span class="keywordtype">double</span> <a class="code" href="rs__types_8rsh.html#a60f4b04e076f0dd0ecc99c365fc4ca21">double4</a> __attribute__((ext_vector_type(4)));
-<a name="l00210"></a>00210 
-<a name="l00215"></a><a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">00215</a> typedef <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> <a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> __attribute__((ext_vector_type(2)));
-<a name="l00220"></a><a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">00220</a> typedef <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> <a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">uchar3</a> __attribute__((ext_vector_type(3)));
-<a name="l00225"></a><a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">00225</a> typedef <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((ext_vector_type(4)));
-<a name="l00226"></a>00226 
-<a name="l00231"></a><a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">00231</a> typedef <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> <a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a> __attribute__((ext_vector_type(2)));
-<a name="l00236"></a><a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">00236</a> typedef <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> <a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">ushort3</a> __attribute__((ext_vector_type(3)));
-<a name="l00241"></a><a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">00241</a> typedef <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> <a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">ushort4</a> __attribute__((ext_vector_type(4)));
-<a name="l00242"></a>00242 
-<a name="l00247"></a><a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">00247</a> typedef <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> <a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a> __attribute__((ext_vector_type(2)));
-<a name="l00252"></a><a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">00252</a> typedef <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> <a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">uint3</a> __attribute__((ext_vector_type(3)));
-<a name="l00257"></a><a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">00257</a> typedef <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> <a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">uint4</a> __attribute__((ext_vector_type(4)));
-<a name="l00258"></a>00258 
-<a name="l00263"></a><a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">00263</a> typedef <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a> <a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a> __attribute__((ext_vector_type(2)));
-<a name="l00268"></a><a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">00268</a> typedef <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a> <a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">ulong3</a> __attribute__((ext_vector_type(3)));
-<a name="l00273"></a><a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">00273</a> typedef <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a> <a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">ulong4</a> __attribute__((ext_vector_type(4)));
-<a name="l00274"></a>00274 
-<a name="l00279"></a><a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">00279</a> typedef <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a> __attribute__((ext_vector_type(2)));
-<a name="l00284"></a><a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">00284</a> typedef <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">char3</a> __attribute__((ext_vector_type(3)));
-<a name="l00289"></a><a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">00289</a> typedef <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">char4</a> __attribute__((ext_vector_type(4)));
-<a name="l00290"></a>00290 
-<a name="l00295"></a><a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">00295</a> typedef <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a> __attribute__((ext_vector_type(2)));
-<a name="l00300"></a><a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">00300</a> typedef <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">short3</a> __attribute__((ext_vector_type(3)));
-<a name="l00305"></a><a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">00305</a> typedef <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">short4</a> __attribute__((ext_vector_type(4)));
-<a name="l00306"></a>00306 
-<a name="l00311"></a><a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">00311</a> typedef <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a> __attribute__((ext_vector_type(2)));
-<a name="l00316"></a><a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">00316</a> typedef <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">int3</a> __attribute__((ext_vector_type(3)));
-<a name="l00321"></a><a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">00321</a> typedef <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">int4</a> __attribute__((ext_vector_type(4)));
-<a name="l00322"></a>00322 
-<a name="l00327"></a><a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">00327</a> typedef <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a> __attribute__((ext_vector_type(2)));
-<a name="l00332"></a><a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">00332</a> typedef <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">long3</a> __attribute__((ext_vector_type(3)));
-<a name="l00337"></a><a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">00337</a> typedef <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">long4</a> __attribute__((ext_vector_type(4)));
-<a name="l00338"></a>00338 
-<a name="l00345"></a><a class="code" href="structrs__matrix4x4.html">00345</a> typedef struct {
-<a name="l00346"></a>00346     <span class="keywordtype">float</span> m[16];
-<a name="l00347"></a>00347 } <a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a>;
-<a name="l00354"></a><a class="code" href="structrs__matrix3x3.html">00354</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
-<a name="l00355"></a>00355     <span class="keywordtype">float</span> m[9];
-<a name="l00356"></a>00356 } <a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a>;
-<a name="l00363"></a><a class="code" href="structrs__matrix2x2.html">00363</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
-<a name="l00364"></a>00364     <span class="keywordtype">float</span> m[4];
-<a name="l00365"></a>00365 } <a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a>;
-<a name="l00366"></a>00366 
-<a name="l00370"></a><a class="code" href="rs__types_8rsh.html#a86f99f382dc35fc8ad98b524fe6d5447">00370</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> <a class="code" href="rs__types_8rsh.html#a86f99f382dc35fc8ad98b524fe6d5447">rs_quaternion</a>;
-<a name="l00371"></a>00371 
-<a name="l00372"></a>00372 <span class="preprocessor">#define RS_PACKED __attribute__((packed, aligned(4)))</span>
-<a name="l00373"></a>00373 <span class="preprocessor"></span><span class="preprocessor">#define NULL ((void *)0)</span>
-<a name="l00374"></a>00374 <span class="preprocessor"></span>
-<a name="l00375"></a>00375 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14))</span>
-<a name="l00376"></a>00376 <span class="preprocessor"></span>
-<a name="l00380"></a>00380 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00381"></a>00381     RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
-<a name="l00382"></a>00382     RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
-<a name="l00383"></a>00383     RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2,
-<a name="l00384"></a>00384     RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3,
-<a name="l00385"></a>00385     RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4,
-<a name="l00386"></a>00386     RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5
-<a name="l00387"></a>00387 } rs_allocation_cubemap_face;
-<a name="l00388"></a>00388 
-<a name="l00395"></a>00395 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00396"></a>00396     RS_ALLOCATION_USAGE_SCRIPT = 0x0001,
-<a name="l00397"></a>00397     RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002,
-<a name="l00398"></a>00398     RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004,
-<a name="l00399"></a>00399     RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008,
-<a name="l00400"></a>00400     RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010
-<a name="l00401"></a>00401 } rs_allocation_usage_type;
-<a name="l00402"></a>00402 
-<a name="l00403"></a>00403 <span class="preprocessor">#endif //defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14)</span>
-<a name="l00404"></a>00404 <span class="preprocessor"></span>
-<a name="l00405"></a>00405 <span class="comment">// New API&#39;s</span>
-<a name="l00406"></a>00406 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
-<a name="l00407"></a>00407 <span class="preprocessor"></span>
-<a name="l00412"></a>00412 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00416"></a>00416     RS_PRIMITIVE_POINT              = 0,
-<a name="l00420"></a>00420     RS_PRIMITIVE_LINE               = 1,
-<a name="l00424"></a>00424     RS_PRIMITIVE_LINE_STRIP         = 2,
-<a name="l00428"></a>00428     RS_PRIMITIVE_TRIANGLE           = 3,
-<a name="l00434"></a>00434     RS_PRIMITIVE_TRIANGLE_STRIP     = 4,
-<a name="l00439"></a>00439     RS_PRIMITIVE_TRIANGLE_FAN       = 5,
-<a name="l00440"></a>00440 
-<a name="l00444"></a>00444     RS_PRIMITIVE_INVALID            = 100,
-<a name="l00445"></a>00445 } rs_primitive;
-<a name="l00446"></a>00446 
-<a name="l00465"></a>00465 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00466"></a>00466     RS_TYPE_NONE             = 0,
-<a name="l00467"></a>00467     RS_TYPE_FLOAT_32         = 2,
-<a name="l00468"></a>00468     RS_TYPE_FLOAT_64         = 3,
-<a name="l00469"></a>00469     RS_TYPE_SIGNED_8         = 4,
-<a name="l00470"></a>00470     RS_TYPE_SIGNED_16        = 5,
-<a name="l00471"></a>00471     RS_TYPE_SIGNED_32        = 6,
-<a name="l00472"></a>00472     RS_TYPE_SIGNED_64        = 7,
-<a name="l00473"></a>00473     RS_TYPE_UNSIGNED_8       = 8,
-<a name="l00474"></a>00474     RS_TYPE_UNSIGNED_16      = 9,
-<a name="l00475"></a>00475     RS_TYPE_UNSIGNED_32      = 10,
-<a name="l00476"></a>00476     RS_TYPE_UNSIGNED_64      = 11,
-<a name="l00477"></a>00477 
-<a name="l00478"></a>00478     RS_TYPE_BOOLEAN          = 12,
-<a name="l00479"></a>00479 
-<a name="l00480"></a>00480     RS_TYPE_UNSIGNED_5_6_5   = 13,
-<a name="l00481"></a>00481     RS_TYPE_UNSIGNED_5_5_5_1 = 14,
-<a name="l00482"></a>00482     RS_TYPE_UNSIGNED_4_4_4_4 = 15,
-<a name="l00483"></a>00483 
-<a name="l00484"></a>00484     RS_TYPE_MATRIX_4X4       = 16,
-<a name="l00485"></a>00485     RS_TYPE_MATRIX_3X3       = 17,
-<a name="l00486"></a>00486     RS_TYPE_MATRIX_2X2       = 18,
-<a name="l00487"></a>00487 
-<a name="l00488"></a>00488     RS_TYPE_ELEMENT          = 1000,
-<a name="l00489"></a>00489     RS_TYPE_TYPE             = 1001,
-<a name="l00490"></a>00490     RS_TYPE_ALLOCATION       = 1002,
-<a name="l00491"></a>00491     RS_TYPE_SAMPLER          = 1003,
-<a name="l00492"></a>00492     RS_TYPE_SCRIPT           = 1004,
-<a name="l00493"></a>00493     RS_TYPE_MESH             = 1005,
-<a name="l00494"></a>00494     RS_TYPE_PROGRAM_FRAGMENT = 1006,
-<a name="l00495"></a>00495     RS_TYPE_PROGRAM_VERTEX   = 1007,
-<a name="l00496"></a>00496     RS_TYPE_PROGRAM_RASTER   = 1008,
-<a name="l00497"></a>00497     RS_TYPE_PROGRAM_STORE    = 1009,
-<a name="l00498"></a>00498     RS_TYPE_FONT             = 1010,
-<a name="l00499"></a>00499 
-<a name="l00500"></a>00500     RS_TYPE_INVALID          = 10000,
-<a name="l00501"></a>00501 } rs_data_type;
-<a name="l00502"></a>00502 
-<a name="l00511"></a>00511 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00512"></a>00512     RS_KIND_USER         = 0,
-<a name="l00513"></a>00513 
-<a name="l00514"></a>00514     RS_KIND_PIXEL_L      = 7,
-<a name="l00515"></a>00515     RS_KIND_PIXEL_A      = 8,
-<a name="l00516"></a>00516     RS_KIND_PIXEL_LA     = 9,
-<a name="l00517"></a>00517     RS_KIND_PIXEL_RGB    = 10,
-<a name="l00518"></a>00518     RS_KIND_PIXEL_RGBA   = 11,
-<a name="l00519"></a>00519     RS_KIND_PIXEL_DEPTH  = 12,
-<a name="l00520"></a>00520 
-<a name="l00521"></a>00521     RS_KIND_INVALID      = 100,
-<a name="l00522"></a>00522 } rs_data_kind;
-<a name="l00523"></a>00523 
-<a name="l00524"></a>00524 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00528"></a>00528     RS_DEPTH_FUNC_ALWAYS        = 0,
-<a name="l00533"></a>00533     RS_DEPTH_FUNC_LESS          = 1,
-<a name="l00538"></a>00538     RS_DEPTH_FUNC_LEQUAL        = 2,
-<a name="l00543"></a>00543     RS_DEPTH_FUNC_GREATER       = 3,
-<a name="l00548"></a>00548     RS_DEPTH_FUNC_GEQUAL        = 4,
-<a name="l00553"></a>00553     RS_DEPTH_FUNC_EQUAL         = 5,
-<a name="l00558"></a>00558     RS_DEPTH_FUNC_NOTEQUAL      = 6,
-<a name="l00562"></a>00562     RS_DEPTH_FUNC_INVALID       = 100,
-<a name="l00563"></a>00563 } rs_depth_func;
-<a name="l00564"></a>0056
-<a name="l00565"></a>00565 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00566"></a>00566     RS_BLEND_SRC_ZERO                   = 0,
-<a name="l00567"></a>00567     RS_BLEND_SRC_ONE                    = 1,
-<a name="l00568"></a>00568     RS_BLEND_SRC_DST_COLOR              = 2,
-<a name="l00569"></a>00569     RS_BLEND_SRC_ONE_MINUS_DST_COLOR    = 3,
-<a name="l00570"></a>00570     RS_BLEND_SRC_SRC_ALPHA              = 4,
-<a name="l00571"></a>00571     RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA    = 5,
-<a name="l00572"></a>00572     RS_BLEND_SRC_DST_ALPHA              = 6,
-<a name="l00573"></a>00573     RS_BLEND_SRC_ONE_MINUS_DST_ALPHA    = 7,
-<a name="l00574"></a>00574     RS_BLEND_SRC_SRC_ALPHA_SATURATE     = 8,
-<a name="l00575"></a>00575 
-<a name="l00576"></a>00576     RS_BLEND_SRC_INVALID                = 100,
-<a name="l00577"></a>00577 } rs_blend_src_func;
+<a name="l00044"></a>00044 <span class="comment">/* Constants */</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#define M_E         2.718281828459045235360287471352662498f     </span><span class="comment">/* e */</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#define M_LOG2E     1.442695040888963407359924681001892137f     </span><span class="comment">/* log_2 e */</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#define M_LOG10E    0.434294481903251827651128918916605082f     </span><span class="comment">/* log_10 e */</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#define M_LN2       0.693147180559945309417232121458176568f     </span><span class="comment">/* log_e 2 */</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#define M_LN10      2.302585092994045684017991454684364208f     </span><span class="comment">/* log_e 10 */</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#define M_PI        3.141592653589793238462643383279502884f     </span><span class="comment">/* pi */</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#define M_PI_2      1.570796326794896619231321691639751442f     </span><span class="comment">/* pi/2 */</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#define M_PI_4      0.785398163397448309615660845819875721f     </span><span class="comment">/* pi/4 */</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#define M_1_PI      0.318309886183790671537767526745028724f     </span><span class="comment">/* 1/pi */</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#define M_2_PIl     0.636619772367581343075535053490057448f     </span><span class="comment">/* 2/pi */</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#define M_2_SQRTPI  1.128379167095512573896158903121545172f     </span><span class="comment">/* 2/sqrt(pi) */</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#define M_SQRT2     1.414213562373095048801688724209698079f     </span><span class="comment">/* sqrt(2) */</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#define M_SQRT1_2   0.707106781186547524400844362104849039f     </span><span class="comment">/* 1/sqrt(2) */</span>
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059 <span class="preprocessor">#include &quot;stdbool.h&quot;</span>
+<a name="l00063"></a><a class="code" href="rs__types_8rsh.html#ad566f6541e98b74246db1a3a3a85ad49">00063</a> <span class="keyword">typedef</span> <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#ad566f6541e98b74246db1a3a3a85ad49">int8_t</a>;
+<a name="l00067"></a><a class="code" href="rs__types_8rsh.html#aa343fa3b3d06292b959ffdd4c4703b06">00067</a> <span class="keyword">typedef</span> <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#aa343fa3b3d06292b959ffdd4c4703b06">int16_t</a>;
+<a name="l00071"></a><a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">00071</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>;
+<a name="l00075"></a><a class="code" href="rs__types_8rsh.html#a996e72f71b11a5bb8b3b7b6936b1516d">00075</a> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#a996e72f71b11a5bb8b3b7b6936b1516d">int64_t</a>;
+<a name="l00079"></a><a class="code" href="rs__types_8rsh.html#aba7bc1797add20fe3efdf37ced1182c5">00079</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>;
+<a name="l00083"></a><a class="code" href="rs__types_8rsh.html#a273cf69d639a59973b6019625df33e30">00083</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>;
+<a name="l00087"></a><a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">00087</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>;
+<a name="l00091"></a><a class="code" href="rs__types_8rsh.html#aaa5d1cd013383c889537491c3cfd9aad">00091</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a>;
+<a name="l00095"></a><a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">00095</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a>;
+<a name="l00099"></a><a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">00099</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a>;
+<a name="l00103"></a><a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">00103</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a>;
+<a name="l00107"></a><a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">00107</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a> <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a>;
+<a name="l00111"></a><a class="code" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">00111</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="rs__types_8rsh.html#a29d85914ddff32967d85ada69854206d">size_t</a>;
+<a name="l00115"></a><a class="code" href="rs__types_8rsh.html#a170745d0d946e79c4c2a056d1d158996">00115</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> <a class="code" href="rs__types_8rsh.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a>;
+<a name="l00116"></a>0011
+<a name="l00122"></a><a class="code" href="structrs__element.html">00122</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__element.html" title="Opaque handle to a RenderScript element.">rs_element</a>;
+<a name="l00128"></a><a class="code" href="structrs__type.html">00128</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__type.html" title="Opaque handle to a RenderScript type.">rs_type</a>;
+<a name="l00134"></a><a class="code" href="structrs__allocation.html">00134</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__allocation.html" title="Opaque handle to a RenderScript allocation.">rs_allocation</a>;
+<a name="l00140"></a><a class="code" href="structrs__sampler.html">00140</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__sampler.html" title="Opaque handle to a RenderScript sampler object.">rs_sampler</a>;
+<a name="l00146"></a><a class="code" href="structrs__script.html">00146</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__script.html" title="Opaque handle to a RenderScript script object.">rs_script</a>;
+<a name="l00152"></a><a class="code" href="structrs__mesh.html">00152</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__mesh.html" title="Opaque handle to a RenderScript mesh object.">rs_mesh</a>;
+<a name="l00158"></a><a class="code" href="structrs__path.html">00158</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__path.html" title="Opaque handle to a RenderScript Path object.">rs_path</a>;
+<a name="l00164"></a><a class="code" href="structrs__program__fragment.html">00164</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__fragment.html" title="Opaque handle to a RenderScript ProgramFragment object.">rs_program_fragment</a>;
+<a name="l00170"></a><a class="code" href="structrs__program__vertex.html">00170</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__vertex.html" title="Opaque handle to a RenderScript ProgramVertex object.">rs_program_vertex</a>;
+<a name="l00176"></a><a class="code" href="structrs__program__raster.html">00176</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__raster.html" title="Opaque handle to a RenderScript ProgramRaster object.">rs_program_raster</a>;
+<a name="l00182"></a><a class="code" href="structrs__program__store.html">00182</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__program__store.html" title="Opaque handle to a RenderScript ProgramStore object.">rs_program_store</a>;
+<a name="l00188"></a><a class="code" href="structrs__font.html">00188</a> typedef struct { <span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> p; } __attribute__((packed, aligned(4))) <a class="code" href="structrs__font.html" title="Opaque handle to a RenderScript font object.">rs_font</a>;
+<a name="l00189"></a>00189 
+<a name="l00195"></a><a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">00195</a> typedef <span class="keywordtype">float</span> <a class="code" href="rs__types_8rsh.html#a5086d0fcb71f916c936af486ccf0dd41">float2</a> __attribute__((ext_vector_type(2)));
+<a name="l00200"></a><a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">00200</a> typedef <span class="keywordtype">float</span> <a class="code" href="rs__types_8rsh.html#a0046fa0f208d0899adbcf1f8b5aafadd">float3</a> __attribute__((ext_vector_type(3)));
+<a name="l00206"></a><a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">00206</a> typedef <span class="keywordtype">float</span> <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> __attribute__((ext_vector_type(4)));
+<a name="l00207"></a>00207 
+<a name="l00212"></a><a class="code" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">00212</a> typedef <span class="keywordtype">double</span> <a class="code" href="rs__types_8rsh.html#a75ef868cedebc2a6eeb1bc6ca6ca49c3">double2</a> __attribute__((ext_vector_type(2)));
+<a name="l00217"></a><a class="code" href="rs__types_8rsh.html#aa3c90d5a23d674185a13e95402eda7eb">00217</a> typedef <span class="keywordtype">double</span> <a class="code" href="rs__types_8rsh.html#aa3c90d5a23d674185a13e95402eda7eb">double3</a> __attribute__((ext_vector_type(3)));
+<a name="l00222"></a><a class="code" href="rs__types_8rsh.html#a60f4b04e076f0dd0ecc99c365fc4ca21">00222</a> typedef <span class="keywordtype">double</span> <a class="code" href="rs__types_8rsh.html#a60f4b04e076f0dd0ecc99c365fc4ca21">double4</a> __attribute__((ext_vector_type(4)));
+<a name="l00223"></a>00223 
+<a name="l00228"></a><a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">00228</a> typedef <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> <a class="code" href="rs__types_8rsh.html#aff5eb7cd53a34bb01924bf64485296de">uchar2</a> __attribute__((ext_vector_type(2)));
+<a name="l00233"></a><a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">00233</a> typedef <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> <a class="code" href="rs__types_8rsh.html#a247b5eacf2b662849668cbc33120343f">uchar3</a> __attribute__((ext_vector_type(3)));
+<a name="l00238"></a><a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">00238</a> typedef <a class="code" href="rs__types_8rsh.html#a27c902d5ca78afa82d5ed75554d5cedc">uchar</a> <a class="code" href="rs__types_8rsh.html#ae6ed52a87d4ff920c303b13b00f7396d">uchar4</a> __attribute__((ext_vector_type(4)));
+<a name="l00239"></a>00239 
+<a name="l00244"></a><a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">00244</a> typedef <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> <a class="code" href="rs__types_8rsh.html#a24a9d78cfc32475e2c6eb1cdec239bf2">ushort2</a> __attribute__((ext_vector_type(2)));
+<a name="l00249"></a><a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">00249</a> typedef <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> <a class="code" href="rs__types_8rsh.html#ab78391445785d2ca0276392a9c97fcba">ushort3</a> __attribute__((ext_vector_type(3)));
+<a name="l00254"></a><a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">00254</a> typedef <a class="code" href="rs__types_8rsh.html#a9e58a7bf060b7a5fbf6a401d3020adca">ushort</a> <a class="code" href="rs__types_8rsh.html#a77a09fa01d7fc721bbc44c32aac2d487">ushort4</a> __attribute__((ext_vector_type(4)));
+<a name="l00255"></a>00255 
+<a name="l00260"></a><a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">00260</a> typedef <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> <a class="code" href="rs__types_8rsh.html#aaf90cd1f01a121e824fc6e1b927e7683">uint2</a> __attribute__((ext_vector_type(2)));
+<a name="l00265"></a><a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">00265</a> typedef <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> <a class="code" href="rs__types_8rsh.html#ae80e36ac834c891aa76b09a220344e78">uint3</a> __attribute__((ext_vector_type(3)));
+<a name="l00270"></a><a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">00270</a> typedef <a class="code" href="rs__types_8rsh.html#a4f5fce8c1ef282264f9214809524d836">uint</a> <a class="code" href="rs__types_8rsh.html#ad92f0ec6c2cdc1f11a6d7fe321047462">uint4</a> __attribute__((ext_vector_type(4)));
+<a name="l00271"></a>00271 
+<a name="l00276"></a><a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">00276</a> typedef <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a> <a class="code" href="rs__types_8rsh.html#a56988b12ab16acf753356f7a5c70565a">ulong2</a> __attribute__((ext_vector_type(2)));
+<a name="l00281"></a><a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">00281</a> typedef <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a> <a class="code" href="rs__types_8rsh.html#ac623a569c28935fbedd3a8ed27ae0696">ulong3</a> __attribute__((ext_vector_type(3)));
+<a name="l00286"></a><a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">00286</a> typedef <a class="code" href="rs__types_8rsh.html#ab46637ef82283186e57f54756fe67203">ulong</a> <a class="code" href="rs__types_8rsh.html#a3029c54b8e1779a1ddbdfe875432d137">ulong4</a> __attribute__((ext_vector_type(4)));
+<a name="l00287"></a>00287 
+<a name="l00292"></a><a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">00292</a> typedef <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#ac532b4c1895c8bd4fb75dc370c484351">char2</a> __attribute__((ext_vector_type(2)));
+<a name="l00297"></a><a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">00297</a> typedef <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#a4617fb31f4c03402515efee0a9b56210">char3</a> __attribute__((ext_vector_type(3)));
+<a name="l00302"></a><a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">00302</a> typedef <span class="keywordtype">char</span> <a class="code" href="rs__types_8rsh.html#aecb498648daac97c7cc5f31c242dfa03">char4</a> __attribute__((ext_vector_type(4)));
+<a name="l00303"></a>00303 
+<a name="l00308"></a><a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">00308</a> typedef <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a303d3ad18aaeacfcfeda2b8580b98796">short2</a> __attribute__((ext_vector_type(2)));
+<a name="l00313"></a><a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">00313</a> typedef <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a3f4967691ae2b249511b5f3dd9e18793">short3</a> __attribute__((ext_vector_type(3)));
+<a name="l00318"></a><a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">00318</a> typedef <span class="keywordtype">short</span> <a class="code" href="rs__types_8rsh.html#a198219da0b1d51c8d7f8f12aad7e502d">short4</a> __attribute__((ext_vector_type(4)));
+<a name="l00319"></a>00319 
+<a name="l00324"></a><a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">00324</a> typedef <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a6bc1fa1354fe2145b8f12b4bbfafcf4c">int2</a> __attribute__((ext_vector_type(2)));
+<a name="l00329"></a><a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">00329</a> typedef <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#ad5512266b63fd06dcf450f6c9d5326c8">int3</a> __attribute__((ext_vector_type(3)));
+<a name="l00334"></a><a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">00334</a> typedef <span class="keywordtype">int</span> <a class="code" href="rs__types_8rsh.html#a897deab71f679999ed99d4153c797e70">int4</a> __attribute__((ext_vector_type(4)));
+<a name="l00335"></a>00335 
+<a name="l00340"></a><a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">00340</a> typedef <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#afd55d62cee0785034b73375acd0df9da">long2</a> __attribute__((ext_vector_type(2)));
+<a name="l00345"></a><a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">00345</a> typedef <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#ad9cedbf4050fad14138d1dcb3428ec18">long3</a> __attribute__((ext_vector_type(3)));
+<a name="l00350"></a><a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">00350</a> typedef <span class="keywordtype">long</span> <a class="code" href="rs__types_8rsh.html#ae177e4918f36e5c9da36d524cdb7a2e7">long4</a> __attribute__((ext_vector_type(4)));
+<a name="l00351"></a>00351 
+<a name="l00358"></a><a class="code" href="structrs__matrix4x4.html">00358</a> typedef struct {
+<a name="l00359"></a>00359     <span class="keywordtype">float</span> m[16];
+<a name="l00360"></a>00360 } <a class="code" href="structrs__matrix4x4.html" title="4x4 float matrix">rs_matrix4x4</a>;
+<a name="l00367"></a><a class="code" href="structrs__matrix3x3.html">00367</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00368"></a>00368     <span class="keywordtype">float</span> m[9];
+<a name="l00369"></a>00369 } <a class="code" href="structrs__matrix3x3.html" title="3x3 float matrix">rs_matrix3x3</a>;
+<a name="l00376"></a><a class="code" href="structrs__matrix2x2.html">00376</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00377"></a>00377     <span class="keywordtype">float</span> m[4];
+<a name="l00378"></a>00378 } <a class="code" href="structrs__matrix2x2.html" title="2x2 float matrix">rs_matrix2x2</a>;
+<a name="l00379"></a>00379 
+<a name="l00383"></a><a class="code" href="rs__types_8rsh.html#a86f99f382dc35fc8ad98b524fe6d5447">00383</a> <span class="keyword">typedef</span> <a class="code" href="rs__types_8rsh.html#adb5162dc168ddd471d948faa60b37c5e">float4</a> <a class="code" href="rs__types_8rsh.html#a86f99f382dc35fc8ad98b524fe6d5447">rs_quaternion</a>;
+<a name="l00384"></a>00384 
+<a name="l00385"></a>00385 <span class="preprocessor">#define RS_PACKED __attribute__((packed, aligned(4)))</span>
+<a name="l00386"></a>00386 <span class="preprocessor"></span><span class="preprocessor">#define NULL ((void *)0)</span>
+<a name="l00387"></a>00387 <span class="preprocessor"></span>
+<a name="l00388"></a>00388 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14))</span>
+<a name="l00389"></a>00389 <span class="preprocessor"></span>
+<a name="l00393"></a><a class="code" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229">00393</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00394"></a>00394     RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
+<a name="l00395"></a>00395     RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
+<a name="l00396"></a>00396     RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2,
+<a name="l00397"></a>00397     RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3,
+<a name="l00398"></a>00398     RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4,
+<a name="l00399"></a>00399     RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5
+<a name="l00400"></a>00400 } <a class="code" href="rs__types_8rsh.html#acc6f9a94176656c73fd74f789cfa2229" title="Enum for selecting cube map faces.">rs_allocation_cubemap_face</a>;
+<a name="l00401"></a>00401 
+<a name="l00408"></a><a class="code" href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171">00408</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00409"></a>00409     RS_ALLOCATION_USAGE_SCRIPT = 0x0001,
+<a name="l00410"></a>00410     RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002,
+<a name="l00411"></a>00411     RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004,
+<a name="l00412"></a>00412     RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008,
+<a name="l00413"></a>00413     RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010
+<a name="l00414"></a>00414 } <a class="code" href="rs__types_8rsh.html#af8c988b9715d55b6e41e0ee1925fb171" title="Bitfield to specify the usage types for an allocation.">rs_allocation_usage_type</a>;
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416 <span class="preprocessor">#endif //defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 14)</span>
+<a name="l00417"></a>00417 <span class="preprocessor"></span>
+<a name="l00418"></a>00418 <span class="comment">// New API&#39;s</span>
+<a name="l00419"></a>00419 <span class="preprocessor">#if (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
+<a name="l00420"></a>00420 <span class="preprocessor"></span>
+<a name="l00425"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">00425</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00429"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a337ab7046b7cb5cc9eb14bc325ae3158">00429</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a337ab7046b7cb5cc9eb14bc325ae3158">RS_PRIMITIVE_POINT</a>              = 0,
+<a name="l00433"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a09a49eaa42585d6181c8a2f711b63ddf">00433</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a09a49eaa42585d6181c8a2f711b63ddf">RS_PRIMITIVE_LINE</a>               = 1,
+<a name="l00437"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951abe563a9f68706a5aa567793a5088b4da">00437</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951abe563a9f68706a5aa567793a5088b4da">RS_PRIMITIVE_LINE_STRIP</a>         = 2,
+<a name="l00441"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951aeb062ef8811156915afccfc5f4259b79">00441</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951aeb062ef8811156915afccfc5f4259b79">RS_PRIMITIVE_TRIANGLE</a>           = 3,
+<a name="l00447"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a497d5376ef6c9f9ead810a053b9b35d9">00447</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a497d5376ef6c9f9ead810a053b9b35d9">RS_PRIMITIVE_TRIANGLE_STRIP</a>     = 4,
+<a name="l00452"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951afadd96d3a17724e061d9eb07bfca4a01">00452</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951afadd96d3a17724e061d9eb07bfca4a01">RS_PRIMITIVE_TRIANGLE_FAN</a>       = 5,
+<a name="l00453"></a>00453 
+<a name="l00457"></a><a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a136481c7695b09f01126da71bb132c9d">00457</a>     <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951a136481c7695b09f01126da71bb132c9d">RS_PRIMITIVE_INVALID</a>            = 100,
+<a name="l00458"></a>00458 } <a class="code" href="rs__types_8rsh.html#aaaa4ecd4a284cf9cccc6e06407229951">rs_primitive</a>;
+<a name="l00459"></a>00459 
+<a name="l00478"></a><a class="code" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647">00478</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00479"></a>00479     RS_TYPE_NONE             = 0,
+<a name="l00480"></a>00480     RS_TYPE_FLOAT_32         = 2,
+<a name="l00481"></a>00481     RS_TYPE_FLOAT_64         = 3,
+<a name="l00482"></a>00482     RS_TYPE_SIGNED_8         = 4,
+<a name="l00483"></a>00483     RS_TYPE_SIGNED_16        = 5,
+<a name="l00484"></a>00484     RS_TYPE_SIGNED_32        = 6,
+<a name="l00485"></a>00485     RS_TYPE_SIGNED_64        = 7,
+<a name="l00486"></a>00486     RS_TYPE_UNSIGNED_8       = 8,
+<a name="l00487"></a>00487     RS_TYPE_UNSIGNED_16      = 9,
+<a name="l00488"></a>00488     RS_TYPE_UNSIGNED_32      = 10,
+<a name="l00489"></a>00489     RS_TYPE_UNSIGNED_64      = 11,
+<a name="l00490"></a>00490 
+<a name="l00491"></a>00491     RS_TYPE_BOOLEAN          = 12,
+<a name="l00492"></a>00492 
+<a name="l00493"></a>00493     RS_TYPE_UNSIGNED_5_6_5   = 13,
+<a name="l00494"></a>00494     RS_TYPE_UNSIGNED_5_5_5_1 = 14,
+<a name="l00495"></a>00495     RS_TYPE_UNSIGNED_4_4_4_4 = 15,
+<a name="l00496"></a>00496 
+<a name="l00497"></a>00497     RS_TYPE_MATRIX_4X4       = 16,
+<a name="l00498"></a>00498     RS_TYPE_MATRIX_3X3       = 17,
+<a name="l00499"></a>00499     RS_TYPE_MATRIX_2X2       = 18,
+<a name="l00500"></a>00500 
+<a name="l00501"></a>00501     RS_TYPE_ELEMENT          = 1000,
+<a name="l00502"></a>00502     RS_TYPE_TYPE             = 1001,
+<a name="l00503"></a>00503     RS_TYPE_ALLOCATION       = 1002,
+<a name="l00504"></a>00504     RS_TYPE_SAMPLER          = 1003,
+<a name="l00505"></a>00505     RS_TYPE_SCRIPT           = 1004,
+<a name="l00506"></a>00506     RS_TYPE_MESH             = 1005,
+<a name="l00507"></a>00507     RS_TYPE_PROGRAM_FRAGMENT = 1006,
+<a name="l00508"></a>00508     RS_TYPE_PROGRAM_VERTEX   = 1007,
+<a name="l00509"></a>00509     RS_TYPE_PROGRAM_RASTER   = 1008,
+<a name="l00510"></a>00510     RS_TYPE_PROGRAM_STORE    = 1009,
+<a name="l00511"></a>00511     RS_TYPE_FONT             = 1010,
+<a name="l00512"></a>00512 
+<a name="l00513"></a>00513     RS_TYPE_INVALID          = 10000,
+<a name="l00514"></a>00514 } <a class="code" href="rs__types_8rsh.html#ae7551db5705f864fde49c13660aff647" title="Enumeration for possible element data types.">rs_data_type</a>;
+<a name="l00515"></a>00515 
+<a name="l00524"></a><a class="code" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a">00524</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00525"></a>00525     RS_KIND_USER         = 0,
+<a name="l00526"></a>00526 
+<a name="l00527"></a>00527     RS_KIND_PIXEL_L      = 7,
+<a name="l00528"></a>00528     RS_KIND_PIXEL_A      = 8,
+<a name="l00529"></a>00529     RS_KIND_PIXEL_LA     = 9,
+<a name="l00530"></a>00530     RS_KIND_PIXEL_RGB    = 10,
+<a name="l00531"></a>00531     RS_KIND_PIXEL_RGBA   = 11,
+<a name="l00532"></a>00532     RS_KIND_PIXEL_DEPTH  = 12,
+<a name="l00533"></a>00533     RS_KIND_PIXEL_YUV    = 13,
+<a name="l00534"></a>0053
+<a name="l00535"></a>00535     RS_KIND_INVALID      = 100,
+<a name="l00536"></a>00536 } <a class="code" href="rs__types_8rsh.html#a1692d177c4a3fe1544bd91172056581a" title="Enumeration for possible element data kind.">rs_data_kind</a>;
+<a name="l00537"></a>00537 
+<a name="l00538"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">00538</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00542"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa8d469fa992bac113a001d75aa7cfbb5a">00542</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa8d469fa992bac113a001d75aa7cfbb5a">RS_DEPTH_FUNC_ALWAYS</a>        = 0,
+<a name="l00547"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfac1ddb06fe80be898bf8d4a517187575a">00547</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfac1ddb06fe80be898bf8d4a517187575a">RS_DEPTH_FUNC_LESS</a>          = 1,
+<a name="l00552"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa62459990f41930a88542b878ddd53d9f">00552</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa62459990f41930a88542b878ddd53d9f">RS_DEPTH_FUNC_LEQUAL</a>        = 2,
+<a name="l00557"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa412bb65be35e058a7699b8211cc2ef7d">00557</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa412bb65be35e058a7699b8211cc2ef7d">RS_DEPTH_FUNC_GREATER</a>       = 3,
+<a name="l00562"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2858ef91becfeb84d8f34a1458a4126d">00562</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2858ef91becfeb84d8f34a1458a4126d">RS_DEPTH_FUNC_GEQUAL</a>        = 4,
+<a name="l00567"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa56339400e4089e546199547717bdcd21">00567</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa56339400e4089e546199547717bdcd21">RS_DEPTH_FUNC_EQUAL</a>         = 5,
+<a name="l00572"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2105e438ae89b89a2f4361483e65966d">00572</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfa2105e438ae89b89a2f4361483e65966d">RS_DEPTH_FUNC_NOTEQUAL</a>      = 6,
+<a name="l00576"></a><a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfadfc3917c562a540b4114181440b909e3">00576</a>     <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bfadfc3917c562a540b4114181440b909e3">RS_DEPTH_FUNC_INVALID</a>       = 100,
+<a name="l00577"></a>00577 } <a class="code" href="rs__types_8rsh.html#a03e91ad8ebfc283ba20f7443dea4a4bf">rs_depth_func</a>;
 <a name="l00578"></a>00578 
 <a name="l00579"></a>00579 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00580"></a>00580     RS_BLEND_DST_ZERO                   = 0,
-<a name="l00581"></a>00581     RS_BLEND_DST_ONE                    = 1,
-<a name="l00582"></a>00582     RS_BLEND_DST_SRC_COLOR              = 2,
-<a name="l00583"></a>00583     RS_BLEND_DST_ONE_MINUS_SRC_COLOR    = 3,
-<a name="l00584"></a>00584     RS_BLEND_DST_SRC_ALPHA              = 4,
-<a name="l00585"></a>00585     RS_BLEND_DST_ONE_MINUS_SRC_ALPHA    = 5,
-<a name="l00586"></a>00586     RS_BLEND_DST_DST_ALPHA              = 6,
-<a name="l00587"></a>00587     RS_BLEND_DST_ONE_MINUS_DST_ALPHA    = 7,
-<a name="l00588"></a>00588 
-<a name="l00589"></a>00589     RS_BLEND_DST_INVALID                = 100,
-<a name="l00590"></a>00590 } rs_blend_dst_func;
-<a name="l00591"></a>00591 
-<a name="l00592"></a>00592 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00593"></a>00593     RS_CULL_BACK     = 0,
-<a name="l00594"></a>00594     RS_CULL_FRONT    = 1,
-<a name="l00595"></a>00595     RS_CULL_NONE     = 2,
-<a name="l00596"></a>00596 
-<a name="l00597"></a>00597     RS_CULL_INVALID  = 100,
-<a name="l00598"></a>00598 } rs_cull_mode;
-<a name="l00599"></a>00599 
-<a name="l00600"></a>00600 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-<a name="l00601"></a>00601     RS_SAMPLER_NEAREST              = 0,
-<a name="l00602"></a>00602     RS_SAMPLER_LINEAR               = 1,
-<a name="l00603"></a>00603     RS_SAMPLER_LINEAR_MIP_LINEAR    = 2,
-<a name="l00604"></a>00604     RS_SAMPLER_WRAP                 = 3,
-<a name="l00605"></a>00605     RS_SAMPLER_CLAMP                = 4,
-<a name="l00606"></a>00606     RS_SAMPLER_LINEAR_MIP_NEAREST   = 5,
-<a name="l00607"></a>00607 
-<a name="l00608"></a>00608     RS_SAMPLER_INVALID              = 100,
-<a name="l00609"></a>00609 } rs_sampler_value;
+<a name="l00580"></a>00580     RS_BLEND_SRC_ZERO                   = 0,
+<a name="l00581"></a>00581     RS_BLEND_SRC_ONE                    = 1,
+<a name="l00582"></a>00582     RS_BLEND_SRC_DST_COLOR              = 2,
+<a name="l00583"></a>00583     RS_BLEND_SRC_ONE_MINUS_DST_COLOR    = 3,
+<a name="l00584"></a>00584     RS_BLEND_SRC_SRC_ALPHA              = 4,
+<a name="l00585"></a>00585     RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA    = 5,
+<a name="l00586"></a>00586     RS_BLEND_SRC_DST_ALPHA              = 6,
+<a name="l00587"></a>00587     RS_BLEND_SRC_ONE_MINUS_DST_ALPHA    = 7,
+<a name="l00588"></a>00588     RS_BLEND_SRC_SRC_ALPHA_SATURATE     = 8,
+<a name="l00589"></a>00589 
+<a name="l00590"></a>00590     RS_BLEND_SRC_INVALID                = 100,
+<a name="l00591"></a>00591 } rs_blend_src_func;
+<a name="l00592"></a>00592 
+<a name="l00593"></a>00593 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00594"></a>00594     RS_BLEND_DST_ZERO                   = 0,
+<a name="l00595"></a>00595     RS_BLEND_DST_ONE                    = 1,
+<a name="l00596"></a>00596     RS_BLEND_DST_SRC_COLOR              = 2,
+<a name="l00597"></a>00597     RS_BLEND_DST_ONE_MINUS_SRC_COLOR    = 3,
+<a name="l00598"></a>00598     RS_BLEND_DST_SRC_ALPHA              = 4,
+<a name="l00599"></a>00599     RS_BLEND_DST_ONE_MINUS_SRC_ALPHA    = 5,
+<a name="l00600"></a>00600     RS_BLEND_DST_DST_ALPHA              = 6,
+<a name="l00601"></a>00601     RS_BLEND_DST_ONE_MINUS_DST_ALPHA    = 7,
+<a name="l00602"></a>00602 
+<a name="l00603"></a>00603     RS_BLEND_DST_INVALID                = 100,
+<a name="l00604"></a>00604 } rs_blend_dst_func;
+<a name="l00605"></a>00605 
+<a name="l00606"></a>00606 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00607"></a>00607     RS_CULL_BACK     = 0,
+<a name="l00608"></a>00608     RS_CULL_FRONT    = 1,
+<a name="l00609"></a>00609     RS_CULL_NONE     = 2,
 <a name="l00610"></a>00610 
-<a name="l00611"></a>00611 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
-<a name="l00612"></a>00612 <span class="preprocessor"></span>
-<a name="l00613"></a>00613 <span class="preprocessor">#endif // __RS_TYPES_RSH__</span>
+<a name="l00611"></a>00611     RS_CULL_INVALID  = 100,
+<a name="l00612"></a>00612 } rs_cull_mode;
+<a name="l00613"></a>00613 
+<a name="l00614"></a>00614 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00615"></a>00615     RS_SAMPLER_NEAREST              = 0,
+<a name="l00616"></a>00616     RS_SAMPLER_LINEAR               = 1,
+<a name="l00617"></a>00617     RS_SAMPLER_LINEAR_MIP_LINEAR    = 2,
+<a name="l00618"></a>00618     RS_SAMPLER_WRAP                 = 3,
+<a name="l00619"></a>00619     RS_SAMPLER_CLAMP                = 4,
+<a name="l00620"></a>00620     RS_SAMPLER_LINEAR_MIP_NEAREST   = 5,
+<a name="l00621"></a>00621     RS_SAMPLER_MIRRORED_REPEAT      = 6,
+<a name="l00622"></a>00622 
+<a name="l00623"></a>00623     RS_SAMPLER_INVALID              = 100,
+<a name="l00624"></a>00624 } rs_sampler_value;
+<a name="l00625"></a>00625 
+<a name="l00626"></a>00626 <span class="preprocessor">#endif // (defined(RS_VERSION) &amp;&amp; (RS_VERSION &gt;= 16))</span>
+<a name="l00627"></a>00627 <span class="preprocessor"></span>
+<a name="l00628"></a>00628 <span class="preprocessor">#endif // __RS_TYPES_RSH__</span>
 </pre></div></div>
 </div>
 
index ba6d973..1ffbc47 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_allocation" -->
-<p>Opaque handle to a Renderscript allocation.  
+<p>Opaque handle to a RenderScript allocation.  
  <a href="structrs__allocation.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript allocation. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript allocation. </p>
 <p>See: android.renderscript.Allocation </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00121">121</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00134">134</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index e380378..d6a1460 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_element" -->
-<p>Opaque handle to a Renderscript element.  
+<p>Opaque handle to a RenderScript element.  
  <a href="structrs__element.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript element. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript element. </p>
 <p>See: android.renderscript.Element </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00109">109</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00122">122</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 4d5cd9e..dbc4c4d 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_font" -->
-<p>Opaque handle to a Renderscript font object.  
+<p>Opaque handle to a RenderScript font object.  
  <a href="structrs__font.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript font object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript font object. </p>
 <p>See: android.renderscript.Font </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00175">175</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00188">188</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 5d08900..bacfa02 100644 (file)
@@ -35,9 +35,9 @@
 <div class="textblock"><p>2x2 float matrix </p>
 <p>Native holder for RS matrix. Elements are stored in the array at the location [row*2 + col] </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00363">363</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00376">376</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index f63ffe8..3745608 100644 (file)
@@ -35,9 +35,9 @@
 <div class="textblock"><p>3x3 float matrix </p>
 <p>Native holder for RS matrix. Elements are stored in the array at the location [row*3 + col] </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00354">354</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00367">367</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 1a10edf..26b57d1 100644 (file)
@@ -35,9 +35,9 @@
 <div class="textblock"><p>4x4 float matrix </p>
 <p>Native holder for RS matrix. Elements are stored in the array at the location [row*4 + col] </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00345">345</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00358">358</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 2a49a6a..fed96d9 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_mesh" -->
-<p>Opaque handle to a Renderscript mesh object.  
+<p>Opaque handle to a RenderScript mesh object.  
  <a href="structrs__mesh.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript mesh object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript mesh object. </p>
 <p>See: android.renderscript.Mesh </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00139">139</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00152">152</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 2ec823d..ef7f650 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_path" -->
-<p>Opaque handle to a Renderscript Path object.  
+<p>Opaque handle to a RenderScript Path object.  
  <a href="structrs__path.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript Path object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript Path object. </p>
 <p>See: android.renderscript.Path </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00145">145</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00158">158</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 8c9a241..707e899 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_program_fragment" -->
-<p>Opaque handle to a Renderscript ProgramFragment object.  
+<p>Opaque handle to a RenderScript ProgramFragment object.  
  <a href="structrs__program__fragment.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript ProgramFragment object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript ProgramFragment object. </p>
 <p>See: android.renderscript.ProgramFragment </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00151">151</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00164">164</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 201825b..444aaf9 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_program_raster" -->
-<p>Opaque handle to a Renderscript ProgramRaster object.  
+<p>Opaque handle to a RenderScript ProgramRaster object.  
  <a href="structrs__program__raster.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript ProgramRaster object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript ProgramRaster object. </p>
 <p>See: android.renderscript.ProgramRaster </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00163">163</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00176">176</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 800d29b..c187392 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_program_store" -->
-<p>Opaque handle to a Renderscript ProgramStore object.  
+<p>Opaque handle to a RenderScript ProgramStore object.  
  <a href="structrs__program__store.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript ProgramStore object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript ProgramStore object. </p>
 <p>See: android.renderscript.ProgramStore </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00169">169</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00182">182</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 9f425fe..c3688b7 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_program_vertex" -->
-<p>Opaque handle to a Renderscript ProgramVertex object.  
+<p>Opaque handle to a RenderScript ProgramVertex object.  
  <a href="structrs__program__vertex.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript ProgramVertex object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript ProgramVertex object. </p>
 <p>See: android.renderscript.ProgramVertex </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00157">157</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00170">170</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 9f48abc..daba2bb 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_sampler" -->
-<p>Opaque handle to a Renderscript sampler object.  
+<p>Opaque handle to a RenderScript sampler object.  
  <a href="structrs__sampler.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript sampler object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript sampler object. </p>
 <p>See: android.renderscript.Sampler </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00127">127</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00140">140</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 8294378..ea39d95 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_script" -->
-<p>Opaque handle to a Renderscript script object.  
+<p>Opaque handle to a RenderScript script object.  
  <a href="structrs__script.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript script object. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript script object. </p>
 <p>See: android.renderscript.ScriptC </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00133">133</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00146">146</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index 83432e5..e4c0820 100644 (file)
@@ -31,9 +31,9 @@
 <!-- doxytag: class="rs_script_call" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 <div class="textblock"><p>Structure to provide extra information to a rsForEach call. Primarly used to restrict the call to a subset of cells in the allocation. </p>
 
-<p>Definition at line <a class="el" href="rs__core_8rsh_source.html#l00106">106</a> of file <a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__core_8rsh_source.html#l00110">110</a> of file <a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__core_8rsh_source.html">rs_core.rsh</a></li>
 </ul>
 </div>
 
index 8148dcb..b6447b5 100644 (file)
@@ -67,7 +67,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struc
 
 <p>Definition at line <a class="el" href="rs__time_8rsh_source.html#l00049">49</a> of file <a class="el" href="rs__time_8rsh_source.html">rs_time.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__time_8rsh_source.html">rs_time.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__time_8rsh_source.html">rs_time.rsh</a></li>
 </ul>
 </div>
 
index 7d97fb9..ef95ed1 100644 (file)
 </div>
 <div class="contents">
 <!-- doxytag: class="rs_type" -->
-<p>Opaque handle to a Renderscript type.  
+<p>Opaque handle to a RenderScript type.  
  <a href="structrs__type.html#details">More...</a></p>
 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
-<div class="textblock"><p>Opaque handle to a Renderscript type. </p>
+<div class="textblock"><p>Opaque handle to a RenderScript type. </p>
 <p>See: android.renderscript.Type </p>
 
-<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00115">115</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
+<p>Definition at line <a class="el" href="rs__types_8rsh_source.html#l00128">128</a> of file <a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a>.</p>
 </div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
+<li>/usr/local/google/home/srhines/android_trees/jb-mr2-dev/frameworks/rs/scriptc/<a class="el" href="rs__types_8rsh_source.html">rs_types.rsh</a></li>
 </ul>
 </div>
 
index a686efd..12d2527 100644 (file)
@@ -10,6 +10,8 @@ page.title=Android Studio Tips and Tricks
  >Eclipse Compatibility Mode</a></li>
  <li><a href="http://confluence.jetbrains.com/display/IntelliJIDEA/FAQ+on+Migrating+to+IntelliJ+IDEA" class="external-link"
  >FAQ on Migrating</a></li>
+ <li><a href="http://android-developers.blogspot.com/2013/06/adding-backend-to-your-app-in-android.html"
+ class="external-link">Adding a Backend to Your App In Android Studio</a></li>
 </ul>
 </div>
 </div>
index 8825bcc..9a29599 100644 (file)
@@ -249,36 +249,36 @@ download (or continue to use) the
     <td>Windows</td>
     <td>
   <a onclick="return onDownload(this)" id="win-studio"
-      href="http://dl.google.com/android/studio/android-studio-bundle-130.687321-windows.exe">
-      android-studio-bundle-130.677228-windows.exe
+      href="http://dl.google.com/android/studio/android-studio-bundle-130.737825-windows.exe">
+      android-studio-bundle-130.737825-windows.exe
       </a>
     </td>
-    <td>393023485 bytes</td>
-    <td>3da987a9778b66edb68fb43d8b53bfcb</td>
+    <td>396091268 bytes</td>
+    <td>6da1bc8effa048c8ff669e4c484eb11f</td>
   </tr>
 
   <tr>
     <td><nobr>Mac OS X</nobr></td>
     <td>
   <a onclick="return onDownload(this)" id="mac-studio"
-    href="http://dl.google.com/android/studio/android-studio-bundle-130.687321-mac.dmg">
-    android-studio-bundle-130.687321-mac.dmg
+    href="http://dl.google.com/android/studio/android-studio-bundle-130.737825-mac.dmg">
+    android-studio-bundle-130.737825-mac.dmg
     </a>
     </td>
-    <td>379877697 bytes</td>
-    <td>eb5ca6c77f4a119595d941daeda58810</td>
+    <td>383326582 bytes</td>
+    <td>2959bc5039238d286670cc6225342b89</td>
   </tr>
 
   <tr>
     <td>Linux</td>
     <td>
   <a onclick="return onDownload(this)" id="linux-studio"
-    href="http://dl.google.com/android/studio/android-studio-bundle-130.687321-linux.tgz">
-    android-studio-bundle-130.687321-linux.tgz
+    href="http://dl.google.com/android/studio/android-studio-bundle-130.737825-linux.tgz">
+    android-studio-bundle-130.737825-linux.tgz
     </a>
     </td>
-    <td>406516375 bytes</td>
-    <td>6796d66de07c85b2822ca8d501a043c0</td>
+    <td>409935592 bytes</td>
+    <td>dcd13922f7cf577e3c852b224205d843</td>
   </tr>
   </table>
 
@@ -286,6 +286,31 @@ download (or continue to use) the
 
 
 
+<h2 id="Updating">Updating to 0.2.x</h2>
+
+<p>To update from Android Studio 0.1.x to 0.2.x,
+follow the <a href="#Installing">installation instructions</a> below and replace your existing
+installation.</p>
+
+<div class="caution">
+<p><strong>Caution:</strong> Replacing your existing installation of
+Android Studio will remove any additional SDK packages you've installed, such as target
+platforms, system images, and sample apps. To preserve these, copy them from your current
+SDK directory under Android Studio to a temporary location
+before installing the update. Then move them back once the update is complete.
+If you fail to copy these packages, then you can instead download them again through
+the Android SDK Manager.</p>
+<p><strong>Windows users:</strong> Do not install Android Studio 0.2.x in the same
+location as 0.1.x. Doing so may cause errors such as ClassCastException or other unexpected
+behaviors. It's best if you remove your previous version of Android Studio 0.1.x.</p>
+</div>
+
+
+<p>Also note that due to the update to Gradle 0.5, you will encounter errors when opening
+existing projects. See the <a href="#Troubleshooting">Troubleshooting</a> notes below for
+information about how to resolve them.</p>
+
+
 <h2 id="Installing">Installing Android Studio</h2>
 <ol>
 <li>Download the <strong>Android Studio</strong> package from above.</li>
@@ -390,14 +415,78 @@ style="vertical-align:bottom;margin:0;height:19px" /> in the toolbar.</p>
 
 <h2 id="Revisions">Revisions</h2>
 
-<p class="note"><strong>Note:</strong> Periodic updates are pushed to Android Studio
-without requiring you to update from here. To manually check for updates, select
-<strong>Help > Check for updates</strong> (on Mac, select <strong>Android Studio >
-Check for updates</strong>).</p>
+<p class="note"><strong>Note:</strong> <strong>There is not a patch update available from
+0.1.9 to 0.2</strong>. To update from Android Studio 0.1.x to 0.2.x, you must
+install a new Android Studio bundle from this page.  The reason for that is that we have made
+changes to the bundled SDK such that it includes a pre-configured local Maven repository
+which can serve up the v4 support library and which is required for creating new projects.</p>
+
 
 <div class="toggle-content opened">
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>Android Studio v0.2.x</a> <em>(July 2013)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+  <ul>
+    <li>Merged in the latest IntelliJ codebase changes. Includes fixes for issues reported by Studio users such as tweaks to Linux font sizes and font rendering.</li>
+    <li>Android Gradle plug-in updated to 0.5.0.
+      <p class="caution"><strong>Caution:</strong> This new version is not backwards compatible.
+      When opening a project that uses an older version of the plug-in, Studio will show an error
+      stating <strong>Gradle &lt;project_name&gt; project refresh failed.</strong> See <a
+      href="#Troubleshooting">Troubleshooting</a> below for details.</p>
+      <p>The updated Gradle plug-in includes the following changes:</p>
+      <ul>
+        <li>Fixed IDE model to contain the output file even if it's customized through the DSL. Also
+        fixed the DSL to get/set the output file on the variant object so that it's not necessary to
+        use <code>variant.packageApplication or variant.zipAlign</code></li>
+        <li>Fixed dependency resolution so that we resolved the combination of (default config,
+        build types, flavor(s)) together instead of separately.</li>
+        <li>Fixed dependency for tests of library project to properly include all the dependencies
+        of the library itself.</li>
+        <li>Fixed case where two dependencies have the same leaf name.</li>
+        <li>Fixed issue where Proguard rules file cannot be applied on flavors.</li>
+      </ul>
+      <p>All Gradle plugin release notes are available are here: <a href=
+      "http://tools.android.com/tech-docs/new-build-system"
+      >http://tools.android.com/tech-docs/new-build-system</a>.</p>
+    </li>
+    <li>Gradle errors from aapt no longer point to merged output files in the build/ folder, they
+    point back to the real source locations.</li>
+    <li>Parallel Builds. It's now possible to use Gradle's parallel builds. Please be aware that
+    parallel builds are in "incubation" (see <a
+    href="http://www.gradle.org/docs/current/userguide/gradle_command_line.html">Gradle's
+    documentation</a>.) This feature is off by default. To enable it, go to
+    <strong>Preferences</strong> &gt; <strong>Compiler</strong> and check the box <em>Compile
+    independent modules in parallel</em>.</li>
+    <li>Further work on the new resource repository used for layout rendering, resource
+    folding in the editor, and more:
+      <ul>
+      <li>Basic support for .aar library dependencies (e.g. using a library without a local copy of
+      the sources). Still not working for resource XML validation and navigation in source editors.
+      </li>
+      <li>Cycle detection in resource references.</li>
+      <li>Quick Documentation (F1), which can show all translations of the string under the caret,
+      will now also show all resource overlays from the various Gradle flavors and build types, as
+      well as libraries. They are listed in reverse resource overlay order, with strikethrough on
+      the versions of the string that are masked.</li>
+      <li>Fixes to handle updating the merged resources when the set of module dependencies
+      change.</li>
+      <li>XML rendering fixes to properly handle character entity declarations and XML and unicode
+      escapes.</li>
+      </ul>
+    <li>Save screenshot support for the layout preview and layout editor windows.</li>
+    <li>Template bug fixes.</li>
+    <li>Lint bug fixes.</li>
+    <li>Various fixes for crash reports. Thank you, and keep filing crash reports!</li>
+  </ul>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
       alt=""/>Android Studio v0.1.x</a> <em>(May 2013)</em>
   </p>
 
@@ -408,12 +497,79 @@ Check for updates</strong>).</p>
   </div>
 </div>
 
+<p>&nbsp;</p>
 
+<p class="note"><strong>Note:</strong> Periodic updates are pushed to Android Studio
+without requiring you to update from here. To manually check for updates, select
+<strong>Help > Check for updates</strong> (on Mac, select <strong>Android Studio >
+Check for updates</strong>).</p>
+
+
+
+
+<h2 id="Troubleshooting">Troubleshooting</h2>
+
+
+<div class="figure" style="width:330px">
+<img src="{@docRoot}images/tools/studio_error_gradle5.png" width="330"/>
+<p class="img-caption"><strong>Figure 1.</strong> Error dialog when opening an existing project.</p>
+</div>
+
+<h3>Error: Gradle project refresh failed</h3>
+
+<p>Android Studio 0.2.0 has updated the Gradle plug-in to 0.5.0, which is not backwards compatible.
+When opening a project that uses an older version of the plug-in, Studio will display the error
+shown in figure 1 in the upper right corner of the IDE.
+To resolve the error, you must change the version of the Android Gradle plug-in to 0.5.0.</p>
+
+<ol>
+  <li>Click the link in the error dialog <strong>Search in build.gradle files</strong>. If the dialog
+is no longer visible, click <strong>Event Log</strong>
+<img src="{@docRoot}images/tools/studio_error_eventlog.png"
+style="vertical-align:bottom;margin:0;height:19px"/> in the bottom-right corner of the IDE,
+then click <strong>Search in build.gradle files</strong>.</li>
+  <li>Double-click the line under the <em>build.gradle</em> usage. For example:
+  <strong>classpath 'com.android.tools.build:gradle:0.4</strong>. This opens the project
+  <code>build.gradle</code> file.</li>
+  <li>Edit the <code>classpath</code> to change the gradle version to <code>0.5.+</code>.
+  For example:
+  <pre class="no-pretty-print">
+dependencies {
+  classpath 'com.android.tools.build:gradle:<strong>0.5.+</strong>'
+}
+</pre>
+  </li>
+  <li>Save the file and rebuild your project.</li>
+</ol>
+
+
+
+<div class="figure" style="width:330px">
+<img src="{@docRoot}images/tools/studio_error_supportlib.png" width="330"/>
+<p class="img-caption"><strong>Figure 2.</strong> Error dialog when creating a new project
+or opening a project using the support library.</p>
+</div>
 
+<h3>Error: Failed to import Gradle project</h3>
 
+<p>If, after updating to Android Studio 0.2.x and creating or opening a project, you receive an
+error stating <em>"Could not find any version that matches
+com.android.support:support-v4:13.0.+"</em>, then you must install the <strong>Android Support
+Repository</strong>. This was likely caused because you're pointing Android Studio to an external
+Android SDK location that does not have the new Maven repository included with Android Studio
+0.2.x. This new Maven repository is used by the new build system for the Support Library, instead
+of using the Support Library JAR files, so must be present in the SDK.</p>
 
 
+<ol>
+  <li>Open the <strong>Android SDK Manager</strong>.</li>
+  <li>Expand the <strong>Extras</strong> directory
+and install <strong>Android Support Repository</strong>.</li>
+</ol>
 
+<p>If you've encountered other problems in Android Studio, look at the following page
+for possible resolutions to known issues: <a href="http://tools.android.com/knownissues"
+>http://tools.android.com/knownissues</a>.</p>
 
 
 
@@ -430,7 +586,7 @@ Check for updates</strong>).</p>
 
 
 
-  
+
 <script>
   var os;
   var bundlename;
@@ -450,15 +606,15 @@ Check for updates</strong>).</p>
   if (os) {
     /* set up primary ACE download button */
     $('#download-ide-button').show();
-    $('#download-ide-button').append("Download Android Studio <span class='small'>v0.1.x</span>"
-        + "<br/><span class='small'>for " + os + "</span>");
+    $('#download-ide-button').append("Download Android Studio <span class='small'>v0.2.x</span>"
+        + "<br/> <span class='small'>for " + os + "</span>");
     $('#download-ide-button').click(function() {return onDownload(this,true);}).attr('href', bundlename);
 
   } else {
     $('.pax').show();
   }
-  
-  
+
+
   function onDownload(link, button) {
     var $studioLink;
 
@@ -470,7 +626,7 @@ Check for updates</strong>).</p>
       $studioLink = $(link);
       $("#downloadForRealz").html("Download " + $(link).text());
     }
-    
+
     $("#downloadForRealz").attr('href', $studioLink.attr('href'));
 
     $("#tos").fadeIn('fast');
@@ -493,10 +649,9 @@ Check for updates</strong>).</p>
 
   function onDownloadForRealz(link) {
     if ($("input#agree").is(':checked')) {
-      $("div.sdk-terms,#sdk-terms-form,.sdk-terms-intro").hide();
-      $("#main").show(function() {
-          location.hash = "Installing";
-          });
+      $("#tos").hide();
+      $("#main").show();
+      location.hash = "Updating";
       return true;
     } else {
       $("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
index 87734a1..5e0e893 100644 (file)
@@ -250,14 +250,6 @@ href="http://drivers.cmcs.com.tw/">http://drivers.cmcs.com.tw/</a></td>
 href="http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a>
     </td>
   </tr>
-  <tr>
-    <td>
-      Fujitsu Toshiba
-    </td>
-    <td><a
-href="http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a>
-    </td>
-  </tr>
   <tr><td>
        Garmin-Asus
     </td>      <td><a
@@ -327,6 +319,10 @@ href="http://developer.sonymobile.com/downloads/drivers/">http://developer.sonym
 href="http://www.teleepoch.com/android.html">http://www.teleepoch.com/android.html</a></td>
 </tr>
 
+<tr><td>Toshiba</td>  <td><a
+href="http://support.toshiba.com/sscontent?docId=4001814">http://support.toshiba.com/sscontent?docId=4001814</a></td>
+</tr>
+
 <tr><td>Yulong Coolpad</td>    <td><a
 href="http://www.yulong.com/product/product/product/downloadList.html#downListUL">http://www.yulong.com/product/product/product/downloadList.html#downListUL</a></td>
 </tr>
diff --git a/docs/html/tools/help/uiautomator/Configurator.jd b/docs/html/tools/help/uiautomator/Configurator.jd
new file mode 100644 (file)
index 0000000..c898772
--- /dev/null
@@ -0,0 +1,960 @@
+page.title=Configurator
+parent.title=uiautomator
+parent.link=index.html
+
+@jd:body
+<style>
+    h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+
+<div id="api-info-block">
+<div class="api-level" style="margin:-95px 0 0;">
+Since <a href="/guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level 18</a>
+</div>
+</div>
+
+<p>Allows you to set key parameters for running uiautomator tests. The new
+settings take effect immediately and can be changed any time during a test run.
+To modify parameters using <code><a href="#">Configurator</a></code>, first
+obtain an instance by calling <code><a href="#getInstance()">getInstance()</a></code>.
+As a best practice, make sure you always save the original value of any
+parameter that you are modifying. After running your tests with the modified
+parameters, make sure to also restore the original parameter values, otherwise
+this will impact other tests cases.</p>
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            long</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getActionAcknowledgmentTimeout()">getActionAcknowledgmentTimeout</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Gets the current timeout for waiting for an acknowledgment of generic
+ uiautomator actions, such as clicks, text setting, and menu presses.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+            static
+
+            <a href="#">Configurator</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getInstance()">getInstance</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Retrieves a singleton instance of Configurator.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            long</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getKeyInjectionDelay()">getKeyInjectionDelay</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Gets the current delay between key presses when injecting text input.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            long</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getScrollAcknowledgmentTimeout()">getScrollAcknowledgmentTimeout</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Gets the timeout for waiting for an acknowledgement of an
+ uiautomtor scroll swipe action.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            long</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getWaitForIdleTimeout()">getWaitForIdleTimeout</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Gets the current timeout used for waiting for the user interface to go
+ into an idle state.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            long</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getWaitForSelectorTimeout()">getWaitForSelectorTimeout</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Gets the current timeout for waiting for a widget to become visible in
+ the user interface so that it can be matched by a selector.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">Configurator</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setActionAcknowledgmentTimeout(long)">setActionAcknowledgmentTimeout</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Sets the timeout for waiting for an acknowledgment of generic uiautomator
+ actions, such as clicks, text setting, and menu presses.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">Configurator</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setKeyInjectionDelay(long)">setKeyInjectionDelay</a></span>(long delay)</nobr>
+
+        <div class="jd-descrdiv">Sets a delay between key presses when injecting text input.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">Configurator</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setScrollAcknowledgmentTimeout(long)">setScrollAcknowledgmentTimeout</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Sets the timeout for waiting for an acknowledgement of an
+ uiautomtor scroll swipe action.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">Configurator</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setWaitForIdleTimeout(long)">setWaitForIdleTimeout</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Sets the timeout for waiting for the user interface to go into an idle
+ state before starting a uiautomator action.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">Configurator</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setWaitForSelectorTimeout(long)">setWaitForSelectorTimeout</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Sets the timeout for waiting for a widget to become visible in the user
+ interface so that it can be matched by a selector.</div>
+
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+  <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api" >
+<td colspan="12">
+  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+          ><img id="inherited-methods-java.lang.Object-trigger"
+          src="../../../../../assets/images/triangle-closed.png"
+          class="jd-expando-trigger-img" /></a>
+From class
+
+  java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+  <div id="inherited-methods-java.lang.Object-list"
+        class="jd-inheritedlinks">
+  </div>
+  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+    <table class="jd-sumtable-expando">
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Object</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">clone</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">equals</span>(Object arg0)</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">finalize</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            Class&lt;?&gt;</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">getClass</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">hashCode</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notify</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notifyAll</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">toString</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0)</nobr>
+
+  </td></tr>
+
+
+</table>
+  </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getActionAcknowledgmentTimeout()"></A>
+
+<div class="jd-details api apilevel-18">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        long
+      </span>
+      <span class="sympad">getActionAcknowledgmentTimeout</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Gets the current timeout for waiting for an acknowledgment of generic
+ uiautomator actions, such as clicks, text setting, and menu presses.
+
+ The acknowledgment is an <a href="http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a>,
+ corresponding to an action, that lets the framework determine if the
+ action was successful. Generally, this timeout should not be modified.
+ See <code><a href="UiObject.html">UiObject</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>current timeout in milliseconds</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getInstance()"></A>
+
+<div class="jd-details api apilevel-18">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+        static
+
+
+
+        <a href="#">Configurator</a>
+      </span>
+      <span class="sympad">getInstance</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Retrieves a singleton instance of Configurator.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Configurator instance</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getKeyInjectionDelay()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        long
+      </span>
+      <span class="sympad">getKeyInjectionDelay</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Gets the current delay between key presses when injecting text input.
+ See <code><a href="UiObject.html#setText(java.lang.String)">setText(String)</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>current delay in milliseconds</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="getScrollAcknowledgmentTimeout()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        long
+      </span>
+      <span class="sympad">getScrollAcknowledgmentTimeout</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Gets the timeout for waiting for an acknowledgement of an
+ uiautomtor scroll swipe action.
+
+ The acknowledgment is an <a href="http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a>,
+ corresponding to the scroll action, that lets the framework determine if
+ the scroll action was successful. Generally, this timeout should not be modified.
+ See <code><a href="UiScrollable.html">UiScrollable</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>current timeout in milliseconds</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="getWaitForIdleTimeout()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        long
+      </span>
+      <span class="sympad">getWaitForIdleTimeout</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Gets the current timeout used for waiting for the user interface to go
+ into an idle state.
+
+ By default, all core uiautomator objects except <code><a href="UiDevice.html">UiDevice</a></code> will perform
+ this wait before starting to search for the widget specified by the
+ object's <code><a href="UiSelector.html">UiSelector</a></code>. Once the idle state is detected or the
+ timeout elapses (whichever occurs first), the object will start to wait
+ for the selector to find a match.
+ See <code><a href="#setWaitForSelectorTimeout(long)">setWaitForSelectorTimeout(long)</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Current timeout value in milliseconds</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="getWaitForSelectorTimeout()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        long
+      </span>
+      <span class="sympad">getWaitForSelectorTimeout</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Gets the current timeout for waiting for a widget to become visible in
+ the user interface so that it can be matched by a selector.
+
+ Because user interface content is dynamic, sometimes a widget may not
+ be visible immediately and won't be detected by a selector. This timeout
+ allows the uiautomator framework to wait for a match to be found, up until
+ the timeout elapses.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Current timeout value in milliseconds</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="setActionAcknowledgmentTimeout(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">Configurator</a>
+      </span>
+      <span class="sympad">setActionAcknowledgmentTimeout</span>
+      <span class="normal">(long timeout)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the timeout for waiting for an acknowledgment of generic uiautomator
+ actions, such as clicks, text setting, and menu presses.
+
+ The acknowledgment is an <a href="http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a>,
+ corresponding to an action, that lets the framework determine if the
+ action was successful. Generally, this timeout should not be modified.
+ See <code><a href="UiObject.html">UiObject</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>Timeout value in milliseconds</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>self</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="setKeyInjectionDelay(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">Configurator</a>
+      </span>
+      <span class="sympad">setKeyInjectionDelay</span>
+      <span class="normal">(long delay)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Sets a delay between key presses when injecting text input.
+ See <code><a href="UiObject.html#setText(java.lang.String)">setText(String)</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>delay</td>
+          <td>Delay value in milliseconds</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>self</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="setScrollAcknowledgmentTimeout(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">Configurator</a>
+      </span>
+      <span class="sympad">setScrollAcknowledgmentTimeout</span>
+      <span class="normal">(long timeout)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the timeout for waiting for an acknowledgement of an
+ uiautomtor scroll swipe action.
+
+ The acknowledgment is an <a href="http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a>,
+ corresponding to the scroll action, that lets the framework determine if
+ the scroll action was successful. Generally, this timeout should not be modified.
+ See <code><a href="UiScrollable.html">UiScrollable</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>Timeout value in milliseconds</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>self</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="setWaitForIdleTimeout(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">Configurator</a>
+      </span>
+      <span class="sympad">setWaitForIdleTimeout</span>
+      <span class="normal">(long timeout)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the timeout for waiting for the user interface to go into an idle
+ state before starting a uiautomator action.
+
+ By default, all core uiautomator objects except <code><a href="UiDevice.html">UiDevice</a></code> will perform
+ this wait before starting to search for the widget specified by the
+ object's <code><a href="UiSelector.html">UiSelector</a></code>. Once the idle state is detected or the
+ timeout elapses (whichever occurs first), the object will start to wait
+ for the selector to find a match.
+ See <code><a href="#setWaitForSelectorTimeout(long)">setWaitForSelectorTimeout(long)</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>Timeout value in milliseconds</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>self</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="setWaitForSelectorTimeout(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">Configurator</a>
+      </span>
+      <span class="sympad">setWaitForSelectorTimeout</span>
+      <span class="normal">(long timeout)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the timeout for waiting for a widget to become visible in the user
+ interface so that it can be matched by a selector.
+
+ Because user interface content is dynamic, sometimes a widget may not
+ be visible immediately and won't be detected by a selector. This timeout
+ allows the uiautomator framework to wait for a match to be found, up until
+ the timeout elapses.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>Timeout value in milliseconds.</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>self</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+
index 4120f2b..1e9e301 100644 (file)
@@ -11,58 +11,8 @@ parent.link=index.html
 
 </p>
 
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
 <h2>Summary</h2>
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 <!-- ========== METHOD SUMMARY =========== -->
 <table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
 
@@ -97,31 +47,6 @@ parent.link=index.html
 
 </div><!-- jd-descr (summary) -->
 
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
 <!-- Protected ctors -->
 
@@ -149,20 +74,9 @@ parent.link=index.html
       <span class="sympad">sendStatus</span>
       <span class="normal">(int resultCode, Bundle status)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
 </div>
         
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
+<div class="jd-details-descr">
   <div class="jd-tagdata jd-tagdescr"><p>Allows the running test cases to send out interim status</p></div>
-
-    </div>
 </div>
 
-
-
index 48c63ba..0d8d1bc 100644 (file)
@@ -14,27 +14,6 @@ parent.link=index.html
 </ul>
 </p>
 
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 <div class="jd-descr">
 
 
index ed92ca7..3fc32b7 100644 (file)
@@ -9,8 +9,6 @@ parent.link=index.html
  or targeting a sub elements by a child's text or description.
 </p>
 
-<div class="jd-descr">
-
 
 <h2>Summary</h2>
 
@@ -1267,5 +1265,4 @@ From class
   </div>
 
     </div>
-</div>
 
index 1c8805b..574245e 100644 (file)
@@ -5,17 +5,16 @@ parent.link=index.html
 <style>
     h4.jd-details-title {background-color: #DEE8F1;}
 </style>
+<p>Provides access to state information about the device. You can
+also use this class to simulate user actions on the device, such as pressing
+the d-pad or pressing the Home and Menu buttons.</p>
 
-<h2>Class Overview</h2>
-<p>UiDevice provides access to state information about the device.
- You can also use this class to simulate user actions on the device,
- such as pressing the d-pad or pressing the Home and Menu buttons.</p>
+<h2>Summary</h2>
 
 
 
 
 
-</div><!-- jd-descr -->
 
 
 
@@ -32,902 +31,968 @@ parent.link=index.html
 
 
 
-<div class="jd-descr">
 
 
-<h2>Summary</h2>
 
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
 
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
 
 
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clearLastTraversedText()">clearLastTraversedText</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Clears the text from the last UI traversal event.</div>
 
+  </td></tr>
 
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
 
 
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#click(int, int)">click</a></span>(int x, int y)</nobr>
 
+        <div class="jd-descrdiv">Perform a click at arbitrary coordinates specified by the user</div>
 
+  </td></tr>
 
 
 
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clearLastTraversedText()">clearLastTraversedText</a></span>()
-        
-        <div class="jd-descrdiv">Clears the text from the last UI traversal event.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#click(int, int)">click</a></span>(int x, int y)
-        
-        <div class="jd-descrdiv">Perform a click at arbitrary coordinates specified by the user</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#drag(int, int, int, int, int)">drag</a></span>(int startX, int startY, int endX, int endY, int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a swipe from one coordinate to another coordinate.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#dumpWindowHierarchy(java.lang.String)">dumpWindowHierarchy</a></span>(String fileName)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#dumpWindowHierarchy(java.lang.String)">dumpWindowHierarchy</a></span>(String fileName)</nobr>
+
         <div class="jd-descrdiv">Helper method used for debugging to dump the current window's layout hierarchy.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#freezeRotation()">freezeRotation</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#freezeRotation()">freezeRotation</a></span>()</nobr>
+
         <div class="jd-descrdiv">Disables the sensors and freezes the device rotation at its
  current rotation state.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getCurrentActivityName()">getCurrentActivityName</a></span>()
-        
-        <div class="jd-descrdiv">
-      <em>
-  This method is deprecated.
-      The results returned should be considered unreliable</em></div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getCurrentActivityName()">getCurrentActivityName</a></span>()</nobr>
+
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    The results returned should be considered unreliable</em></div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getCurrentPackageName()">getCurrentPackageName</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getCurrentPackageName()">getCurrentPackageName</a></span>()</nobr>
+
         <div class="jd-descrdiv">Retrieves the name of the last package to report accessibility events.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getDisplayHeight()">getDisplayHeight</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getDisplayHeight()">getDisplayHeight</a></span>()</nobr>
+
         <div class="jd-descrdiv">Gets the height of the display, in pixels.</div>
-  
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getDisplayRotation()">getDisplayRotation</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Returns the current rotation of the display, as defined in <code><a href="../../../../../reference/android/view/Surface.html">Surface</a></code></div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Point</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getDisplayRotation()">getDisplayRotation</a></span>()
-        
-        <div class="jd-descrdiv">Returns the current rotation of the display, as defined in Surface@return</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getDisplaySizeDp()">getDisplaySizeDp</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Returns the display size in dp (device-independent pixel)
+
+ The returned display size is adjusted per screen rotation.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getDisplayWidth()">getDisplayWidth</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getDisplayWidth()">getDisplayWidth</a></span>()</nobr>
+
         <div class="jd-descrdiv">Gets the width of the display, in pixels.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
             static
-            
-            <a href="UiDevice.html">UiDevice</a>
+
+            <a href="#">UiDevice</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getInstance()">getInstance</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getInstance()">getInstance</a></span>()</nobr>
+
         <div class="jd-descrdiv">Retrieves a singleton instance of UiDevice</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getLastTraversedText()">getLastTraversedText</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getLastTraversedText()">getLastTraversedText</a></span>()</nobr>
+
         <div class="jd-descrdiv">Retrieves the text from the last UI traversal event received.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getProductName()">getProductName</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getProductName()">getProductName</a></span>()</nobr>
+
         <div class="jd-descrdiv">Retrieves the product name of the device.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#hasAnyWatcherTriggered()">hasAnyWatcherTriggered</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#hasAnyWatcherTriggered()">hasAnyWatcherTriggered</a></span>()</nobr>
+
         <div class="jd-descrdiv">Checks if any registered <code><a href="UiWatcher.html">UiWatcher</a></code> have triggered.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#hasWatcherTriggered(java.lang.String)">hasWatcherTriggered</a></span>(String watcherName)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#hasWatcherTriggered(java.lang.String)">hasWatcherTriggered</a></span>(String watcherName)</nobr>
+
         <div class="jd-descrdiv">Checks if a specific registered  <code><a href="UiWatcher.html">UiWatcher</a></code> has triggered.</div>
-  
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isNaturalOrientation()">isNaturalOrientation</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the device is in its natural orientation.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isScreenOn()">isScreenOn</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks the power manager if the screen is ON.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#openNotification()">openNotification</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Opens the notification shade.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#openQuickSettings()">openQuickSettings</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Opens the Quick Settings shade.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressBack()">pressBack</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the BACK button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressDPadCenter()">pressDPadCenter</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the CENTER button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressDPadDown()">pressDPadDown</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the DOWN button.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isNaturalOrientation()">isNaturalOrientation</a></span>()
-        
-        <div class="jd-descrdiv">Check if the device is in its natural orientation.</div>
-  
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressDPadLeft()">pressDPadLeft</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the LEFT button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressDPadRight()">pressDPadRight</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the RIGHT button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressDPadUp()">pressDPadUp</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the UP button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressDelete()">pressDelete</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the DELETE key.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressEnter()">pressEnter</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the ENTER key.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressHome()">pressHome</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the HOME button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressKeyCode(int, int)">pressKeyCode</a></span>(int keyCode, int metaState)</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press using a key code.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressKeyCode(int)">pressKeyCode</a></span>(int keyCode)</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press using a key code.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressMenu()">pressMenu</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the MENU button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressRecentApps()">pressRecentApps</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the Recent Apps button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pressSearch()">pressSearch</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates a short press on the SEARCH button.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher</a></span>(String name, <a href="UiWatcher.html">UiWatcher</a> watcher)</nobr>
+
+        <div class="jd-descrdiv">Registers a <code><a href="UiWatcher.html">UiWatcher</a></code> to run automatically when the testing framework is unable to
+ find a match using a <code><a href="UiSelector.html">UiSelector</a></code>.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#removeWatcher(java.lang.String)">removeWatcher</a></span>(String name)</nobr>
+
+        <div class="jd-descrdiv">Removes a previously registered <code><a href="UiWatcher.html">UiWatcher</a></code>.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#resetWatcherTriggers()">resetWatcherTriggers</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Resets a <code><a href="UiWatcher.html">UiWatcher</a></code> that has been triggered.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#runWatchers()">runWatchers</a></span>()</nobr>
+
+        <div class="jd-descrdiv">This method forces all registered watchers to run.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setCompressedLayoutHeirarchy(boolean)">setCompressedLayoutHeirarchy</a></span>(boolean compressed)</nobr>
+
+        <div class="jd-descrdiv">Enables or disables layout hierarchy compression.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setOrientationLeft()">setOrientationLeft</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates orienting the device to the left and also freezes rotation
+ by disabling the sensors.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setOrientationNatural()">setOrientationNatural</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates orienting the device into its natural orientation and also freezes rotation
+ by disabling the sensors.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setOrientationRight()">setOrientationRight</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Simulates orienting the device to the right and also freezes rotation
+ by disabling the sensors.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#sleep()">sleep</a></span>()</nobr>
+
+        <div class="jd-descrdiv">This method simply presses the power button if the screen is ON else
+ it does nothing if the screen is already OFF.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#swipe(android.graphics.Point[], int)">swipe</a></span>(Point[] segments, int segmentSteps)</nobr>
+
+        <div class="jd-descrdiv">Performs a swipe between points in the Point array.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#swipe(int, int, int, int, int)">swipe</a></span>(int startX, int startY, int endX, int endY, int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a swipe from one coordinate to another using the number of steps
+ to determine smoothness and speed.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isScreenOn()">isScreenOn</a></span>()
-        
-        <div class="jd-descrdiv">Checks the power manager if the screen is ON.</div>
-  
-  </td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressBack()">pressBack</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the BACK button.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressDPadCenter()">pressDPadCenter</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the CENTER button.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressDPadDown()">pressDPadDown</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the DOWN button.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#takeScreenshot(java.io.File)">takeScreenshot</a></span>(File storePath)</nobr>
 
+        <div class="jd-descrdiv">Take a screenshot of current window and store it as PNG
+
+ Default scale of 1.0f (original size) and 90% quality is used
+ The screenshot is adjusted per screen rotation</div>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressDPadLeft()">pressDPadLeft</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the LEFT button.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressDPadRight()">pressDPadRight</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the RIGHT button.</div>
-  
-  </td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressDPadUp()">pressDPadUp</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the UP button.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressDelete()">pressDelete</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the DELETE key.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressEnter()">pressEnter</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the ENTER key.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#takeScreenshot(java.io.File, float, int)">takeScreenshot</a></span>(File storePath, float scale, int quality)</nobr>
+
+        <div class="jd-descrdiv">Take a screenshot of current window and store it as PNG
 
+ The screenshot is adjusted per screen rotation</div>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressHome()">pressHome</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the HOME button.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressKeyCode(int)">pressKeyCode</a></span>(int keyCode)
-        
-        <div class="jd-descrdiv">Simulates a short press using a key code.</div>
-  
-  </td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressKeyCode(int, int)">pressKeyCode</a></span>(int keyCode, int metaState)
-        
-        <div class="jd-descrdiv">Simulates a short press using a key code.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressMenu()">pressMenu</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the MENU button.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressRecentApps()">pressRecentApps</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the Recent Apps button.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#unfreezeRotation()">unfreezeRotation</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Re-enables the sensors and un-freezes the device rotation allowing its contents
+ to rotate with the device physical rotation.</div>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#pressSearch()">pressSearch</a></span>()
-        
-        <div class="jd-descrdiv">Simulates a short press on the SEARCH button.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher</a></span>(String name, <a href="UiWatcher.html">UiWatcher</a> watcher)
-        
-        <div class="jd-descrdiv">Registers a <code><a href="UiWatcher.html">UiWatcher</a></code> to run automatically when the testing framework is unable to
- find a match using a <code><a href="UiSelector.html">UiSelector</a></code>.</div>
-  
-  </td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#removeWatcher(java.lang.String)">removeWatcher</a></span>(String name)
-        
-        <div class="jd-descrdiv">Removes a previously registered <code><a href="UiWatcher.html">UiWatcher</a></code>.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#resetWatcherTriggers()">resetWatcherTriggers</a></span>()
-        
-        <div class="jd-descrdiv">Resets a <code><a href="UiWatcher.html">UiWatcher</a></code> that has been triggered.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#runWatchers()">runWatchers</a></span>()
-        
-        <div class="jd-descrdiv">This method forces all registered watchers to run.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#waitForIdle(long)">waitForIdle</a></span>(long timeout)</nobr>
 
+        <div class="jd-descrdiv">Waits for the current application to idle.</div>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setOrientationLeft()">setOrientationLeft</a></span>()
-        
-        <div class="jd-descrdiv">Simulates orienting the device to the left and also freezes rotation
- by disabling the sensors.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setOrientationNatural()">setOrientationNatural</a></span>()
-        
-        <div class="jd-descrdiv">Simulates orienting the device into its natural orientation and also freezes rotation
- by disabling the sensors.</div>
-  
-  </td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setOrientationRight()">setOrientationRight</a></span>()
-        
-        <div class="jd-descrdiv">Simulates orienting the device to the right and also freezes rotation
- by disabling the sensors.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#sleep()">sleep</a></span>()
-        
-        <div class="jd-descrdiv">This method simply presses the power button if the screen is ON else
- it does nothing if the screen is already OFF.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#swipe(android.graphics.Point[], int)">swipe</a></span>(Point[] segments, int segmentSteps)
-        
-        <div class="jd-descrdiv">Performs a swipe between points in the Point array.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#waitForIdle()">waitForIdle</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Waits for the current application to idle.</div>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#swipe(int, int, int, int, int)">swipe</a></span>(int startX, int startY, int endX, int endY, int steps)
-        
-        <div class="jd-descrdiv">Performs a swipe from one coordinate to another using the number of steps
- to determine smoothness and speed.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#takeScreenshot(java.io.File, float, int)">takeScreenshot</a></span>(File storePath, float scale, int quality)
-        
-        <div class="jd-descrdiv">Take a screenshot of current window and store it as PNG
 
- The screenshot is adjusted per screen rotation</div>
-  
-  </td></tr>
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#takeScreenshot(java.io.File)">takeScreenshot</a></span>(File storePath)
-        
-        <div class="jd-descrdiv">Take a screenshot of current window and store it as PNG
 
- Default scale of 1.0f (original size) and 90% quality is used
- The screenshot is adjusted per screen rotation</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#unfreezeRotation()">unfreezeRotation</a></span>()
-        
-        <div class="jd-descrdiv">Re-enables the sensors and un-freezes the device rotation allowing its contents
- to rotate with the device physical rotation.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#waitForWindowUpdate(java.lang.String, long)">waitForWindowUpdate</a></span>(String packageName, long timeout)</nobr>
 
+        <div class="jd-descrdiv">Waits for a window content update event to occur.</div>
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#waitForIdle(long)">waitForIdle</a></span>(long time)
-        
-        <div class="jd-descrdiv">Waits for the current application to idle.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#waitForIdle()">waitForIdle</a></span>()
-        
-        <div class="jd-descrdiv">Waits for the current application to idle.</div>
-  
-  </td></tr>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#waitForWindowUpdate(java.lang.String, long)">waitForWindowUpdate</a></span>(String packageName, long timeout)
-        
-        <div class="jd-descrdiv">Waits for a window content update event to occur.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#wakeUp()">wakeUp</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#wakeUp()">wakeUp</a></span>()</nobr>
+
         <div class="jd-descrdiv">This method simulates pressing the power button if the screen is OFF else
  it does nothing if the screen is already ON.</div>
-  
+
   </td></tr>
 
 
@@ -946,7 +1011,7 @@ parent.link=index.html
   <div style="clear:left;">Inherited Methods</div></th></tr>
 
 
-<tr class="api apilevel-" >
+<tr class="api" >
 <td colspan="12">
   <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
           ><img id="inherited-methods-java.lang.Object-trigger"
@@ -962,150 +1027,182 @@ From class
   </div>
   <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
     <table class="jd-sumtable-expando">
-    
-
-
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Object</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">clone</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">equals</span>(Object arg0)</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">equals</span>(Object arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">finalize</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            Class&lt;?&gt;
+
+
+            Class&lt;?&gt;</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">getClass</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">getClass</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">hashCode</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">hashCode</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notify</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notify</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notifyAll</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notifyAll</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">toString</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">toString</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0, int arg1)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0)</nobr>
+
   </td></tr>
 
 
@@ -1157,31 +1254,29 @@ From class
 
 
 
-<a id="clearLastTraversedText()"></a>
+<A NAME="clearLastTraversedText()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">clearLastTraversedText</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Clears the text from the last UI traversal event.
  See <code><a href="#getLastTraversedText()">getLastTraversedText()</a></code>.</p></div>
 
@@ -1189,41 +1284,39 @@ From class
 </div>
 
 
-<a id="click(int, int)"></a>
+<A NAME="click(int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">click</span>
       <span class="normal">(int x, int y)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Perform a click at arbitrary coordinates specified by the user</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>x</th>
+          <th>x</td>
           <td>coordinate</td>
         </tr>
         <tr>
-          <th>y</th>
+          <th>y</td>
           <td>coordinate</td>
         </tr>
       </table>
@@ -1237,31 +1330,88 @@ From class
 </div>
 
 
-<a id="dumpWindowHierarchy(java.lang.String)"></a>
+<A NAME="drag(int, int, int, int, int)"></A>
+
+<div class="jd-details api apilevel-18">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">drag</span>
+      <span class="normal">(int startX, int startY, int endX, int endY, int steps)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe from one coordinate to another coordinate. You can control
+ the smoothness and speed of the swipe by specifying the number of steps.
+ Each step execution is throttled to 5 milliseconds per step, so for a 100
+ steps, the swipe will take around 0.5 seconds to complete.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>startX</td>
+          <td>X-axis value for the starting coordinate</td>
+        </tr>
+        <tr>
+          <th>startY</td>
+          <td>Y-axis value for the starting coordinate</td>
+        </tr>
+        <tr>
+          <th>endX</td>
+          <td>X-axis value for the ending coordinate</td>
+        </tr>
+        <tr>
+          <th>endY</td>
+          <td>Y-axis value for the ending coordinate</td>
+        </tr>
+        <tr>
+          <th>steps</td>
+          <td>is the number of steps for the swipe action</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if swipe is performed, false if the operation fails
+ or the coordinates are invalid</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="dumpWindowHierarchy(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">dumpWindowHierarchy</span>
       <span class="normal">(String fileName)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Helper method used for debugging to dump the current window's layout hierarchy.
  The file root location is /data/local/tmp</p></div>
 
@@ -1269,40 +1419,38 @@ From class
 </div>
 
 
-<a id="freezeRotation()"></a>
+<A NAME="freezeRotation()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
 
-<div class="jd-details api "> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
         void
       </span>
       <span class="sympad">freezeRotation</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Disables the sensors and freezes the device rotation at its
  current rotation state.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -1314,34 +1462,32 @@ From class
 </div>
 
 
-<a id="getCurrentActivityName()"></a>
+<A NAME="getCurrentActivityName()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         String
       </span>
       <span class="sympad">getCurrentActivityName</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
       <p>
-  <p class="caution">
-      <strong>
-  This method is deprecated.</strong><br/> The results returned should be considered unreliable
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    The results returned should be considered unreliable
   </p>
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the last activity to report accessibility events.</p></div>
   <div class="jd-tagdata">
@@ -1353,31 +1499,29 @@ From class
 </div>
 
 
-<a id="getCurrentPackageName()"></a>
+<A NAME="getCurrentPackageName()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         String
       </span>
       <span class="sympad">getCurrentPackageName</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the name of the last package to report accessibility events.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1388,31 +1532,29 @@ From class
 </div>
 
 
-<a id="getDisplayHeight()"></a>
+<A NAME="getDisplayHeight()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         int
       </span>
       <span class="sympad">getDisplayHeight</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Gets the height of the display, in pixels. The size is adjusted based
  on the current orientation of the display.</p></div>
   <div class="jd-tagdata">
@@ -1424,65 +1566,84 @@ From class
 </div>
 
 
-<a id="getDisplayRotation()"></a>
+<A NAME="getDisplayRotation()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         int
       </span>
       <span class="sympad">getDisplayRotation</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Returns the current rotation of the display, as defined in <code><a href="../../../../../reference/android/view/Surface.html">Surface</a></code></p></div>
 
+    </div>
+    <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
 </div>
-        
-  
 
-      </div>
+
+<A NAME="getDisplaySizeDp()"></A>
+
+<div class="jd-details api apilevel-18">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        Point
+      </span>
+      <span class="sympad">getDisplaySizeDp</span>
+      <span class="normal">()</span>
+    </h4>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the current rotation of the display, as defined in Surface@return</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Returns the display size in dp (device-independent pixel)
+
+ The returned display size is adjusted per screen rotation. Also this will return the actual
+ size of the screen, rather than adjusted per system decorations (like status bar).</p></div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>a Point containing the display size in dp
+</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="getDisplayWidth()"></a>
+<A NAME="getDisplayWidth()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         int
       </span>
       <span class="sympad">getDisplayWidth</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Gets the width of the display, in pixels. The width and height details
  are reported based on the current orientation of the display.</p></div>
   <div class="jd-tagdata">
@@ -1494,31 +1655,23 @@ From class
 </div>
 
 
-<a id="getInstance()"></a>
+<A NAME="getInstance()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="UiDevice.html">UiDevice</a>
+        public
+        static
+
+
+
+        <a href="#">UiDevice</a>
       </span>
       <span class="sympad">getInstance</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves a singleton instance of UiDevice</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1529,31 +1682,29 @@ From class
 </div>
 
 
-<a id="getLastTraversedText()"></a>
+<A NAME="getLastTraversedText()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         String
       </span>
       <span class="sympad">getLastTraversedText</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the text from the last UI traversal event received.
 
  You can use this method to read the contents in a WebView container
@@ -1573,31 +1724,23 @@ From class
 </div>
 
 
-<a id="getProductName()"></a>
+<A NAME="getProductName()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api apilevel-17">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         String
       </span>
       <span class="sympad">getProductName</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Retrieves the product name of the device.
 
  This method provides information on what type of device the test is running on. This value is
@@ -1607,38 +1750,36 @@ From class
       <ul class="nolist"><li>product name of the device</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="hasAnyWatcherTriggered()"></a>
+<A NAME="hasAnyWatcherTriggered()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">hasAnyWatcherTriggered</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Checks if any registered <code><a href="UiWatcher.html">UiWatcher</a></code> have triggered.
 
  See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code>
@@ -1648,31 +1789,29 @@ From class
 </div>
 
 
-<a id="hasWatcherTriggered(java.lang.String)"></a>
+<A NAME="hasWatcherTriggered(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">hasWatcherTriggered</span>
       <span class="normal">(String watcherName)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Checks if a specific registered  <code><a href="UiWatcher.html">UiWatcher</a></code> has triggered.
  See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code>. If a UiWatcher runs and its
  <code><a href="UiWatcher.html#checkForCondition()">checkForCondition()</a></code> call returned <code>true</code>, then
@@ -1687,31 +1826,23 @@ From class
 </div>
 
 
-<a id="isNaturalOrientation()"></a>
+<A NAME="isNaturalOrientation()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">isNaturalOrientation</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Check if the device is in its natural orientation. This is determined by checking if the
  orientation is at 0 or 180 degrees.</p></div>
   <div class="jd-tagdata">
@@ -1719,38 +1850,36 @@ From class
       <ul class="nolist"><li>true if it is in natural orientation</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="isScreenOn()"></a>
+<A NAME="isScreenOn()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">isScreenOn</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Checks the power manager if the screen is ON.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1758,11 +1887,11 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -1774,31 +1903,89 @@ From class
 </div>
 
 
-<a id="pressBack()"></a>
+<A NAME="openNotification()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api apilevel-18">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">openNotification</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Opens the notification shade.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if successful, else return false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="openQuickSettings()"></A>
+
+<div class="jd-details api apilevel-18">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">openQuickSettings</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Opens the Quick Settings shade.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if successful, else return false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="pressBack()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressBack</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the BACK button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1809,31 +1996,29 @@ From class
 </div>
 
 
-<a id="pressDPadCenter()"></a>
+<A NAME="pressDPadCenter()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressDPadCenter</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the CENTER button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1844,31 +2029,29 @@ From class
 </div>
 
 
-<a id="pressDPadDown()"></a>
+<A NAME="pressDPadDown()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressDPadDown</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the DOWN button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1879,31 +2062,29 @@ From class
 </div>
 
 
-<a id="pressDPadLeft()"></a>
+<A NAME="pressDPadLeft()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressDPadLeft</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the LEFT button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1914,31 +2095,29 @@ From class
 </div>
 
 
-<a id="pressDPadRight()"></a>
+<A NAME="pressDPadRight()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressDPadRight</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the RIGHT button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1949,31 +2128,29 @@ From class
 </div>
 
 
-<a id="pressDPadUp()"></a>
+<A NAME="pressDPadUp()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressDPadUp</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the UP button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -1984,31 +2161,29 @@ From class
 </div>
 
 
-<a id="pressDelete()"></a>
+<A NAME="pressDelete()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressDelete</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the DELETE key.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2019,31 +2194,29 @@ From class
 </div>
 
 
-<a id="pressEnter()"></a>
+<A NAME="pressEnter()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressEnter</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the ENTER key.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2054,31 +2227,29 @@ From class
 </div>
 
 
-<a id="pressHome()"></a>
+<A NAME="pressHome()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressHome</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the HOME button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2089,34 +2260,45 @@ From class
 </div>
 
 
-<a id="pressKeyCode(int)"></a>
+<A NAME="pressKeyCode(int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressKeyCode</span>
-      <span class="normal">(int keyCode)</span>
+      <span class="normal">(int keyCode, int metaState)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press using a key code.
 
- See KeyEvent</p></div>
+ See <code><a href="../../../../../reference/android/view/KeyEvent.html">KeyEvent</a></code>.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>keyCode</td>
+          <td>the key code of the event.</td>
+        </tr>
+        <tr>
+          <th>metaState</td>
+          <td>an integer in which each bit set to 1 represents a pressed meta key</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if successful, else return false</li></ul>
@@ -2126,47 +2308,32 @@ From class
 </div>
 
 
-<a id="pressKeyCode(int, int)"></a>
+<A NAME="pressKeyCode(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressKeyCode</span>
-      <span class="normal">(int keyCode, int metaState)</span>
+      <span class="normal">(int keyCode)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press using a key code.
 
- See KeyEvent.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>keyCode</th>
-          <td>the key code of the event.</td>
-        </tr>
-        <tr>
-          <th>metaState</th>
-          <td>an integer in which each bit set to 1 represents a pressed meta key</td>
-        </tr>
-      </table>
-  </div>
+ See <code><a href="../../../../../reference/android/view/KeyEvent.html">KeyEvent</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if successful, else return false</li></ul>
@@ -2176,31 +2343,29 @@ From class
 </div>
 
 
-<a id="pressMenu()"></a>
+<A NAME="pressMenu()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressMenu</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the MENU button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2211,31 +2376,29 @@ From class
 </div>
 
 
-<a id="pressRecentApps()"></a>
+<A NAME="pressRecentApps()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressRecentApps</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the Recent Apps button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2243,11 +2406,11 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -2259,31 +2422,29 @@ From class
 </div>
 
 
-<a id="pressSearch()"></a>
+<A NAME="pressSearch()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">pressSearch</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the SEARCH button.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2294,42 +2455,40 @@ From class
 </div>
 
 
-<a id="registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)"></a>
+<A NAME="registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">registerWatcher</span>
       <span class="normal">(String name, <a href="UiWatcher.html">UiWatcher</a> watcher)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Registers a <code><a href="UiWatcher.html">UiWatcher</a></code> to run automatically when the testing framework is unable to
  find a match using a <code><a href="UiSelector.html">UiSelector</a></code>. See <code><a href="#runWatchers()">runWatchers()</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>name</th>
+          <th>name</td>
           <td>to register the UiWatcher</td>
         </tr>
         <tr>
-          <th>watcher</th>
+          <th>watcher</td>
           <td><code><a href="UiWatcher.html">UiWatcher</a></code></td>
         </tr>
       </table>
@@ -2339,31 +2498,29 @@ From class
 </div>
 
 
-<a id="removeWatcher(java.lang.String)"></a>
+<A NAME="removeWatcher(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">removeWatcher</span>
       <span class="normal">(String name)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Removes a previously registered <code><a href="UiWatcher.html">UiWatcher</a></code>.
 
  See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code></p></div>
@@ -2371,50 +2528,39 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>name</th>
+          <th>name</td>
           <td>used to register the UiWatcher</td>
         </tr>
       </table>
   </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th></td>
-            <td>UiAutomationException</td>
-        </tr>
-      </table>
-  </div>
 
     </div>
 </div>
 
 
-<a id="resetWatcherTriggers()"></a>
+<A NAME="resetWatcherTriggers()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">resetWatcherTriggers</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Resets a <code><a href="UiWatcher.html">UiWatcher</a></code> that has been triggered.
  If a UiWatcher runs and its <code><a href="UiWatcher.html#checkForCondition()">checkForCondition()</a></code> call
  returned <code>true</code>, then the UiWatcher is considered triggered.
@@ -2424,31 +2570,29 @@ From class
 </div>
 
 
-<a id="runWatchers()"></a>
+<A NAME="runWatchers()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">runWatchers</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>This method forces all registered watchers to run.
  See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code></p></div>
 
@@ -2456,31 +2600,63 @@ From class
 </div>
 
 
-<a id="setOrientationLeft()"></a>
+<A NAME="setCompressedLayoutHeirarchy(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api apilevel-18">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
-      <span class="sympad">setOrientationLeft</span>
-      <span class="normal">()</span>
+      <span class="sympad">setCompressedLayoutHeirarchy</span>
+      <span class="normal">(boolean compressed)</span>
     </h4>
-      <div class="api-level">
-        <div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Enables or disables layout hierarchy compression.
 
+ If compression is enabled, the layout hierarchy derived from the Acessibility
+ framework will only contain nodes that are important for uiautomator
+ testing. Any unnecessary surrounding layout nodes that make viewing
+ and searching the hierarchy inefficient are removed.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>compressed</td>
+          <td>true to enable compression; else, false to disable</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
 </div>
-        
-  
 
-      </div>
+
+<A NAME="setOrientationLeft()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        void
+      </span>
+      <span class="sympad">setOrientationLeft</span>
+      <span class="normal">()</span>
+    </h4>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates orienting the device to the left and also freezes rotation
  by disabling the sensors.
 
@@ -2488,11 +2664,11 @@ From class
  see <code><a href="#unfreezeRotation()">unfreezeRotation()</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -2500,38 +2676,30 @@ From class
       </table>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="setOrientationNatural()"></a>
+<A NAME="setOrientationNatural()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">setOrientationNatural</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates orienting the device into its natural orientation and also freezes rotation
  by disabling the sensors.
 
@@ -2539,11 +2707,11 @@ From class
  see <code><a href="#unfreezeRotation()">unfreezeRotation()</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -2551,38 +2719,30 @@ From class
       </table>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="setOrientationRight()"></a>
+<A NAME="setOrientationRight()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">setOrientationRight</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Simulates orienting the device to the right and also freezes rotation
  by disabling the sensors.
 
@@ -2590,11 +2750,11 @@ From class
  see <code><a href="#unfreezeRotation()">unfreezeRotation()</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -2602,47 +2762,45 @@ From class
       </table>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="sleep()"></a>
+<A NAME="sleep()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">sleep</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>This method simply presses the power button if the screen is ON else
  it does nothing if the screen is already OFF.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -2654,42 +2812,40 @@ From class
 </div>
 
 
-<a id="swipe(android.graphics.Point[], int)"></a>
+<A NAME="swipe(android.graphics.Point[], int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">swipe</span>
       <span class="normal">(Point[] segments, int segmentSteps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe between points in the Point array. Each step execution is throttled
  to 5ms per step. So for a 100 steps, the swipe will take about 1/2 second to complete</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>segments</th>
+          <th>segments</td>
           <td>is Point array containing at least one Point object</td>
         </tr>
         <tr>
-          <th>segmentSteps</th>
+          <th>segmentSteps</td>
           <td>steps to inject between two Points</td>
         </tr>
       </table>
@@ -2703,31 +2859,29 @@ From class
 </div>
 
 
-<a id="swipe(int, int, int, int, int)"></a>
+<A NAME="swipe(int, int, int, int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">swipe</span>
       <span class="normal">(int startX, int startY, int endX, int endY, int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe from one coordinate to another using the number of steps
  to determine smoothness and speed. Each step execution is throttled to 5ms
  per step. So for a 100 steps, the swipe will take about 1/2 second to complete.</p></div>
@@ -2735,7 +2889,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>is the number of move steps sent to the system</td>
         </tr>
       </table>
@@ -2749,49 +2903,34 @@ From class
 </div>
 
 
-<a id="takeScreenshot(java.io.File, float, int)"></a>
+<A NAME="takeScreenshot(java.io.File)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">takeScreenshot</span>
-      <span class="normal">(File storePath, float scale, int quality)</span>
+      <span class="normal">(File storePath)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Take a screenshot of current window and store it as PNG
 
+ Default scale of 1.0f (original size) and 90% quality is used
  The screenshot is adjusted per screen rotation</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>storePath</th>
+          <th>storePath</td>
           <td>where the PNG should be written to</td>
         </tr>
-        <tr>
-          <th>scale</th>
-          <td>scale the screenshot down if needed; 1.0f for original size</td>
-        </tr>
-        <tr>
-          <th>quality</th>
-          <td>quality of the PNG compression; range: 0-100</td>
-        </tr>
       </table>
   </div>
   <div class="jd-tagdata">
@@ -2799,49 +2938,48 @@ From class
       <ul class="nolist"><li>true if screen shot is created successfully, false otherwise</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="takeScreenshot(java.io.File)"></a>
+<A NAME="takeScreenshot(java.io.File, float, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">takeScreenshot</span>
-      <span class="normal">(File storePath)</span>
+      <span class="normal">(File storePath, float scale, int quality)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Take a screenshot of current window and store it as PNG
 
- Default scale of 1.0f (original size) and 90% quality is used
  The screenshot is adjusted per screen rotation</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>storePath</th>
+          <th>storePath</td>
           <td>where the PNG should be written to</td>
         </tr>
+        <tr>
+          <th>scale</td>
+          <td>scale the screenshot down if needed; 1.0f for original size</td>
+        </tr>
+        <tr>
+          <th>quality</td>
+          <td>quality of the PNG compression; range: 0-100</td>
+        </tr>
       </table>
   </div>
   <div class="jd-tagdata">
@@ -2849,44 +2987,42 @@ From class
       <ul class="nolist"><li>true if screen shot is created successfully, false otherwise</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="unfreezeRotation()"></a>
+<A NAME="unfreezeRotation()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">unfreezeRotation</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Re-enables the sensors and un-freezes the device rotation allowing its contents
  to rotate with the device physical rotation. During a test execution, it is best to
  keep the device frozen in a specific orientation until the test case execution has completed.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -2898,62 +3034,67 @@ From class
 </div>
 
 
-<a id="waitForIdle(long)"></a>
+<A NAME="waitForIdle(long)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">waitForIdle</span>
-      <span class="normal">(long time)</span>
+      <span class="normal">(long timeout)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Waits for the current application to idle.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>in milliseconds</td>
+        </tr>
+      </table>
+  </div>
 
     </div>
 </div>
 
 
-<a id="waitForIdle()"></a>
+<A NAME="waitForIdle()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">waitForIdle</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Waits for the current application to idle.
  Default wait timeout is 10 seconds</p></div>
 
@@ -2961,31 +3102,29 @@ From class
 </div>
 
 
-<a id="waitForWindowUpdate(java.lang.String, long)"></a>
+<A NAME="waitForWindowUpdate(java.lang.String, long)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">waitForWindowUpdate</span>
       <span class="normal">(String packageName, long timeout)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Waits for a window content update event to occur.
 
  If a package name for the window is specified, but the current window
@@ -2994,12 +3133,12 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>packageName</th>
+          <th>packageName</td>
           <td>the specified window package name (can be <code>null</code>).
         If <code>null</code>, a window update from any front-end window will end the wait</td>
         </tr>
         <tr>
-          <th>timeout</th>
+          <th>timeout</td>
           <td>the timeout for the wait</td>
         </tr>
       </table>
@@ -3014,31 +3153,29 @@ From class
 </div>
 
 
-<a id="wakeUp()"></a>
+<A NAME="wakeUp()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         void
       </span>
       <span class="sympad">wakeUp</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>This method simulates pressing the power button if the screen is OFF else
  it does nothing if the screen is already ON.
 
@@ -3046,11 +3183,11 @@ From class
  to allow the device time to wake up and accept input.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th></td>
             <td>RemoteException</td>
-        </tr>  
+        </tr>
         <tr>
             <th>RemoteException</td>
             <td></td>
@@ -3059,7 +3196,6 @@ From class
   </div>
 
     </div>
-</div>
 
 
 
@@ -3069,5 +3205,4 @@ From class
 
 
 
-<!-- ========= END OF CLASS DATA ========= -->
 
index a22df50..45007e0 100644 (file)
@@ -5,13 +5,14 @@ parent.link=index.html
 <style>
     h4.jd-details-title {background-color: #DEE8F1;}
 </style>
-<p>A UiObject is a representation of a user interface (UI) element. It is not in any way directly bound to a
- UI element as an object reference. A UiObject holds information to help it
- locate a matching UI element at runtime based on the <code><a href="UiSelector.html">UiSelector</a></code> properties specified in
- its constructor. Since a UiObject is a representative for a UI element, it can
- be reused for different views with matching UI elements.
-</p>
+<p>A <code><a href="#">UiObject</a></code> is a representation of a view. It is
+not in any way directly bound to a view as an object reference. A <code><a href="#">UiObject</a></code>
+contains information to help it locate a matching view at runtime based on the
+<code><a href="#UiSelector.html">UiSelector</a></code> properties specified in
+its constructor. Once you create an instance of a UiObject, it can be reused for
+different views that match the selector criteria.</p>
 
+<h2>Summary</h2>
 
 
 
@@ -25,24 +26,61 @@ parent.link=index.html
 
 
 
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
 
 
 
-<div class="jd-descr">
+    <tr class="api" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="#FINGER_TOUCH_HALF_WIDTH">FINGER_TOUCH_HALF_WIDTH</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
-<h2>Summary</h2>
+    <tr class="api" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="#SWIPE_MARGIN_LIMIT">SWIPE_MARGIN_LIMIT</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="#WAIT_FOR_EVENT_TMEOUT">WAIT_FOR_EVENT_TMEOUT</a></td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    use <code><a href="Configurator.html#setScrollAcknowledgmentTimeout(long)">setScrollAcknowledgmentTimeout(long)</a></code>
+</em></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="#WAIT_FOR_SELECTOR_POLL">WAIT_FOR_SELECTOR_POLL</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="#WAIT_FOR_SELECTOR_TIMEOUT">WAIT_FOR_SELECTOR_TIMEOUT</a></td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    use <code><a href="Configurator.html#setWaitForSelectorTimeout(long)">setWaitForSelectorTimeout(long)</a></code>
+</em></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="#WAIT_FOR_WINDOW_TMEOUT">WAIT_FOR_WINDOW_TMEOUT</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
 
+</table>
 
 
 
@@ -60,22 +98,22 @@ parent.link=index.html
 
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            </nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#UiObject(com.android.uiautomator.core.UiSelector)">UiObject</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
-        <div class="jd-descrdiv">Constructs a UiObject to represent a specific UI element matched by the specified
<code><a href="UiSelector.html">UiSelector</a></code> selector properties.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#UiObject(com.android.uiautomator.core.UiSelector)">UiObject</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
+
+        <div class="jd-descrdiv">Constructs a UiObject to represent a view that matches the specified
selector criteria.</div>
+
   </td></tr>
 
 
@@ -92,952 +130,1569 @@ parent.link=index.html
 
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clearTextField()">clearTextField</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clearTextField()">clearTextField</a></span>()</nobr>
+
         <div class="jd-descrdiv">Clears the existing text contents in an editable field.</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#click()">click</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#click()">click</a></span>()</nobr>
+
         <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
  by this UiObject.</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)</nobr>
+
         <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
  by this UiObject and waits for window transitions.</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()
-        
-        <div class="jd-descrdiv">See <code><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
- This method is intended to reliably wait for window transitions that would typically take
- longer than the usual default timeouts.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Waits for window transitions that would typically take longer than the
+ usual default timeouts.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clickBottomRight()">clickBottomRight</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clickBottomRight()">clickBottomRight</a></span>()</nobr>
+
         <div class="jd-descrdiv">Clicks the bottom and right corner of the UI element</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clickTopLeft()">clickTopLeft</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clickTopLeft()">clickTopLeft</a></span>()</nobr>
+
         <div class="jd-descrdiv">Clicks the top and left corner of the UI element</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#exists()">exists</a></span>()
-        
-        <div class="jd-descrdiv">Check if UI element exists.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            Rect
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getBounds()">getBounds</a></span>()
-        
-        <div class="jd-descrdiv">Returns the UI element's <code>bounds</code> property.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
-        <div class="jd-descrdiv">Creates a new UiObject representing a child UI element of the element currently represented
- by this UiObject.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#dragTo(com.android.uiautomator.core.UiObject, int)">dragTo</a></span>(<a href="#">UiObject</a> destObj, int steps)</nobr>
 
+        <div class="jd-descrdiv">Drags this object to a destination UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChildCount()">getChildCount</a></span>()
-        
-        <div class="jd-descrdiv">Counts the child UI elements immediately under the UI element currently represented by
- this UiObject.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getContentDescription()">getContentDescription</a></span>()
-        
-        <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
-        <div class="jd-descrdiv">Creates a new UiObject representing a child UI element from the parent element currently
- represented by this object.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getPackageName()">getPackageName</a></span>()
-        
-        <div class="jd-descrdiv">Reads the UI element's <code>package</code> property</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#dragTo(int, int, int)">dragTo</a></span>(int destX, int destY, int steps)</nobr>
 
+        <div class="jd-descrdiv">Drags this object to arbitrary coordinates.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getSelector()">getSelector</a></span>()
-        
-        <div class="jd-descrdiv">Debugging helper.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getText()">getText</a></span>()
-        
-        <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            Rect
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getVisibleBounds()">getVisibleBounds</a></span>()
-        
-        <div class="jd-descrdiv">Returns the visible bounds of the UI element.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isCheckable()">isCheckable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>checkable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#exists()">exists</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Check if view exists.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isChecked()">isChecked</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isClickable()">isClickable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>clickable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isEnabled()">isEnabled</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>enabled</code> property is currently true</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            Rect</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isFocusable()">isFocusable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getBounds()">getBounds</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Returns the view's <code>bounds</code> property.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isFocused()">isFocused</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isLongClickable()">isLongClickable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>long-clickable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isScrollable()">isScrollable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>scrollable</code> property is currently true</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            <a href="#">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#isSelected()">isSelected</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>selected</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
 
+        <div class="jd-descrdiv">Creates a new UiObject for a child view that is under the present UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#longClick()">longClick</a></span>()
-        
-        <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#longClickBottomRight()">longClickBottomRight</a></span>()
-        
-        <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#longClickTopLeft()">longClickTopLeft</a></span>()
-        
-        <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setText(java.lang.String)">setText</a></span>(String text)
-        
-        <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChildCount()">getChildCount</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Counts the child views immediately under the present UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#swipeDown(int)">swipeDown</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object, Also see
- #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
- #scrollForward().</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#swipeLeft(int)">swipeLeft</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#swipeRight(int)">swipeRight</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#swipeUp(int)">swipeUp</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this UiObject.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getClassName()">getClassName</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Retrieves the <code>className</code> property of the UI element.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#waitForExists(long)">waitForExists</a></span>(long timeout)
-        
-        <div class="jd-descrdiv">Waits a specified length of time for a UI element to become visible.</div>
-  
   </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)
-        
-        <div class="jd-descrdiv">Waits a specified length of time for a UI element to become undetectable.</div>
-  
-  </td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
-</table>
 
 
 
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getContentDescription()">getContentDescription</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
 
+  </td></tr>
 
 
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
 
-  java.lang.Object
 
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+            <a href="#">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">equals</span>(Object arg0)
-        
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
 
+        <div class="jd-descrdiv">Creates a new UiObject for a sibling view or a child of the sibling view,
+ relative to the present UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">getClass</span>()
-        
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">hashCode</span>()
-        
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notify</span>()
-        
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            void
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notifyAll</span>()
-        
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getPackageName()">getPackageName</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Reads the view's <code>package</code> property</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">toString</span>()
-        
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>()
-        
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
             final
-            
-            
-            void
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0, int arg1)
-        
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            void
+            <a href="UiSelector.html">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getSelector()">getSelector</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Debugging helper.</div>
+
   </td></tr>
 
 
-</table>
-  </div>
-</div>
-</td></tr>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-</table>
 
 
-</div><!-- jd-descr (summary) -->
 
-<!-- Details -->
 
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getText()">getText</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
 
+  </td></tr>
 
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
-<!-- XML Attributes -->
 
 
-<!-- Enum Values -->
 
+            Rect</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getVisibleBounds()">getVisibleBounds</a></span>()</nobr>
 
-<!-- Constants -->
+        <div class="jd-descrdiv">Returns the visible bounds of the view.</div>
 
+  </td></tr>
 
-<!-- Fields -->
 
 
-<!-- Public ctors -->
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
 
 
 
-<a id="UiObject(com.android.uiautomator.core.UiSelector)"></a>
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isCheckable()">isCheckable</a></span>()</nobr>
 
-<div class="jd-details api "> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">UiObject</span>
-      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
+        <div class="jd-descrdiv">Checks if the UI element's <code>checkable</code> property is currently true.</div>
 
-</div>
-        
-  
+  </td></tr>
 
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a UiObject to represent a specific UI element matched by the specified
- <code><a href="UiSelector.html">UiSelector</a></code> selector properties.</p></div>
 
-    </div>
-</div>
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
 
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
 
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isChecked()">isChecked</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
 
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
+  </td></tr>
 
-<h2>Public Methods</h2>
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-<a id="clearTextField()"></a>
 
-<div class="jd-details api "> 
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isClickable()">isClickable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>clickable</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isEnabled()">isEnabled</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>enabled</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isFocusable()">isFocusable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isFocused()">isFocused</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isLongClickable()">isLongClickable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the view's <code>long-clickable</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isScrollable()">isScrollable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the view's <code>scrollable</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#isSelected()">isSelected</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>selected</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#longClick()">longClick</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#longClickBottomRight()">longClickBottomRight</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#longClickTopLeft()">longClickTopLeft</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#performMultiPointerGesture(android.view.MotionEvent.PointerCoords[]...)">performMultiPointerGesture</a></span>(PointerCoords... touches)</nobr>
+
+        <div class="jd-descrdiv">Performs a multi-touch gesture.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#performTwoPointerGesture(android.graphics.Point, android.graphics.Point, android.graphics.Point, android.graphics.Point, int)">performTwoPointerGesture</a></span>(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps)</nobr>
+
+        <div class="jd-descrdiv">Generates a two-pointer gesture with arbitrary starting and ending points.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pinchIn(int, int)">pinchIn</a></span>(int percent, int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a two-pointer gesture, where each pointer moves diagonally
+ toward the other, from the edges to the center of this UiObject .</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#pinchOut(int, int)">pinchOut</a></span>(int percent, int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a two-pointer gesture, where each pointer moves diagonally
+ opposite across the other, from the center out towards the edges of the
+ this UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setText(java.lang.String)">setText</a></span>(String text)</nobr>
+
+        <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#swipeDown(int)">swipeDown</a></span>(int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs the swipe down action on the UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#swipeLeft(int)">swipeLeft</a></span>(int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs the swipe left action on the UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#swipeRight(int)">swipeRight</a></span>(int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs the swipe right action on the UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#swipeUp(int)">swipeUp</a></span>(int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs the swipe up action on the UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#waitForExists(long)">waitForExists</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Waits a specified length of time for a view to become visible.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Waits a specified length of time for a view to become undetectable.</div>
+
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            AccessibilityNodeInfo</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#findAccessibilityNodeInfo(long)">findAccessibilityNodeInfo</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Finds a matching UI element in the accessibility hierarchy, by
+ using the selector for this UiObject.</div>
+
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+  <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api" >
+<td colspan="12">
+  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+          ><img id="inherited-methods-java.lang.Object-trigger"
+          src="../../../../../assets/images/triangle-closed.png"
+          class="jd-expando-trigger-img" /></a>
+From class
+
+  java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+  <div id="inherited-methods-java.lang.Object-list"
+        class="jd-inheritedlinks">
+  </div>
+  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+    <table class="jd-sumtable-expando">
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Object</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">clone</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">equals</span>(Object arg0)</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">finalize</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            Class&lt;?&gt;</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">getClass</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">hashCode</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notify</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notifyAll</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">toString</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0)</nobr>
+
+  </td></tr>
+
+
+</table>
+  </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="FINGER_TOUCH_HALF_WIDTH"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+        static
+        final
+        int
+      </span>
+        FINGER_TOUCH_HALF_WIDTH
+    </h4>
+      <div class="api-level">
+
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+
+                20
+                (0x00000014)
+
+        </span>
+        </div>
+
+    </div>
+</div>
+
+
+
+<A NAME="SWIPE_MARGIN_LIMIT"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+        static
+        final
+        int
+      </span>
+        SWIPE_MARGIN_LIMIT
+    </h4>
+      <div class="api-level">
+
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+
+                5
+                (0x00000005)
+
+        </span>
+        </div>
+
+    </div>
+</div>
+
+
+
+<A NAME="WAIT_FOR_EVENT_TMEOUT"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+        static
+        final
+        long
+      </span>
+        WAIT_FOR_EVENT_TMEOUT
+    </h4>
+      <div class="api-level">
+
+
+
+
+      </div>
+    <div class="jd-details-descr">
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    use <code><a href="Configurator.html#setScrollAcknowledgmentTimeout(long)">setScrollAcknowledgmentTimeout(long)</a></code>
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+
+                3000
+                (0x0000000000000bb8)
+
+        </span>
+        </div>
+
+    </div>
+</div>
+
+
+
+<A NAME="WAIT_FOR_SELECTOR_POLL"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+        static
+        final
+        long
+      </span>
+        WAIT_FOR_SELECTOR_POLL
+    </h4>
+      <div class="api-level">
+
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+
+                1000
+                (0x00000000000003e8)
+
+        </span>
+        </div>
+
+    </div>
+</div>
+
+
+
+<A NAME="WAIT_FOR_SELECTOR_TIMEOUT"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+        static
+        final
+        long
+      </span>
+        WAIT_FOR_SELECTOR_TIMEOUT
+    </h4>
+      <div class="api-level">
+
+
+
+
+      </div>
+    <div class="jd-details-descr">
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    use <code><a href="Configurator.html#setWaitForSelectorTimeout(long)">setWaitForSelectorTimeout(long)</a></code>
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+
+                10000
+                (0x0000000000002710)
+
+        </span>
+        </div>
+
+    </div>
+</div>
+
+
+
+<A NAME="WAIT_FOR_WINDOW_TMEOUT"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+        static
+        final
+        long
+      </span>
+        WAIT_FOR_WINDOW_TMEOUT
+    </h4>
+      <div class="api-level">
+
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+
+                5500
+                (0x000000000000157c)
+
+        </span>
+        </div>
+
+    </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="UiObject(com.android.uiautomator.core.UiSelector)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+
+      </span>
+      <span class="sympad">UiObject</span>
+      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Constructs a UiObject to represent a view that matches the specified
+ selector criteria.</p></div>
+
+    </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="clearTextField()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        void
+      </span>
+      <span class="sympad">clearTextField</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Clears the existing text contents in an editable field.
+
+ The <code><a href="UiSelector.html">UiSelector</a></code> of this object must reference a UI element that is editable.
+
+ When you call this method, the method first sets focus at the start edge of the field.
+ The method then simulates a long-press to select the existing text, and deletes the
+ selected text.
+
+ If a "Select-All" option is displayed, the method will automatically attempt to use it
+ to ensure full text selection.
+
+ Note that it is possible that not all the text in the field is selected; for example,
+ if the text contains separators such as spaces, slashes, at symbol etc.
+ Also, not all editable fields support the long-press functionality.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
+
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="click()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">click</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true id successful else false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
+
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="clickAndWaitForNewWindow(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">clickAndWaitForNewWindow</span>
+      <span class="normal">(long timeout)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject and waits for window transitions.
+
+ This method differ from <code><a href="#click()">click()</a></code> only in that this method waits for a
+ a new window transition as a result of the click. Some examples of a window transition:
+ <li>launching a new activity</li>
+ <li>bringing up a pop-up menu</li>
+ <li>bringing up a dialog</li></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>timeout before giving up on waiting for a new window</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if the event was triggered, else false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
+
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="clickAndWaitForNewWindow()"></A>
+
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        void
+        public
+
+
+
+
+        boolean
       </span>
-      <span class="sympad">clearTextField</span>
+      <span class="sympad">clickAndWaitForNewWindow</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Clears the existing text contents in an editable field.
 
- The <code><a href="UiSelector.html">UiSelector</a></code> of this object must reference a UI element that is editable.
+  <div class="jd-tagdata jd-tagdescr"><p>Waits for window transitions that would typically take longer than the
+ usual default timeouts.
+ See <code><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if the event was triggered, else false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
 
- When you call this method, the method first sets focus at the start edge of the field.
- The method then simulates a long-press to select the existing text, and deletes the
- selected text.
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
+  </div>
 
- If a "Select-All" option is displayed, the method will automatically attempt to use it
- to ensure full text selection.
+    </div>
+</div>
 
- Note that it is possible that not all the text in the field is selected; for example,
- if the text contains separators such as spaces, slashes, at symbol etc.
- Also, not all editable fields support the long-press functionality.</p></div>
+
+<A NAME="clickBottomRight()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">clickBottomRight</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Clicks the bottom and right corner of the UI element</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true on success</li></ul>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1049,40 +1704,38 @@ From class
 </div>
 
 
-<a id="click()"></a>
+<A NAME="clickTopLeft()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">click</span>
+      <span class="sympad">clickTopLeft</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Performs a click at the center of the visible bounds of the UI element represented
- by this UiObject.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Clicks the top and left corner of the UI element</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true id successful else false</li></ul>
+      <ul class="nolist"><li>true on success</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1094,101 +1747,192 @@ From class
 </div>
 
 
-<a id="clickAndWaitForNewWindow(long)"></a>
+<A NAME="dragTo(com.android.uiautomator.core.UiObject, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">clickAndWaitForNewWindow</span>
-      <span class="normal">(long timeout)</span>
+      <span class="sympad">dragTo</span>
+      <span class="normal">(<a href="#">UiObject</a> destObj, int steps)</span>
     </h4>
-      <div class="api-level">
-        <div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Drags this object to a destination UiObject.
+ The number of steps specified in your input parameter can influence the
+ drag speed, and varying speeds may impact the results. Consider
+ evaluating different speeds when using this method in your tests.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>destObj</td>
+          <td>the destination UiObject.</td>
+        </tr>
+        <tr>
+          <th>steps</td>
+          <td>usually 40 steps. You can increase or decrease the steps to change the speed.</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if successful</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
 
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
+  </div>
+ <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
 </div>
-        
-  
 
-      </div>
+
+<A NAME="dragTo(int, int, int)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">dragTo</span>
+      <span class="normal">(int destX, int destY, int steps)</span>
+    </h4>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Performs a click at the center of the visible bounds of the UI element represented
- by this UiObject and waits for window transitions.
 
- This method differ from <code><a href="#click()">click()</a></code> only in that this method waits for a
- a new window transition as a result of the click. Some examples of a window transition:
- <li>launching a new activity</li>
- <li>bringing up a pop-up menu</li>
- <li>bringing up a dialog</li></p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Drags this object to arbitrary coordinates.
+ The number of steps specified in your input parameter can influence the
+ drag speed, and varying speeds may impact the results. Consider
+ evaluating different speeds when using this method in your tests.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>timeout</th>
-          <td>timeout before giving up on waiting for a new window</td>
+          <th>destX</td>
+          <td>the X-axis coordinate.</td>
+        </tr>
+        <tr>
+          <th>destY</td>
+          <td>the Y-axis coordinate.</td>
+        </tr>
+        <tr>
+          <th>steps</td>
+          <td>usually 40 steps. You can increase or decrease the steps to change the speed.</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if the event was triggered, else false</li></ul>
+      <ul class="nolist"><li>true if successful</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
         </tr>
       </table>
   </div>
-
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="clickAndWaitForNewWindow()"></a>
+<A NAME="exists()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">clickAndWaitForNewWindow</span>
+      <span class="sympad">exists</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
 
+  <div class="jd-tagdata jd-tagdescr"><p>Check if view exists.
+
+ This methods performs a <code><a href="#waitForExists(long)">waitForExists(long)</a></code> with zero timeout. This
+ basically returns immediately whether the view represented by this UiObject
+ exists or not. If you need to wait longer for this view, then see
+ <code><a href="#waitForExists(long)">waitForExists(long)</a></code>.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if the view represented by this UiObject does exist</li></ul>
+  </div>
+
+    </div>
 </div>
-        
-  
+
+
+<A NAME="getBounds()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        Rect
+      </span>
+      <span class="sympad">getBounds</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
- This method is intended to reliably wait for window transitions that would typically take
- longer than the usual default timeouts.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Returns the view's <code>bounds</code> property. See <code><a href="#getVisibleBounds()">getVisibleBounds()</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if the event was triggered, else false</li></ul>
+      <ul class="nolist"><li>Rect</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1200,43 +1944,46 @@ From class
 </div>
 
 
-<a id="clickBottomRight()"></a>
+<A NAME="getChild(com.android.uiautomator.core.UiSelector)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
+        public
+
+
+
+
+        <a href="#">UiObject</a>
       </span>
-      <span class="sympad">clickBottomRight</span>
-      <span class="normal">()</span>
+      <span class="sympad">getChild</span>
+      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Clicks the bottom and right corner of the UI element</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Creates a new UiObject for a child view that is under the present UiObject.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>selector</td>
+          <td>for child view to match</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on success</li></ul>
+      <ul class="nolist"><li>a new UiObject representing the child view</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1248,43 +1995,38 @@ From class
 </div>
 
 
-<a id="clickTopLeft()"></a>
+<A NAME="getChildCount()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
+        public
+
+
+
+
+        int
       </span>
-      <span class="sympad">clickTopLeft</span>
+      <span class="sympad">getChildCount</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Clicks the top and left corner of the UI element</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Counts the child views immediately under the present UiObject.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on success</li></ul>
+      <ul class="nolist"><li>the count of child views.</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1296,134 +2038,130 @@ From class
 </div>
 
 
-<a id="exists()"></a>
+<A NAME="getClassName()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
+        public
+
+
+
+
+        String
       </span>
-      <span class="sympad">exists</span>
+      <span class="sympad">getClassName</span>
       <span class="normal">()</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if UI element exists.
 
- This methods performs a <code><a href="#waitForExists(long)">waitForExists(long)</a></code> with zero timeout. This
- basically returns immediately whether the UI element represented by this UiObject
- exists or not. If you need to wait longer for this UI element, then see
- <code><a href="#waitForExists(long)">waitForExists(long)</a></code>.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Retrieves the <code>className</code> property of the UI element.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if the UI element represented by this UiObject does exist
-</li></ul>
+      <ul class="nolist"><li>class name of the current node represented by this UiObject</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td>if no match was found</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
   </div>
-
     </div>
 </div>
 
 
-<a id="getBounds()"></a>
+<A NAME="getContentDescription()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        Rect
+        public
+
+
+
+
+        String
       </span>
-      <span class="sympad">getBounds</span>
+      <span class="sympad">getContentDescription</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the UI element's <code>bounds</code> property. See <code><a href="#getVisibleBounds()">getVisibleBounds()</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Reads the <code>content_desc</code> property of the UI element</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>Rect</li></ul>
+      <ul class="nolist"><li>value of node attribute "content_desc"</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
         </tr>
       </table>
   </div>
+
     </div>
 </div>
 
 
-<a id="getChild(com.android.uiautomator.core.UiSelector)"></a>
+<A NAME="getFromParent(com.android.uiautomator.core.UiSelector)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiObject.html">UiObject</a>
+        public
+
+
+
+
+        <a href="#">UiObject</a>
       </span>
-      <span class="sympad">getChild</span>
+      <span class="sympad">getFromParent</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new UiObject representing a child UI element of the element currently represented
by this UiObject.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Creates a new UiObject for a sibling view or a child of the sibling view,
relative to the present UiObject.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>selector</th>
-          <td>for UI element to match</td>
+          <th>selector</td>
+          <td>for a sibling view or children of the sibling view</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a new UiObject representing the matched UI element
-</li></ul>
+      <ul class="nolist"><li>a new UiObject representing the matched view</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1435,40 +2173,38 @@ From class
 </div>
 
 
-<a id="getChildCount()"></a>
+<A NAME="getPackageName()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        int
+        public
+
+
+
+
+        String
       </span>
-      <span class="sympad">getChildCount</span>
+      <span class="sympad">getPackageName</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Counts the child UI elements immediately under the UI element currently represented by
- this UiObject.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Reads the view's <code>package</code> property</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the count of child UI elements.</li></ul>
+      <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1480,139 +2216,162 @@ From class
 </div>
 
 
-<a id="getContentDescription()"></a>
+<A NAME="getSelector()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        String
+        public
+
+        final
+
+
+        <a href="UiSelector.html">UiSelector</a>
       </span>
-      <span class="sympad">getContentDescription</span>
+      <span class="sympad">getSelector</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Reads the <code>content_desc</code> property of the UI element</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Debugging helper. A test can dump the properties of a selector as a string
+ to its logs if needed. <code>getSelector().toString();</code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>value of node attribute "content_desc"</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
-            <td></td>
-        </tr>
-      </table>
+      <ul class="nolist"><li><code><a href="UiSelector.html">UiSelector</a></code></li></ul>
   </div>
 
     </div>
 </div>
 
 
-<a id="getFromParent(com.android.uiautomator.core.UiSelector)"></a>
+<A NAME="getText()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiObject.html">UiObject</a>
+        public
+
+
+
+
+        String
       </span>
-      <span class="sympad">getFromParent</span>
-      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+      <span class="sympad">getText</span>
+      <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new UiObject representing a child UI element from the parent element currently
- represented by this object. Essentially this is starting the search from the parent
- element and can also be used to find sibling UI elements to the one currently represented
- by this UiObject.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Reads the <code>text</code> property of the UI element</p></div>
   <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>text value of the current node represented by this UiObject</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>selector</th>
-          <td>for the UI element to match</td>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td>if no match could be found</td>
         </tr>
       </table>
   </div>
+
+    </div>
+</div>
+
+
+<A NAME="getVisibleBounds()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        Rect
+      </span>
+      <span class="sympad">getVisibleBounds</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Returns the visible bounds of the view.
+
+ If a portion of the view is visible, only the bounds of the visible portion are
+ reported.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a new UiObject representing the matched UI element</li></ul>
+      <ul class="nolist"><li>Rect</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
         </tr>
       </table>
   </div>
-
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><li><code><a href="#getBounds()">getBounds()</a></code></li>
+      </ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="getPackageName()"></a>
+<A NAME="isCheckable()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        String
+        public
+
+
+
+
+        boolean
       </span>
-      <span class="sympad">getPackageName</span>
+      <span class="sympad">isCheckable</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Reads the UI element's <code>package</code> property</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Checks if the UI element's <code>checkable</code> property is currently true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1624,80 +2383,83 @@ From class
 </div>
 
 
-<a id="getSelector()"></a>
+<A NAME="isChecked()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-        final 
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        boolean
       </span>
-      <span class="sympad">getSelector</span>
+      <span class="sympad">isChecked</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Debugging helper. A test can dump the properties of a selector as a string
- to its logs if needed. <code>getSelector().toString();</code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>checked</code> property is currently true</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li><code><a href="UiSelector.html">UiSelector</a></code>
-</li></ul>
+      <ul class="nolist"><li>true if it is else false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
   </div>
 
     </div>
 </div>
 
 
-<a id="getText()"></a>
+<A NAME="isClickable()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        String
+        public
+
+
+
+
+        boolean
       </span>
-      <span class="sympad">getText</span>
+      <span class="sympad">isClickable</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Reads the <code>text</code> property of the UI element</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Checks if the UI element's <code>clickable</code> property is currently true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>text value of the current node represented by this UiObject</li></ul>
+      <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
-            <td>if no match could be found
-</td>
+            <td></td>
         </tr>
       </table>
   </div>
@@ -1706,93 +2468,81 @@ From class
 </div>
 
 
-<a id="getVisibleBounds()"></a>
+<A NAME="isEnabled()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        Rect
+        public
+
+
+
+
+        boolean
       </span>
-      <span class="sympad">getVisibleBounds</span>
+      <span class="sympad">isEnabled</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the visible bounds of the UI element.
 
- If a portion of the UI element is visible, only the bounds of the visible portion are
- reported.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Checks if the UI element's <code>enabled</code> property is currently true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>Rect</li></ul>
+      <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th></td>
-            <td>UiObjectNotFoundException</td>
-        </tr>  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
         </tr>
       </table>
   </div>
-   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+
     </div>
 </div>
 
 
-<a id="isCheckable()"></a>
+<A NAME="isFocusable()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isCheckable</span>
+      <span class="sympad">isFocusable</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>checkable</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>focusable</code> property is currently true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1804,40 +2554,38 @@ From class
 </div>
 
 
-<a id="isChecked()"></a>
+<A NAME="isFocused()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isChecked</span>
+      <span class="sympad">isFocused</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>checked</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>focused</code> property is currently true</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if it is else false
-</li></ul>
+      <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1849,39 +2597,38 @@ From class
 </div>
 
 
-<a id="isClickable()"></a>
+<A NAME="isLongClickable()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isClickable</span>
+      <span class="sympad">isLongClickable</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>clickable</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Check if the view's <code>long-clickable</code> property is currently true</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1893,39 +2640,38 @@ From class
 </div>
 
 
-<a id="isEnabled()"></a>
+<A NAME="isScrollable()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isEnabled</span>
+      <span class="sympad">isScrollable</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>enabled</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Check if the view's <code>scrollable</code> property is currently true</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1937,39 +2683,38 @@ From class
 </div>
 
 
-<a id="isFocusable()"></a>
+<A NAME="isSelected()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isFocusable</span>
+      <span class="sympad">isSelected</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>focusable</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Checks if the UI element's <code>selected</code> property is currently true.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if it is else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1981,39 +2726,38 @@ From class
 </div>
 
 
-<a id="isFocused()"></a>
+<A NAME="longClick()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isFocused</span>
+      <span class="sympad">longClick</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>focused</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Long clicks the center of the visible bounds of the UI element</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if it is else false</li></ul>
+      <ul class="nolist"><li>true if operation was successful</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2025,39 +2769,38 @@ From class
 </div>
 
 
-<a id="isLongClickable()"></a>
+<A NAME="longClickBottomRight()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isLongClickable</span>
+      <span class="sympad">longClickBottomRight</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>long-clickable</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Long clicks bottom and right corner of the UI element</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if it is else false</li></ul>
+      <ul class="nolist"><li>true if operation was successful</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2069,39 +2812,38 @@ From class
 </div>
 
 
-<a id="isScrollable()"></a>
+<A NAME="longClickTopLeft()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isScrollable</span>
+      <span class="sympad">longClickTopLeft</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>scrollable</code> property is currently true</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Long clicks on the top and left corner of the UI element</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if it is else false</li></ul>
+      <ul class="nolist"><li>true if operation was successful</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2113,207 +2855,254 @@ From class
 </div>
 
 
-<a id="isSelected()"></a>
+<A NAME="performMultiPointerGesture(android.view.MotionEvent.PointerCoords[]...)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">isSelected</span>
-      <span class="normal">()</span>
+      <span class="sympad">performMultiPointerGesture</span>
+      <span class="normal">(PointerCoords... touches)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>selected</code> property is currently true</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if it is else false</li></ul>
-  </div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a multi-touch gesture. You must specify touch coordinates for
+ at least 2 pointers. Each pointer must have all of its touch steps
+ defined in an array of <code><a href="../../../../../reference/android/view/MotionEvent.PointerCoords.html">MotionEvent.PointerCoords</a></code>. You can use this method to
+ specify complex gestures, like circles and irregular shapes, where each
+ pointer may take a different path.
+
+ To create a single point on a pointer's touch path:
+ <code>
+       PointerCoords p = new PointerCoords();
+       p.x = stepX;
+       p.y = stepY;
+       p.pressure = 1;
+       p.size = 1;
+ </code></p></div>
   <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
         <tr>
-            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
-            <td></td>
+          <th>touches</td>
+          <td>represents the pointers' paths. Each <code><a href="../../../../../reference/android/view/MotionEvent.PointerCoords.html">MotionEvent.PointerCoords</a></code>
+ array represents a different pointer. Each <code><a href="../../../../../reference/android/view/MotionEvent.PointerCoords.html">MotionEvent.PointerCoords</a></code> in an
+ array element represents a touch point on a pointer's path.</td>
         </tr>
       </table>
   </div>
-
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li><code>true</code> if all touch events for this gesture are injected successfully,
+         <code>false</code> otherwise</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="longClick()"></a>
+<A NAME="performTwoPointerGesture(android.graphics.Point, android.graphics.Point, android.graphics.Point, android.graphics.Point, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">longClick</span>
-      <span class="normal">()</span>
+      <span class="sympad">performTwoPointerGesture</span>
+      <span class="normal">(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Long clicks the center of the visible bounds of the UI element</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if operation was successful</li></ul>
-  </div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Generates a two-pointer gesture with arbitrary starting and ending points.</p></div>
   <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
         <tr>
-            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
-            <td></td>
+          <th>startPoint1</td>
+          <td>start point of pointer 1</td>
+        </tr>
+        <tr>
+          <th>startPoint2</td>
+          <td>start point of pointer 2</td>
+        </tr>
+        <tr>
+          <th>endPoint1</td>
+          <td>end point of pointer 1</td>
+        </tr>
+        <tr>
+          <th>endPoint2</td>
+          <td>end point of pointer 2</td>
+        </tr>
+        <tr>
+          <th>steps</td>
+          <td>the number of steps for the gesture. Steps are injected
+ about 5 milliseconds apart, so 100 steps may take around 0.5 seconds to complete.</td>
         </tr>
       </table>
   </div>
-
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li><code>true</code> if all touch events for this gesture are injected successfully,
+         <code>false</code> otherwise</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="longClickBottomRight()"></a>
+<A NAME="pinchIn(int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">longClickBottomRight</span>
-      <span class="normal">()</span>
+      <span class="sympad">pinchIn</span>
+      <span class="normal">(int percent, int steps)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Long clicks bottom and right corner of the UI element</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a two-pointer gesture, where each pointer moves diagonally
+ toward the other, from the edges to the center of this UiObject .</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>percent</td>
+          <td>percentage of the object's diagonal length for the pinch gesture</td>
+        </tr>
+        <tr>
+          <th>steps</td>
+          <td>the number of steps for the gesture. Steps are injected
+ about 5 milliseconds apart, so 100 steps may take around 0.5 seconds to complete.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if operation was successful</li></ul>
+      <ul class="nolist"><li><code>true</code> if all touch events for this gesture are injected successfully,
+         <code>false</code> otherwise</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
         </tr>
       </table>
   </div>
-
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="longClickTopLeft()"></a>
+<A NAME="pinchOut(int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
-      <span class="sympad">longClickTopLeft</span>
-      <span class="normal">()</span>
+      <span class="sympad">pinchOut</span>
+      <span class="normal">(int percent, int steps)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Long clicks on the top and left corner of the UI element</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a two-pointer gesture, where each pointer moves diagonally
+ opposite across the other, from the center out towards the edges of the
+ this UiObject.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>percent</td>
+          <td>percentage of the object's diagonal length for the pinch gesture</td>
+        </tr>
+        <tr>
+          <th>steps</td>
+          <td>the number of steps for the gesture. Steps are injected
+ about 5 milliseconds apart, so 100 steps may take around 0.5 seconds to complete.</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if operation was successful</li></ul>
+      <ul class="nolist"><li><code>true</code> if all touch events for this gesture are injected successfully,
+         <code>false</code> otherwise</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
         </tr>
       </table>
   </div>
-
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="setText(java.lang.String)"></a>
+<A NAME="setText(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">setText</span>
       <span class="normal">(String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Sets the text in an editable field, after clearing the field's content.
 
  The <code><a href="UiSelector.html">UiSelector</a></code> selector of this object must reference a UI element that is editable.
@@ -2328,7 +3117,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>text</th>
+          <th>text</td>
           <td>string to set</td>
         </tr>
       </table>
@@ -2339,7 +3128,8 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2351,41 +3141,44 @@ From class
 </div>
 
 
-<a id="swipeDown(int)"></a>
+<A NAME="swipeDown(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">swipeDown</span>
       <span class="normal">(int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this object, Also see
- #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
- #scrollForward(). This method will perform the swipe gesture over any
- surface. The targeted UI element does not need to have the attribute
- <code>scrollable</code> set to <code>true</code> for this operation to be performed.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs the swipe down action on the UiObject.
+ The swipe gesture can be performed over any surface. The targeted
+ UI element does not need to be scrollable.
+ See also:
+ <ul>
+ <li><code><a href="UiScrollable.html#scrollToBeginning(int)">scrollToBeginning(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollToEnd(int)">scrollToEnd(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollBackward()">scrollBackward()</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollForward()">scrollForward()</a></code></li>
+ </ul></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>indicates the number of injected move steps into the system. Steps are
  injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
         </tr>
@@ -2397,7 +3190,8 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2409,41 +3203,44 @@ From class
 </div>
 
 
-<a id="swipeLeft(int)"></a>
+<A NAME="swipeLeft(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">swipeLeft</span>
       <span class="normal">(int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this object. Also see
- #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
- #scrollForward(). This method will perform the swipe gesture over any
- surface. The targeted UI element does not need to have the attribute
- <code>scrollable</code> set to <code>true</code> for this operation to be performed.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs the swipe left action on the UiObject.
+ The swipe gesture can be performed over any surface. The targeted
+ UI element does not need to be scrollable.
+ See also:
+ <ul>
+ <li><code><a href="UiScrollable.html#scrollToBeginning(int)">scrollToBeginning(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollToEnd(int)">scrollToEnd(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollBackward()">scrollBackward()</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollForward()">scrollForward()</a></code></li>
+ </ul></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>indicates the number of injected move steps into the system. Steps are
  injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
         </tr>
@@ -2455,7 +3252,8 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2467,41 +3265,44 @@ From class
 </div>
 
 
-<a id="swipeRight(int)"></a>
+<A NAME="swipeRight(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">swipeRight</span>
       <span class="normal">(int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this object. Also see
- #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
- #scrollForward(). This method will perform the swipe gesture over any
- surface. The targeted UI element does not need to have the attribute
- <code>scrollable</code> set to <code>true</code> for this operation to be performed.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs the swipe right action on the UiObject.
+ The swipe gesture can be performed over any surface. The targeted
+ UI element does not need to be scrollable.
+ See also:
+ <ul>
+ <li><code><a href="UiScrollable.html#scrollToBeginning(int)">scrollToBeginning(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollToEnd(int)">scrollToEnd(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollBackward()">scrollBackward()</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollForward()">scrollForward()</a></code></li>
+ </ul></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>indicates the number of injected move steps into the system. Steps are
  injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
         </tr>
@@ -2513,7 +3314,8 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2525,39 +3327,42 @@ From class
 </div>
 
 
-<a id="swipeUp(int)"></a>
+<A NAME="swipeUp(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">swipeUp</span>
       <span class="normal">(int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this UiObject. Also see
- #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
- #scrollForward().</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs the swipe up action on the UiObject.
+ See also:
+ <ul>
+ <li><code><a href="UiScrollable.html#scrollToBeginning(int)">scrollToBeginning(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollToEnd(int)">scrollToEnd(int)</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollBackward()">scrollBackward()</a></code></li>
+ <li><code><a href="UiScrollable.html#scrollForward()">scrollForward()</a></code></li>
+ </ul></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>indicates the number of injected move steps into the system. Steps are
  injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
         </tr>
@@ -2569,7 +3374,8 @@ From class
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2581,86 +3387,81 @@ From class
 </div>
 
 
-<a id="waitForExists(long)"></a>
+<A NAME="waitForExists(long)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">waitForExists</span>
       <span class="normal">(long timeout)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Waits a specified length of time for a UI element to become visible.
 
- This method waits until the UI element becomes visible on the display, or
+  <div class="jd-tagdata jd-tagdescr"><p>Waits a specified length of time for a view to become visible.
+
+ This method waits until the view becomes visible on the display, or
  until the timeout has elapsed. You can use this method in situations where
  the content that you want to select is not immediately displayed.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>timeout</th>
+          <th>timeout</td>
           <td>the amount of time to wait (in milliseconds)</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if the UI element is displayed, else false if timeout elapsed while waiting
-</li></ul>
+      <ul class="nolist"><li>true if the view is displayed, else false if timeout elapsed while waiting</li></ul>
   </div>
 
     </div>
 </div>
 
 
-<a id="waitUntilGone(long)"></a>
+<A NAME="waitUntilGone(long)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">waitUntilGone</span>
       <span class="normal">(long timeout)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Waits a specified length of time for a UI element to become undetectable.
 
- This method waits until a UI element is no longer matchable, or until the
+  <div class="jd-tagdata jd-tagdescr"><p>Waits a specified length of time for a view to become undetectable.
+
+ This method waits until a view is no longer matchable, or until the
  timeout has elapsed.
 
- A UI element becomes undetectable when the <code><a href="UiSelector.html">UiSelector</a></code> of the object is
+ A view becomes undetectable when the <code><a href="UiSelector.html">UiSelector</a></code> of the object is
  unable to find a match because the element has either changed its state or is no
  longer displayed.
 
@@ -2670,7 +3471,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>timeout</th>
+          <th>timeout</td>
           <td>time to wait (in milliseconds)</td>
         </tr>
       </table>
@@ -2678,10 +3479,65 @@ From class
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>true if the element is gone before timeout elapsed, else false if timeout elapsed
- but a matching element is still found.
-</li></ul>
+ but a matching element is still found.</li></ul>
   </div>
 
     </div>
 </div>
 
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="findAccessibilityNodeInfo(long)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+
+
+
+
+        AccessibilityNodeInfo
+      </span>
+      <span class="sympad">findAccessibilityNodeInfo</span>
+      <span class="normal">(long timeout)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Finds a matching UI element in the accessibility hierarchy, by
+ using the selector for this UiObject.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>timeout</td>
+          <td>in milliseconds</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>AccessibilityNodeInfo if found else null</li></ul>
+  </div>
+
+    </div>
+
+
+
+
+
+
index 02c607d..b41cfe5 100644 (file)
@@ -9,29 +9,6 @@ parent.link=index.html
  to any UI element displayed.
 </p>
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
 <h2>Summary</h2>
 
 
@@ -627,4 +604,3 @@ From class
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
-</div>
index 33566a2..7405f3b 100644 (file)
@@ -5,9 +5,10 @@ parent.link=index.html
 <style>
     h4.jd-details-title {background-color: #DEE8F1;}
 </style>
-<p>UiScrollable is a <code><a href="UiCollection.html">UiCollection</a></code> and provides support for searching for items in a
- scrollable user interface (UI) elements. This class can be used with horizontally or vertically scrollable controls..
-</p>
+<p>A <code><a href="UiCollection.html">UiCollection</a></code>
+that supports searching for items in scrollable layout elements. This class can
+be used with horizontally or vertically scrollable controls.</p>
+<h2>Summary</h2>
 
 
 
@@ -24,29 +25,88 @@ parent.link=index.html
 
 
 
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+  <div style="clear:left;">Inherited Constants</div></th></tr>
 
 
 
 
+<tr class="api" >
+<td colspan="12">
 
-<div class="jd-descr">
+  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-com.android.uiautomator.core.UiObject" class="jd-expando-trigger closed"
+          ><img id="inherited-constants-com.android.uiautomator.core.UiObject-trigger"
+          src="../../../../../assets/images/triangle-closed.png"
+          class="jd-expando-trigger-img" /></a>From class
+<a href="UiObject.html">com.android.uiautomator.core.UiObject</a>
+<div id="inherited-constants-com.android.uiautomator.core.UiObject">
+  <div id="inherited-constants-com.android.uiautomator.core.UiObject-list"
+        class="jd-inheritedlinks">
+  </div>
+  <div id="inherited-constants-com.android.uiautomator.core.UiObject-summary" style="display: none;">
+    <table class="jd-sumtable-expando">
 
 
-<h2>Summary</h2>
 
+    <tr class="api" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="UiObject.html#FINGER_TOUCH_HALF_WIDTH">FINGER_TOUCH_HALF_WIDTH</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
+
+
+    <tr class="api" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="UiObject.html#SWIPE_MARGIN_LIMIT">SWIPE_MARGIN_LIMIT</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="UiObject.html#WAIT_FOR_EVENT_TMEOUT">WAIT_FOR_EVENT_TMEOUT</a></td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    use <code><a href="Configurator.html#setScrollAcknowledgmentTimeout(long)">setScrollAcknowledgmentTimeout(long)</a></code>
+</em></td>
+    </tr>
+
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="UiObject.html#WAIT_FOR_SELECTOR_POLL">WAIT_FOR_SELECTOR_POLL</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="UiObject.html#WAIT_FOR_SELECTOR_TIMEOUT">WAIT_FOR_SELECTOR_TIMEOUT</a></td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    use <code><a href="Configurator.html#setWaitForSelectorTimeout(long)">setWaitForSelectorTimeout(long)</a></code>
+</em></td>
+    </tr>
 
 
+    <tr class="api" >
+        <td class="jd-typecol">long</td>
+        <td class="jd-linkcol"><a href="UiObject.html#WAIT_FOR_WINDOW_TMEOUT">WAIT_FOR_WINDOW_TMEOUT</a></td>
+        <td class="jd-descrcol" width="100%"></td>
+    </tr>
 
 
+</table>
+  </div>
+</div>
+</td></tr>
 
 
 
 
+</table>
 
 
 
@@ -61,22 +121,21 @@ parent.link=index.html
 
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            </nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#UiScrollable(com.android.uiautomator.core.UiSelector)">UiScrollable</a></span>(<a href="UiSelector.html">UiSelector</a> container)
-        
-        <div class="jd-descrdiv">UiScrollable is a <code><a href="UiCollection.html">UiCollection</a></code> and as such requires a <code><a href="UiSelector.html">UiSelector</a></code> to
- identify the container UI element of the scrollable collection.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#UiScrollable(com.android.uiautomator.core.UiSelector)">UiScrollable</a></span>(<a href="UiSelector.html">UiSelector</a> container)</nobr>
+
+        <div class="jd-descrdiv">Constructor.</div>
+
   </td></tr>
 
 
@@ -93,1255 +152,1446 @@ parent.link=index.html
 
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#flingBackward()">flingBackward</a></span>()
-        
-        <div class="jd-descrdiv">See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#flingBackward()">flingBackward</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Performs a backwards fling action with the default number of fling
+ steps (5).</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#flingForward()">flingForward</a></span>()
-        
-        <div class="jd-descrdiv">A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a fling</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#flingForward()">flingForward</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Performs a forward fling with the default number of fling steps (5).</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#flingToBeginning(int)">flingToBeginning</a></span>(int maxSwipes)
-        
-        <div class="jd-descrdiv">See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#flingToBeginning(int)">flingToBeginning</a></span>(int maxSwipes)</nobr>
+
+        <div class="jd-descrdiv">Performs a fling gesture to reach the beginning of a scrollable layout element.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#flingToEnd(int)">flingToEnd</a></span>(int maxSwipes)
-        
-        <div class="jd-descrdiv">See <code><a href="#scrollToEnd(int, int)">scrollToEnd(int, int)</a></code></div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#flingToEnd(int)">flingToEnd</a></span>(int maxSwipes)</nobr>
+
+        <div class="jd-descrdiv">Performs a fling gesture to reach the end of a scrollable layout element.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)
-        
-        <div class="jd-descrdiv">See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription(UiSelector, String)</a></code></div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)</nobr>
+
+        <div class="jd-descrdiv">Searches for a child element in the present scrollable container.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
-        
-        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
- container.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</nobr>
+
+        <div class="jd-descrdiv">Searches for a child element in the present scrollable container.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)
-        
-        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
selector.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)</nobr>
+
+        <div class="jd-descrdiv">Searches for a child element in the present scrollable container that
matches the selector you provided.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)
-        
-        <div class="jd-descrdiv">See <code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText(UiSelector, String)</a></code></div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)</nobr>
+
+        <div class="jd-descrdiv">Searches for a child element in the present scrollable container.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
-        
-        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</nobr>
+
+        <div class="jd-descrdiv">Searches for a child element in the present scrollable
  container.</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getMaxSearchSwipes()">getMaxSearchSwipes</a></span>()
-        
-        <div class="jd-descrdiv">#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
- use an arguments that specifies if scrolling is allowed while searching for the UI element.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            double
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#getSwipeDeadZonePercentage()">getSwipeDeadZonePercentage</a></span>()
-        
-        <div class="jd-descrdiv">Returns the percentage of a widget's size that's considered as a no touch zone when swiping.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollBackward(int)">scrollBackward</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform a scroll backward.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getMaxSearchSwipes()">getMaxSearchSwipes</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Gets the maximum number of scrolls allowed when performing a
+ scroll action in search of a child element.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollBackward()">scrollBackward</a></span>()
-        
-        <div class="jd-descrdiv">See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollDescriptionIntoView(java.lang.String)">scrollDescriptionIntoView</a></span>(String text)
-        
-        <div class="jd-descrdiv">Performs a swipe Up on the UI element until the requested content-description
- is visible or until swipe attempts have been exhausted.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollForward()">scrollForward</a></span>()
-        
-        <div class="jd-descrdiv">A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a regular scroll</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            double</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollForward(int)">scrollForward</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform a scroll forward.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#getSwipeDeadZonePercentage()">getSwipeDeadZonePercentage</a></span>()</nobr>
 
+        <div class="jd-descrdiv">Returns the percentage of a widget's size that's considered as a no-touch
+ zone when swiping.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollIntoView(com.android.uiautomator.core.UiSelector)">scrollIntoView</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
-        <div class="jd-descrdiv">Perform a scroll search for a UI element matching the <code><a href="UiSelector.html">UiSelector</a></code> selector argument.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollTextIntoView(java.lang.String)">scrollTextIntoView</a></span>(String text)
-        
-        <div class="jd-descrdiv">Performs a swipe up on the UI element until the requested text is visible
- or until swipe attempts have been exhausted.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollToBeginning(int)">scrollToBeginning</a></span>(int maxSwipes)
-        
-        <div class="jd-descrdiv">See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollToBeginning(int, int)">scrollToBeginning</a></span>(int maxSwipes, int steps)
-        
-        <div class="jd-descrdiv">Scrolls to the beginning of a scrollable UI element.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollBackward(int)">scrollBackward</a></span>(int steps)</nobr>
 
+        <div class="jd-descrdiv">Performs a backward scroll.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollToEnd(int, int)">scrollToEnd</a></span>(int maxSwipes, int steps)
-        
-        <div class="jd-descrdiv">Scrolls to the end of a scrollable UI element.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollToEnd(int)">scrollToEnd</a></span>(int maxSwipes)
-        
-        <div class="jd-descrdiv">See {@link UiScrollable#scrollToEnd(int, int)</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setAsHorizontalList()">setAsHorizontalList</a></span>()
-        
-        <div class="jd-descrdiv">Set the direction of swipes when performing scroll search
-</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollBackward()">scrollBackward</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Performs a backward scroll with the default number of scroll steps (55).</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setAsVerticalList()">setAsVerticalList</a></span>()
-        
-        <div class="jd-descrdiv">Set the direction of swipes when performing scroll search
-</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollDescriptionIntoView(java.lang.String)">scrollDescriptionIntoView</a></span>(String text)</nobr>
+
+        <div class="jd-descrdiv">Performs a forward scroll action on the scrollable layout element until
+ the content-description is found, or until swipe attempts have been exhausted.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes</a></span>(int swipes)
-        
-        <div class="jd-descrdiv">#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
- use an arguments that specifies if scrolling is allowed while searching for the UI element.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollForward()">scrollForward</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Performs a forward scroll with the default number of scroll steps (55).</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#setSwipeDeadZonePercentage(double)">setSwipeDeadZonePercentage</a></span>(double swipeDeadZonePercentage)
-        
-        <div class="jd-descrdiv">Sets the percentage of a widget's size that's considered as a no touch zone when swiping.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollForward(int)">scrollForward</a></span>(int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a forward scroll.</div>
+
   </td></tr>
 
 
 
-</table>
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
 
 
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollIntoView(com.android.uiautomator.core.UiSelector)">scrollIntoView</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
 
+        <div class="jd-descrdiv">Perform a scroll forward action to move through the scrollable layout
+ element until a visible item that matches the selector is found.</div>
 
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
+  </td></tr>
 
 
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiCollection" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.android.uiautomator.core.UiCollection-trigger"
-          src="../../../../../assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
 
-  <a href="UiCollection.html">com.android.uiautomator.core.UiCollection</a>
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
-<div id="inherited-methods-com.android.uiautomator.core.UiCollection">
-  <div id="inherited-methods-com.android.uiautomator.core.UiCollection-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.android.uiautomator.core.UiCollection-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiCollection.html#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
-        
-        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
selector.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollIntoView(com.android.uiautomator.core.UiObject)">scrollIntoView</a></span>(<a href="UiObject.html">UiObject</a> obj)</nobr>
+
+        <div class="jd-descrdiv">Perform a forward scroll action to move through the scrollable layout element until
a visible item that matches the <code><a href="UiObject.html">UiObject</a></code> is found.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiCollection.html#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)
-        
-        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
selector.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollTextIntoView(java.lang.String)">scrollTextIntoView</a></span>(String text)</nobr>
+
+        <div class="jd-descrdiv">Performs a forward scroll action on the scrollable layout element until
the text you provided is visible, or until swipe attempts have been exhausted.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiCollection.html#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
-        
-        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
- selector.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollToBeginning(int)">scrollToBeginning</a></span>(int maxSwipes)</nobr>
+
+        <div class="jd-descrdiv">Scrolls to the beginning of a scrollable layout element.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiCollection.html#getChildCount(com.android.uiautomator.core.UiSelector)">getChildCount</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern)
-        
-        <div class="jd-descrdiv">Counts child UI element instances matching the <code>childPattern</code>
- argument.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-</table>
-  </div>
-</div>
-</td></tr>
 
 
 
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiObject" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.android.uiautomator.core.UiObject-trigger"
-          src="../../../../../assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollToBeginning(int, int)">scrollToBeginning</a></span>(int maxSwipes, int steps)</nobr>
 
-  <a href="UiObject.html">com.android.uiautomator.core.UiObject</a>
+        <div class="jd-descrdiv">Scrolls to the beginning of a scrollable layout element.</div>
+
+  </td></tr>
 
-<div id="inherited-methods-com.android.uiautomator.core.UiObject">
-  <div id="inherited-methods-com.android.uiautomator.core.UiObject-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.android.uiautomator.core.UiObject-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
 
 
-        
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            void
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#clearTextField()">clearTextField</a></span>()
-        
-        <div class="jd-descrdiv">Clears the existing text contents in an editable field.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollToEnd(int, int)">scrollToEnd</a></span>(int maxSwipes, int steps)</nobr>
+
+        <div class="jd-descrdiv">Scrolls to the end of a scrollable layout element.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#click()">click</a></span>()
-        
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollToEnd(int)">scrollToEnd</a></span>(int maxSwipes)</nobr>
+
+        <div class="jd-descrdiv">Scrolls to the end of a scrollable layout element.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiScrollable</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setAsHorizontalList()">setAsHorizontalList</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Set the direction of swipes to be horizontal when performing scroll actions.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiScrollable</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setAsVerticalList()">setAsVerticalList</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Set the direction of swipes to be vertical when performing scroll actions.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiScrollable</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes</a></span>(int swipes)</nobr>
+
+        <div class="jd-descrdiv">Sets the maximum number of scrolls allowed when performing a
+ scroll action in search of a child element.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiScrollable</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#setSwipeDeadZonePercentage(double)">setSwipeDeadZonePercentage</a></span>(double swipeDeadZonePercentage)</nobr>
+
+        <div class="jd-descrdiv">Sets the percentage of a widget's size that's considered as no-touch
+ zone when swiping.</div>
+
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#exists(com.android.uiautomator.core.UiSelector)">exists</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
+
+        <div class="jd-descrdiv">Used privately when performing swipe searches to decide if an element has become
+ visible or not.</div>
+
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+  <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api" >
+<td colspan="12">
+  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiCollection" class="jd-expando-trigger closed"
+          ><img id="inherited-methods-com.android.uiautomator.core.UiCollection-trigger"
+          src="../../../../../assets/images/triangle-closed.png"
+          class="jd-expando-trigger-img" /></a>
+From class
+
+  <a href="UiCollection.html">com.android.uiautomator.core.UiCollection</a>
+
+<div id="inherited-methods-com.android.uiautomator.core.UiCollection">
+  <div id="inherited-methods-com.android.uiautomator.core.UiCollection-list"
+        class="jd-inheritedlinks">
+  </div>
+  <div id="inherited-methods-com.android.uiautomator.core.UiCollection-summary" style="display: none;">
+    <table class="jd-sumtable-expando">
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiCollection.html#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</nobr>
+
+        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiCollection.html#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)</nobr>
+
+        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiCollection.html#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</nobr>
+
+        <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiCollection.html#getChildCount(com.android.uiautomator.core.UiSelector)">getChildCount</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern)</nobr>
+
+        <div class="jd-descrdiv">Counts child UI element instances matching the <code>childPattern</code>
+ argument.</div>
+
+  </td></tr>
+
+
+</table>
+  </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api" >
+<td colspan="12">
+  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiObject" class="jd-expando-trigger closed"
+          ><img id="inherited-methods-com.android.uiautomator.core.UiObject-trigger"
+          src="../../../../../assets/images/triangle-closed.png"
+          class="jd-expando-trigger-img" /></a>
+From class
+
+  <a href="UiObject.html">com.android.uiautomator.core.UiObject</a>
+
+<div id="inherited-methods-com.android.uiautomator.core.UiObject">
+  <div id="inherited-methods-com.android.uiautomator.core.UiObject-list"
+        class="jd-inheritedlinks">
+  </div>
+  <div id="inherited-methods-com.android.uiautomator.core.UiObject-summary" style="display: none;">
+    <table class="jd-sumtable-expando">
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#clearTextField()">clearTextField</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Clears the existing text contents in an editable field.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#click()">click</a></span>()</nobr>
+
         <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
  by this UiObject.</div>
-  
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject and waits for window transitions.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Waits for window transitions that would typically take longer than the
+ usual default timeouts.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)
-        
-        <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
- by this UiObject and waits for window transitions.</div>
-  
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#clickBottomRight()">clickBottomRight</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Clicks the bottom and right corner of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#clickTopLeft()">clickTopLeft</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Clicks the top and left corner of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#dragTo(com.android.uiautomator.core.UiObject, int)">dragTo</a></span>(<a href="UiObject.html">UiObject</a> destObj, int steps)</nobr>
+
+        <div class="jd-descrdiv">Drags this object to a destination UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#dragTo(int, int, int)">dragTo</a></span>(int destX, int destY, int steps)</nobr>
+
+        <div class="jd-descrdiv">Drags this object to arbitrary coordinates.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#exists()">exists</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if view exists.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            AccessibilityNodeInfo</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#findAccessibilityNodeInfo(long)">findAccessibilityNodeInfo</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Finds a matching UI element in the accessibility hierarchy, by
+ using the selector for this UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Rect</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getBounds()">getBounds</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Returns the view's <code>bounds</code> property.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
+
+        <div class="jd-descrdiv">Creates a new UiObject for a child view that is under the present UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getChildCount()">getChildCount</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Counts the child views immediately under the present UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getClassName()">getClassName</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Retrieves the <code>className</code> property of the UI element.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getContentDescription()">getContentDescription</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="UiObject.html">UiObject</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)</nobr>
+
+        <div class="jd-descrdiv">Creates a new UiObject for a sibling view or a child of the sibling view,
+ relative to the present UiObject.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getPackageName()">getPackageName</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Reads the view's <code>package</code> property</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+            final
+
+
+            <a href="UiSelector.html">UiSelector</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getSelector()">getSelector</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Debugging helper.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getText()">getText</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Rect</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#getVisibleBounds()">getVisibleBounds</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Returns the visible bounds of the view.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isCheckable()">isCheckable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>checkable</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isChecked()">isChecked</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isClickable()">isClickable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>clickable</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isEnabled()">isEnabled</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>enabled</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isFocusable()">isFocusable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isFocused()">isFocused</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isLongClickable()">isLongClickable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the view's <code>long-clickable</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isScrollable()">isScrollable</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Check if the view's <code>scrollable</code> property is currently true</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#isSelected()">isSelected</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Checks if the UI element's <code>selected</code> property is currently true.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#longClick()">longClick</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#longClickBottomRight()">longClickBottomRight</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#longClickTopLeft()">longClickTopLeft</a></span>()</nobr>
+
+        <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#performMultiPointerGesture(android.view.MotionEvent.PointerCoords[]...)">performMultiPointerGesture</a></span>(PointerCoords... touches)</nobr>
+
+        <div class="jd-descrdiv">Performs a multi-touch gesture.</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()
-        
-        <div class="jd-descrdiv">See <code><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
- This method is intended to reliably wait for window transitions that would typically take
- longer than the usual default timeouts.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#clickBottomRight()">clickBottomRight</a></span>()
-        
-        <div class="jd-descrdiv">Clicks the bottom and right corner of the UI element</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#clickTopLeft()">clickTopLeft</a></span>()
-        
-        <div class="jd-descrdiv">Clicks the top and left corner of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#performTwoPointerGesture(android.graphics.Point, android.graphics.Point, android.graphics.Point, android.graphics.Point, int)">performTwoPointerGesture</a></span>(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps)</nobr>
 
+        <div class="jd-descrdiv">Generates a two-pointer gesture with arbitrary starting and ending points.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#exists()">exists</a></span>()
-        
-        <div class="jd-descrdiv">Check if UI element exists.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            Rect
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getBounds()">getBounds</a></span>()
-        
-        <div class="jd-descrdiv">Returns the UI element's <code>bounds</code> property.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
-        <div class="jd-descrdiv">Creates a new UiObject representing a child UI element of the element currently represented
by this UiObject.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#pinchIn(int, int)">pinchIn</a></span>(int percent, int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a two-pointer gesture, where each pointer moves diagonally
toward the other, from the edges to the center of this UiObject .</div>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getChildCount()">getChildCount</a></span>()
-        
-        <div class="jd-descrdiv">Counts the child UI elements immediately under the UI element currently represented by
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#pinchOut(int, int)">pinchOut</a></span>(int percent, int steps)</nobr>
+
+        <div class="jd-descrdiv">Performs a two-pointer gesture, where each pointer moves diagonally
+ opposite across the other, from the center out towards the edges of the
  this UiObject.</div>
-  
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getContentDescription()">getContentDescription</a></span>()
-        
-        <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiObject.html">UiObject</a>
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
-        <div class="jd-descrdiv">Creates a new UiObject representing a child UI element from the parent element currently
- represented by this object.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getPackageName()">getPackageName</a></span>()
-        
-        <div class="jd-descrdiv">Reads the UI element's <code>package</code> property</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#setText(java.lang.String)">setText</a></span>(String text)</nobr>
 
+        <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            final
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getSelector()">getSelector</a></span>()
-        
-        <div class="jd-descrdiv">Debugging helper.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getText()">getText</a></span>()
-        
-        <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            Rect
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#getVisibleBounds()">getVisibleBounds</a></span>()
-        
-        <div class="jd-descrdiv">Returns the visible bounds of the UI element.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isCheckable()">isCheckable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>checkable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#swipeDown(int)">swipeDown</a></span>(int steps)</nobr>
 
+        <div class="jd-descrdiv">Performs the swipe down action on the UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isChecked()">isChecked</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isClickable()">isClickable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>clickable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isEnabled()">isEnabled</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>enabled</code> property is currently true</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isFocusable()">isFocusable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#swipeLeft(int)">swipeLeft</a></span>(int steps)</nobr>
 
+        <div class="jd-descrdiv">Performs the swipe left action on the UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isFocused()">isFocused</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isLongClickable()">isLongClickable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>long-clickable</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isScrollable()">isScrollable</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>scrollable</code> property is currently true</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#isSelected()">isSelected</a></span>()
-        
-        <div class="jd-descrdiv">Check if the UI element's <code>selected</code> property is currently true</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#swipeRight(int)">swipeRight</a></span>(int steps)</nobr>
 
+        <div class="jd-descrdiv">Performs the swipe right action on the UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#longClick()">longClick</a></span>()
-        
-        <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#longClickBottomRight()">longClickBottomRight</a></span>()
-        
-        <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#longClickTopLeft()">longClickTopLeft</a></span>()
-        
-        <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#setText(java.lang.String)">setText</a></span>(String text)
-        
-        <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#swipeUp(int)">swipeUp</a></span>(int steps)</nobr>
 
+        <div class="jd-descrdiv">Performs the swipe up action on the UiObject.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#swipeDown(int)">swipeDown</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object, Also see
- #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
- #scrollForward().</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#swipeLeft(int)">swipeLeft</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
-  
-  </td></tr>
+        <td class="jd-typecol"><nobr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#swipeRight(int)">swipeRight</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
-  
-  </td></tr>
 
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#swipeUp(int)">swipeUp</a></span>(int steps)
-        
-        <div class="jd-descrdiv">Perform the action on the UI element that is represented by this UiObject.</div>
-  
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#waitForExists(long)">waitForExists</a></span>(long timeout)</nobr>
 
+        <div class="jd-descrdiv">Waits a specified length of time for a view to become visible.</div>
 
-        
-    <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
-        </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#waitForExists(long)">waitForExists</a></span>(long timeout)
-        
-        <div class="jd-descrdiv">Waits a specified length of time for a UI element to become visible.</div>
-  
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="UiObject.html#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)
-        
-        <div class="jd-descrdiv">Waits a specified length of time for a UI element to become undetectable.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="UiObject.html#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)</nobr>
+
+        <div class="jd-descrdiv">Waits a specified length of time for a view to become undetectable.</div>
+
   </td></tr>
 
 
@@ -1352,7 +1602,7 @@ From class
 
 
 
-<tr class="api apilevel-" >
+<tr class="api" >
 <td colspan="12">
   <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
           ><img id="inherited-methods-java.lang.Object-trigger"
@@ -1368,150 +1618,182 @@ From class
   </div>
   <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
     <table class="jd-sumtable-expando">
-    
 
 
-        
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Object</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">clone</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">equals</span>(Object arg0)</nobr>
+
+  </td></tr>
+
+
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">equals</span>(Object arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">finalize</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            Class&lt;?&gt;
+
+
+            Class&lt;?&gt;</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">getClass</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">getClass</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">hashCode</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">hashCode</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notify</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notify</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notifyAll</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notifyAll</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">toString</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">toString</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>()</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0, int arg1)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
   </td></tr>
 
 
-        
+
     <tr class="api" >
-        <td class="jd-typecol">
-            
-            
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0)</nobr>
+
   </td></tr>
 
 
@@ -1555,41 +1837,37 @@ From class
 
 
 
-<a id="UiScrollable(com.android.uiautomator.core.UiSelector)"></a>
+<A NAME="UiScrollable(com.android.uiautomator.core.UiSelector)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        
+        public
+
+
+
+
+
       </span>
       <span class="sympad">UiScrollable</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> container)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>UiScrollable is a <code><a href="UiCollection.html">UiCollection</a></code> and as such requires a <code><a href="UiSelector.html">UiSelector</a></code> to
- identify the container UI element of the scrollable collection. Further operations on
- the items in the container will require specifying UiSelector as an item selector.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Constructor.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>container</th>
-          <td>a <code><a href="UiSelector.html">UiSelector</a></code> selector
-</td>
+          <th>container</td>
+          <td>a <code><a href="UiSelector.html">UiSelector</a></code> selector to identify the scrollable
+     layout element.</td>
         </tr>
       </table>
   </div>
@@ -1613,40 +1891,42 @@ From class
 
 
 
-<a id="flingBackward()"></a>
+<A NAME="flingBackward()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">flingBackward</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a backwards fling action with the default number of fling
+ steps (5). If the swipe direction is set to vertical,
+ then the swipe will be performed from top to bottom. If the swipe
+ direction is set to horizontal, then the swipes will be performed from
+ left to right. Make sure to take into account devices configured with
+ right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
-</li></ul>
+      <ul class="nolist"><li>true if scrolled, and false if can't scroll anymore</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1658,40 +1938,42 @@ From class
 </div>
 
 
-<a id="flingForward()"></a>
+<A NAME="flingForward()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">flingForward</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a fling</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a forward fling with the default number of fling steps (5).
+ If the swipe direction is set to vertical, then the swipes will be
+ performed from bottom to top. If the swipe
+ direction is set to horizontal, then the swipes will be performed from
+ right to left. Make sure to take into account devices configured with
+ right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
-</li></ul>
+      <ul class="nolist"><li>true if scrolled, false if can't scroll anymore</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1703,40 +1985,40 @@ From class
 </div>
 
 
-<a id="flingToBeginning(int)"></a>
+<A NAME="flingToBeginning(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">flingToBeginning</span>
       <span class="normal">(int maxSwipes)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a fling gesture to reach the beginning of a scrollable layout element.
+ The beginning can be at the  top-most edge in the case of vertical controls, or
+ the left-most edge for horizontal controls. Make sure to take into
+ account devices configured with right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on scrolled else false
-</li></ul>
+      <ul class="nolist"><li>true on scrolled else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1748,40 +2030,40 @@ From class
 </div>
 
 
-<a id="flingToEnd(int)"></a>
+<A NAME="flingToEnd(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">flingToEnd</span>
       <span class="normal">(int maxSwipes)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollToEnd(int, int)">scrollToEnd(int, int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a fling gesture to reach the end of a scrollable layout element.
+ The end can be at the  bottom-most edge in the case of vertical controls, or
+ the right-most edge for horizontal controls. Make sure to take into
+ account devices configured with right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on scrolled else false
-</li></ul>
+      <ul class="nolist"><li>true on scrolled, else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1793,56 +2075,61 @@ From class
 </div>
 
 
-<a id="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)"></a>
+<A NAME="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         <a href="UiObject.html">UiObject</a>
       </span>
       <span class="sympad">getChildByDescription</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription(UiSelector, String)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Searches for a child element in the present scrollable container.
+ The search first looks for a child element that matches the selector
+ you provided, then looks for the content-description in its children elements.
+ If both search conditions are fulfilled, the method returns a {@ link UiObject}
+ representing the element matching the selector (not the child element in its
+ subhierarchy containing the content-description).</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>childPattern</th>
-          <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+          <th>childPattern</td>
+          <td><code><a href="UiSelector.html">UiSelector</a></code> for a child in a scollable layout element</td>
         </tr>
         <tr>
-          <th>text</th>
-          <td>String may be a partial match for the content-description of a child element.</td>
+          <th>text</td>
+          <td>Content-description to find in the children of
+ the <code>childPattern</code> match (may be a partial match)</td>
         </tr>
         <tr>
-          <th>allowScrollSearch</th>
+          <th>allowScrollSearch</td>
           <td>set to true if scrolling is allowed</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> representing the child element that matches the search conditions</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1854,58 +2141,58 @@ From class
 </div>
 
 
-<a id="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)"></a>
+<A NAME="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         <a href="UiObject.html">UiObject</a>
       </span>
       <span class="sympad">getChildByDescription</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
- container. It looks for any child matching the <code>childPattern</code> argument within its
- hierarchy with a matching content-description text. The returned UiObject will represent the
- UI element matching the <code>childPattern</code> and not the sub element that matched the
- content description.</p>
- By default this operation will perform scroll search while attempting to find the UI element
+
+  <div class="jd-tagdata jd-tagdescr"><p>Searches for a child element in the present scrollable container.
+ The search first looks for a child element that matches the selector
+ you provided, then looks for the content-description in its children elements.
+ If both search conditions are fulfilled, the method returns a {@ link UiObject}
+ representing the element matching the selector (not the child element in its
+ subhierarchy containing the content-description). By default, this method performs a
+ scroll search.
  See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByDescription(UiSelector, String, boolean)</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>childPattern</th>
-          <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+          <th>childPattern</td>
+          <td><code><a href="UiSelector.html">UiSelector</a></code> for a child in a scollable layout element</td>
         </tr>
         <tr>
-          <th>text</th>
-          <td>String of the identifying child contents of of the <code>childPattern</code></td>
+          <th>text</td>
+          <td>Content-description to find in the children of
+ the <code>childPattern</code> match</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> representing the child element that matches the search conditions</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1917,56 +2204,53 @@ From class
 </div>
 
 
-<a id="getChildByInstance(com.android.uiautomator.core.UiSelector, int)"></a>
+<A NAME="getChildByInstance(com.android.uiautomator.core.UiSelector, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         <a href="UiObject.html">UiObject</a>
       </span>
       <span class="sympad">getChildByInstance</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
- selector. It looks for any child matching the <code>childPattern</code> argument and
- return the <code>instance</code> specified. The operation is performed only on the visible
- items and no scrolling is performed in this case.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Searches for a child element in the present scrollable container that
+ matches the selector you provided. The search is performed without
+ scrolling and only on visible elements.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>childPattern</th>
-          <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+          <th>childPattern</td>
+          <td><code><a href="UiSelector.html">UiSelector</a></code> for a child in a scollable layout element</td>
         </tr>
         <tr>
-          <th>instance</th>
-          <td>int the desired matched instance of this <code>childPattern</code></td>
+          <th>instance</td>
+          <td>int number representing the occurance of
+ a <code>childPattern</code> match</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code>
-</li></ul>
+      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> representing the child element that matches the search conditions</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -1978,56 +2262,59 @@ From class
 </div>
 
 
-<a id="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)"></a>
+<A NAME="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         <a href="UiObject.html">UiObject</a>
       </span>
       <span class="sympad">getChildByText</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText(UiSelector, String)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Searches for a child element in the present scrollable container. The
+ search first looks for a child element that matches the
+ selector you provided, then looks for the text in its children elements.
+ If both search conditions are fulfilled, the method returns a {@ link UiObject}
+ representing the element matching the selector (not the child element in its
+ subhierarchy containing the text).</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>childPattern</th>
-          <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+          <th>childPattern</td>
+          <td><code><a href="UiSelector.html">UiSelector</a></code> selector for a child in a scrollable layout element</td>
         </tr>
         <tr>
-          <th>text</th>
-          <td>String of the identifying child contents of of the <code>childPattern</code></td>
+          <th>text</td>
+          <td>String to find in the children of the <code>childPattern</code> match</td>
         </tr>
         <tr>
-          <th>allowScrollSearch</th>
+          <th>allowScrollSearch</td>
           <td>set to true if scrolling is allowed</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> representing the child element that matches the search conditions</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2039,59 +2326,58 @@ From class
 </div>
 
 
-<a id="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)"></a>
+<A NAME="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         <a href="UiObject.html">UiObject</a>
       </span>
       <span class="sympad">getChildByText</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
- container. It looks for any child matching the <code>childPattern</code> argument that has
- a sub UI element anywhere within its sub hierarchy that has text attribute
- <code>text</code>. The returned UiObject will point at the <code>childPattern</code>
- instance that matched the search and not at the text matched sub element</p>
- By default this operation will perform scroll search while attempting to find the UI
element.
+
+  <div class="jd-tagdata jd-tagdescr"><p>Searches for a child element in the present scrollable
+ container. The search first looks for a child element that matches the
+ selector you provided, then looks for the text in its children elements.
+ If both search conditions are fulfilled, the method returns a {@ link UiObject}
+ representing the element matching the selector (not the child element in its
+ subhierarchy containing the text). By default, this method performs a
scroll search.
  See <code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByText(UiSelector, String, boolean)</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>childPattern</th>
-          <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+          <th>childPattern</td>
+          <td><code><a href="UiSelector.html">UiSelector</a></code> selector for a child in a scrollable layout element</td>
         </tr>
         <tr>
-          <th>text</th>
-          <td>String of the identifying child contents of of the <code>childPattern</code></td>
+          <th>text</td>
+          <td>String to find in the children of the <code>childPattern</code> match</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+      <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> representing the child element that matches the search conditions</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
+
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2103,135 +2389,124 @@ From class
 </div>
 
 
-<a id="getMaxSearchSwipes()"></a>
+<A NAME="getMaxSearchSwipes()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         int
       </span>
       <span class="sympad">getMaxSearchSwipes</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
use an arguments that specifies if scrolling is allowed while searching for the UI element.
- The number of scrolls currently allowed to perform a search can be read by this method.
See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Gets the maximum number of scrolls allowed when performing a
scroll action in search of a child element.
+ See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription(UiSelector, String)</a></code> and
<code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText(UiSelector, String)</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>max value of the number of swipes currently allowed during a scroll search
-</li></ul>
+      <ul class="nolist"><li>max the number of search swipes to perform until giving up</li></ul>
   </div>
 
     </div>
 </div>
 
 
-<a id="getSwipeDeadZonePercentage()"></a>
+<A NAME="getSwipeDeadZonePercentage()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         double
       </span>
       <span class="sympad">getSwipeDeadZonePercentage</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the percentage of a widget's size that's considered as a no touch zone when swiping.
 
- Dead zones are set as percentage of a widget's total width or height, denoting a margin
- around the swipable area of the widget. Swipes must start and
end inside this margin.
-
- This is important when the widget being swiped may not respond to the swipe if
started at a point too near to the edge. The default is 10% from either edge.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Returns the percentage of a widget's size that's considered as a no-touch
+ zone when swiping. The no-touch zone is set as a percentage of a widget's total
width or height, denoting a margin around the swipable area of the widget.
+ Swipes must start and end inside this margin. This is important when the
+ widget being swiped may not respond to the swipe if started at a point
+ too near to the edge. The default is 10% from either edge.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a value between 0 and 1
-</li></ul>
+      <ul class="nolist"><li>a value between 0 and 1</li></ul>
   </div>
 
     </div>
 </div>
 
 
-<a id="scrollBackward(int)"></a>
+<A NAME="scrollBackward(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollBackward</span>
       <span class="normal">(int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll backward. If this list is set to vertical (see <code><a href="#setAsVerticalList()">setAsVerticalList()</a></code>
- default) then the swipes will be executed from the top to bottom. If this list is set
to horizontal (see <code><a href="#setAsHorizontalList()">setAsHorizontalList()</a></code>) then the swipes will be executed from
- the left to right. Caution is required on devices configured with right to left languages
- like Arabic and Hebrew.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a backward scroll. If the swipe direction is set to vertical,
+ then the swipes will be performed from top to bottom. If the swipe
direction is set to horizontal, then the swipes will be performed from
+ left to right. Make sure to take into account devices configured with
right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
-          <td>use steps to control the speed, so that it may be a scroll, or fling</td>
+          <th>steps</td>
+          <td>number of steps. Use this to control the speed of the scroll action.</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
-</li></ul>
+      <ul class="nolist"><li>true if scrolled, false if can't scroll anymore</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2243,40 +2518,42 @@ From class
 </div>
 
 
-<a id="scrollBackward()"></a>
+<A NAME="scrollBackward()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollBackward</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a backward scroll with the default number of scroll steps (55).
+ If the swipe direction is set to vertical,
+ then the swipes will be performed from top to bottom. If the swipe
+ direction is set to horizontal, then the swipes will be performed from
+ left to right. Make sure to take into account devices configured with
+ right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
-</li></ul>
+      <ul class="nolist"><li>true if scrolled, and false if can't scroll anymore</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2288,50 +2565,48 @@ From class
 </div>
 
 
-<a id="scrollDescriptionIntoView(java.lang.String)"></a>
+<A NAME="scrollDescriptionIntoView(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollDescriptionIntoView</span>
       <span class="normal">(String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe Up on the UI element until the requested content-description
- is visible or until swipe attempts have been exhausted. See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a forward scroll action on the scrollable layout element until
+ the content-description is found, or until swipe attempts have been exhausted.
+ See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>text</th>
-          <td>to look for anywhere within the contents of this scrollable.</td>
+          <th>text</td>
+          <td>content-description to find within the contents of this scrollable layout element.</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if item us found else false
-</li></ul>
+      <ul class="nolist"><li>true if item is found; else, false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2343,40 +2618,42 @@ From class
 </div>
 
 
-<a id="scrollForward()"></a>
+<A NAME="scrollForward()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollForward</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a regular scroll</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a forward scroll with the default number of scroll steps (55).
+ If the swipe direction is set to vertical,
+ then the swipes will be performed from bottom to top. If the swipe
+ direction is set to horizontal, then the swipes will be performed from
+ right to left. Make sure to take into account devices configured with
+ right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
-</li></ul>
+      <ul class="nolist"><li>true if scrolled, false if can't scroll anymore</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2388,53 +2665,50 @@ From class
 </div>
 
 
-<a id="scrollForward(int)"></a>
+<A NAME="scrollForward(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollForward</span>
       <span class="normal">(int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll forward. If this list is set to vertical (see <code><a href="#setAsVerticalList()">setAsVerticalList()</a></code>
- default) then the swipes will be executed from the bottom to top. If this list is set
to horizontal (see <code><a href="#setAsHorizontalList()">setAsHorizontalList()</a></code>) then the swipes will be executed from
- the right to left. Caution is required on devices configured with right to left languages
- like Arabic and Hebrew.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a forward scroll. If the swipe direction is set to vertical,
+ then the swipes will be performed from bottom to top. If the swipe
direction is set to horizontal, then the swipes will be performed from
+ right to left. Make sure to take into account devices configured with
right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
-          <td>use steps to control the speed, so that it may be a scroll, or fling</td>
+          <th>steps</td>
+          <td>number of steps. Use this to control the speed of the scroll action</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
-</li></ul>
+      <ul class="nolist"><li>true if scrolled, false if can't scroll anymore</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2446,50 +2720,101 @@ From class
 </div>
 
 
-<a id="scrollIntoView(com.android.uiautomator.core.UiSelector)"></a>
+<A NAME="scrollIntoView(com.android.uiautomator.core.UiSelector)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollIntoView</span>
       <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll search for a UI element matching the <code><a href="UiSelector.html">UiSelector</a></code> selector argument.
+
+  <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll forward action to move through the scrollable layout
+ element until a visible item that matches the selector is found.
+
  See <code><a href="#scrollDescriptionIntoView(java.lang.String)">scrollDescriptionIntoView(String)</a></code> and <code><a href="#scrollTextIntoView(java.lang.String)">scrollTextIntoView(String)</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>selector</th>
+          <th>selector</td>
           <td><code><a href="UiSelector.html">UiSelector</a></code> selector</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if the item was found and now is in view else false
-</li></ul>
+      <ul class="nolist"><li>true if the item was found and now is in view; else, false</li></ul>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">
+        <tr>
+            <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+            <td></td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="scrollIntoView(com.android.uiautomator.core.UiObject)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">scrollIntoView</span>
+      <span class="normal">(<a href="UiObject.html">UiObject</a> obj)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Perform a forward scroll action to move through the scrollable layout element until
+ a visible item that matches the <code><a href="UiObject.html">UiObject</a></code> is found.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>obj</td>
+          <td><code><a href="UiObject.html">UiObject</a></code></td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if the item was found and now is in view else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2501,50 +2826,48 @@ From class
 </div>
 
 
-<a id="scrollTextIntoView(java.lang.String)"></a>
+<A NAME="scrollTextIntoView(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollTextIntoView</span>
       <span class="normal">(String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe up on the UI element until the requested text is visible
- or until swipe attempts have been exhausted. See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Performs a forward scroll action on the scrollable layout element until
+ the text you provided is visible, or until swipe attempts have been exhausted.
+ See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>text</th>
-          <td>to look for</td>
+          <th>text</td>
+          <td>test to look for</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true if item us found else false
-</li></ul>
+      <ul class="nolist"><li>true if item is found; else, false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2556,40 +2879,40 @@ From class
 </div>
 
 
-<a id="scrollToBeginning(int)"></a>
+<A NAME="scrollToBeginning(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollToBeginning</span>
       <span class="normal">(int maxSwipes)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the beginning of a scrollable layout element. The beginning
+ can be at the  top-most edge in the case of vertical controls, or the
+ left-most edge for horizontal controls. Make sure to take into account
+ devices configured with right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on scrolled else false
-</li></ul>
+      <ul class="nolist"><li>true on scrolled else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2601,51 +2924,49 @@ From class
 </div>
 
 
-<a id="scrollToBeginning(int, int)"></a>
+<A NAME="scrollToBeginning(int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollToBeginning</span>
       <span class="normal">(int maxSwipes, int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the beginning of a scrollable UI element. The beginning could be the top most
- in case of vertical lists or the left most in case of horizontal lists. Caution is required
- on devices configured with right to left languages like Arabic and Hebrew.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the beginning of a scrollable layout element. The beginning
+ can be at the  top-most edge in the case of vertical controls, or the
+ left-most edge for horizontal controls. Make sure to take into account
+ devices configured with right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>use steps to control the speed, so that it may be a scroll, or fling</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on scrolled else false
-</li></ul>
+      <ul class="nolist"><li>true on scrolled else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2657,51 +2978,49 @@ From class
 </div>
 
 
-<a id="scrollToEnd(int, int)"></a>
+<A NAME="scrollToEnd(int, int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollToEnd</span>
       <span class="normal">(int maxSwipes, int steps)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the end of a scrollable UI element. The end could be the bottom most
- in case of vertical controls or the right most for horizontal controls. Caution
- is required on devices configured with right to left languages like Arabic and Hebrew.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the end of a scrollable layout element. The end can be at the
+ bottom-most edge in the case of vertical controls, or the right-most edge for
+ horizontal controls. Make sure to take into account devices configured with
+ right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>steps</th>
+          <th>steps</td>
           <td>use steps to control the speed, so that it may be a scroll, or fling</td>
         </tr>
       </table>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on scrolled else false
-</li></ul>
+      <ul class="nolist"><li>true on scrolled else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2713,40 +3032,40 @@ From class
 </div>
 
 
-<a id="scrollToEnd(int)"></a>
+<A NAME="scrollToEnd(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         boolean
       </span>
       <span class="sympad">scrollToEnd</span>
       <span class="normal">(int maxSwipes)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See {@link UiScrollable#scrollToEnd(int, int)</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the end of a scrollable layout element. The end can be at the
+ bottom-most edge in the case of vertical controls, or the right-most edge for
+ horizontal controls. Make sure to take into account devices configured with
+ right-to-left languages like Arabic and Hebrew.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>true on scrolled else false
-</li></ul>
+      <ul class="nolist"><li>true on scrolled, else false</li></ul>
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
+      <table class="jd-tagtable">
         <tr>
             <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
             <td></td>
@@ -2758,157 +3077,207 @@ From class
 </div>
 
 
-<a id="setAsHorizontalList()"></a>
+<A NAME="setAsHorizontalList()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        void
+        public
+
+
+
+
+        <a href="#">UiScrollable</a>
       </span>
       <span class="sympad">setAsHorizontalList</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Set the direction of swipes when performing scroll search
-</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Set the direction of swipes to be horizontal when performing scroll actions.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>reference to itself</li></ul>
+  </div>
 
     </div>
 </div>
 
 
-<a id="setAsVerticalList()"></a>
+<A NAME="setAsVerticalList()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        void
+        public
+
+
+
+
+        <a href="#">UiScrollable</a>
       </span>
       <span class="sympad">setAsVerticalList</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Set the direction of swipes when performing scroll search
-</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Set the direction of swipes to be vertical when performing scroll actions.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>reference to itself</li></ul>
+  </div>
 
     </div>
 </div>
 
 
-<a id="setMaxSearchSwipes(int)"></a>
+<A NAME="setMaxSearchSwipes(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        void
+        public
+
+
+
+
+        <a href="#">UiScrollable</a>
       </span>
       <span class="sympad">setMaxSearchSwipes</span>
       <span class="normal">(int swipes)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
use an arguments that specifies if scrolling is allowed while searching for the UI element.
- The number of scrolls allowed to perform a search can be modified by this method.
The current value can be read by calling <code><a href="#getMaxSearchSwipes()">getMaxSearchSwipes()</a></code></p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the maximum number of scrolls allowed when performing a
scroll action in search of a child element.
+ See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription(UiSelector, String)</a></code> and
<code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText(UiSelector, String)</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>swipes</th>
-          <td>is the number of search swipes until abort
-</td>
+          <th>swipes</td>
+          <td>the number of search swipes to perform until giving up</td>
         </tr>
       </table>
   </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>reference to itself</li></ul>
+  </div>
 
     </div>
 </div>
 
 
-<a id="setSwipeDeadZonePercentage(double)"></a>
+<A NAME="setSwipeDeadZonePercentage(double)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        void
+        public
+
+
+
+
+        <a href="#">UiScrollable</a>
       </span>
       <span class="sympad">setSwipeDeadZonePercentage</span>
       <span class="normal">(double swipeDeadZonePercentage)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the percentage of a widget's size that's considered as a no touch zone when swiping.
 
- Dead zones are set as percentage of a widget's total width or height, denoting a margin
- around the swipable area of the widget. Swipes must always start and
- end inside this margin.
-
- This is important when the widget being swiped may not respond to the swipe if
- started at a point too near to the edge. The default is 10% from either edge</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the percentage of a widget's size that's considered as no-touch
+ zone when swiping.
+ The no-touch zone is set as percentage of a widget's total width or height,
+ denoting a margin around the swipable area of the widget. Swipes must
+ always start and end inside this margin. This is important when the
+ widget being swiped may not respond to the swipe if started at a point
+ too near to the edge. The default is 10% from either edge.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>swipeDeadZonePercentage</th>
-          <td>is a value between 0 and 1
-</td>
+          <th>swipeDeadZonePercentage</td>
+          <td>is a value between 0 and 1</td>
         </tr>
       </table>
   </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>reference to itself</li></ul>
+  </div>
 
     </div>
 </div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="exists(com.android.uiautomator.core.UiSelector)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+
+
+
+
+        boolean
+      </span>
+      <span class="sympad">exists</span>
+      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+
+
+
+      </div>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Used privately when performing swipe searches to decide if an element has become
+ visible or not.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>true if found else false</li></ul>
+  </div>
+
+    </div>
+
+
+
+
+
index 96d3fd8..c9a1eed 100644 (file)
@@ -5,21 +5,18 @@ parent.link=index.html
 <style>
     h4.jd-details-title {background-color: #DEE8F1;}
 </style>
+<p>Specifies the elements in the layout hierarchy for tests to target, filtered
+by properties such as text value, content-description, class name, and state
+information. You can also target an element by its location in a layout
+hierarchy.</p>
+<h2>Summary</h2>
 
 
-<h2>Class Overview</h2>
-<p>This class provides the mechanism for tests to describe the UI elements they
- intend to target. A UI element has many properties associated with it such as
- text value, content-description, class name and multiple state information like
- selected, enabled, checked etc. Additionally UiSelector allows targeting of UI
- elements within a specific display hierarchies to distinguish similar elements
- based in the hierarchies they're in.</p>
 
 
 
 
 
-</div><!-- jd-descr -->
 
 
 
@@ -36,547 +33,576 @@ parent.link=index.html
 
 
 
-<div class="jd-descr">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
 
 
-<h2>Summary</h2>
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
 
 
+            </nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#UiSelector()">UiSelector</a></span>()</nobr>
 
+  </td></tr>
 
 
 
+</table>
 
 
 
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
 
 
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
 
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#UiSelector()">UiSelector</a></span>()
-        
-  </td></tr>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#checkable(boolean)">checkable</a></span>(boolean val)</nobr>
 
+        <div class="jd-descrdiv">Set the search criteria to match widgets that are checkable.</div>
 
+  </td></tr>
 
-</table>
 
 
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
 
 
 
 
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
 
-
-
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#checked(boolean)">checked</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#checked(boolean)">checked</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that
  are currently checked (usually for checkboxes).</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#childSelector(com.android.uiautomator.core.UiSelector)">childSelector</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#childSelector(com.android.uiautomator.core.UiSelector)">childSelector</a></span>(<a href="#">UiSelector</a> selector)</nobr>
+
         <div class="jd-descrdiv">Adds a child UiSelector criteria to this selector.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#className(java.lang.String)">className</a></span>(String className)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#className(java.lang.String)">className</a></span>(String className)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the class property
  for a widget (for example, "android.widget.Button").</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
             &lt;T&gt;
-            <a href="UiSelector.html">UiSelector</a>
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#className(java.lang.Class<T>)">className</a></span>(Class&lt;T&gt; type)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#className(java.lang.Class<T>)">className</a></span>(Class&lt;T&gt; type)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the class property
  for a widget (for example, "android.widget.Button").</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#classNameMatches(java.lang.String)">classNameMatches</a></span>(String regex)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#classNameMatches(java.lang.String)">classNameMatches</a></span>(String regex)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the class property
- for a widget (for example, "android.widget.Button").</div>
-  
+ for a widget, using a regular expression.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#clickable(boolean)">clickable</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#clickable(boolean)">clickable</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that are clickable.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#description(java.lang.String)">description</a></span>(String desc)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#description(java.lang.String)">description</a></span>(String desc)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the content-description
  property for a widget.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#descriptionContains(java.lang.String)">descriptionContains</a></span>(String desc)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#descriptionContains(java.lang.String)">descriptionContains</a></span>(String desc)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the content-description
  property for a widget.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#descriptionMatches(java.lang.String)">descriptionMatches</a></span>(String regex)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#descriptionMatches(java.lang.String)">descriptionMatches</a></span>(String regex)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the content-description
  property for a widget.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#descriptionStartsWith(java.lang.String)">descriptionStartsWith</a></span>(String desc)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#descriptionStartsWith(java.lang.String)">descriptionStartsWith</a></span>(String desc)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the content-description
  property for a widget.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#enabled(boolean)">enabled</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#enabled(boolean)">enabled</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that are enabled.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#focusable(boolean)">focusable</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#focusable(boolean)">focusable</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that are focusable.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#focused(boolean)">focused</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#focused(boolean)">focused</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that have focus.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#fromParent(com.android.uiautomator.core.UiSelector)">fromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#fromParent(com.android.uiautomator.core.UiSelector)">fromParent</a></span>(<a href="#">UiSelector</a> selector)</nobr>
+
         <div class="jd-descrdiv">Adds a child UiSelector criteria to this selector which is used to
  start search from the parent widget.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#index(int)">index</a></span>(int index)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#index(int)">index</a></span>(int index)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the widget by its node
  index in the layout hierarchy.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#instance(int)">instance</a></span>(int instance)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#instance(int)">instance</a></span>(int instance)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the
  widget by its instance number.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#longClickable(boolean)">longClickable</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#longClickable(boolean)">longClickable</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that are long-clickable.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#packageName(java.lang.String)">packageName</a></span>(String name)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#packageName(java.lang.String)">packageName</a></span>(String name)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the package name
  of the application that contains the widget.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#packageNameMatches(java.lang.String)">packageNameMatches</a></span>(String regex)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#packageNameMatches(java.lang.String)">packageNameMatches</a></span>(String regex)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the package name
  of the application that contains the widget.</div>
-  
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#resourceId(java.lang.String)">resourceId</a></span>(String id)</nobr>
+
+        <div class="jd-descrdiv">Set the search criteria to match the given resource ID.</div>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#resourceIdMatches(java.lang.String)">resourceIdMatches</a></span>(String regex)</nobr>
+
+        <div class="jd-descrdiv">Set the search criteria to match the resource ID
+ of the widget, using a regular expression.http://blog.bettersoftwaretesting.com/</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#scrollable(boolean)">scrollable</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#scrollable(boolean)">scrollable</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that are scrollable.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#selected(boolean)">selected</a></span>(boolean val)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#selected(boolean)">selected</a></span>(boolean val)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match widgets that
  are currently selected.</div>
-  
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#text(java.lang.String)">text</a></span>(String text)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#text(java.lang.String)">text</a></span>(String text)</nobr>
+
         <div class="jd-descrdiv">Set the search criteria to match the visible text displayed
for a widget (for example, the text label to launch an app).</div>
-  
in a widget (for example, the text label to launch an app).</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#textContains(java.lang.String)">textContains</a></span>(String text)
-        
-        <div class="jd-descrdiv">Set the search criteria to match the visible text displayed
for a widget (for example, the text label to launch an app).</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#textContains(java.lang.String)">textContains</a></span>(String text)</nobr>
+
+        <div class="jd-descrdiv">Set the search criteria to match the visible text in a widget
where the visible text must contain the string in your input argument.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#textMatches(java.lang.String)">textMatches</a></span>(String regex)
-        
-        <div class="jd-descrdiv">Set the search criteria to match the visible text displayed
for a widget (for example, the text label to launch an app).</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#textMatches(java.lang.String)">textMatches</a></span>(String regex)</nobr>
+
+        <div class="jd-descrdiv">Set the search criteria to match the visible text displayed in a layout
element, using a regular expression.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            <a href="UiSelector.html">UiSelector</a>
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#textStartsWith(java.lang.String)">textStartsWith</a></span>(String text)
-        
-        <div class="jd-descrdiv">Text property is usually the widget's visible text on the display.</div>
-  
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#textStartsWith(java.lang.String)">textStartsWith</a></span>(String text)</nobr>
+
+        <div class="jd-descrdiv">Set the search criteria to match visible text in a widget that is
+ prefixed by the text parameter.</div>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad"><a href="#toString()">toString</a></span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#toString()">toString</a></span>()</nobr>
+
   </td></tr>
 
 
@@ -586,6 +612,31 @@ parent.link=index.html
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            <a href="#">UiSelector</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="#cloneSelector()">cloneSelector</a></span>()</nobr>
+
+  </td></tr>
+
+
+
+</table>
+
+
 
 
 
@@ -595,7 +646,7 @@ parent.link=index.html
   <div style="clear:left;">Inherited Methods</div></th></tr>
 
 
-<tr class="api apilevel-" >
+<tr class="api" >
 <td colspan="12">
   <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
           ><img id="inherited-methods-java.lang.Object-trigger"
@@ -611,150 +662,182 @@ From class
   </div>
   <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
     <table class="jd-sumtable-expando">
-    
-
-
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            boolean
+
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            Object</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">clone</span>()</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">equals</span>(Object arg0)</nobr>
+
+  </td></tr>
+
+
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">equals</span>(Object arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">finalize</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            Class&lt;?&gt;
+
+
+            Class&lt;?&gt;</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">getClass</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">getClass</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            int
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            int</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">hashCode</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">hashCode</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notify</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notify</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">notifyAll</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">notifyAll</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
-            
-            
-            
-            String
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
+
+
+
+            String</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">toString</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">toString</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>()
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>()</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0, int arg1)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
   </td></tr>
 
 
-        
-    <tr class="api">
-        <td class="jd-typecol">
-            
-            
+
+    <tr class="api" >
+        <td class="jd-typecol"><nobr>
+
+
             final
-            
-            
-            void
+
+
+            void</nobr>
         </td>
-        <td class="jd-linkcol" width="100%">
-        <span class="sympad">wait</span>(long arg0)
-        
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad">wait</span>(long arg0)</nobr>
+
   </td></tr>
 
 
@@ -798,31 +881,29 @@ From class
 
 
 
-<a id="UiSelector()"></a>
+<A NAME="UiSelector()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        
+        public
+
+
+
+
+
       </span>
       <span class="sympad">UiSelector</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
@@ -844,31 +925,76 @@ From class
 
 
 
-<a id="checked(boolean)"></a>
+<A NAME="checkable(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
+      </span>
+      <span class="sympad">checkable</span>
+      <span class="normal">(boolean val)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are checkable.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>val</td>
+          <td>Value to match</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
+</div>
+
+
+<A NAME="checked(boolean)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">checked</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that
  are currently checked (usually for checkboxes).
 
@@ -883,7 +1009,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -897,31 +1023,29 @@ From class
 </div>
 
 
-<a id="childSelector(com.android.uiautomator.core.UiSelector)"></a>
+<A NAME="childSelector(com.android.uiautomator.core.UiSelector)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">childSelector</span>
-      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+      <span class="normal">(<a href="#">UiSelector</a> selector)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Adds a child UiSelector criteria to this selector.
 
  Use this selector to narrow the search scope to
@@ -935,38 +1059,30 @@ From class
 </div>
 
 
-<a id="className(java.lang.String)"></a>
+<A NAME="className(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">className</span>
       <span class="normal">(String className)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the class property
  for a widget (for example, "android.widget.Button").</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>className</th>
+          <th>className</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -975,114 +1091,120 @@ From class
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
-
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="className(java.lang.Class<T>)"></a>
+<A NAME="className(java.lang.Class<T>)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">className</span>
       <span class="normal">(Class&lt;T&gt; type)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the class property
  for a widget (for example, "android.widget.Button").</p></div>
   <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>type</td>
+          <td>type</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
-  <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+
     </div>
 </div>
 
 
-<a id="classNameMatches(java.lang.String)"></a>
+<A NAME="classNameMatches(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">classNameMatches</span>
       <span class="normal">(String regex)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the class property
- for a widget (for example, "android.widget.Button").</p></div>
+ for a widget, using a regular expression.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>regex</td>
+          <td>a regular expression</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="clickable(boolean)"></a>
+<A NAME="clickable(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">clickable</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are clickable.
 
  Typically, using this search criteria alone is not useful.
@@ -1096,7 +1218,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1110,31 +1232,29 @@ From class
 </div>
 
 
-<a id="description(java.lang.String)"></a>
+<A NAME="description(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">description</span>
       <span class="normal">(String desc)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
  property for a widget.
 
@@ -1150,7 +1270,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>desc</th>
+          <th>desc</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1164,31 +1284,29 @@ From class
 </div>
 
 
-<a id="descriptionContains(java.lang.String)"></a>
+<A NAME="descriptionContains(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">descriptionContains</span>
       <span class="normal">(String desc)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
  property for a widget.
 
@@ -1204,7 +1322,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>desc</th>
+          <th>desc</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1218,31 +1336,23 @@ From class
 </div>
 
 
-<a id="descriptionMatches(java.lang.String)"></a>
+<A NAME="descriptionMatches(java.lang.String)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
 
-<div class="jd-details api "> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">descriptionMatches</span>
       <span class="normal">(String regex)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
  property for a widget.
 
@@ -1253,42 +1363,49 @@ From class
  for the widget must match exactly
  with the string in your input argument.</p></div>
   <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>regex</td>
+          <td>a regular expression</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="descriptionStartsWith(java.lang.String)"></a>
+<A NAME="descriptionStartsWith(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">descriptionStartsWith</span>
       <span class="normal">(String desc)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
  property for a widget.
 
@@ -1304,7 +1421,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>desc</th>
+          <th>desc</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1318,31 +1435,29 @@ From class
 </div>
 
 
-<a id="enabled(boolean)"></a>
+<A NAME="enabled(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">enabled</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are enabled.
 
  Typically, using this search criteria alone is not useful.
@@ -1356,7 +1471,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1370,31 +1485,29 @@ From class
 </div>
 
 
-<a id="focusable(boolean)"></a>
+<A NAME="focusable(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">focusable</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are focusable.
 
  Typically, using this search criteria alone is not useful.
@@ -1408,7 +1521,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1422,31 +1535,29 @@ From class
 </div>
 
 
-<a id="focused(boolean)"></a>
+<A NAME="focused(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">focused</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that have focus.
 
  Typically, using this search criteria alone is not useful.
@@ -1460,7 +1571,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1474,31 +1585,29 @@ From class
 </div>
 
 
-<a id="fromParent(com.android.uiautomator.core.UiSelector)"></a>
+<A NAME="fromParent(com.android.uiautomator.core.UiSelector)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">fromParent</span>
-      <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+      <span class="normal">(<a href="#">UiSelector</a> selector)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Adds a child UiSelector criteria to this selector which is used to
  start search from the parent widget.
 
@@ -1513,31 +1622,29 @@ From class
 </div>
 
 
-<a id="index(int)"></a>
+<A NAME="index(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">index</span>
       <span class="normal">(int index)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the widget by its node
  index in the layout hierarchy.
 
@@ -1550,7 +1657,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>index</th>
+          <th>index</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1564,31 +1671,29 @@ From class
 </div>
 
 
-<a id="instance(int)"></a>
+<A NAME="instance(int)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">instance</span>
       <span class="normal">(int instance)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the
  widget by its instance number.
 
@@ -1609,7 +1714,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>instance</th>
+          <th>instance</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1623,31 +1728,23 @@ From class
 </div>
 
 
-<a id="longClickable(boolean)"></a>
+<A NAME="longClickable(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">longClickable</span>
       <span class="normal">(boolean val)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are long-clickable.
 
  Typically, using this search criteria alone is not useful.
@@ -1661,7 +1758,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1671,45 +1768,43 @@ From class
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="packageName(java.lang.String)"></a>
+<A NAME="packageName(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">packageName</span>
       <span class="normal">(String name)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the package name
  of the application that contains the widget.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>name</th>
+          <th>name</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1723,70 +1818,148 @@ From class
 </div>
 
 
-<a id="packageNameMatches(java.lang.String)"></a>
+<A NAME="packageNameMatches(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">packageNameMatches</span>
       <span class="normal">(String regex)</span>
     </h4>
-      <div class="api-level">
-        <div>
+    <div class="jd-details-descr">
 
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the package name
+ of the application that contains the widget.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>regex</td>
+          <td>a regular expression</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
+    </div>
 </div>
-        
-  
 
-      </div>
+
+<A NAME="resourceId(java.lang.String)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
+      </span>
+      <span class="sympad">resourceId</span>
+      <span class="normal">(String id)</span>
+    </h4>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the package name
- of the application that contains the widget.</p></div>
+
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the given resource ID.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>id</td>
+          <td>Value to match</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
+    </div>
 </div>
+
+
+<A NAME="resourceIdMatches(java.lang.String)"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
+      </span>
+      <span class="sympad">resourceIdMatches</span>
+      <span class="normal">(String regex)</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the resource ID
+ of the widget, using a regular expression.http://blog.bettersoftwaretesting.com/</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>regex</td>
+          <td>a regular expression</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+  </div>
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 18</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="scrollable(boolean)"></a>
+<A NAME="scrollable(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">scrollable</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are scrollable.
 
  Typically, using this search criteria alone is not useful.
@@ -1800,7 +1973,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1814,31 +1987,29 @@ From class
 </div>
 
 
-<a id="selected(boolean)"></a>
+<A NAME="selected(boolean)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">selected</span>
       <span class="normal">(boolean val)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that
  are currently selected.
 
@@ -1853,7 +2024,7 @@ From class
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>val</th>
+          <th>val</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1867,42 +2038,39 @@ From class
 </div>
 
 
-<a id="text(java.lang.String)"></a>
+<A NAME="text(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">text</span>
       <span class="normal">(String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed
for a widget (for example, the text label to launch an app).
in a widget (for example, the text label to launch an app).
 
- The text for the widget must match exactly
- with the string in your input argument.
- Matching is case-sensitive.</p></div>
+ The text for the element must match exactly with the string in your input
+ argument. Matching is case-sensitive.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>text</th>
+          <th>text</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1916,41 +2084,38 @@ From class
 </div>
 
 
-<a id="textContains(java.lang.String)"></a>
+<A NAME="textContains(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">textContains</span>
       <span class="normal">(String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed
- for a widget (for example, the text label to launch an app).
 
- The text for the widget must contain the string in
- your input argument. Matching is case-sensitive.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text in a widget
+ where the visible text must contain the string in your input argument.
+
+ The matching is case-sensitive.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
-          <th>text</th>
+          <th>text</td>
           <td>Value to match</td>
         </tr>
       </table>
@@ -1964,113 +2129,117 @@ From class
 </div>
 
 
-<a id="textMatches(java.lang.String)"></a>
+<A NAME="textMatches(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">textMatches</span>
       <span class="normal">(String regex)</span>
     </h4>
-      <div class="api-level">
-        <div>
-
-</div>
-        
-  
-
-      </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed
- for a widget (for example, the text label to launch an app).
 
- The text for the widget must match exactly
- with the string in your input argument.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed in a layout
+ element, using a regular expression.
+
+ The text in the widget must match exactly with the string in your
+ input argument.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>regex</td>
+          <td>a regular expression</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
       <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
   <div class="jd-tagdata">
-  <h5 class="jd-tagtitle">Since</h5>
-  <ul class="nolist"><li>Android API Level 17</li></ul>
-</div>
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
     </div>
 </div>
 
 
-<a id="textStartsWith(java.lang.String)"></a>
+<A NAME="textStartsWith(java.lang.String)"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="UiSelector.html">UiSelector</a>
+        public
+
+
+
+
+        <a href="#">UiSelector</a>
       </span>
       <span class="sympad">textStartsWith</span>
       <span class="normal">(String text)</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Text property is usually the widget's visible text on the display.
 
- Adding this to the search criteria indicates that the search performed
should match a widget with text value starting with the text parameter.
+  <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match visible text in a widget that is
prefixed by the text parameter.
 
- The matching will be case-insensitive.</p></div>
+ The matching is case-insensitive.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>text</td>
+          <td>Value to match</td>
+        </tr>
+      </table>
+  </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>UiSelector with this added search criterion</li></ul>
+      <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
   </div>
 
     </div>
 </div>
 
 
-<a id="toString()"></a>
+<A NAME="toString()"></A>
 
-<div class="jd-details api "> 
+<div class="jd-details api">
     <h4 class="jd-details-title">
       <span class="normal">
-        public 
-         
-         
-         
-         
+        public
+
+
+
+
         String
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
     </h4>
       <div class="api-level">
-        <div>
+        <div></div>
+
 
-</div>
-        
-  
 
       </div>
     <div class="jd-details-descr">
-      
+
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
@@ -2082,7 +2251,36 @@ From class
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="cloneSelector()"></A>
+
+<div class="jd-details api">
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected
+
+
+
+
+        <a href="#">UiSelector</a>
+      </span>
+      <span class="sympad">cloneSelector</span>
+      <span class="normal">()</span>
+    </h4>
+    <div class="jd-details-descr">
+
+  <div class="jd-tagdata">
+     <h5 class="jd-tagtitle">Since</h5>
+     <ul class="nolist"><li>Android API Level 17</li></ul>
+  </div>
+
+    </div>
+
+
+
 
 
-<!-- ========= END OF CLASS DATA ========= -->
 
index b416fad..9268c35 100644 (file)
@@ -9,9 +9,6 @@ parent.link=index.html
 <p>Represents a conditional watcher on the target device. To learn how to register a conditional 
  watcher, see <code><a href="UiDevice.html#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">UiDevice.registerWatcher()</a></code>.
 </p>
-
-<div class="jd-descr">
-
 <h2>Summary</h2>
 
 <!-- ========== METHOD SUMMARY =========== -->
@@ -75,4 +72,3 @@ parent.link=index.html
   </div>
 
     </div>
-</div>
index e3899d6..4b3c255 100644 (file)
@@ -26,7 +26,7 @@ parent.link=index.html
 <h2 id="syntax">Syntax</h2>
 <p>To run your testcases on the target device, you can use the {@code adb shell} command to invoke the {@code uiautomator} tool.  The syntax is:
 <pre>
-adb shell uiautomator runtest &lt;jar&gt; -c &lt;test_class_or_method&gt; [options]
+adb shell uiautomator runtest &lt;JARS&gt; -c &lt;CLASSES&gt; [options]
 </pre>
 </p>
 <p>Here’s an example:</p>
@@ -45,19 +45,26 @@ adb shell uiautomator runtest &lt;jar&gt; -c &lt;test_class_or_method&gt; [optio
 </tr>
 
 <tr>
-<td rowspan="6"><code>runtest</code></td>
-<td><nobr>{@code &lt;jar&gt;}</nobr></td>
-<td><strong>Required</strong>. The {@code &lt;jar&gt;} argument is the name of one or more JAR files that you deployed to the target device which contain your uiautomator testcases. You can list more than one JAR file by using a space as a separator.</td>
+<td rowspan="7"><code>runtest</code></td>
+<td><nobr>{@code &lt;JARS&gt;}</nobr></td>
+<td><strong>Required</strong>. The {@code &lt;JARS&gt;} argument is the name of one or more JAR files that you deployed to the target device which contain your uiautomator testcases. You can list more than one JAR file by using a space as a separator.</td>
 </tr>
 
 <tr>
-<td><nobr><code>-c &lt;test_class_or_method&gt; </code></nobr></td>
-<td><strong>Required</strong>. The {@code &lt;test_class_or_method&gt;} argument is a list of one or more specific test classes or test methods from the JARs that you want {@code uiautomator} to run. <p>Each class or method must be fully qualified with the package name, in one of these formats:
+<td><nobr><code>-c &lt;CLASSES&gt; </code></nobr></td>
+<td><strong>Required (API 17 or lower)</strong>.The {@code &lt;CLASSES&gt;} 
+argument is a list of test classes or test methods in {@code &lt;JARS&gt;} to run. 
+<p>Each class or method must be fully 
+qualified with the package name, in one of these formats:
 <ul>
 <li>{@code package_name.class_name}</li>
 <li>{@code package_name.class_name#method_name}</li>
 </ul>
-You can list multiple classes or methods by using a space as a separator.</p></td>
+You can list multiple classes or methods by using a space as a separator.</p>
+<p class="note"><strong>Note:</strong>This argument is not required for API 18 
+and higher. If not specified, all test cases in {@code &lt;JARS&gt;} will be run.
+</p>
+</td>
 </tr>
 
 <tr>
@@ -76,12 +83,16 @@ You can list multiple classes or methods by using a space as a separator.</p></t
 </tr>
 
 <tr>
-<td><code>dump</code></td>
-<td><code>[file]</code></td>
+<td><code>dump [file]</code></td>
 <td>Generate an XML file with a dump of the current UI hierarchy. If a filepath is not specified, by default, the generated dump file is stored on the device in this location {@code /storage/sdcard0/window_dump.xml}.</td>
 </tr>
 
 <tr>
+<td><nobr><code>-e outputFormat simple | -s</code></nobr></td>
+<td>Enables less verbose JUnit style output.</td>
+</tr>
+
+<tr>
 <td><code>events</code></td>
 <td>&nbsp;</td>
 <td>Prints out accessibility events to the console until the connection to the device is terminated</td>
@@ -123,6 +134,11 @@ You can list multiple classes or methods by using a space as a separator.</p></t
 <td>Represents a query for one or more target UI elements on a device screen. </td>
 </tr>
 
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/Configurator.html">{@code com.android.uiautomator.core.Configurator}</a></nobr></td>
+<td>Allows you to set key parameters for running uiautomator tests.</td>
+</tr>
+
 </table>
 
 <h3 id="interfaces">Interfaces</h3>
index f9d452c..e9094a7 100644 (file)
@@ -1,6 +1,13 @@
 page.title=Developer Tools
 @jd:body
-
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
     
 <img src="{@docRoot}images/tools-home.png" style="float:right;" height="415" width="763" />
 
index 6389880..c555f98 100644 (file)
@@ -187,6 +187,7 @@ class="en">MonkeyRunner</span></a></li>
        <li class="nav-section">
           <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/help/uiautomator/index.html"><span class="en">uiautomator</span></a></div>
           <ul>
+             <li><a href="<?cs var:toroot ?>tools/help/uiautomator/Configurator.html"><span class="en">Configurator</span></a></li>
              <li><a href="<?cs var:toroot ?>tools/help/uiautomator/IAutomationSupport.html"><span class="en">IAutomationSupport</span></a></li>
              <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiAutomatorTestCase.html"><span class="en">UiAutomatorTestCase</span></a></li>
              <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiCollection.html"><span class="en">UiCollection</span></a></li>
diff --git a/docs/html/training/cloudsave/conflict-res.jd b/docs/html/training/cloudsave/conflict-res.jd
new file mode 100644 (file)
index 0000000..0ff50e2
--- /dev/null
@@ -0,0 +1,597 @@
+page.title=Resolving Cloud Save Conflicts
+page.tags="cloud"
+
+page.article=true
+@jd:body
+
+<style type="text/css">
+.new-value {
+       color: #00F;
+}
+.conflict {
+       color: #F00;
+}
+</style>
+
+<div id="tb-wrapper">
+  <div id="tb">
+    <h2>In this document</h2>
+    <ol class="nolist">
+      <li><a href="#conflict">Get Notified of Conflicts</a></li>
+      <li><a href="#simple">Handle the Simple Cases</a></li>
+      <li><a href="#complicated">Design a Strategy for More Complex Cases</a>
+      <ol class="nolist">
+        <li><a href="#attempt-1">First Attempt: Store Only the Total</a></li>
+        <li><a href="#attempt-2">Second Attempt: Store the Total and the Delta</a></li>
+        <li><a href="#solution">Solution: Store the Sub-totals per Device</a></li>
+      </ol>
+      </li>
+      <li><a href="#cleanup">Clean Up Your Data</a></li>
+    </ol>
+    <h2>You should also read</h2>
+    <ul>
+      <li><a href="http://developers.google.com/games/services/common/concepts/cloudsave">Cloud Save</a></li>
+      <li><a href="https://developers.google.com/games/services/android/cloudsave">Cloud Save in Android</a></li>
+    </ul>
+  </div>
+</div>
+
+<p>This article describes how to design a robust conflict resolution strategy for
+apps that save data to the cloud using the
+<a href="http://developers.google.com/games/services/common/concepts/cloudsave">
+Cloud Save service</a>. The Cloud Save service
+allows you to store application data for each user of an application on Google's
+servers. Your application can retrieve and update this user data from Android
+devices, iOS devices, or web applications by using the Cloud Save APIs.</p>
+
+<p>Saving and loading progress in Cloud Save is straightforward: it's just a matter
+of serializing the player's data to and from byte arrays and storing those arrays
+in the cloud. However, when your user has multiple devices and two or more of them attempt
+to save data to the cloud, the saves might conflict, and you must decide how to
+resolve it. The structure of your cloud save data largely dictates how robust
+your conflict resolution can be, so you must design your data carefully in order
+to allow your conflict resolution logic to handle each case correctly.</p>
+
+<p>The article starts by describing a few flawed approaches
+and explains where they fall short. Then it presents a solution for avoiding
+conflicts. The discussion focuses on games, but you can
+apply the same principles to any app that saves data to the cloud.</p>
+
+<h2 id="conflict">Get Notified of Conflicts</h2>
+
+<p>The
+<a href="{@docRoot}reference/com/google/android/gms/appstate/OnStateLoadedListener.html">{@code OnStateLoadedListener}</a>
+methods are responsible for loading an application's state data from Google's servers.
+The callback <a href="{@docRoot}reference/com/google/android/gms/appstate/OnStateLoadedListener.html#onStateConflict">
+{@code OnStateLoadedListener.onStateConflict}</a> provides a mechanism
+for your application to resolve conflicts between the local state on a user's
+device and the state stored in the cloud:</p>
+
+<pre style="clear:right">&#64;Override
+public void onStateConflict(int stateKey, String resolvedVersion,
+    byte[] localData, byte[] serverData) {
+    // resolve conflict, then call mAppStateClient.resolveConflict()
+ ...
+}</pre>
+
+<p>At this point your application must choose which one of the data sets should
+be kept, or it can submit a new data set that represents the merged data. It is
+up to you to implement this conflict resolution logic.</p>
+
+<p>It's important to realize that the Cloud Save service synchronizes
+data in the background. Therefore, you should ensure that your app is prepared
+to receive that callback outside of the context where you originally generated
+the data. Specifically, if the Google Play services application detects a conflict
+in the background, the callback will be called the next time you attempt to load the
+data, which might not happen until the next time the user starts the app.</p>
+
+<p>Therefore, design of your cloud save data and conflict resolution code must be
+<em>context-independent</em>: given two conflicting save states, you must be able
+to resolve the conflict using only the data available within the data sets, without
+consulting any external context. </p>
+
+<h2 id="simple">Handle the Simple Cases</h2>
+
+<p>Here are some simple cases of conflict resolution. For many apps, it is
+sufficient to adopt a variant of one of these strategies:</p>
+
+<ul>
+  <li> <strong>New is better than old</strong>. In some cases, new data should
+always replace old data. For example, if the data represents the player's choice
+for a character's shirt color, then a more recent choice should override an
+older choice. In this case, you would probably choose to store the timestamp in the cloud
+save data. When resolving the conflict, pick the data set with the most recent
+timestamp (remember to use a reliable clock, and be careful about time zone
+differences).</li>
+
+  <li> <strong>One set of data is clearly better than the other</strong>. In other
+cases, it will always be clear which data can be defined as &quot;best&quot;. For
+example, if the data represents the player's best time in a racing game, then it's
+clear that, in case of conflicts, you should keep the best (smallest) time.</li>
+
+  <li> <strong>Merge by union</strong>. It may be possible to resolve the conflict
+by computing a union of the two conflicting sets. For example, if your data
+represents the set of levels that player has unlocked, then the resolved data is
+simply the union of the two conflicting sets. This way, players won't lose any
+levels they have unlocked. The
+<a href="https://github.com/playgameservices/android-samples/tree/master/CollectAllTheStars">
+CollectAllTheStars</a> sample game uses a variant of this strategy.</li>
+</ul>
+
+<h2 id="complicated">Design a Strategy for More Complex Cases</h2>
+
+<p>A more complicated case happens when your game allows the player to collect
+fungible items or units, such as gold coins or experience points. Let's
+consider a hypothetical game, called Coin Run, an infinite runner where the goal
+is to collect coins and become very, very rich. Each coin collected gets added to
+the player's piggy bank.</p>
+
+<p>The following sections describe three strategies for resolving sync conflicts
+between multiple devices: two that sound good but ultimately fail to successfully
+resolve all scenarios, and one final solution that can manage conflicts between
+any number of devices.</p>
+
+<h3 id="attempt-1">First Attempt: Store Only the Total</h3>
+
+<p>At first thought, it might seem that the cloud save data should simply be the
+number of coins in the bank. But if that data is all that's available, conflict
+resolution will be severely limited. The best you could do would be to pick the largest of
+the two numbers in case of a conflict.</p>
+
+<p>Consider the scenario illustrated in Table 1. Suppose the player initially
+has 20 coins, and then collects 10 coins on device A and 15 coins on device B.
+Then device B saves the state to the cloud. When device A attempts to save, a
+conflict is detected. The "store only the total" conflict resolution algorithm would resolve
+the conflict by writing 35 (the largest of the two numbers).</p>
+
+<p class="table-caption"><strong>Table 1.</strong> Storing only the total number
+of coins (failed strategy).</p>
+
+<table border="1">
+  <tr>
+    <th>Event</th>
+    <th>Data on Device A</th>
+    <th>Data on Device B</th>
+    <th>Data on Cloud</th>
+    <th>Actual Total</th>
+  </tr>
+  <tr>
+    <td>Starting conditions</td>
+    <td>20</td>
+    <td>20</td>
+    <td>20</td>
+    <td>20</td>
+  </tr>
+  <tr>
+    <td>Player collects 10 coins on device A</td>
+    <td class="new-value">30</td>
+    <td>20</td>
+    <td>20</td>
+    <td>30</td>
+  </tr>
+  <tr>
+    <td>Player collects 15 coins on device B</td>
+    <td>30</td>
+    <td class="new-value">35</td>
+    <td>20</td>
+    <td>45</td>
+  </tr>
+  <tr>
+    <td>Device B saves state to cloud</td>
+    <td>30</td>
+    <td>35</td>
+    <td class="new-value">35</td>
+    <td>45</td>
+  </tr>
+  <tr>
+    <td>Device A tries to save state to cloud.<br />
+    <span class="conflict">Conflict detected.</span></td>
+    <td class="conflict">30</td>
+    <td>35</td>
+    <td class="conflict">35</td>
+    <td>45</td>
+  </tr>
+  <tr>
+    <td>Device A resolves conflict by picking largest of the two numbers.</td>
+    <td class="new-value">35</td>
+    <td>35</td>
+    <td class="new-value">35</td>
+    <td>45</td>
+  </tr>
+</table>
+
+<p>This strategy would fail&mdash;the player's bank has gone from 20
+to 35, when the user actually collected a total of 25 coins (10 on device A and 15 on
+device B). So 10 coins were lost. Storing only the total number of coins in the
+cloud save is not enough to implement a robust conflict resolution algorithm.</p>
+
+<h3 id="attempt-2">Second Attempt: Store the Total and the Delta</h3>
+
+<p>A different approach is to include an additional field in
+the save data: the number of coins added (the delta) since the last commit. In
+this approach the save data can be represented by a tuple <em>(T,d)</em> where <em>T</em> is
+the total number of coins and <em>d</em> is the number of coins that you just
+added.</p>
+
+<p>With this structure, your conflict resolution algorithm has room to be more
+robust, as illustrated below. But this approach still doesn't give your app
+a reliable picture of the player's overall state.</p>
+
+<p>Here is the conflict resolution algorithm for including the delta:</p>
+
+<ul>
+  <li><strong>Local data:</strong> (T, d)</li>
+  <li><strong>Cloud data:</strong> (T', d')</li>
+  <li><strong>Resolved data:</strong> (T' + d, d)</li>
+</ul>
+
+<p>For example, when you get a conflict between the local state <em>(T,d)</em>
+and the cloud state <em>(T',d')</em>, you can resolve it as <em>(T'+d, d)</em>.
+What this means is that you are taking the delta from your local data and
+incorporating it into the cloud data, hoping that this will correctly account for
+any gold coins that were collected on the other device.</p>
+
+<p>This approach might sound promising, but it breaks down in a dynamic mobile
+environment:</p>
+<ul>
+<li>Users might save state when the device is offline. These changes will be
+queued up for submission when the device comes back online.</li>
+
+<li>The way that sync works is that
+the most recent change overwrites any previous changes. In other words, the
+second write is the only one that gets sent to the cloud (this happens
+when the device eventually comes online), and the delta in the first
+write is ignored.</li>
+</ul>
+
+<p>To illustrate, consider the scenario illustrated by Table 2. After the
+series of operations shown in the table, the cloud state
+will be (130, +5). This means the resolved state would be (140, +10). This is
+incorrect because in total, the user has collected 110 coins on device A and
+120 coins on device B. The total should be 250 coins.</p>
+
+<p class="table-caption"><strong>Table 2.</strong>  Failure case for total+delta
+strategy.</p>
+
+<table border="1">
+  <tr>
+    <th>Event</th>
+    <th>Data on Device A</th>
+    <th>Data on Device B</th>
+    <th>Data on Cloud</th>
+    <th>Actual Total</th>
+  </tr>
+  <tr>
+    <td>Starting conditions</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>20</td>
+  </tr>
+  <tr>
+    <td>Player collects 100 coins on device A</td>
+    <td class="test2">(120, +100)</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>120</td>
+  </tr>
+  <tr>
+    <td>Player collects 10 more coins on device A</td>
+    <td class="new-value" style="white-space:nowrap">(130, +10)</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>130</td>
+  </tr>
+  <tr>
+    <td>Player collects 115 coins on device B</td>
+    <td>(130, +10)</td>
+    <td class="new-value" style="white-space:nowrap">(125, +115)</td>
+    <td>(20, x)</td>
+    <td>245</td>
+  </tr>
+  <tr>
+    <td>Player collects 5 more coins on device B</td>
+    <td>(130, +10)</td>
+    <td class="new-value">
+(130, +5)</td>
+    <td>
+(20, x)</td>
+    <td>250</td>
+  </tr>
+  <tr>
+    <td>Device B uploads its data to the cloud
+      </td>
+    <td>(130, +10)</td>
+    <td>(130, +5)</td>
+    <td class="new-value">
+(130, +5)</td>
+    <td>250</td>
+  </tr>
+  <tr>
+    <td>Device A tries to upload its data to the cloud.
+    <br />
+    <span class="conflict">Conflict detected.</span></td>
+    <td class="conflict">(130, +10)</td>
+    <td>(130, +5)</td>
+    <td class="conflict">(130, +5)</td>
+    <td>250</td>
+  </tr>
+  <tr>
+    <td>Device A resolves the conflict by applying the local delta to the cloud total.
+      </td>
+    <td class="new-value" style="white-space:nowrap">(140, +10)</td>
+    <td>(130, +5)</td>
+    <td class="new-value" style="white-space:nowrap">(140, +10)</td>
+    <td>250</td>
+  </tr>
+</table>
+<p><em>(*): x represents data that is irrelevant to our scenario.</em></p>
+
+<p>You might try to fix the problem by not resetting the delta after each save,
+so that the second save on each device accounts for all the coins collected thus far.
+With that change the second save made by device A would be<em> (130, +110)</em> instead of
+<em>(130, +10)</em>. However, you would then run into the problem illustrated in Table 3.</p>
+
+<p class="table-caption"><strong>Table 3.</strong>  Failure case for the modified
+algorithm.</p>
+<table border="1">
+  <tr>
+    <th>Event</th>
+    <th>Data on Device A</th>
+    <th>Data on Device B</th>
+    <th>Data on Cloud</th>
+    <th>Actual Total</th>
+  </tr>
+  <tr>
+    <td>Starting conditions</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>20</td>
+  </tr>
+  <tr>
+    <td>Player collects 100 coins on device A
+      </td>
+    <td class="new-value">(120, +100)</td>
+    <td>(20, x)</td>
+    <td>(20, x)</td>
+    <td>120</td>
+  </tr>
+  <tr>
+    <td>Device A saves state to cloud</td>
+    <td>(120, +100)</td>
+    <td>(20, x)</td>
+    <td class="new-value">(120, +100)</td>
+    <td>120</td>
+  </tr>
+  <tr>
+    <td>Player collects 10 more coins on device A
+      </td>
+    <td class="new-value">(130, +110)</td>
+    <td>
+(20, x)</td>
+    <td>(120, +100)</td>
+    <td>130</td>
+  </tr>
+  <tr>
+    <td>Player collects 1 coin on device B
+
+      </td>
+    <td>(130, +110)</td>
+    <td class="new-value">(21, +1)</td>
+    <td>(120, +100)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device B attempts to save state to cloud.
+    <br />
+    Conflict detected.
+      </td>
+    <td>(130, +110)</td>
+    <td class="conflict">(21, +1)</td>
+    <td class="conflict">
+(120, +100)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device B solves conflict by applying local delta to cloud total.
+
+      </td>
+    <td>(130, +110)</td>
+    <td>(121, +1)</td>
+    <td>(121, +1)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device A tries to upload its data to the cloud.
+    <br />
+    <span class="conflict">Conflict detected. </span></td>
+    <td class="conflict">(130, +110)</td>
+    <td>(121, +1)</td>
+    <td class="conflict">(121, +1)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device A resolves the conflict by applying the local delta to the cloud total.
+
+      </td>
+    <td class="new-value" style="white-space:nowrap">(231, +110)</td>
+    <td>(121, +1)</td>
+    <td class="new-value" style="white-space:nowrap">(231, +110)</td>
+    <td>131</td>
+  </tr>
+</table>
+<p><em>(*): x represents data that is irrelevant to our scenario.</em></p>
+
+<p>Now you have the opposite problem: you are giving the player too many coins.
+The player has gained 211 coins, when in fact she has collected only 111 coins.</p>
+
+<h3 id="solution">Solution: Store the Sub-totals per Device</h3>
+
+<p>Analyzing the previous attempts, it seems that what those strategies
+fundamentally miss is the ability to know which coins have already been counted
+and which coins have not been counted yet, especially in the presence of multiple
+consecutive commits coming from different devices.</p>
+
+<p>The solution to the problem is to change the structure of your cloud save to
+be a dictionary that maps strings to integers. Each key-value pair in this
+dictionary represents a &quot;drawer&quot; that contains coins, and the total
+number of coins in the save is the sum of the values of all entries.
+The fundamental principle of this design is that each device has its own
+drawer, and only the device itself can put coins into that drawer.</p>
+
+<p>The structure of the dictionary is <em>(A:a, B:b, C:c, ...)</em>, where
+<em>a</em> is the total number of coins in the drawer A, <em>b</em> is
+the total number of coins in drawer B, and so on.</p>
+
+<p>The new conflict resolution algorithm for the "drawer" solution is as follows:</p>
+
+  <ul>
+    <li><strong>Local data:</strong> (A:a, B:b, C:c, ...)</li>
+    <li><strong>Cloud data:</strong> (A:a', B:b', C:c', ...)</li>
+    <li><strong>Resolved data:</strong> (A:<em>max</em>(a,a'), B:<em>max</em>(b,b'),
+        C:<em>max</em>(c,c'), ...)</li>
+  </ul>
+
+<p>For example, if the local data is <em>(A:20, B:4, C:7)</em> and the cloud data
+is <em>(B:10, C:2, D:14)</em>, then the resolved data will be
+<em>(A:20, B:10, C:7, D:14)</em>. Note that how you apply  conflict resolution
+logic to this dictionary data may vary depending on your app. For example, for
+some apps you might want to take the lower value.</p>
+
+<p>To test this new algorithm, apply it to any of the test scenarios
+mentioned above. You will see that it arrives at the correct result.</p>
+
+Table 4 illustrates this, based on the scenario from Table 3. Note the following:</p>
+
+<ul>
+  <li>In the initial state, the player has 20 coins. This is accurately reflected
+  on each device and the cloud. This value is represented as a dictionary (X:20),
+  where the value of X isn't significant&mdash;we don't care where this initial data came from.</li>
+  <li>When the player collects 100 coins on device A, this change
+  is packaged as a dictionary and saved to the cloud. The dictionary's value is 100 because
+  that is the number of coins that the player collected on device A. There is no
+  calculation being performed on the data at this point&mdash;device A is simply
+  reporting the number of coins the player collected on it.</li>
+  <li>Each new
+  submission of coins is packaged as a dictionary associated with the device
+  that saved it to the cloud. When the player collects 10 more coins on device A,
+  for example, the device A dictionary value is updated to be 110.</li>
+
+  <li>The net result is that the app knows the total number of coins
+  the player has collected on each device. Thus it can easily calculate the total.</li>
+</ul>
+
+<p class="table-caption"><strong>Table 4.</strong> Successful application of the
+key-value pair strategy.</p>
+
+<table border="1">
+  <tr>
+    <th>Event</th>
+    <th>Data on Device A</th>
+    <th>Data on Device B</th>
+    <th>Data on Cloud</th>
+    <th>Actual Total</th>
+  </tr>
+  <tr>
+    <td>Starting conditions</td>
+    <td>(X:20, x)</td>
+    <td>(X:20, x)</td>
+    <td>(X:20, x)</td>
+    <td>20</td>
+  </tr>
+  <tr>
+    <td>Player collects 100 coins on device A
+
+      </td>
+    <td class="new-value">(X:20, A:100)</td>
+    <td>(X:20)</td>
+    <td>(X:20)</td>
+    <td>120</td>
+  </tr>
+  <tr>
+    <td>Device A saves state to cloud
+
+      </td>
+    <td>(X:20, A:100)</td>
+    <td>(X:20)</td>
+    <td class="new-value">(X:20, A:100)</td>
+    <td>120</td>
+  </tr>
+  <tr>
+    <td>Player collects 10 more coins on device A
+            </td>
+    <td class="new-value">(X:20, A:110)</td>
+    <td>(X:20)</td>
+    <td>(X:20, A:100)</td>
+    <td>130</td>
+  </tr>
+  <tr>
+    <td>Player collects 1 coin on device B</td>
+    <td>(X:20, A:110)</td>
+    <td class="new-value">
+(X:20, B:1)</td>
+    <td>
+(X:20, A:100)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device B attempts to save state to cloud.
+    <br />
+    <span class="conflict">Conflict detected. </span></td>
+    <td>(X:20, A:110)</td>
+    <td class="conflict">(X:20, B:1)</td>
+    <td class="conflict">
+(X:20, A:100)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device B solves conflict
+
+      </td>
+    <td>(X:20, A:110)</td>
+    <td class="new-value">(X:20, A:100, B:1)</td>
+    <td class="new-value">(X:20, A:100, B:1)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device A tries to upload its data to the cloud. <br />
+      <span class="conflict">Conflict detected.</span></td>
+    <td class="conflict">(X:20, A:110)</td>
+    <td>(X:20, A:100, B:1)</td>
+    <td class="conflict">
+(X:20, A:100, B:1)</td>
+    <td>131</td>
+  </tr>
+  <tr>
+    <td>Device A resolves the conflict
+
+      </td>
+    <td class="new-value" style="white-space:nowrap">(X:20, A:110, B:1)</td>
+    <td style="white-space:nowrap">(X:20, A:100, B:1)</td>
+    <td class="new-value" style="white-space:nowrap">(X:20, A:110, B:1)
+      <br />
+    <em>total 131</em></td>
+    <td>131</td>
+  </tr>
+</table>
+
+
+<h2 id="cleanup">Clean Up Your Data</h2>
+<p>There is a limit to the size of cloud save data, so in following the strategy
+outlined in this article, take care not to create arbitrarily large dictionaries. At first
+glance it may seem that the dictionary will have only one entry per device, and even
+the very enthusiastic user is unlikely to have thousands of them. However,
+obtaining a device ID is difficult and considered a bad practice, so instead you should
+use an installation ID, which is easier to obtain and more reliable. This means
+that the dictionary might have one entry for each time the user installed the
+application on each device. Assuming each key-value pair takes 32 bytes, and
+since an individual cloud save buffer can be
+up to 128K in size, you are safe if you have up to 4,096 entries.</p>
+
+<p>In real-life situations, your data will probably be more complex than a number
+of coins. In this case, the number of entries in this dictionary may be much more
+limited. Depending on your implementation, it might make sense to store the
+timestamp for when each entry in the dictionary was modified. When you detect that a
+given entry has not been modified in the last several weeks or months, it is
+probably safe to transfer the coins into another entry and delete the old entry.</p>
\ No newline at end of file
index fa395e4..6303372 100644 (file)
@@ -1,12 +1,7 @@
 page.title=Making the Most of Google Cloud Messaging
-parent.title=Syncing to the Cloud
-parent.link=index.html
 
 trainingnavtop=true
 
-previous.title=Using the Backup API
-previous.link=backupapi.html
-
 @jd:body
 
 <div id="tb-wrapper">
index 72ad018..82fbd16 100644 (file)
@@ -3,7 +3,14 @@ page.trainingcourse=true
 page.metaDescription=Android Training provides a collection of classes that aim to help you build great apps for Android. Each class explains the steps required to solve a problem or implement a feature using code snippets and sample code for you to use in your apps.
 
 @jd:body
-
+<div id="butterbar-wrapper" >
+  <div id="butterbar" >
+    <div id="butterbar-message">
+<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/1EHLPGqhbxj2HungHRRN4_0K9TGpc-Izy-u46vBDgS8Q/viewform">
+      Take the Android Developer Survey</a>
+    </div>
+  </div>
+</div>
 
 <p>Welcome to Training for Android developers. Here you'll find sets of lessons within classes
 that describe how to accomplish a specific task with code samples you can re-use in your app.
index 79804db..47ba5f8 100644 (file)
@@ -171,11 +171,9 @@ public class MainActivity extends FragmentActivity {
             return true;
         // Google Play services was not available for some reason
         } else {
-            // Get the error code
-            int errorCode = connectionResult.getErrorCode();
             // Get the error dialog from Google Play services
             Dialog errorDialog = GooglePlayServicesUtil.getErrorDialog(
-                    errorCode,
+                    resultCode,
                     this,
                     CONNECTION_FAILURE_RESOLUTION_REQUEST);
 
@@ -649,7 +647,7 @@ public class ActivityRecognitionIntentService extends IntentService {
 public class MainActivity extends FragmentActivity implements
         ConnectionCallbacks, OnConnectionFailedListener {
     ...
-    public enum REQUEST_TYPE {START, STOP}
+    public enum REQUEST_TYPE {START, STOP}
     private REQUEST_TYPE mRequestType;
     ...
 }
@@ -664,7 +662,7 @@ public class MainActivity extends FragmentActivity implements
     ...
     public void startUpdates() {
         // Set the request type to START
-        mRequestType = START;
+        mRequestType = REQUEST_TYPE.START;
         /*
          * Test for Google Play services after setting the request type.
          * If Google Play services isn't present, the proper request type
@@ -686,9 +684,16 @@ public class MainActivity extends FragmentActivity implements
                  */
                 mActivityRecognitionClient.requestActivityUpdates(
                         DETECTION_INTERVAL_MILLISECONDS,
-                        mActivityRecognitionPendingIntent());
+                        mActivityRecognitionPendingIntent);
+                break;
+                ...
+                /*
+                 * An enum was added to the definition of REQUEST_TYPE,
+                 * but it doesn't match a known case. Throw an exception.
+                 */
+                default :
+                throw new Exception("Unknown request type in onConnected().");
                 break;
-            ...
         }
         ...
     }
@@ -712,7 +717,7 @@ public class MainActivity extends FragmentActivity implements
      */
     public void stopUpdates() {
         // Set the request type to STOP
-        mRequestType = STOP;
+        mRequestType = REQUEST_TYPE.STOP;
         /*
          * Test for Google Play services after setting the request type.
          * If Google Play services isn't present, the request can be
@@ -760,7 +765,7 @@ public class MainActivity extends FragmentActivity implements
             mActivityRecognitionClient.removeActivityUpdates(
                     mActivityRecognitionPendingIntent);
             break;
-
+            ...
         }
         ...
     }
diff --git a/docs/html/training/sync-adapters/creating-authenticator.jd b/docs/html/training/sync-adapters/creating-authenticator.jd
new file mode 100644 (file)
index 0000000..dfa9027
--- /dev/null
@@ -0,0 +1,290 @@
+page.title=Creating a Stub Authenticator
+
+trainingnavtop=true
+@jd:body
+
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+    <li>
+        <a href="#CreateAuthenticator">Add a Stub Authenticator Component</a>
+    </li>
+    <li>
+        <a href="#CreateAuthenticatorService">Bind the Authenticator to the Framework</a>
+    </li>
+    <li>
+        <a href="#CreateAuthenticatorFile">Add the Authenticator Metadata File</a>
+    </li>
+    <li>
+        <a href="#DeclareAuthenticator">Declare the Authenticator in the Manifest</a>
+    </li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+    <li>
+        <a href="{@docRoot}guide/components/bound-services.html">Bound Services</a>
+    </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/BasicSyncAdapter.zip" class="button">Download the sample</a>
+ <p class="filename">BasicSyncAdapter.zip</p>
+</div>
+
+</div>
+</div>
+<p>
+    The sync adapter framework assumes that your sync adapter transfers data between device storage
+    associated with an account and server storage that requires login access. For this reason, the
+    framework expects you to provide a component called an authenticator as part of your sync
+    adapter. This component plugs into the Android accounts and authentication framework and
+    provides a standard interface for handling user credentials such as login information.
+</p>
+<p>
+    Even if your app doesn't use accounts, you still need to provide an authenticator component.
+    If you don't use accounts or server login, the information handled by the authenticator is
+    ignored, so you can provide an authenticator component that contains stub method
+    implementations. You also need to provide a bound {@link android.app.Service} that
+    allows the sync adapter framework to call the authenticator's methods.
+</p>
+<p>
+    This lesson shows you how to define all the parts of a stub authenticator that you need to
+    satisfy the requirements of the sync adapter framework. If you need to provide a real
+    authenticator that handles user accounts, read the reference documentation for
+    {@link android.accounts.AbstractAccountAuthenticator}.
+</p>
+
+<h2 id="CreateAuthenticator">Add a Stub Authenticator Component</h2>
+<p>
+    To add a stub authenticator component to your app, create a class that extends
+    {@link android.accounts.AbstractAccountAuthenticator}, and then stub out the required methods,
+    either by returning {@code null} or by throwing an exception.
+</p>
+<p>
+    The following snippet shows an example of a stub authenticator class:
+</p>
+<pre>
+/*
+ * Implement AbstractAccountAuthenticator and stub out all
+ * of its methods
+ */
+public class Authenticator extends AbstractAccountAuthenticator {
+    // Simple constructor
+    public Authenticator(Context context) {
+        super(context);
+    }
+    // Editing properties is not supported
+    &#64;Override
+    public Bundle editProperties(
+            AccountAuthenticatorResponse r, String s) {
+        throw new UnsupportedOperationException();
+    }
+    // Don't add additional accounts
+    &#64;Override
+    public Bundle addAccount(
+            AccountAuthenticatorResponse r,
+            String s,
+            String s2,
+            String[] strings,
+            Bundle bundle) throws NetworkErrorException {
+        return null;
+    }
+    // Ignore attempts to confirm credentials
+    &#64;Override
+    public Bundle confirmCredentials(
+            AccountAuthenticatorResponse r,
+            Account account,
+            Bundle bundle) throws NetworkErrorException {
+        return null;
+    }
+    // Getting an authentication token is not supported
+    &#64;Override
+    public Bundle getAuthToken(
+            AccountAuthenticatorResponse r,
+            Account account,
+            String s,
+            Bundle bundle) throws NetworkErrorException {
+        throw new UnsupportedOperationException();
+    }
+    // Getting a label for the auth token is not supported
+    &#64;Override
+    public String getAuthTokenLabel(String s) {
+        throw new UnsupportedOperationException();
+    }
+    // Updating user credentials is not supported
+    &#64;Override
+    public Bundle updateCredentials(
+            AccountAuthenticatorResponse r,
+            Account account,
+            String s, Bundle bundle) throws NetworkErrorException {
+        throw new UnsupportedOperationException();
+    }
+    // Checking features for the account is not supported
+    &#64;Override
+    public Bundle hasFeatures(
+        AccountAuthenticatorResponse r,
+        Account account, String[] strings) throws NetworkErrorException {
+        throw new UnsupportedOperationException();
+    }
+}
+</pre>
+<h2 id="CreateAuthenticatorService">Bind the Authenticator to the Framework</h2>
+<p>
+    In order for the sync adapter framework to access your authenticator, you must create a bound
+    Service for it. This service provides an Android binder object that allows the framework
+    to call your authenticator and pass data between the authenticator and the framework.
+</p>
+<p>
+    Since the framework starts this {@link android.app.Service} the first time it needs to
+    access the authenticator, you can also use the service to instantiate the authenticator,
+    by calling the authenticator constructor in the
+    {@link android.app.Service#onCreate Service.onCreate()} method of the service.
+</p>
+<p>
+    The following snippet shows you how to define the bound {@link android.app.Service}:
+</p>
+<pre>
+/**
+ * A bound Service that instantiates the authenticator
+ * when started.
+ */
+public class AuthenticatorService extends Service {
+    ...
+    // Instance field that stores the authenticator object
+    private Authenticator mAuthenticator;
+    &#64;Override
+    public void onCreate() {
+        // Create a new authenticator object
+        mAuthenticator = new Authenticator(this);
+    }
+    /*
+     * When the system binds to this Service to make the RPC call
+     * return the authenticator's IBinder.
+     */
+    &#64;Override
+    public IBinder onBind(Intent intent) {
+        return mAuthenticator.getIBinder();
+    }
+}
+</pre>
+
+<h2 id="CreateAuthenticatorFile">Add the Authenticator Metadata File</h2>
+<p>
+    To plug your authenticator component into the sync adapter and account frameworks, you need to
+    provide these framework with metadata that describes the component. This metadata declares the
+    account type you've created for your sync adapter and declares user interface elements
+    that the system displays if you want to make your account type visible to the user. Declare this
+    metadata in a XML file stored in the {@code /res/xml/} directory in your app project.
+    You can give any name to the file, although it's usually called {@code authenticator.xml}.
+</p>
+<p>
+    This XML file contains a single element <code>&lt;account-authenticator&gt;</code> that
+    has the following attributes:
+</p>
+<dl>
+    <dt>
+        <code>android:accountType</code>
+    </dt>
+    <dd>
+        The sync adapter framework requires each sync adapter to have an account type, in the form
+        of a domain name. The framework uses the account type as part of the sync adapter's
+        internal identification. For servers that require login, the account type along with a
+        user account is sent to the server as part of the login credentials.
+    <p>
+        If your server doesn't require login, you still have to provide an account type. For the
+        value, use a domain name that you control. While the framework uses it to manage your
+        sync adapter, the value is not sent to your server.
+    </p>
+    </dd>
+    <dt>
+        <code>android:icon</code>
+    </dt>
+    <dd>
+        Pointer to a <a href="{@docRoot}guide/topics/resources/drawable-resource.html">Drawable</a>
+        resource containing an icon. If you make the sync adapter visible by specifying the
+        attribute <code>android:userVisible="true"</code> in <code>res/xml/syncadapter.xml</code>,
+        then you must provide this icon resource. It appears in the <b>Accounts</b> section of
+        the system's Settings app.
+    </dd>
+    <dt>
+        <code>android:smallIcon</code>
+    </dt>
+    <dd>
+        Pointer to a <a href="{@docRoot}guide/topics/resources/drawable-resource.html">Drawable</a>
+        resource containing a small version of the icon. This resource may be used instead of
+        <code>android:icon</code> in the <b>Accounts</b> section of the system's Settings app,
+        depending on the screen size.
+    </dd>
+    <dt>
+        <code>android:label</code>
+    </dt>
+    <dd>
+        Localizable string that identifies the account type to users. If you make the sync adapter
+        visible by specifying the attribute <code>android:userVisible="true"</code> in
+        <code>res/xml/syncadapter.xml</code>, then you should provide this string. It appears in the
+        <b>Accounts</b> section of the system's Settings app, next to the icon you define for the
+        authenticator.
+    </dd>
+</dl>
+<p>
+    The following snippet shows the XML file for the authenticator you created previously:
+</p>
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;account-authenticator
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:accountType="example.com"
+        android:icon="&#64;drawable/ic_launcher"
+        android:smallIcon="&#64;drawable/ic_launcher"
+        android:label="&#64;string/app_name"/&gt;
+</pre>
+
+<h2 id="DeclareAuthenticator">Declare the Authenticator in the Manifest</h2>
+<p>
+    In a previous step, you created a bound {@link android.app.Service} that links the authenticator
+    to the sync adapter framework. To identify this service to the system, declare it in your app
+    manifest by adding the following
+    <code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
+    element as a child element of
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>:
+</p>
+<pre>
+    &lt;service
+            android:name="com.example.android.syncadapter.AuthenticatorService"&gt;
+        &lt;intent-filter&gt;
+            &lt;action android:name="android.accounts.AccountAuthenticator"/&gt;
+        &lt;/intent-filter&gt;
+        &lt;meta-data
+            android:name="android.accounts.AccountAuthenticator"
+            android:resource="@xml/authenticator" /&gt;
+    &lt;/service&gt;
+</pre>
+<p>
+    The
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+    element sets up a filter that's triggered by the intent action
+    {@code android.accounts.AccountAuthenticator}, which sent by the system to run the
+    authenticator. When the filter is triggered, the system starts {@code AuthenticatorService},
+    the bound {@link android.app.Service} you have provided to wrap the authenticator.
+</p>
+<p>
+    The
+<code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
+    element declares the metadata for the authenticator. The
+<code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html#nm">android:name</a></code>
+    attribute links the meta-data to the authentication framework. The
+<code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html#rsrc">android:resource</a></code>
+    element specifies the name of the authenticator metadata file you created previously.
+</p>
+<p>
+    Besides an authenticator, a sync adapter also requires a content provider. If your app doesn't
+    use a content provider already, go to the next lesson to learn how to create a stub content
+    provider; otherwise, go to the lesson <a href="creating-sync-adapter.html"
+    >Creating a Sync Adapter</a>.
+</p>
diff --git a/docs/html/training/sync-adapters/creating-stub-provider.jd b/docs/html/training/sync-adapters/creating-stub-provider.jd
new file mode 100644 (file)
index 0000000..8f6eba0
--- /dev/null
@@ -0,0 +1,203 @@
+page.title=Creating a Stub Content Provider
+
+trainingnavtop=true
+@jd:body
+
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+    <li>
+        <a href="#CreateProvider">Add a Stub Content Provider</a>
+    </li>
+    <li>
+        <a href="#DeclareProvider">Declare the Provider in the Manifest</a>
+    </li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+    <li>
+        <a href="{@docRoot}guide/topics/providers/content-provider-basics.html"
+        >Content Provider Basics</a>
+    </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/BasicSyncAdapter.zip" class="button">Download the sample</a>
+ <p class="filename">BasicSyncAdapter.zip</p>
+</div>
+
+</div>
+</div>
+<p>
+    The sync adapter framework is designed to work with device data managed by the flexible and
+    highly secure content provider framework. For this reason, the sync adapter framework expects
+    that an app that uses the framework has already defined a content provider for its local data.
+    If the sync adapter framework tries to run your sync adapter, and your app doesn't have a
+    content provider, your sync adapter crashes.
+</p>
+<p>
+    If you're developing a new app that transfers data from a server to the device, you should
+    strongly consider storing the local data in a content provider. Besides their importance for
+    sync adapters, content providers offer a variety of security benefits and are specifically
+    designed to handle data storage on Android systems. To learn more about creating a content
+    provider, see <a href="{@docRoot}guide/topics/providers/content-provider-creating.html"
+    >Creating a Content Provider</a>.
+</p>
+<p>
+    However, if you're already storing local data in another form, you can still use a sync
+    adapter to handle data transfer. To satisfy the sync adapter framework requirement for a
+    content provider, add a stub content provider to your app. A stub provider implements the
+    content provider class, but all of its required methods return {@code null} or {@code 0}. If you
+    add a stub provider, you can then use a sync adapter to transfer data from any storage
+    mechanism you choose.
+</p>
+<p>
+    If you already have a content provider in your app, you don't need a stub content provider.
+    In that case, you can skip this lesson and proceed to the lesson
+    <a href="creating-sync-adapter.html">Creating a Sync Adapter</a>. If you don't yet have a
+    content provider, this lesson shows you how to add a stub content provider that allows you to
+    plug your sync adapter into the framework.
+</p>
+<h2 id="CreateProvider">Add a Stub Content Provider</h2>
+<p>
+    To create a stub content provider for your app, extend the class
+    {@link android.content.ContentProvider} and stub out its required methods. The following
+    snippet shows you how to create the stub provider:
+</p>
+<pre>
+/*
+ * Define an implementation of ContentProvider that stubs out
+ * all methods
+ */
+public class StubProvider extends ContentProvider {
+    /*
+     * Always return true, indicating that the
+     * provider loaded correctly.
+     */
+    &#64;Override
+    public boolean onCreate() {
+        return true;
+    }
+    /*
+     * Return an empty String for MIME type
+     */
+    &#64;Override
+    public String getType() {
+        return new String();
+    }
+    /*
+     * query() always returns no results
+     *
+     */
+    &#64;Override
+    public Cursor query(
+            Uri uri,
+            String[] projection,
+            String selection,
+            String[] selectionArgs,
+            String sortOrder) {
+        return null;
+    }
+    /*
+     * insert() always returns null (no URI)
+     */
+    &#64;Override
+    public Uri insert(Uri uri, ContentValues values) {
+        return null;
+    }
+    /*
+     * delete() always returns "no rows affected" (0)
+     */
+    &#64;Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        return 0;
+    }
+    /*
+     * update() always returns "no rows affected" (0)
+     */
+    public int update(
+            Uri uri,
+            ContentValues values,
+            String selection,
+            String[] selectionArgs) {
+        return 0;
+    }
+}
+</pre>
+<h2 id="DeclareProvider">Declare the Provider in the Manifest</h2>
+<p>
+    The sync adapter framework verifies that your app has a content provider by checking that your
+    app has declared a provider in its app manifest. To declare the stub provider in the
+    manifest, add a <code><a href="{@docRoot}guide/topics/manifest/provider-element.html"
+    >&lt;provider&gt;</a></code> element with  the following attributes:
+</p>
+<dl>
+    <dt>
+        <code>android:name="com.example.android.datasync.provider.StubProvider"</code>
+    </dt>
+    <dd>
+        Specifies the fully-qualified name of the class that implements the stub content provider.
+    </dd>
+    <dt>
+        <code>android:authorities="com.example.android.datasync.provider"</code>
+    </dt>
+    <dd>
+        A URI authority that identifies the stub content provider. Make this value your app's
+        package name with the string ".provider" appended to it. Even though you're declaring your
+        stub provider to the system, nothing tries to access the provider itself.
+   </dd>
+    <dt>
+        <code>android:exported="false"</code>
+    </dt>
+    <dd>
+        Determines whether other apps can access the content provider. For your stub content
+        provider, set the value to {@code false}, since there's no need to allow other apps to see
+        the provider. This value doesn't affect the interaction between the sync adapter framework
+        and the content provider.
+    </dd>
+    <dt>
+        <code>android:syncable="true"</code>
+    </dt>
+    <dd>
+        Sets a flag that indicates that the provider is syncable. If you set this flag to
+        {@code true}, you don't have to call {@link android.content.ContentResolver#setIsSyncable
+        setIsSyncable()} in your code. The flag allows the sync adapter framework to make data
+        transfers with the content provider, but transfers only occur if you do them explicitly.
+    </dd>
+</dl>
+<p>
+    The following snippet shows you how to add the
+    <code><a href="{@docRoot}guide/topics/manifest/provider-element.html"
+    >&lt;provider&gt;</a></code> element to the app manifest:
+</p>
+<pre>
+&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.network.sync.BasicSyncAdapter"
+    android:versionCode="1"
+    android:versionName="1.0" &gt;
+    &lt;application
+        android:allowBackup="true"
+        android:icon="&#64;drawable/ic_launcher"
+        android:label="&#64;string/app_name"
+        android:theme="&#64;style/AppTheme" &gt;
+    ...
+    &lt;provider
+        android:name="com.example.android.datasync.provider.StubProvider"
+        android:authorities="com.example.android.datasync.provider"
+        android:export="false"
+        android:syncable="true"/&gt;
+    ...
+    &lt;/application&gt;
+&lt;/manifest&gt;
+</pre>
+<p>
+    Now that you have created the dependencies required by the sync adapter framework, you can
+    create the component that encapsulates your data transfer code. This component is called a
+    sync adapter. The next lesson shows you how to add this component to your app.
+</p>
diff --git a/docs/html/training/sync-adapters/creating-sync-adapter.jd b/docs/html/training/sync-adapters/creating-sync-adapter.jd
new file mode 100644 (file)
index 0000000..7c59c8c
--- /dev/null
@@ -0,0 +1,658 @@
+page.title=Creating a Sync Adapter
+
+trainingnavtop=true
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+    <li>
+        <a href="#CreateSyncAdapter"
+        >Create the Sync Adapter Class</a>
+    </li>
+    <li>
+        <a href="#CreateSyncAdapterService">Bind the Sync Adapter to the Framework</a>
+    </li>
+    <li>
+        <a href="#CreateAccountTypeAccount"
+        >Add the Account Required by the Framework</a>
+    </li>
+    <li>
+        <a href="#CreateSyncAdapterMetadata">Add the Sync Adapter Metadata File</a>
+    </li>
+    <li>
+        <a href="#DeclareSyncAdapterManifest">Declare the Sync Adapter in the Manifest</a>
+    </li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+    <li>
+        <a href="{@docRoot}guide/components/bound-services.html">Bound Services</a>
+    </li>
+    <li>
+        <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>
+    </li>
+    <li>
+        <a href="{@docRoot}training/id-auth/custom_auth.html">Creating a Custom Account Type</a>
+    </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/BasicSyncAdapter.zip" class="button">Download the sample</a>
+ <p class="filename">BasicSyncAdapter.zip</p>
+</div>
+
+</div>
+</div>
+<p>
+    The sync adapter component in your app encapsulates the code for the tasks that transfer
+    data between the device and a server. Based on the scheduling and triggers you provide in
+    your app, the sync adapter framework runs the code in the sync adapter component. To add a
+    sync adapter component to your app, you need to add the following pieces:
+<dl>
+    <dt>
+        Sync adapter class.
+    </dt>
+    <dd>
+        A class that wraps your data transfer code in an interface compatible with the sync adapter
+        framework.
+    </dd>
+    <dt>
+        Bound {@link android.app.Service}.
+    </dt>
+    <dd>
+        A component that allows the sync adapter framework to run the code in your sync adapter
+        class.
+    </dd>
+    <dt>
+        Sync adapter XML metadata file.
+    </dt>
+    <dd>
+        A file containing information about your sync adapter. The framework reads this file to
+        find out how to load and schedule your data transfer.
+    </dd>
+    <dt>
+        Declarations in the app manifest.
+    </dt>
+    <dd>
+        XML that declares the bound service and points to sync adapter-specific metadata.
+    </dd>
+</dl>
+<p>
+    This lesson shows you how to define these elements.
+</p>
+<h2 id="CreateSyncAdapter">Create a Sync Adapter Class</h2>
+<p>
+    In this part of the lesson you learn how to create the sync adapter class that encapsulates the
+    data transfer code. Creating the class includes extending the sync adapter base class, defining
+    constructors for the class, and implementing the method where you define the data transfer
+    tasks.
+</p>
+<h3>Extend the base sync adapter class AbstractThreadedSyncAdapter</h3>
+<p>
+    To create the sync adapter component, start by extending
+    {@link android.content.AbstractThreadedSyncAdapter} and writing its constructors. Use the
+    constructors to run setup tasks each time your sync adapter component is created from
+    scratch, just as you use {@link android.app.Activity#onCreate Activity.onCreate()} to set up an
+    activity. For example, if your app uses a content provider to store data, use the constructors
+    to get a {@link android.content.ContentResolver} instance. Since a second form of the
+    constructor was added in Android platform version 3.0 to support the {@code parallelSyncs}
+    argument, you need to create two forms of the constructor to maintain compatibility.
+</p>
+<p class="note">
+    <strong>Note:</strong> The sync adapter framework is designed to work with sync adapter
+    components that are singleton instances. Instantiating the sync adapter component is covered
+    in more detail in the section
+    <a href="#CreateSyncAdapterService">Bind the Sync Adapter to the Framework</a>.
+</p>
+<p>
+    The following example shows you how to implement
+    {@link android.content.AbstractThreadedSyncAdapter}and its constructors:
+</p>
+<pre style="clear: right">
+/**
+ * Handle the transfer of data between a server and an
+ * app, using the Android sync adapter framework.
+ */
+public class SyncAdapter extends AbstractThreadedSyncAdapter {
+    ...
+    // Global variables
+    // Define a variable to contain a content resolver instance
+    ContentResolver mContentResolver;
+    /**
+     * Set up the sync adapter
+     */
+    public SyncAdapter(Context context, boolean autoInitialize) {
+        super(context, autoInitialize);
+        /*
+         * If your app uses a content resolver, get an instance of it
+         * from the incoming Context
+         */
+        mContentResolver = context.getContentResolver();
+    }
+    ...
+    /**
+     * Set up the sync adapter. This form of the
+     * constructor maintains compatibility with Android 3.0
+     * and later platform versions
+     */
+    public SyncAdapter(
+            Context context,
+            boolean autoInitialize,
+            boolean allowParallelSyncs) {
+        super(context, autoInitialize, allowParallelSyncs);
+        /*
+         * If your app uses a content resolver, get an instance of it
+         * from the incoming Context
+         */
+        mContentResolver = context.getContentResolver();
+        ...
+    }
+</pre>
+<h3>Add the data transfer code to onPerformSync()</h3>
+<p>
+    The sync adapter component does not automatically do data transfer. Instead, it
+    encapsulates your data transfer code, so that the sync adapter framework can run the
+    data transfer in the background, without involvement from your app. When the framework is ready
+    to sync your application's data, it invokes your implementation of the method
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()}.
+</p>
+<p>
+    To facilitate the transfer of data from your main app code to the sync adapter component,
+    the sync adapter framework calls
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()} with the
+    following arguments:
+</p>
+<dl>
+    <dt>
+        Account
+    </dt>
+    <dd>
+        An {@link android.accounts.Account} object associated with the event that triggered
+        the sync adapter. If your server doesn't use accounts, you don't need to use the
+        information in this object.
+    </dd>
+    <dt>
+        Extras
+    </dt>
+    <dd>
+        A {@link android.os.Bundle} containing flags sent by the event that triggered the sync
+        adapter.
+    </dd>
+    <dt>
+        Authority
+    </dt>
+    <dd>
+        The authority of a content provider in the system. Your app has to have access to
+        this provider. Usually, the authority corresponds to a content provider in your own app.
+    </dd>
+    <dt>
+        Content provider client
+    </dt>
+    <dd>
+        A {@link android.content.ContentProviderClient} for the content provider pointed to by the
+        authority argument. A {@link android.content.ContentProviderClient} is a lightweight public
+        interface to a content provider. It has the same basic functionality as a
+        {@link android.content.ContentResolver}. If you're using a content provider to store data
+        for your app, you can connect to the provider with this object. Otherwise, you can ignore
+        it.
+    </dd>
+    <dt>
+        Sync result
+    </dt>
+    <dd>
+        A {@link android.content.SyncResult} object that you use to send information to the sync
+        adapter framework.
+    </dd>
+</dl>
+<p>
+    The following snippet shows the overall structure of
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()}:
+</p>
+<pre>
+    /*
+     * Specify the code you want to run in the sync adapter. The entire
+     * sync adapter runs in a background thread, so you don't have to set
+     * up your own background processing.
+     */
+    &#64;Override
+    public void onPerformSync(
+            Account account,
+            Bundle extras,
+            String authority,
+            ContentProviderClient provider,
+            SyncResult syncResult) {
+    /*
+     * Put the data transfer code here.
+     */
+    ...
+    }
+</pre>
+<p>
+    While the actual implementation of
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()} is specific to
+    your app's data synchronization requirements and server connection protocols, there are a few
+    general tasks your implementation should perform:
+</p>
+<dl>
+    <dt>
+        Connecting to a server
+    </dt>
+    <dd>
+        Although you can assume that the network is available when your data transfer starts, the
+        sync adapter framework doesn't automatically connect to a server.
+    </dd>
+    <dt>
+        Downloading and uploading data
+    </dt>
+    <dd>
+        A sync adapter doesn't automate any data transfer tasks. If you want to download
+        data from a server and store it in a content provider, you have to provide the code that
+        requests the data, downloads it, and inserts it in the provider. Similarly, if you want to
+        send data to a server, you have to read it from a file, database, or provider, and send
+        the necessary upload request. You also have to handle network errors that occur while your
+        data transfer is running.
+    </dd>
+    <dt>
+        Handling data conflicts or determining how current the data is
+    </dt>
+    <dd>
+        A sync adapter doesn't automatically handle conflicts between data on the server and data
+        on the device. Also, it doesn't automatically detect if the data on the server is newer than
+        the data on the device, or vice versa. Instead, you have to provide your own algorithms for
+        handling this situation.
+    </dd>
+    <dt>
+        Clean up.
+    </dt>
+    <dd>
+        Always close connections to a server and clean up temp files and caches at the end of
+        your data transfer.
+    </dd>
+</dl>
+<p class="note">
+    <strong>Note:</strong> The sync adapter framework runs
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()} on a
+    background thread, so you don't have to set up your own background processing.
+</p>
+<p>
+    In addition to your sync-related tasks, you should try to combine your regular
+    network-related tasks and add them to
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()}.
+    By concentrating all of your network tasks in this method, you conserve the battery power that's
+    needed to start and stop the network interfaces. To learn more about making network access more
+    efficient, see the training class <a href="{@docRoot}training/efficient-downloads/index.html"
+    >Transferring Data Without Draining the Battery</a>, which describes several network access
+    tasks you can include in your data transfer code.
+</p>
+<h2 id="CreateSyncAdapterService">Bind the Sync Adapter to the Framework</h2>
+<p>
+    You now have your data transfer code encapsulated in a sync adapter component, but you have
+    to provide the framework with access to your code. To do this, you need to create a bound
+    {@link android.app.Service} that passes a special Android binder object from the sync adapter
+    component to the framework. With this binder object, the framework can invoke the
+    {@link android.content.AbstractThreadedSyncAdapter#onPerformSync onPerformSync()} method and
+    pass data to it.
+</p>
+<p>
+    Instantiate your sync adapter component as a singleton in the
+    {@link android.app.Service#onCreate onCreate()} method of the service. By instantiating
+    the component in {@link android.app.Service#onCreate onCreate()}, you defer
+    creating it until the service starts, which happens when the framework first tries to run your
+    data transfer. You need to instantiate the component in a thread-safe manner, in case the sync
+    adapter framework queues up multiple executions of your sync adapter in response to triggers or
+    scheduling.
+</p>
+<p>
+    For example, the following snippet shows you how to create a class that implements the
+    bound {@link android.app.Service}, instantiates your sync adapter component, and gets the
+    Android binder object:
+</p>
+<pre>
+package com.example.android.syncadapter;
+/**
+ * Define a Service that returns an {@link android.os.IBinder} for the
+ * sync adapter class, allowing the sync adapter framework to call
+ * onPerformSync().
+ */
+public class SyncService extends Service {
+    // Storage for an instance of the sync adapter
+    private static SyncAdapter sSyncAdapter = null;
+    // Object to use as a thread-safe lock
+    private static final Object sSyncAdapterLock = new Object();
+    /*
+     * Instantiate the sync adapter object.
+     */
+    &#64;Override
+    public void onCreate() {
+        /*
+         * Create the sync adapter as a singleton.
+         * Set the sync adapter as syncable
+         * Disallow parallel syncs
+         */
+        synchronized (sSyncAdapterLock) {
+            if (sSyncAdapter == null) {
+                sSyncAdapter = new SyncAdapter(getApplicationContext(), true);
+            }
+        }
+    }
+    /**
+     * Return an object that allows the system to invoke
+     * the sync adapter.
+     *
+     */
+    &#64;Override
+    public IBinder onBind(Intent intent) {
+        /*
+         * Get the object that allows external processes
+         * to call onPerformSync(). The object is created
+         * in the base class code when the SyncAdapter
+         * constructors call super()
+         */
+        return sSyncAdapter.getSyncAdapterBinder();
+    }
+}
+</pre>
+<p class="note">
+    <strong>Note:</strong> To see a more detailed example of a bound service for a sync adapter,
+    see the sample app.
+</p>
+<h2 id="CreateAccountTypeAccount">Add the Account Required by the Framework</h2>
+<p>
+    The sync adapter framework requires each sync adapter to have an account type. You declared
+    the account type value in the section
+    <a href="creating-authenticator.html#CreateAuthenticatorFile"
+    >Add the Authenticator Metadata File</a>. Now you have to set up this account type in the
+    Android system. To set up the account type, add a dummy account that uses the account type
+    by calling {@link android.accounts.AccountManager#addAccountExplicitly addAccountExplicitly()}.
+</p>
+<p>
+    The best place to call the method is in the
+    {@link android.support.v4.app.FragmentActivity#onCreate onCreate()} method of your app's
+    opening activity. The following code snippet shows you how to do this:
+</p>
+<pre>
+public class MainActivity extends FragmentActivity {
+    ...
+    ...
+    // Constants
+    // The authority for the sync adapter's content provider
+    public static final String AUTHORITY = "com.example.android.datasync.provider"
+    // An account type, in the form of a domain name
+    public static final String ACCOUNT_TYPE = "example.com";
+    // The account name
+    public static final String ACCOUNT = "dummyaccount";
+    // Instance fields
+    Account mAccount;
+    ...
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ...
+        // Create the dummy account
+        mAccount = CreateSyncAccount(this);
+        ...
+    }
+    ...
+    /**
+     * Create a new dummy account for the sync adapter
+     *
+     * @param context The application context
+     */
+    public static Account CreateSyncAccount(Context context) {
+        // Create the account type and default account
+        Account newAccount = new Account(
+                ACCOUNT, ACCOUNT_TYPE);
+        // Get an instance of the Android account manager
+        AccountManager accountManager =
+                (AccountManager) context.getSystemService(
+                        ACCOUNT_SERVICE);
+        /*
+         * Add the account and account type, no password or user data
+         * If successful, return the Account object, otherwise report an error.
+         */
+        if (accountManager.addAccountExplicitly(newAccount, null, null))) {
+            /*
+             * If you don't set android:syncable="true" in
+             * in your &lt;provider&gt; element in the manifest,
+             * then call context.setIsSyncable(account, AUTHORITY, 1)
+             * here.
+             */
+        } else {
+            /*
+             * The account exists or some other error occurred. Log this, report it,
+             * or handle it internally.
+             */
+        }
+    }
+    ...
+}
+</pre>
+<h2 id="CreateSyncAdapterMetadata">Add the Sync Adapter Metadata File</h2>
+<p>
+    To plug your sync adapter component into the framework, you need to provide the framework
+    with metadata that describes the component and provides additional flags. The metadata specifies
+    the account type you've created for your sync adapter, declares a content provider authority
+    associated with your app, controls a part of the system user interface related to sync adapters,
+    and declares other sync-related flags. Declare this metadata in a special XML file stored in
+    the {@code /res/xml/} directory in your app project. You can give any name to the file,
+    although it's usually called {@code syncadapter.xml}.
+</p>
+<p>
+    This XML file contains a single XML element <code>&lt;sync-adapter&gt;</code> that has the
+    following attributes:
+</p>
+<dl>
+    <dt><code>android:contentAuthority</code></dt>
+    <dd>
+        The URI authority for your content provider. If you created a stub content provider for
+        your app in the previous lesson <a href="creating-stub-provider.html"
+        >Creating a Stub Content Provider</a>, use the value you specified for the
+        attribute
+<code><a href="{@docRoot}guide/topics/manifest/provider-element.html#auth">android:authorities</a></code>
+        in the <code><a href="{@docRoot}guide/topics/manifest/provider-element.html"
+        >&lt;provider&gt;</a></code> element you added to your app manifest. This attribute is
+        described in more detail in the section
+        <a href="creating-stub-provider.html#DeclareProvider"
+        >Declare the Provider in the Manifest</a>.
+        <br/>
+        If you're transferring data from a content provider to a server with your sync adapter, this
+        value should be the same as the content URI authority you're using for that data. This value
+        is also one of the authorities you specify in the
+<code><a href="{@docRoot}guide/topics/manifest/provider-element.html#auth">android:authorities</a></code>
+        attribute of the <code><a href="{@docRoot}guide/topics/manifest/provider-element.html"
+        >&lt;provider&gt;</a></code> element that declares your provider in your app manifest.
+    </dd>
+    <dt><code>android:accountType</code></dt>
+    <dd>
+        The account type required by the sync adapter framework. The value must be the same
+        as the account type value you provided when you created the authenticator metadata file, as
+        described in the section <a href="creating-authenticator.html#CreateAuthenticatorFile"
+        >Add the Authenticator Metadata File</a>. It's also the value you specified for the
+        constant {@code ACCOUNT_TYPE} in the code snippet in the section
+        <a href="#CreateAccountTypeAccount">Add the Account Required by the Framework</a>.
+    </dd>
+    <dt>Settings attributes</dt>
+    <dd>
+        <dl>
+            <dt>
+                {@code android:userVisible}
+            </dt>
+            <dd>
+                Sets the visibility of the sync adapter's account type. By default, the
+                account icon and label associated with the account type are visible in the
+                <b>Accounts</b> section of the system's Settings app, so you should make your sync
+                adapter invisible unless you have an account type or domain that's easily associated
+                with your app. If you make your account type invisible, you can still allow users to
+                control your sync adapter with a user interface in one of your app's activities.
+            </dd>
+            <dt>
+                {@code android:supportsUploading}
+            </dt>
+            <dd>
+                Allows you to upload data to the cloud. Set this to {@code false} if your app only
+                downloads data.
+            </dd>
+            <dt>
+                {@code android:allowParallelSyncs}
+            </dt>
+            <dd>
+                Allows multiple instances of your sync adapter component to run at the same time.
+                Use this if your app supports multiple user accounts and you want to allow multiple
+                users to transfer data in parallel. This flag has no effect if you never run
+                multiple data transfers.
+            </dd>
+            <dt>
+                {@code android:isAlwaysSyncable}
+            </dt>
+            <dd>
+                Indicates to the sync adapter framework that it can run your sync adapter at any
+                time you've specified. If you want to programmatically control when your sync
+                adapter can run, set this flag to {@code false}, and then call
+                {@link android.content.ContentResolver#requestSync requestSync()} to run the
+                sync adapter. To learn more about running a sync adapter, see the lesson
+                <a href="running-sync-adapter.html">Running a Sync Adapter</a>
+            </dd>
+        </dl>
+    </dd>
+</dl>
+<p>
+    The following example shows the XML for a sync adapter that uses a single dummy account and
+    only does downloads.
+</p>
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;sync-adapter
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:contentAuthority="com.example.android.datasync.provider"
+        android:accountType="com.android.example.datasync"
+        android:userVisible="false"
+        android:supportsUploading="false"
+        android:allowParallelSyncs="false"
+        android:isAlwaysSyncable="true"/&gt;
+</pre>
+
+<h2 id="DeclareSyncAdapterManifest">Declare the Sync Adapter in the Manifest</h2>
+<p>
+    Once you've added the sync adapter component to your app, you have to request permissions
+    related to using the component, and you have to declare the bound {@link android.app.Service}
+    you've added.
+</p>
+<p>
+    Since the sync adapter component runs code that transfers data between the network and the
+    device, you need to request permission to access the Internet. In addition, your app needs
+    to request permission to read and write sync adapter settings, so you can control the sync
+    adapter programmatically from other components in your app. You also need to request a
+    special permission that allows your app to use the authenticator component you created
+    in the lesson <a href="creating-authenticator.html">Creating a Stub Authenticator</a>.
+</p>
+<p>
+    To request these permissions, add the following to your app manifest as child elements of
+<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>:
+</p>
+<dl>
+    <dt>
+        {@link android.Manifest.permission#INTERNET android.permission.INTERNET}
+    </dt>
+    <dd>
+        Allows the sync adapter code to access the Internet so that it can download or upload data
+        from the device to a server. You don't need to add this permission again if you were
+        requesting it previously.
+    </dd>
+    <dt>
+{@link android.Manifest.permission#READ_SYNC_SETTINGS android.permission.READ_SYNC_SETTINGS}
+    </dt>
+    <dd>
+        Allows your app to read the current sync adapter settings. For example, you need this
+        permission in order to call {@link android.content.ContentResolver#getIsSyncable
+        getIsSyncable()}.
+    </dd>
+    <dt>
+{@link android.Manifest.permission#WRITE_SYNC_SETTINGS android.permission.WRITE_SYNC_SETTINGS}
+    </dt>
+    <dd>
+        Allows your app to control sync adapter settings. You need this permission in order to
+        set periodic sync adapter runs using {@link android.content.ContentResolver#addPeriodicSync
+        addPeriodicSync()}. This permission is <b>not</b> required to call
+        {@link android.content.ContentResolver#requestSync requestSync()}. To learn more about
+        running the sync adapter, see <a href="running-sync-adapter.html"
+        >Running A Sync Adapter</a>.
+    </dd>
+    <dt>
+{@link android.Manifest.permission#AUTHENTICATE_ACCOUNTS android.permission.AUTHENTICATE_ACCOUNTS}
+    </dt>
+    <dd>
+        Allows you to use the authenticator component you created in the lesson
+        <a href="creating-authenticator.html">Creating a Stub Authenticator</a>.
+    </dd>
+</dl>
+<p>
+    The following snippet shows how to add the permissions:
+</p>
+<pre>
+&lt;manifest&gt;
+...
+    &lt;uses-permission
+            android:name="android.permission.INTERNET"/&gt;
+    &lt;uses-permission
+            android:name="android.permission.READ_SYNC_SETTINGS"/&gt;
+    &lt;uses-permission
+            android:name="android.permission.WRITE_SYNC_SETTINGS"/&gt;
+    &lt;uses-permission
+            android:name="android.permission.AUTHENTICATE_ACCOUNTS"/&gt;
+...
+&lt;/manifest&gt;
+</pre>
+<p>
+    Finally, to declare the bound {@link android.app.Service} that the framework uses to
+    interact with your sync adapter, add the following XML to your app manifest as a child element
+    of <code><a href="{@docRoot}guide/topics/manifest/application-element.html"
+    >&lt;application&gt;</a></code>:
+</p>
+<pre>
+        &lt;service
+                android:name="com.example.android.datasync.SyncService"
+                android:exported="true"
+                android:process=":sync"&gt;
+            &lt;intent-filter&gt;com.example.android.datasync.provider
+                &lt;action android:name="android.content.SyncAdapter"/&gt;
+            &lt;/intent-filter&gt;
+            &lt;meta-data android:name="android.content.SyncAdapter"
+                    android:resource="&#64;xml/syncadapter" /&gt;
+        &lt;/service&gt;
+</pre>
+<p>
+    The
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+    element sets up a filter that's triggered by the intent action
+    {@code android.content.SyncAdapter}, sent by the system to run the sync adapter. When the filter
+    is triggered, the system starts the bound service you've created, which in this example is
+    {@code SyncService}. The attribute
+<code><a href="{@docRoot}guide/topics/manifest/service-element.html#exported">android:exported="true"</a></code>
+    allows processes other than your app (including the system) to access the
+    {@link android.app.Service}. The attribute
+<code><a href="{@docRoot}guide/topics/manifest/service-element.html#proc">android:process=":sync"</a></code>
+    tells the system to run the {@link android.app.Service} in a global shared process named
+    {@code sync}. If you have multiple sync adapters in your app they can share this process,
+    which reduces overhead.
+</p>
+<p>
+    The
+<code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
+    element provides provides the name of the sync adapter metadata XML file you created previously.
+    The
+<code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html#nm">android:name</a></code>
+    attribute indicates that this metadata is for the sync adapter framework. The
+<code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html#rsrc">android:resource</a></code>
+    element specifies the name of the metadata file.
+</p>
+<p>
+    You now have all of the components for your sync adapter. The next lesson shows you how to
+    tell the sync adapter framework to run your sync adapter, either in response to an event or on
+    a regular schedule.
+</p>
diff --git a/docs/html/training/sync-adapters/index.jd b/docs/html/training/sync-adapters/index.jd
new file mode 100644 (file)
index 0000000..b107cbe
--- /dev/null
@@ -0,0 +1,135 @@
+page.title=Transferring Data Using Sync Adapters
+
+trainingnavtop=true
+startpage=true
+
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>Dependencies and prerequisites</h2>
+<ul>
+    <li>Android 2.1 (API Level 7) or higher</li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+    <li>
+        <a href="{@docRoot}guide/components/bound-services.html">Bound Services</a>
+    </li>
+    <li>
+        <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>
+    </li>
+    <li>
+        <a href="{@docRoot}training/id-auth/custom_auth.html">Creating a Custom Account Type</a>
+    </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/BasicSyncAdapter.zip" class="button">Download the sample</a>
+ <p class="filename">BasicSyncAdapter.zip</p>
+</div>
+
+</div>
+</div>
+<p>
+    Synchronizing data between an Android device and web servers can make your application
+    significantly more useful and compelling for your users. For example, transferring data to a web
+    server makes a useful backup, and transferring data from a server makes it available to the user
+    even when the device is offline. In some cases, users may find it easier to enter and edit their
+    data in a web interface and then have that data available on their device, or they may want to
+    collect data over time and then upload it to a central storage area.
+</p>
+<p>
+    Although you can design your own system for doing data transfers in your app, you should
+    consider using Android's sync adapter framework. This framework helps manage and automate data
+    transfers, and coordinates synchronization operations across different apps. When you use
+    this framework, you can take advantage of several features that aren't available to data
+    transfer schemes you design yourself:
+</p>
+<dl>
+    <dt>
+        Plug-in architecture
+    </dt>
+    <dd>
+        Allows you to add data transfer code to the system in the form of callable components.
+    </dd>
+    <dt>
+        Automated execution
+    </dt>
+    <dd>
+        Allows you to automate data transfer based on a variety of criteria, including data changes,
+        elapsed time, or time of day. In addition, the system adds transfers that are unable to
+        run to a queue, and runs them when possible.
+    </dd>
+    <dt>
+        Automated network checking
+    </dt>
+    <dd>
+        The system only runs your data transfer when the device has network connectivity.
+    </dd>
+    <dt>
+        Improved battery performance
+    </dt>
+    <dd>
+        Allows you to centralize all of your app's data transfer tasks in one place, so that they
+        all run at the same time. Your data transfer is also scheduled in conjunction with data
+        transfers from other apps. These factors reduce the number of times the system has to
+        switch on the network, which reduces battery usage.
+    </dd>
+    <dt>
+        Account management and authentication
+    </dt>
+    <dd>
+        If your app requires user credentials or server login, you can optionally
+        integrate account management and authentication into your data transfer.
+    </dd>
+</dl>
+<p>
+    This class shows you how to create a sync adapter and the bound {@link android.app.Service} that
+    wraps it, how to provide the other components that help you plug the sync adapter into the
+    framework, and how to run the sync adapter to run in various ways.
+</p>
+<p class="note">
+    <strong>Note:</strong> Sync adapters run asynchronously, so you should use them with the
+    expectation that they transfer data regularly and efficiently, but not instantaneously. If
+    you need to do real-time data transfer, you should do it in an {@link android.os.AsyncTask} or
+    an {@link android.app.IntentService}.
+</p>
+<h2>Lessons</h2>
+<dl>
+    <dt>
+        <b><a href="creating-authenticator.html">Creating a Stub Authenticator</a></b>
+    </dt>
+    <dd>
+        Learn how to add an account-handling component that the sync adapter framework expects to be
+        part of your app. This lesson shows you how to create a stub authentication component for
+        simplicity.
+    </dd>
+    <dt>
+        <b><a href="creating-stub-provider.html">Creating a Stub Content Provider</a></b>
+    </dt>
+    <dd>
+        Learn how to add a content provider component that the sync adapter framework expects to be
+        part of your app. This lesson assumes that your app doesn't use a content provider, so it
+        shows you how to add a stub component. If you have a content provider already in your app,
+        you can skip this lesson.
+    </dd>
+    <dt>
+        <b><a href="creating-sync-adapter.html">Creating a Sync Adapter</a></b>
+    </dt>
+    <dd>
+        Learn how to encapsulate your data transfer code in a component that the sync
+        adapter framework can run automatically.
+    </dd>
+    <dt>
+        <b><a href="running-sync-adapter.html">Running a Sync Adapter</a></b>
+    </dt>
+    <dd>
+        Learn how to trigger and schedule data transfers using the sync adapter framework.
+    </dd>
+</dl>
diff --git a/docs/html/training/sync-adapters/running-sync-adapter.jd b/docs/html/training/sync-adapters/running-sync-adapter.jd
new file mode 100644 (file)
index 0000000..8fb7e80
--- /dev/null
@@ -0,0 +1,524 @@
+page.title=Running a Sync Adapter
+
+trainingnavtop=true
+@jd:body
+
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you how to:</h2>
+<ol>
+    <li><a href="#RunByMessage">Run the Sync Adapter When Server Data Changes</a>
+    <li><a href="#RunDataChange">Run the Sync Adapter When Content Provider Data Changes</a></li>
+    <li><a href="#RunByNetwork">Run the Sync Adapter After a Network Message</a></li>
+    <li><a href="#RunPeriodic">Run the Sync Adapter Periodically</a></li>
+    <li><a href="#RunOnDemand">Run the Sync Adapter On Demand</a></li>
+</ol>
+
+
+<h2>You should also read</h2>
+<ul>
+    <li>
+        <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>
+    </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/BasicSyncAdapter.zip" class="button">Download the sample</a>
+ <p class="filename">BasicSyncAdapter.zip</p>
+</div>
+
+</div>
+</div>
+<p>
+    In the previous lessons in this class, you learned how to create a sync adapter component that
+    encapsulates data transfer code, and how to add the additional components that allow you to
+    plug the sync adapter into the system. You now have everything you need to install an app that
+    includes a sync adapter, but none of the code you've seen actually runs the sync adapter.
+</p>
+<p>
+    You should try to run your sync adapter based on a schedule or as the indirect result of some
+    event. For example, you may want your sync adapter to run on a regular schedule, either after a
+    certain period of time or at a particular time of the day. You may also want to run your sync
+    adapter when there are changes to data stored on the device. You should avoid running your
+    sync adapter as the direct result of a user action, because by doing this you don't get the full
+    benefit of the sync adapter framework's scheduling ability. For example, you should avoid
+    providing a refresh button in your user interface.
+</p>
+<p>
+    You have the following options for running your sync adapter:
+</p>
+<dl>
+    <dt>
+        When server data changes
+    </dt>
+    <dd>
+        Run the sync adapter in response to a message from a server, indicating that server-based
+        data has changed. This option allows you to refresh data from the server to the device
+        without degrading performance or wasting battery life by polling the server.
+    </dd>
+    <dt>When device data changes</dt>
+    <dd>
+        Run a sync adapter when data changes on the device. This option allows you to send
+        modified data from the device to a server, and is especially useful if you need to ensure
+        that the server always has the latest device data. This option is straightforward to
+        implement if you actually store data in your content provider. If you're using a stub
+        content provider, detecting data changes may be more difficult.
+    </dd>
+    <dt>
+        When the system sends out a network message
+    </dt>
+    <dd>
+        Run a sync adapter when the Android system sends out a network message that keeps the
+        TCP/IP connection open; this message is a basic part of the networking framework. Using
+        this option is one way to run the sync adapter automatically. Consider using it in
+        conjunction with interval-based sync adapter runs.
+    </dd>
+    <dt>
+        At regular intervals
+    </dt>
+    <dd>
+        Run a sync adapter after the expiration of an interval you choose, or run it at a certain
+        time every day.
+    </dd>
+    <dt>On demand</dt>
+    <dd>
+        Run the sync adapter in response to a user action. However, to provide the best user
+        experience you should rely primarily on one of the more automated options. By using
+        automated options, you conserve battery and network resources.
+    </dd>
+</dl>
+<p>
+    The rest of this lesson describes each of the options in more detail.
+</p>
+<h2 id="RunByMessage">Run the Sync Adapter When Server Data Changes</h2>
+<p>
+    If your app transfers data from a server and the server data changes frequently, you can use
+    a sync adapter to do downloads in response to data changes. To run the sync adapter, have
+    the server send a special message to a {@link android.content.BroadcastReceiver} in your app.
+    In response to this message, call {@link android.content.ContentResolver#requestSync
+    ContentResolver.requestSync()} to signal the sync adapter framework to run your
+    sync adapter.
+</p>
+<p>
+    <a href="{@docRoot}google/gcm/index.html">Google Cloud Messaging</a> (GCM) provides both the
+    server and device components you need to make this messaging system work. Using GCM to trigger
+    transfers is more reliable and more efficient than polling servers for status. While polling
+    requires a {@link android.app.Service} that is always active, GCM uses a
+    {@link android.content.BroadcastReceiver} that's activated when a message arrives. While polling
+    at regular intervals uses battery power even if no updates are available, GCM only sends
+    messages when needed.
+</p>
+<p class="note">
+    <strong>Note:</strong> If you use GCM to trigger your sync adapter via a broadcast to all
+    devices where your app is installed, remember that they receive your message at
+    roughly the same time. This situation can cause multiple instance of your sync adapter to run
+    at the same time, causing server and network overload. To avoid this situation for a broadcast
+    to all devices, you should consider deferring the start of the sync adapter for a period
+    that's unique for each device.
+<p>
+    The following code snippet shows you how to run
+    {@link android.content.ContentResolver#requestSync requestSync()} in response to an
+    incoming GCM message:
+</p>
+<pre>
+public class GcmBroadcastReceiver extends BroadcastReceiver {
+    ...
+    // Constants
+    // Content provider authority
+    public static final String AUTHORITY = "com.example.android.datasync.provider"
+    // Account type
+    public static final String ACCOUNT_TYPE = "com.example.android.datasync";
+    // Account
+    public static final String ACCOUNT = "default_account";
+    // Incoming Intent key for extended data
+    public static final String KEY_SYNC_REQUEST =
+            "com.example.android.datasync.KEY_SYNC_REQUEST";
+    ...
+    &#64;Override
+    public void onReceive(Context context, Intent intent) {
+        // Get a GCM object instance
+        GoogleCloudMessaging gcm =
+                GoogleCloudMessaging.getInstance(context);
+        // Get the type of GCM message
+        String messageType = gcm.getMessageType(intent);
+        /*
+         * Test the message type and examine the message contents.
+         * Since GCM is a general-purpose messaging system, you
+         * may receive normal messages that don't require a sync
+         * adapter run.
+         * The following code tests for a a boolean flag indicating
+         * that the message is requesting a transfer from the device.
+         */
+        if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)
+            &amp;&amp;
+            intent.getBooleanExtra(KEY_SYNC_REQUEST)) {
+            /*
+             * Signal the framework to run your sync adapter. Assume that
+             * app initialization has already created the account.
+             */
+            ContentResolver.requestSync(ACCOUNT, AUTHORITY, null);
+            ...
+        }
+        ...
+    }
+    ...
+}
+</pre>
+<h2 id="RunDataChange">Run the Sync Adapter When Content Provider Data Changes</h2>
+<p>
+    If your app collects data in a content provider, and you want to update the server whenever
+    you update the provider, you can set up your app to run your sync adapter automatically. To do
+    this, you register an observer for the content provider. When data in your content provider
+    changes, the content provider framework calls the observer. In the observer, call
+    {@link android.content.ContentResolver#requestSync requestSync()} to tell the framework to run
+    your sync adapter.
+</p>
+<p class="note">
+    <strong>Note:</strong> If you're using a stub content provider, you don't have any data in
+    the content provider and {@link android.database.ContentObserver#onChange onChange()} is
+    never called. In this case, you have to provide your own mechanism for detecting changes to
+    device data. This mechanism is also responsible for calling
+    {@link android.content.ContentResolver#requestSync requestSync()} when the data changes.
+</p>
+<p>
+   To create an observer for your content provider, extend the class
+   {@link android.database.ContentObserver} and implement both forms of its
+   {@link android.database.ContentObserver#onChange onChange()} method.  In
+   {@link android.database.ContentObserver#onChange onChange()}, call
+   {@link android.content.ContentResolver#requestSync requestSync()} to start the sync adapter.
+</p>
+<p>
+   To register the observer, pass it as an argument in a call to
+   {@link android.content.ContentResolver#registerContentObserver registerContentObserver()}. In
+   this call, you also have to pass in a content URI for the data you want to watch. The content
+   provider framework compares this watch URI to content URIs passed in as arguments to
+   {@link android.content.ContentResolver} methods that modify your provider, such as
+   {@link android.content.ContentResolver#insert ContentResolver.insert()}. If there's a match, your
+   implementation of {@link android.database.ContentObserver#onChange ContentObserver.onChange()}
+   is called.
+</p>
+
+<p>
+    The following code snippet shows you how to define a {@link android.database.ContentObserver}
+    that calls {@link android.content.ContentResolver#requestSync requestSync()} when a table
+    changes:
+</p>
+<pre>
+public class MainActivity extends FragmentActivity {
+    ...
+    // Constants
+    // Content provider scheme
+    public static final String SCHEME = "content://";
+    // Content provider authority
+    public static final String AUTHORITY = "com.example.android.datasync.provider";
+    // Path for the content provider table
+    public static final String TABLE_PATH = "data_table";
+    // Account
+    public static final String ACCOUNT = "default_account";
+    // Global variables
+    // A content URI for the content provider's data table
+    Uri mUri;
+    // A content resolver for accessing the provider
+    ContentResolver mResolver;
+    ...
+    public class TableObserver extends ContentObserver {
+        /*
+         * Define a method that's called when data in the
+         * observed content provider changes.
+         * This method signature is provided for compatibility with
+         * older platforms.
+         */
+        &#64;Override
+        public void onChange(boolean selfChange) {
+            /*
+             * Invoke the method signature available as of
+             * Android platform version 4.1, with a null URI.
+             */
+            onChange(selfChange, null);
+        }
+        /*
+         * Define a method that's called when data in the
+         * observed content provider changes.
+         */
+        &#64;Override
+        public void onChange(boolean selfChange, Uri changeUri) {
+            /*
+             * Ask the framework to run your sync adapter.
+             * To maintain backward compatibility, assume that
+             * changeUri is null.
+            ContentResolver.requestSync(ACCOUNT, AUTHORITY, null);
+        }
+        ...
+    }
+    ...
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ...
+        // Get the content resolver object for your app
+        mResolver = getContentResolver();
+        // Construct a URI that points to the content provider data table
+        mUri = new Uri.Builder()
+                  .scheme(SCHEME)
+                  .authority(AUTHORITY)
+                  .path(TABLE_PATH)
+                  .build();
+        /*
+         * Create a content observer object.
+         * Its code does not mutate the provider, so set
+         * selfChange to "false"
+         */
+        TableObserver observer = new TableObserver(false);
+        /*
+         * Register the observer for the data table. The table's path
+         * and any of its subpaths trigger the observer.
+         */
+        mResolver.registerContentObserver(mUri, true, observer);
+        ...
+    }
+    ...
+}
+</pre>
+<h2 id="RunByNetwork">Run the Sync Adapter After a Network Message</h2>
+<p>
+    When a network connection is available, the Android system sends out a message
+    every few seconds to keep the device's TCP/IP connection open. This message also goes to
+    the {@link android.content.ContentResolver} of each app. By calling
+    {@link android.content.ContentResolver#setSyncAutomatically setSyncAutomatically()},
+    you can run the sync adapter whenever the {@link android.content.ContentResolver}
+    receives the message.
+</p>
+<p>
+    By scheduling your sync adapter to run when the network message is sent, you ensure that your
+    sync adapter is always scheduled to run while the network is available. Use this option if you
+    don't have to force a data transfer in response to data changes, but you do want to ensure
+    your data is regularly updated. Similarly, you can use this option if you don't want a fixed
+    schedule for your sync adapter, but you do want it to run frequently.
+</p>
+<p>
+    Since the method
+    {@link android.content.ContentResolver#setSyncAutomatically setSyncAutomatically()}
+    doesn't disable {@link android.content.ContentResolver#addPeriodicSync addPeriodicSync()}, your
+    sync adapter may be triggered repeatedly in a short period of time. If you do want to run
+    your sync adapter periodically on a regular schedule, you should disable
+    {@link android.content.ContentResolver#setSyncAutomatically setSyncAutomatically()}.
+</p>
+<p>
+    The following code snippet shows you how to configure your
+    {@link android.content.ContentResolver} to run your sync adapter in response to a network
+    message:
+</p>
+<pre>
+public class MainActivity extends FragmentActivity {
+    ...
+    // Constants
+    // Content provider authority
+    public static final String AUTHORITY = "com.example.android.datasync.provider";
+    // Account
+    public static final String ACCOUNT = "default_account";
+    // Global variables
+    // A content resolver for accessing the provider
+    ContentResolver mResolver;
+    ...
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ...
+        // Get the content resolver for your app
+        mResolver = getContentResolver();
+        // Turn on automatic syncing for the default account and authority
+        mResolver.setSyncAutomatically(ACCOUNT, AUTHORITY, true);
+        ...
+    }
+    ...
+}
+</pre>
+<h2 id="RunPeriodic">Run the Sync Adapter Periodically</h2>
+<p>
+    You can run your sync adapter periodically by setting a period of time to wait between runs,
+    or by running it at certain times of the day, or both. Running your sync adapter
+    periodically allows you to roughly match the update interval of your server.
+</p>
+<p>
+    Similarly, you can upload data from the device when your server is relatively idle, by
+    scheduling your sync adapter to run at night. Most users leave their powered on and plugged in
+    at night, so this time is usually available. Moreover, the device is not running other tasks at
+    the same time as your sync adapter. If you take this approach, however, you need to ensure that
+    each device triggers a data transfer at a slightly different time. If all devices run your
+    sync adapter at the same time, you are likely to overload your server and cell provider data
+    networks.
+</p>
+<p>
+    In general, periodic runs make sense if your users don't need instant updates, but expect to
+    have regular updates. Periodic runs also make sense if you want to balance the availability of
+    up-to-date data with the efficiency of smaller sync adapter runs that don't over-use device
+    resources.
+</p>
+<p>
+    To run your sync adapter at regular intervals, call
+    {@link android.content.ContentResolver#addPeriodicSync addPeriodicSync()}. This schedules your
+    sync adapter to run after a certain amount of time has elapsed. Since the sync adapter framework
+    has to account for other sync adapter executions and tries to maximize battery efficiency, the
+    elapsed time may vary by a few seconds. Also, the framework won't run your sync adapter if the
+    network is not available.
+</p>
+<p>
+    Notice that {@link android.content.ContentResolver#addPeriodicSync addPeriodicSync()} doesn't
+    run the sync adapter at a particular time of day. To run your sync adapter at roughly the
+    same time every day, use a repeating alarm as a trigger. Repeating alarms are described in more
+    detail in the reference documentation for {@link android.app.AlarmManager}. If you use the
+    method {@link android.app.AlarmManager#setInexactRepeating setInexactRepeating()} to set
+    time-of-day triggers that have some variation, you should still randomize the start time to
+    ensure that sync adapter runs from different devices are staggered.
+</p>
+<p>
+    The method {@link android.content.ContentResolver#addPeriodicSync addPeriodicSync()} doesn't
+    disable {@link android.content.ContentResolver#setSyncAutomatically setSyncAutomatically()},
+    so you may get multiple sync runs in a relatively short period of time. Also, only a few
+    sync adapter control flags are allowed in a call to
+    {@link android.content.ContentResolver#addPeriodicSync addPeriodicSync()}; the flags that are
+    not allowed are described in the referenced documentation for
+    {@link android.content.ContentResolver#addPeriodicSync addPeriodicSync()}.
+</p>
+<p>
+    The following code snippet shows you how to schedule periodic sync adapter runs:
+</p>
+<pre>
+public class MainActivity extends FragmentActivity {
+    ...
+    // Constants
+    // Content provider authority
+    public static final String AUTHORITY = "com.example.android.datasync.provider";
+    // Account
+    public static final String ACCOUNT = "default_account";
+    // Sync interval constants
+    public static final long MILLISECONDS_PER_SECOND = 1000L;
+    public static final long SECONDS_PER_MINUTE = 60L;
+    public static final long SYNC_INTERVAL_IN_MINUTES = 60L;
+    public static final long SYNC_INTERVAL =
+            SYNC_INTERVAL_IN_MINUTES *
+            SECONDS_PER_MINUTE *
+            MILLISECONDS_PER_SECOND;
+    // Global variables
+    // A content resolver for accessing the provider
+    ContentResolver mResolver;
+    ...
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ...
+        // Get the content resolver for your app
+        mResolver = getContentResolver();
+        /*
+         * Turn on periodic syncing
+         */
+        ContentResolver.addPeriodicSync(
+                ACCOUNT,
+                AUTHORITY,
+                null,
+                SYNC_INTERVAL);
+        ...
+    }
+    ...
+}
+</pre>
+<h2 id="RunOnDemand">Run the Sync Adapter On Demand</h2>
+<p>
+    Running your sync adapter in response to a user request is the least preferable strategy
+    for running a sync adapter. The framework is specifically designed to conserve battery power
+    when it runs sync adapters according to a schedule. Options that run a sync in response to data
+    changes use battery power effectively, since the power is used to provide new data.
+</p>
+<p>
+    In comparison, allowing users to run a sync on demand means that the sync runs by itself, which
+    is inefficient use of network and power resources. Also, providing sync on demand leads users to
+    request a sync even if there's no evidence that the data has changed, and running a sync that
+    doesn't refresh data is an ineffective use of battery power. In general, your app should either
+    use other signals to trigger a sync or schedule them at regular intervals, without user input.
+</p>
+<p>
+    However, if you still want to run the sync adapter on demand, set the sync adapter flags for a
+    manual sync adapter run, then call
+    {@link android.content.ContentResolver#requestSync ContentResolver.requestSync()}.
+</p>
+<p>
+    Run on demand transfers with the following flags:
+</p>
+<dl>
+    <dt>
+        {@link android.content.ContentResolver#SYNC_EXTRAS_MANUAL SYNC_EXTRAS_MANUAL}
+    </dt>
+    <dd>
+        Forces a manual sync. The sync adapter framework ignores the existing settings,
+        such as the flag set by {@link android.content.ContentResolver#setSyncAutomatically
+        setSyncAutomatically()}.
+    </dd>
+    <dt>
+        {@link android.content.ContentResolver#SYNC_EXTRAS_EXPEDITED SYNC_EXTRAS_EXPEDITED}
+    </dt>
+    <dd>
+        Forces the sync to start immediately. If you don't set this, the system may wait several
+        seconds before running the sync request, because it tries to optimize battery use by
+        scheduling many requests in a short period of time.
+    </dd>
+</dl>
+<p>
+    The following code snippet shows you how to call
+    {@link android.content.ContentResolver#requestSync requestSync()} in response to a button
+    click:
+</p>
+<pre>
+public class MainActivity extends FragmentActivity {
+    ...
+    // Constants
+    // Content provider authority
+    public static final String AUTHORITY =
+            "com.example.android.datasync.provider"
+    // Account type
+    public static final String ACCOUNT_TYPE = "com.example.android.datasync";
+    // Account
+    public static final String ACCOUNT = "default_account";
+    // Instance fields
+    Account mAccount;
+    ...
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        ...
+        /*
+         * Create the dummy account. The code for CreateSyncAccount
+         * is listed in the lesson Creating a Sync Adapter
+         */
+
+        mAccount = CreateSyncAccount(this);
+        ...
+    }
+    /**
+     * Respond to a button click by calling requestSync(). This is an
+     * asynchronous operation.
+     *
+     * This method is attached to the refresh button in the layout
+     * XML file
+     *
+     * @param v The View associated with the method call,
+     * in this case a Button
+     */
+    public void onRefreshButtonClick(View v) {
+        ...
+        // Pass the settings flags by inserting them in a bundle
+        Bundle settingsBundle = new Bundle();
+        settingsBundle.putBoolean(
+                ContentResolver.SYNC_EXTRAS_MANUAL, true);
+        settingsBundle.putBoolean(
+                ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
+        /*
+         * Request the sync for the default account, authority, and
+         * manual sync settings
+         */
+        ContentResolver.requestSync(mAccount, AUTHORITY, settingsBundle);
+    }
+</pre>
index 61517e0..cb57752 100644 (file)
     </div>
     <ul>
 
-
       <li class="nav-section">
         <div class="nav-section-header">
           <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html"
           </a>
           </li>
         </ul>
+        <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html"
+           description=
+           "How to design a robust conflict resolution strategy for apps that save data to the cloud."
+           >Resolving Cloud Save Conflicts
+          </a>
+          </li>
       </li>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>training/sync-adapters/index.html"
+             description="How to transfer data between the cloud and the device using the Android
+             sync adapter framework"
+             >Transferring Data Using Sync Adapters</a>
+        </div>
+        <ul>
+            <li>
+                <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html">
+                Creating a Stub Authenticator
+                </a>
+            </li>
+            <li>
+                <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html">
+                Creating a Stub Content Provider
+                </a>
+            </li>
+            <li>
+                <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html">
+                Creating a Sync Adapter
+                </a>
+            </li>
+            <li>
+                <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html">
+                Running a Sync Adapter
+                </a>
+            </li>
+        </ul>
+      </li>
+
     </ul>
   </li>
   <!-- End connectivity and cloud -->
index ddb190e..7735819 100644 (file)
@@ -882,15 +882,18 @@ bool OpenGLRenderer::createLayer(float left, float top, float right, float botto
         layer->bindTexture();
         if (!bounds.isEmpty()) {
             if (layer->isEmpty()) {
-                glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
-                        bounds.left, mSnapshot->height - bounds.bottom,
-                        layer->getWidth(), layer->getHeight(), 0);
+                // Workaround for some GL drivers. When reading pixels lying outside
+                // of the window we should get undefined values for those pixels.
+                // Unfortunately some drivers will turn the entire target texture black
+                // when reading outside of the window.
+                glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, layer->getWidth(), layer->getHeight(),
+                        0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
                 layer->setEmpty(false);
-            } else {
-                glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bounds.left,
-                        mSnapshot->height - bounds.bottom, bounds.getWidth(), bounds.getHeight());
             }
 
+            glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bounds.left,
+                    mSnapshot->height - bounds.bottom, bounds.getWidth(), bounds.getHeight());
+
             // Enqueue the buffer coordinates to clear the corresponding region later
             mLayers.push(new Rect(bounds));
         }
index 8295c5f..93ab401 100644 (file)
@@ -2553,4 +2553,15 @@ public class AudioManager {
         }
     }
 
+    /**
+     * Returns the estimated latency for the given stream type in milliseconds.
+     *
+     * DO NOT UNHIDE. The existing approach for doing A/V sync has too many problems. We need
+     * a better solution.
+     * @hide
+     */
+    public int getOutputLatency(int streamType) {
+        return AudioSystem.getOutputLatency(streamType);
+    }
+
 }
index 4a33743..d42bfd4 100644 (file)
@@ -401,5 +401,6 @@ public class AudioSystem
     // helpers for android.media.AudioManager.getProperty(), see description there for meaning
     public static native int getPrimaryOutputSamplingRate();
     public static native int getPrimaryOutputFrameCount();
+    public static native int getOutputLatency(int stream);
 
 }
index 399eb7b..9768a78 100644 (file)
@@ -628,6 +628,18 @@ public class AudioTrack
     }
 
     /**
+     * Returns this track's estimated latency in milliseconds. This includes the latency due
+     * to AudioTrack buffer size, AudioMixer (if any) and audio hardware driver.
+     *
+     * DO NOT UNHIDE. The existing approach for doing A/V sync has too many problems. We need
+     * a better solution.
+     * @hide
+     */
+    public int getLatency() {
+        return native_get_latency();
+    }
+
+    /**
      *  Returns the hardware output sample rate
      */
     static public int getNativeOutputSampleRate(int streamType) {
@@ -1256,6 +1268,8 @@ public class AudioTrack
     private native final int native_set_position(int position);
     private native final int native_get_position();
 
+    private native final int native_get_latency();
+
     private native final int native_set_loop(int start, int end, int loopCount);
 
     static private native final int native_get_output_sample_rate(int streamType);
index 659651b..0177504 100644 (file)
@@ -43,6 +43,7 @@ import android.media.RingtoneManager;
 import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
+import android.os.DropBoxManager;
 import android.os.FileObserver;
 import android.os.ParcelFileDescriptor;
 import android.os.SystemProperties;
@@ -107,6 +108,9 @@ public class SettingsProvider extends ContentProvider {
      */
     static final HashSet<String> sSecureGlobalKeys;
     static final HashSet<String> sSystemGlobalKeys;
+
+    private static final String DROPBOX_TAG_USERLOG = "restricted_profile_ssaid";
+
     static {
         // Keys (name column) from the 'secure' table that are now in the owner user's 'global'
         // table, shared across all users
@@ -486,6 +490,16 @@ public class SettingsProvider extends ContentProvider {
                 }
                 Slog.d(TAG, "Generated and saved new ANDROID_ID [" + newAndroidIdValue
                         + "] for user " + userHandle);
+                // Write a dropbox entry if it's a restricted profile
+                if (mUserManager.getUserInfo(userHandle).isRestricted()) {
+                    DropBoxManager dbm = (DropBoxManager)
+                            getContext().getSystemService(Context.DROPBOX_SERVICE);
+                    if (dbm != null && dbm.isTagEnabled(DROPBOX_TAG_USERLOG)) {
+                        dbm.addText(DROPBOX_TAG_USERLOG, System.currentTimeMillis()
+                                + ",restricted_profile_ssaid,"
+                                + newAndroidIdValue + "\n");
+                    }
+                }
             }
             return true;
         } finally {
index 1544910..cb073d2 100644 (file)
     <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Kein Netz"</string>
     <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WLAN aus"</string>
     <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"WLAN-Display"</string>
-    <string name="quick_settings_wifi_display_no_connection_label" msgid="2355298740765736918">"Kabellose Übertragung"</string>
+    <string name="quick_settings_wifi_display_no_connection_label" msgid="2355298740765736918">"Kabellose Übertragung (WiDi)"</string>
     <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Helligkeit"</string>
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Benachrichtigungen erscheinen hier"</string>
index 4c81c88..92df9b9 100644 (file)
     <bool name="config_hasFlipSettingsPanel">true</bool>
 
     <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
-    <bool name="config_show4GForLTE">false</bool>
+    <bool name="config_show4GForLTE">true</bool>
 </resources>
 
index da5f767..73752e5 100644 (file)
@@ -90,7 +90,6 @@ public class NetworkController extends BroadcastReceiver {
     boolean mShowPhoneRSSIForData = false;
     boolean mShowAtLeastThreeGees = false;
     boolean mAlwaysShowCdmaRssi = false;
-    boolean mShow4GforLTE = false;
 
     String mContentDescriptionPhoneSignal;
     String mContentDescriptionWifi;
@@ -200,7 +199,6 @@ public class NetworkController extends BroadcastReceiver {
 
         mShowPhoneRSSIForData = res.getBoolean(R.bool.config_showPhoneRSSIForData);
         mShowAtLeastThreeGees = res.getBoolean(R.bool.config_showMin3G);
-        mShow4GforLTE = res.getBoolean(R.bool.config_show4GForLTE);
         mAlwaysShowCdmaRssi = res.getBoolean(
                 com.android.internal.R.bool.config_alwaysUseCdmaRssi);
 
@@ -680,7 +678,8 @@ public class NetworkController extends BroadcastReceiver {
                             R.string.accessibility_data_connection_3g);
                     break;
                 case TelephonyManager.NETWORK_TYPE_LTE:
-                    if (mShow4GforLTE) {
+                    boolean show4GforLTE = mContext.getResources().getBoolean(R.bool.config_show4GForLTE);
+                    if (show4GforLTE) {
                         mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
                         mDataTypeIconId = R.drawable.stat_sys_data_connected_4g;
                         mQSDataTypeIconId = R.drawable.ic_qs_signal_4g;
index 376de96..f4e1cec 100644 (file)
@@ -1188,6 +1188,11 @@ status_t EventHub::openDeviceLocked(const char *devicePath) {
             mBuiltInKeyboardId = device->id;
         }
 
+        // 'Q' key support = cheap test of whether this is an alpha-capable kbd
+        if (hasKeycodeLocked(device, AKEYCODE_Q)) {
+            device->classes |= INPUT_DEVICE_CLASS_ALPHAKEY;
+        }
+
         // See if this device has a DPAD.
         if (hasKeycodeLocked(device, AKEYCODE_DPAD_UP) &&
                 hasKeycodeLocked(device, AKEYCODE_DPAD_DOWN) &&
@@ -1205,14 +1210,6 @@ status_t EventHub::openDeviceLocked(const char *devicePath) {
             }
         }
 
-        // 'Q' key support = cheap test of whether this is an alpha-capable kbd. Many gamepads will
-        // report a broader set of HID usages than they need, however, so we only want to mark this
-        // device as a keyboard if it is not a gamepad.
-        if (hasKeycodeLocked(device, AKEYCODE_Q) &&
-                !(device->classes & INPUT_DEVICE_CLASS_GAMEPAD)) {
-            device->classes |= INPUT_DEVICE_CLASS_ALPHAKEY;
-        }
-
         // Disable kernel key repeat since we handle it ourselves
         unsigned int repeatRate[] = {0,0};
         if (ioctl(fd, EVIOCSREP, repeatRate)) {
index 81378dc..427dbc0 100644 (file)
@@ -23,6 +23,7 @@ import android.content.pm.PackageManager;
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
+import android.os.UserHandle;
 import android.util.SparseArray;
 
 import java.util.HashMap;
@@ -94,7 +95,7 @@ public final class AttributeCache {
         }
     }
     
-    public Entry get(String packageName, int resId, int[] styleable) {
+    public Entry get(String packageName, int resId, int[] styleable, int userId) {
         synchronized (this) {
             Package pkg = mPackages.get(packageName);
             HashMap<int[], Entry> map = null;
@@ -110,7 +111,8 @@ public final class AttributeCache {
             } else {
                 Context context;
                 try {
-                    context = mContext.createPackageContext(packageName, 0);
+                    context = mContext.createPackageContextAsUser(packageName, 0,
+                            new UserHandle(userId));
                     if (context == null) {
                         return null;
                     }
index 37a8cb8..29c546e 100644 (file)
@@ -31,6 +31,9 @@ import static android.net.ConnectivityManager.isNetworkTypeValid;
 import static android.net.NetworkPolicyManager.RULE_ALLOW_ALL;
 import static android.net.NetworkPolicyManager.RULE_REJECT_METERED;
 
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
 import android.bluetooth.BluetoothTetheringDataTracker;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -52,11 +55,13 @@ import android.net.INetworkPolicyManager;
 import android.net.INetworkStatsService;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
+import android.net.Uri;
 import android.net.LinkProperties.CompareResult;
 import android.net.MobileDataStateTracker;
 import android.net.NetworkConfig;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo.DetailedState;
+import android.net.NetworkInfo.State;
 import android.net.NetworkQuotaInfo;
 import android.net.NetworkState;
 import android.net.NetworkStateTracker;
@@ -66,6 +71,7 @@ import android.net.ProxyProperties;
 import android.net.RouteInfo;
 import android.net.wifi.WifiStateTracker;
 import android.net.wimax.WimaxManagerConstants;
+import android.os.AsyncTask;
 import android.os.Binder;
 import android.os.FileUtils;
 import android.os.Handler;
@@ -79,6 +85,7 @@ import android.os.ParcelFileDescriptor;
 import android.os.PowerManager;
 import android.os.Process;
 import android.os.RemoteException;
+import android.os.ResultReceiver;
 import android.os.ServiceManager;
 import android.os.SystemClock;
 import android.os.SystemProperties;
@@ -86,13 +93,16 @@ import android.os.UserHandle;
 import android.provider.Settings;
 import android.security.Credentials;
 import android.security.KeyStore;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Slog;
 import android.util.SparseIntArray;
 
+import com.android.internal.R;
 import com.android.internal.net.LegacyVpnInfo;
 import com.android.internal.net.VpnConfig;
 import com.android.internal.net.VpnProfile;
+import com.android.internal.telephony.DctConstants;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.util.IndentingPrintWriter;
@@ -111,9 +121,11 @@ import java.io.FileDescriptor;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.lang.reflect.Constructor;
+import java.net.HttpURLConnection;
 import java.net.Inet4Address;
 import java.net.Inet6Address;
 import java.net.InetAddress;
+import java.net.URL;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -121,6 +133,8 @@ import java.util.Collection;
 import java.util.GregorianCalendar;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Random;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @hide
@@ -141,6 +155,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
     private static final String NETWORK_RESTORE_DELAY_PROP_NAME =
             "android.telephony.apn-restore";
 
+    // Default value if FAIL_FAST_TIME_MS is not set
+    private static final int DEFAULT_FAIL_FAST_TIME_MS = 1 * 60 * 1000;
+    // system property that can override DEFAULT_FAIL_FAST_TIME_MS
+    private static final String FAIL_FAST_TIME_MS =
+            "persist.radio.fail_fast_time_ms";
+
     // used in recursive route setting to add gateways for the host for which
     // a host route was requested.
     private static final int MAX_HOSTROUTE_CYCLE_COUNT = 10;
@@ -292,6 +312,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
 
     private static final int EVENT_VPN_STATE_CHANGED = 14;
 
+    /**
+     * Used internally to disable fail fast of mobile data
+     */
+    private static final int EVENT_ENABLE_FAIL_FAST_MOBILE_DATA = 15;
+
     /** Handler used for internal events. */
     private InternalHandler mHandler;
     /** Handler used for incoming {@link NetworkStateTracker} events. */
@@ -346,6 +371,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
     // the set of network types that can only be enabled by system/sig apps
     List mProtectedNetworks;
 
+    private AtomicInteger mEnableFailFastMobileDataTag = new AtomicInteger(0);
+
+    TelephonyManager mTelephonyManager;
+
     public ConnectivityService(Context context, INetworkManagementService netd,
             INetworkStatsService statsService, INetworkPolicyManager policyManager) {
         // Currently, omitting a NetworkFactory will create one internally
@@ -394,6 +423,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
         mNetd = checkNotNull(netManager, "missing INetworkManagementService");
         mPolicyManager = checkNotNull(policyManager, "missing INetworkPolicyManager");
         mKeyStore = KeyStore.getInstance();
+        mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
 
         try {
             mPolicyManager.registerListener(mPolicyListener);
@@ -1408,8 +1438,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                 netState != DetailedState.CAPTIVE_PORTAL_CHECK) ||
                 tracker.isTeardownRequested()) {
             if (VDBG) {
-                log("requestRouteToHostAddress on down network " +
-                           "(" + networkType + ") - dropped");
+                log("requestRouteToHostAddress on down network "
+                        + "(" + networkType + ") - dropped"
+                        + " tracker=" + tracker
+                        + " netState=" + netState
+                        + " isTeardownRequested="
+                            + ((tracker != null) ? tracker.isTeardownRequested() : "tracker:null"));
             }
             return false;
         }
@@ -1417,12 +1451,15 @@ public class ConnectivityService extends IConnectivityManager.Stub {
         try {
             InetAddress addr = InetAddress.getByAddress(hostAddress);
             LinkProperties lp = tracker.getLinkProperties();
-            return addRouteToAddress(lp, addr);
+            boolean ok = addRouteToAddress(lp, addr);
+            if (DBG) log("requestRouteToHostAddress ok=" + ok);
+            return ok;
         } catch (UnknownHostException e) {
             if (DBG) log("requestRouteToHostAddress got " + e.toString());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
+        if (DBG) log("requestRouteToHostAddress X bottom return false");
         return false;
     }
 
@@ -2824,6 +2861,19 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                     }
                     break;
                 }
+                case EVENT_ENABLE_FAIL_FAST_MOBILE_DATA: {
+                    int tag = mEnableFailFastMobileDataTag.get();
+                    if (msg.arg1 == tag) {
+                        MobileDataStateTracker mobileDst =
+                            (MobileDataStateTracker) mNetTrackers[ConnectivityManager.TYPE_MOBILE];
+                        if (mobileDst != null) {
+                            mobileDst.setEnableFailFastMobileData(msg.arg2);
+                        }
+                    } else {
+                        log("EVENT_ENABLE_FAIL_FAST_MOBILE_DATA: stale arg1:" + msg.arg1
+                                + " != tag:" + tag);
+                    }
+                }
             }
         }
     }
@@ -3472,4 +3522,473 @@ public class ConnectivityService extends IConnectivityManager.Stub {
         }
         return ConnectivityManager.TYPE_NONE;
     }
+
+    /**
+     * Have mobile data fail fast if enabled.
+     *
+     * @param enabled DctConstants.ENABLED/DISABLED
+     */
+    private void setEnableFailFastMobileData(int enabled) {
+        int tag;
+
+        if (enabled == DctConstants.ENABLED) {
+            tag = mEnableFailFastMobileDataTag.incrementAndGet();
+        } else {
+            tag = mEnableFailFastMobileDataTag.get();
+        }
+        mHandler.sendMessage(mHandler.obtainMessage(EVENT_ENABLE_FAIL_FAST_MOBILE_DATA, tag,
+                         enabled));
+    }
+
+    @Override
+    public int checkMobileProvisioning(boolean sendNotification, int suggestedTimeOutMs,
+            final ResultReceiver resultReceiver) {
+        log("checkMobileProvisioning: E sendNotification=" + sendNotification
+                + " suggestedTimeOutMs=" + suggestedTimeOutMs
+                + " resultReceiver=" + resultReceiver);
+        enforceChangePermission();
+
+        int timeOutMs = suggestedTimeOutMs;
+        if (suggestedTimeOutMs > CheckMp.MAX_TIMEOUT_MS) {
+            timeOutMs = CheckMp.MAX_TIMEOUT_MS;
+        }
+
+        // Check that mobile networks are supported
+        if (!isNetworkSupported(ConnectivityManager.TYPE_MOBILE)
+                || !isNetworkSupported(ConnectivityManager.TYPE_MOBILE_HIPRI)) {
+            log("checkMobileProvisioning: X no mobile network");
+            if (resultReceiver != null) {
+                resultReceiver.send(ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION, null);
+            }
+            return timeOutMs;
+        }
+
+        final long token = Binder.clearCallingIdentity();
+        try {
+            CheckMp checkMp = new CheckMp(mContext, this);
+            CheckMp.CallBack cb = new CheckMp.CallBack() {
+                @Override
+                void onComplete(Integer result) {
+                    log("CheckMp.onComplete: result=" + result);
+                    if (resultReceiver != null) {
+                        log("CheckMp.onComplete: send result");
+                        resultReceiver.send(result, null);
+                    }
+                    NetworkInfo ni =
+                            mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI].getNetworkInfo();
+                    switch(result) {
+                        case ConnectivityManager.CMP_RESULT_CODE_CONNECTABLE:
+                        case ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION: {
+                            log("CheckMp.onComplete: ignore, connected or no connection");
+                            break;
+                        }
+                        case ConnectivityManager.CMP_RESULT_CODE_REDIRECTED: {
+                            log("CheckMp.onComplete: warm sim");
+                            String url = getProvisioningUrl();
+                            if (TextUtils.isEmpty(url)) {
+                                url = mContext.getResources()
+                                        .getString(R.string.mobile_redirected_provisioning_url);
+                            }
+                            if (TextUtils.isEmpty(url) == false) {
+                                log("CheckMp.onComplete: warm sim (redirected), url=" + url);
+                                setNotificationVisible(true, ni, url);
+                            } else {
+                                log("CheckMp.onComplete: warm sim (redirected), no url");
+                            }
+                            break;
+                        }
+                        case ConnectivityManager.CMP_RESULT_CODE_NO_DNS:
+                        case ConnectivityManager.CMP_RESULT_CODE_NO_TCP_CONNECTION: {
+                            String url = getProvisioningUrl();
+                            if (TextUtils.isEmpty(url) == false) {
+                                log("CheckMp.onComplete: warm sim (no dns/tcp), url=" + url);
+                                setNotificationVisible(true, ni, url);
+                            } else {
+                                log("CheckMp.onComplete: warm sim (no dns/tcp), no url");
+                            }
+                            break;
+                        }
+                        default: {
+                            loge("CheckMp.onComplete: ignore unexpected result=" + result);
+                            break;
+                        }
+                    }
+                }
+            };
+            CheckMp.Params params =
+                    new CheckMp.Params(checkMp.getDefaultUrl(), timeOutMs, cb);
+            log("checkMobileProvisioning: params=" + params);
+            setNotificationVisible(false, null, null);
+            checkMp.execute(params);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+            log("checkMobileProvisioning: X");
+        }
+        return timeOutMs;
+    }
+
+    static class CheckMp extends
+            AsyncTask<CheckMp.Params, Void, Integer> {
+        private static final String CHECKMP_TAG = "CheckMp";
+        public static final int MAX_TIMEOUT_MS =  60000;
+        private static final int SOCKET_TIMEOUT_MS = 5000;
+        private Context mContext;
+        private ConnectivityService mCs;
+        private TelephonyManager mTm;
+        private Params mParams;
+
+        /**
+         * Parameters for AsyncTask.execute
+         */
+        static class Params {
+            private String mUrl;
+            private long mTimeOutMs;
+            private CallBack mCb;
+
+            Params(String url, long timeOutMs, CallBack cb) {
+                mUrl = url;
+                mTimeOutMs = timeOutMs;
+                mCb = cb;
+            }
+
+            @Override
+            public String toString() {
+                return "{" + " url=" + mUrl + " mTimeOutMs=" + mTimeOutMs + " mCb=" + mCb + "}";
+            }
+        }
+
+        /**
+         * The call back object passed in Params. onComplete will be called
+         * on the main thread.
+         */
+        abstract static class CallBack {
+            // Called on the main thread.
+            abstract void onComplete(Integer result);
+        }
+
+        public CheckMp(Context context, ConnectivityService cs) {
+            mContext = context;
+            mCs = cs;
+
+            // Setup access to TelephonyService we'll be using.
+            mTm = (TelephonyManager) mContext.getSystemService(
+                    Context.TELEPHONY_SERVICE);
+        }
+
+        /**
+         * Get the default url to use for the test.
+         */
+        public String getDefaultUrl() {
+            // See http://go/clientsdns for usage approval
+            String server = Settings.Global.getString(mContext.getContentResolver(),
+                    Settings.Global.CAPTIVE_PORTAL_SERVER);
+            if (server == null) {
+                server = "clients3.google.com";
+            }
+            return "http://" + server + "/generate_204";
+        }
+
+        /**
+         * Detect if its possible to connect to the http url. DNS based detection techniques
+         * do not work at all hotspots. The best way to check is to perform a request to
+         * a known address that fetches the data we expect.
+         */
+        private synchronized Integer isMobileOk(Params params) {
+            Integer result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+            Uri orgUri = Uri.parse(params.mUrl);
+            Random rand = new Random();
+            mParams = params;
+
+            try {
+                if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) {
+                    log("isMobileOk: not mobile capable");
+                    result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+                    return result;
+                }
+
+                // Enable fail fast as we'll do retries here and use a
+                // hipri connection so the default connection stays active.
+                log("isMobileOk: start hipri url=" + params.mUrl);
+                mCs.setEnableFailFastMobileData(DctConstants.ENABLED);
+                mCs.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
+                        Phone.FEATURE_ENABLE_HIPRI, new Binder());
+
+                // Continue trying to connect until time has run out
+                long endTime = SystemClock.elapsedRealtime() + params.mTimeOutMs;
+                while(SystemClock.elapsedRealtime() < endTime) {
+                    try {
+                        // Wait for hipri to connect.
+                        // TODO: Don't poll and handle situation where hipri fails
+                        // because default is retrying. See b/9569540
+                        NetworkInfo.State state = mCs
+                                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI).getState();
+                        if (state != NetworkInfo.State.CONNECTED) {
+                            log("isMobileOk: not connected ni=" +
+                                    mCs.getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI));
+                            sleep(1);
+                            result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+                            continue;
+                        }
+
+                        // Get of the addresses associated with the url host. We need to use the
+                        // address otherwise HttpURLConnection object will use the name to get
+                        // the addresses and is will try every address but that will bypass the
+                        // route to host we setup and the connection could succeed as the default
+                        // interface might be connected to the internet via wifi or other interface.
+                        InetAddress[] addresses;
+                        try {
+                            addresses = InetAddress.getAllByName(orgUri.getHost());
+                        } catch (UnknownHostException e) {
+                            log("isMobileOk: UnknownHostException");
+                            result = ConnectivityManager.CMP_RESULT_CODE_NO_DNS;
+                            return result;
+                        }
+                        log("isMobileOk: addresses=" + inetAddressesToString(addresses));
+
+                        // Get the type of addresses supported by this link
+                        LinkProperties lp = mCs.getLinkProperties(
+                                ConnectivityManager.TYPE_MOBILE_HIPRI);
+                        boolean linkHasIpv4 = hasIPv4Address(lp);
+                        boolean linkHasIpv6 = hasIPv6Address(lp);
+                        log("isMobileOk: linkHasIpv4=" + linkHasIpv4
+                                + " linkHasIpv6=" + linkHasIpv6);
+
+                        // Loop through at most 3 valid addresses or all of the address or until
+                        // we run out of time
+                        int loops = Math.min(3, addresses.length);
+                        for(int validAddr=0, addrTried=0;
+                                    (validAddr < loops) && (addrTried < addresses.length)
+                                      && (SystemClock.elapsedRealtime() < endTime);
+                                addrTried ++) {
+
+                            // Choose the address at random but make sure its type is supported
+                            InetAddress hostAddr = addresses[rand.nextInt(addresses.length)];
+                            if (((hostAddr instanceof Inet4Address) && linkHasIpv4)
+                                    || ((hostAddr instanceof Inet6Address) && linkHasIpv6)) {
+                                // Valid address, so use it
+                                validAddr += 1;
+                            } else {
+                                // Invalid address so try next address
+                                continue;
+                            }
+
+                            // Make a route to host so we check the specific interface.
+                            if (mCs.requestRouteToHostAddress(ConnectivityManager.TYPE_MOBILE_HIPRI,
+                                    hostAddr.getAddress())) {
+                                // Wait a short time to be sure the route is established ??
+                                log("isMobileOk:"
+                                        + " wait to establish route to hostAddr=" + hostAddr);
+                                sleep(3);
+                            } else {
+                                log("isMobileOk:"
+                                        + " could not establish route to hostAddr=" + hostAddr);
+                                continue;
+                            }
+
+                            // Rewrite the url to have numeric address to use the specific route.
+                            // I also set the "Connection" to "Close" as by default "Keep-Alive"
+                            // is used which is useless in this case.
+                            URL newUrl = new URL(orgUri.getScheme() + "://"
+                                    + hostAddr.getHostAddress() + orgUri.getPath());
+                            log("isMobileOk: newUrl=" + newUrl);
+
+                            HttpURLConnection urlConn = null;
+                            try {
+                                // Open the connection set the request header and get the response
+                                urlConn = (HttpURLConnection) newUrl.openConnection(
+                                        java.net.Proxy.NO_PROXY);
+                                urlConn.setInstanceFollowRedirects(false);
+                                urlConn.setConnectTimeout(SOCKET_TIMEOUT_MS);
+                                urlConn.setReadTimeout(SOCKET_TIMEOUT_MS);
+                                urlConn.setUseCaches(false);
+                                urlConn.setAllowUserInteraction(false);
+                                urlConn.setRequestProperty("Connection", "close");
+                                int responseCode = urlConn.getResponseCode();
+                                if (responseCode == 204) {
+                                    result = ConnectivityManager.CMP_RESULT_CODE_CONNECTABLE;
+                                } else {
+                                    result = ConnectivityManager.CMP_RESULT_CODE_REDIRECTED;
+                                }
+                                log("isMobileOk: connected responseCode=" + responseCode);
+                                urlConn.disconnect();
+                                urlConn = null;
+                                return result;
+                            } catch (Exception e) {
+                                log("isMobileOk: HttpURLConnection Exception e=" + e);
+                                if (urlConn != null) {
+                                    urlConn.disconnect();
+                                    urlConn = null;
+                                }
+                            }
+                        }
+                        result = ConnectivityManager.CMP_RESULT_CODE_NO_TCP_CONNECTION;
+                        log("isMobileOk: loops|timed out");
+                        return result;
+                    } catch (Exception e) {
+                        log("isMobileOk: Exception e=" + e);
+                        continue;
+                    }
+                }
+                log("isMobileOk: timed out");
+            } finally {
+                log("isMobileOk: F stop hipri");
+                mCs.setEnableFailFastMobileData(DctConstants.DISABLED);
+                mCs.stopUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
+                        Phone.FEATURE_ENABLE_HIPRI);
+                log("isMobileOk: X result=" + result);
+            }
+            return result;
+        }
+
+        @Override
+        protected Integer doInBackground(Params... params) {
+            return isMobileOk(params[0]);
+        }
+
+        @Override
+        protected void onPostExecute(Integer result) {
+            log("onPostExecute: result=" + result);
+            if ((mParams != null) && (mParams.mCb != null)) {
+                mParams.mCb.onComplete(result);
+            }
+        }
+
+        private String inetAddressesToString(InetAddress[] addresses) {
+            StringBuffer sb = new StringBuffer();
+            boolean firstTime = true;
+            for(InetAddress addr : addresses) {
+                if (firstTime) {
+                    firstTime = false;
+                } else {
+                    sb.append(",");
+                }
+                sb.append(addr);
+            }
+            return sb.toString();
+        }
+
+        private void printNetworkInfo() {
+            boolean hasIccCard = mTm.hasIccCard();
+            int simState = mTm.getSimState();
+            log("hasIccCard=" + hasIccCard
+                    + " simState=" + simState);
+            NetworkInfo[] ni = mCs.getAllNetworkInfo();
+            if (ni != null) {
+                log("ni.length=" + ni.length);
+                for (NetworkInfo netInfo: ni) {
+                    log("netInfo=" + netInfo.toString());
+                }
+            } else {
+                log("no network info ni=null");
+            }
+        }
+
+        /**
+         * Sleep for a few seconds then return.
+         * @param seconds
+         */
+        private static void sleep(int seconds) {
+            try {
+                Thread.sleep(seconds * 1000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+
+        public boolean hasIPv4Address(LinkProperties lp) {
+            return lp.hasIPv4Address();
+        }
+
+        // Not implemented in LinkProperties, do it here.
+        public boolean hasIPv6Address(LinkProperties lp) {
+            for (LinkAddress address : lp.getLinkAddresses()) {
+              if (address.getAddress() instanceof Inet6Address) {
+                return true;
+              }
+            }
+            return false;
+        }
+
+        private void log(String s) {
+            Slog.d(ConnectivityService.TAG, "[" + CHECKMP_TAG + "] " + s);
+        }
+    }
+
+    private static final String NOTIFICATION_ID = "CaptivePortal.Notification";
+
+    private void setNotificationVisible(boolean visible, NetworkInfo networkInfo, String url) {
+        log("setNotificationVisible: E visible=" + visible + " ni=" + networkInfo + " url=" + url);
+
+        Resources r = Resources.getSystem();
+        NotificationManager notificationManager = (NotificationManager) mContext
+            .getSystemService(Context.NOTIFICATION_SERVICE);
+
+        if (visible) {
+            CharSequence title;
+            CharSequence details;
+            int icon;
+            switch (networkInfo.getType()) {
+                case ConnectivityManager.TYPE_WIFI:
+                    log("setNotificationVisible: TYPE_WIFI");
+                    title = r.getString(R.string.wifi_available_sign_in, 0);
+                    details = r.getString(R.string.network_available_sign_in_detailed,
+                            networkInfo.getExtraInfo());
+                    icon = R.drawable.stat_notify_wifi_in_range;
+                    break;
+                case ConnectivityManager.TYPE_MOBILE:
+                case ConnectivityManager.TYPE_MOBILE_HIPRI:
+                    log("setNotificationVisible: TYPE_MOBILE|HIPRI");
+                    title = r.getString(R.string.network_available_sign_in, 0);
+                    // TODO: Change this to pull from NetworkInfo once a printable
+                    // name has been added to it
+                    details = mTelephonyManager.getNetworkOperatorName();
+                    icon = R.drawable.stat_notify_rssi_in_range;
+                    break;
+                default:
+                    log("setNotificationVisible: other type=" + networkInfo.getType());
+                    title = r.getString(R.string.network_available_sign_in, 0);
+                    details = r.getString(R.string.network_available_sign_in_detailed,
+                            networkInfo.getExtraInfo());
+                    icon = R.drawable.stat_notify_rssi_in_range;
+                    break;
+            }
+
+            Notification notification = new Notification();
+            notification.when = 0;
+            notification.icon = icon;
+            notification.flags = Notification.FLAG_AUTO_CANCEL;
+            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT |
+                    Intent.FLAG_ACTIVITY_NEW_TASK);
+            notification.contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
+            notification.tickerText = title;
+            notification.setLatestEventInfo(mContext, title, details, notification.contentIntent);
+
+            log("setNotificaitionVisible: notify notificaiton=" + notification);
+            notificationManager.notify(NOTIFICATION_ID, 1, notification);
+        } else {
+            log("setNotificaitionVisible: cancel");
+            notificationManager.cancel(NOTIFICATION_ID, 1);
+        }
+        log("setNotificationVisible: X visible=" + visible + " ni=" + networkInfo + " url=" + url);
+    }
+
+    private String getProvisioningUrl() {
+        String url = mContext.getResources().getString(R.string.mobile_provisioning_url);
+        log("getProvisioningUrl: mobile_provisioning_url=" + url);
+
+        // populate the iccid, imei and phone number in the provisioning url.
+        if (!TextUtils.isEmpty(url)) {
+            String phoneNumber = mTelephonyManager.getLine1Number();
+            if (TextUtils.isEmpty(phoneNumber)) {
+                phoneNumber = "0000000000";
+            }
+            url = String.format(url,
+                    mTelephonyManager.getSimSerialNumber() /* ICCID */,
+                    mTelephonyManager.getDeviceId() /* IMEI */,
+                    phoneNumber /* Phone numer */);
+        }
+
+        return url;
+    }
 }
index 2f8250f..f1e4b0c 100644 (file)
@@ -195,6 +195,9 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
 
     private int mCurrentUserId = UserHandle.USER_OWNER;
 
+    //TODO: Remove this hack
+    private boolean mInitialized;
+
     private UserState getCurrentUserStateLocked() {
         return getUserStateLocked(mCurrentUserId);
     }
@@ -771,6 +774,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
 
     private void switchUser(int userId) {
         synchronized (mLock) {
+            if (mCurrentUserId == userId && mInitialized) {
+                return;
+            }
+
             // Disconnect from services for the old user.
             UserState oldUserState = getUserStateLocked(mCurrentUserId);
             oldUserState.onSwitchToAnotherUser();
@@ -1283,6 +1290,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
     }
 
     private void onUserStateChangedLocked(UserState userState) {
+        // TODO: Remove this hack
+        mInitialized = true;
         updateLegacyCapabilities(userState);
         updateServicesLocked(userState);
         updateFilterKeyEventsLocked(userState);
index 054d213..aa82be3 100644 (file)
@@ -418,7 +418,7 @@ final class ActivityRecord {
             launchMode = aInfo.launchMode;
             
             AttributeCache.Entry ent = AttributeCache.instance().get(packageName,
-                    realTheme, com.android.internal.R.styleable.Window);
+                    realTheme, com.android.internal.R.styleable.Window, userId);
             fullscreen = ent != null && !ent.array.getBoolean(
                     com.android.internal.R.styleable.Window_windowIsFloating, false)
                     && !ent.array.getBoolean(
index 1203e02..6f70712 100644 (file)
@@ -1702,24 +1702,30 @@ public final class PowerManagerService extends IPowerManager.Stub
             new DisplayPowerController.Callbacks() {
         @Override
         public void onStateChanged() {
-            mDirty |= DIRTY_ACTUAL_DISPLAY_POWER_STATE_UPDATED;
-            updatePowerStateLocked();
+            synchronized (mLock) {
+                mDirty |= DIRTY_ACTUAL_DISPLAY_POWER_STATE_UPDATED;
+                updatePowerStateLocked();
+            }
         }
 
         @Override
         public void onProximityPositive() {
-            mProximityPositive = true;
-            mDirty |= DIRTY_PROXIMITY_POSITIVE;
-            updatePowerStateLocked();
+            synchronized (mLock) {
+                mProximityPositive = true;
+                mDirty |= DIRTY_PROXIMITY_POSITIVE;
+                updatePowerStateLocked();
+            }
         }
 
         @Override
         public void onProximityNegative() {
-            mProximityPositive = false;
-            mDirty |= DIRTY_PROXIMITY_POSITIVE;
-            userActivityNoUpdateLocked(SystemClock.uptimeMillis(),
-                    PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
-            updatePowerStateLocked();
+            synchronized (mLock) {
+                mProximityPositive = false;
+                mDirty |= DIRTY_PROXIMITY_POSITIVE;
+                userActivityNoUpdateLocked(SystemClock.uptimeMillis(),
+                        PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
+                updatePowerStateLocked();
+            }
         }
     };
 
index 66ef978..a70978e 100644 (file)
@@ -114,10 +114,6 @@ public final class WifiService extends IWifiManager.Stub {
     /* Tracks the persisted states for wi-fi & airplane mode */
     final WifiSettingsStore mSettingsStore;
 
-    /* The work source (UID) that triggered the current WIFI scan, synchronized
-     * on this */
-    private WorkSource mScanWorkSource;
-
     /**
      * Asynchronous channel to WifiStateMachine
      */
@@ -255,17 +251,6 @@ public final class WifiService extends IWifiManager.Stub {
                 },
                 new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED));
 
-        mContext.registerReceiver(
-                new BroadcastReceiver() {
-                    @Override
-                    public void onReceive(Context context, Intent intent) {
-                        if (intent.getAction().equals(
-                                WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
-                            noteScanEnd();
-                        }
-                    }
-                }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
-
         // Adding optimizations of only receiving broadcasts when wifi is enabled
         // can result in race conditions when apps toggle wifi in the background
         // without active user involvement. Always receive broadcasts.
@@ -274,44 +259,6 @@ public final class WifiService extends IWifiManager.Stub {
 
     private WifiController mWifiController;
 
-    /** Tell battery stats about a new WIFI scan */
-    private void noteScanStart() {
-        WorkSource scanWorkSource = null;
-        synchronized (WifiService.this) {
-            if (mScanWorkSource != null) {
-                // Scan already in progress, don't add this one to battery stats
-                return;
-            }
-            scanWorkSource = new WorkSource(Binder.getCallingUid());
-            mScanWorkSource = scanWorkSource;
-        }
-
-        long id = Binder.clearCallingIdentity();
-        try {
-            mBatteryStats.noteWifiScanStartedFromSource(scanWorkSource);
-        } catch (RemoteException e) {
-            Log.w(TAG, e);
-        } finally {
-            Binder.restoreCallingIdentity(id);
-        }
-    }
-
-    /** Tell battery stats that the current WIFI scan has completed */
-    private void noteScanEnd() {
-        WorkSource scanWorkSource = null;
-        synchronized (WifiService.this) {
-            scanWorkSource = mScanWorkSource;
-            mScanWorkSource = null;
-        }
-        if (scanWorkSource != null) {
-            try {
-                mBatteryStats.noteWifiScanStoppedFromSource(scanWorkSource);
-            } catch (RemoteException e) {
-                Log.w(TAG, e);
-            }
-        }
-    }
-
     /**
      * Check if Wi-Fi needs to be enabled and start
      * if needed
@@ -352,8 +299,7 @@ public final class WifiService extends IWifiManager.Stub {
      */
     public void startScan() {
         enforceChangePermission();
-        mWifiStateMachine.startScan();
-        noteScanStart();
+        mWifiStateMachine.startScan(Binder.getCallingUid());
     }
 
     private void enforceAccessPermission() {
index 30019e7..cd3daaa 100644 (file)
@@ -147,6 +147,8 @@ public class AppTransition implements Dump {
     private final Interpolator mDecelerateInterpolator;
     private final Interpolator mThumbnailFadeoutInterpolator;
 
+    private int mCurrentUserId = 0;
+
     AppTransition(Context context, Handler h) {
         mContext = context;
         mH = h;
@@ -259,7 +261,7 @@ public class AppTransition implements Dump {
             if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: picked package="
                     + packageName);
             return AttributeCache.instance().get(packageName, resId,
-                    com.android.internal.R.styleable.WindowAnimation);
+                    com.android.internal.R.styleable.WindowAnimation, mCurrentUserId);
         }
         return null;
     }
@@ -274,7 +276,7 @@ public class AppTransition implements Dump {
             if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: picked package="
                     + packageName);
             return AttributeCache.instance().get(packageName, resId,
-                    com.android.internal.R.styleable.WindowAnimation);
+                    com.android.internal.R.styleable.WindowAnimation, mCurrentUserId);
         }
         return null;
     }
@@ -758,4 +760,8 @@ public class AppTransition implements Dump {
             pw.println(mNextAppTransitionCallback);
         }
     }
+
+    public void setCurrentUser(int newUserId) {
+        mCurrentUserId = newUserId;
+    }
 }
index d966001..0e36032 100644 (file)
@@ -19,7 +19,6 @@ package com.android.server.wm;
 import com.android.server.input.InputManagerService;
 import com.android.server.input.InputApplicationHandle;
 import com.android.server.input.InputWindowHandle;
-import com.android.server.wm.WindowManagerService.AllWindowsIterator;
 
 import android.app.ActivityManagerNative;
 import android.graphics.Rect;
@@ -31,7 +30,6 @@ import android.view.InputChannel;
 import android.view.KeyEvent;
 import android.view.WindowManager;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 
 final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
@@ -249,45 +247,48 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
         }
 
         // Add all windows on the default display.
-        final AllWindowsIterator iterator = mService.new AllWindowsIterator(
-                WindowManagerService.REVERSE_ITERATOR);
-        while (iterator.hasNext()) {
-            final WindowState child = iterator.next();
-            final InputChannel inputChannel = child.mInputChannel;
-            final InputWindowHandle inputWindowHandle = child.mInputWindowHandle;
-            if (inputChannel == null || inputWindowHandle == null || child.mRemoved) {
-                // Skip this window because it cannot possibly receive input.
-                continue;
-            }
-            
-            final int flags = child.mAttrs.flags;
-            final int type = child.mAttrs.type;
-            
-            final boolean hasFocus = (child == mInputFocus);
-            final boolean isVisible = child.isVisibleLw();
-            final boolean hasWallpaper = (child == mService.mWallpaperTarget)
-                    && (type != WindowManager.LayoutParams.TYPE_KEYGUARD);
-            final boolean onDefaultDisplay = (child.getDisplayId() == Display.DEFAULT_DISPLAY);
-
-            // If there's a drag in progress and 'child' is a potential drop target,
-            // make sure it's been told about the drag
-            if (inDrag && isVisible && onDefaultDisplay) {
-                mService.mDragState.sendDragStartedIfNeededLw(child);
-            }
+        final int numDisplays = mService.mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final WindowList windows =
+                    mService.mDisplayContents.valueAt(displayNdx).getWindowList();
+            for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
+                final WindowState child = windows.get(winNdx);
+                final InputChannel inputChannel = child.mInputChannel;
+                final InputWindowHandle inputWindowHandle = child.mInputWindowHandle;
+                if (inputChannel == null || inputWindowHandle == null || child.mRemoved) {
+                    // Skip this window because it cannot possibly receive input.
+                    continue;
+                }
+
+                final int flags = child.mAttrs.flags;
+                final int type = child.mAttrs.type;
 
-            if (universeBackground != null && !addedUniverse
-                    && child.mBaseLayer < aboveUniverseLayer && onDefaultDisplay) {
-                final WindowState u = universeBackground.mWin;
-                if (u.mInputChannel != null && u.mInputWindowHandle != null) {
-                    addInputWindowHandleLw(u.mInputWindowHandle, u, u.mAttrs.flags,
-                            u.mAttrs.type, true, u == mInputFocus, false);
+                final boolean hasFocus = (child == mInputFocus);
+                final boolean isVisible = child.isVisibleLw();
+                final boolean hasWallpaper = (child == mService.mWallpaperTarget)
+                        && (type != WindowManager.LayoutParams.TYPE_KEYGUARD);
+                final boolean onDefaultDisplay = (child.getDisplayId() == Display.DEFAULT_DISPLAY);
+
+                // If there's a drag in progress and 'child' is a potential drop target,
+                // make sure it's been told about the drag
+                if (inDrag && isVisible && onDefaultDisplay) {
+                    mService.mDragState.sendDragStartedIfNeededLw(child);
                 }
-                addedUniverse = true;
-            }
 
-            if (child.mWinAnimator != universeBackground) {
-                addInputWindowHandleLw(inputWindowHandle, child, flags, type,
-                        isVisible, hasFocus, hasWallpaper);
+                if (universeBackground != null && !addedUniverse
+                        && child.mBaseLayer < aboveUniverseLayer && onDefaultDisplay) {
+                    final WindowState u = universeBackground.mWin;
+                    if (u.mInputChannel != null && u.mInputWindowHandle != null) {
+                        addInputWindowHandleLw(u.mInputWindowHandle, u, u.mAttrs.flags,
+                                u.mAttrs.type, true, u == mInputFocus, false);
+                    }
+                    addedUniverse = true;
+                }
+
+                if (child.mWinAnimator != universeBackground) {
+                    addInputWindowHandleLw(inputWindowHandle, child, flags, type,
+                            isVisible, hasFocus, hasWallpaper);
+                }
             }
         }
 
index 054a075..4252857 100644 (file)
@@ -26,7 +26,6 @@ import android.view.SurfaceControl;
 import android.view.WindowManagerPolicy;
 import android.view.animation.Animation;
 
-import com.android.server.wm.WindowManagerService.DisplayContentsIterator;
 import com.android.server.wm.WindowManagerService.LayoutFields;
 
 import java.io.PrintWriter;
@@ -627,9 +626,9 @@ public class WindowAnimator {
         }
 
         boolean hasPendingLayoutChanges = false;
-        DisplayContentsIterator iterator = mService.new DisplayContentsIterator();
-        while (iterator.hasNext()) {
-            final DisplayContent displayContent = iterator.next();
+        final int numDisplays = mService.mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final DisplayContent displayContent = mService.mDisplayContents.valueAt(displayNdx);
             final int pendingChanges = getPendingLayoutChanges(displayContent.getDisplayId());
             if ((pendingChanges & WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
                 mBulkUpdateParams |= SET_WALLPAPER_ACTION_PENDING;
index bc442ce..1399c16 100644 (file)
@@ -450,7 +450,7 @@ public class WindowManagerService extends IWindowManager.Stub
     String mLastANRState;
 
     /** All DisplayDontents in the world, kept here */
-    private SparseArray<DisplayContent> mDisplayContents = new SparseArray<DisplayContent>();
+    SparseArray<DisplayContent> mDisplayContents = new SparseArray<DisplayContent>();
 
     int mRotation = 0;
     int mForcedAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
@@ -3927,7 +3927,7 @@ public class WindowManagerService extends IWindowManager.Stub
                     + Integer.toHexString(theme));
             if (theme != 0) {
                 AttributeCache.Entry ent = AttributeCache.instance().get(pkg, theme,
-                        com.android.internal.R.styleable.Window);
+                        com.android.internal.R.styleable.Window, mCurrentUserId);
                 if (ent == null) {
                     // Whoops!  App doesn't exist.  Um.  Okay.  We'll just
                     // pretend like we didn't see that.
@@ -4426,10 +4426,13 @@ public class WindowManagerService extends IWindowManager.Stub
 
     void dumpWindowsLocked() {
         int i = 0;
-        final AllWindowsIterator iterator = new AllWindowsIterator(REVERSE_ITERATOR);
-        while (iterator.hasNext()) {
-            final WindowState w = iterator.next();
-            Slog.v(TAG, "  #" + i++ + ": " + w);
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+            for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
+                final WindowState w = windows.get(winNdx);
+                Slog.v(TAG, "  #" + i++ + ": " + w);
+            }
         }
     }
 
@@ -4574,9 +4577,9 @@ public class WindowManagerService extends IWindowManager.Stub
                 if (tmpRemoveAppWindowsLocked(wtoken)) {
                     if (DEBUG_REORDER) Slog.v(TAG, "Adding windows back in:");
                     if (DEBUG_REORDER) dumpWindowsLocked();
-                    DisplayContentsIterator iterator = new DisplayContentsIterator();
-                    while(iterator.hasNext()) {
-                        final DisplayContent displayContent = iterator.next();
+                    final int numDisplays = mDisplayContents.size();
+                    for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                        final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
                         final WindowList windows = displayContent.getWindowList();
                         final int pos = findWindowOffsetLocked(windows, index);
                         final int newPos = reAddAppWindowsLocked(displayContent, pos, wtoken);
@@ -4628,9 +4631,9 @@ public class WindowManagerService extends IWindowManager.Stub
         }
 
         // And now add them back at the correct place.
-        DisplayContentsIterator iterator = new DisplayContentsIterator();
-        while (iterator.hasNext()) {
-            final DisplayContent displayContent = iterator.next();
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
             final WindowList windows = displayContent.getWindowList();
             // Where to start adding?
             int pos = findWindowOffsetLocked(windows, tokenPos);
@@ -4846,13 +4849,17 @@ public class WindowManagerService extends IWindowManager.Stub
     @Override
     public void closeSystemDialogs(String reason) {
         synchronized(mWindowMap) {
-            final AllWindowsIterator iterator = new AllWindowsIterator();
-            while (iterator.hasNext()) {
-                final WindowState w = iterator.next();
-                if (w.mHasSurface) {
-                    try {
-                        w.mClient.closeSystemDialogs(reason);
-                    } catch (RemoteException e) {
+            final int numDisplays = mDisplayContents.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+                final int numWindows = windows.size();
+                for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
+                    final WindowState w = windows.get(winNdx);
+                    if (w.mHasSurface) {
+                        try {
+                            w.mClient.closeSystemDialogs(reason);
+                        } catch (RemoteException e) {
+                        }
                     }
                 }
             }
@@ -4981,12 +4988,14 @@ public class WindowManagerService extends IWindowManager.Stub
     public void setCurrentUser(final int newUserId) {
         synchronized (mWindowMap) {
             mCurrentUserId = newUserId;
+            mAppTransition.setCurrentUser(newUserId);
             mPolicy.setCurrentUserLw(newUserId);
 
             // Hide windows that should not be seen by the new user.
-            DisplayContentsIterator iterator = new DisplayContentsIterator();
-            while (iterator.hasNext()) {
-                final WindowList windows = iterator.next().getWindowList();
+            final int numDisplays = mDisplayContents.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
+                final WindowList windows = displayContent.getWindowList();
                 for (int i = 0; i < windows.size(); i++) {
                     final WindowState win = windows.get(i);
                     if (win.isHiddenFromUserLocked()) {
@@ -5242,12 +5251,16 @@ public class WindowManagerService extends IWindowManager.Stub
             // the background..)
             if (on) {
                 boolean isVisible = false;
-                final AllWindowsIterator iterator = new AllWindowsIterator();
-                while (iterator.hasNext()) {
-                    final WindowState ws = iterator.next();
-                    if (ws.mSession.mPid == pid && ws.isVisibleLw()) {
-                        isVisible = true;
-                        break;
+                final int numDisplays = mDisplayContents.size();
+                for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                    final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+                    final int numWindows = windows.size();
+                    for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
+                        final WindowState ws = windows.get(winNdx);
+                        if (ws.mSession.mPid == pid && ws.isVisibleLw()) {
+                            isVisible = true;
+                            break;
+                        }
                     }
                 }
                 if (!isVisible) {
@@ -5997,9 +6010,10 @@ public class WindowManagerService extends IWindowManager.Stub
         WindowList windows = new WindowList();
         synchronized (mWindowMap) {
             //noinspection unchecked
-            DisplayContentsIterator iterator = new DisplayContentsIterator();
-            while(iterator.hasNext()) {
-                windows.addAll(iterator.next().getWindowList());
+            final int numDisplays = mDisplayContents.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
+                windows.addAll(displayContent.getWindowList());
             }
         }
 
@@ -6227,11 +6241,15 @@ public class WindowManagerService extends IWindowManager.Stub
         }
 
         synchronized (mWindowMap) {
-            final AllWindowsIterator iterator = new AllWindowsIterator();
-            while (iterator.hasNext()) {
-                final WindowState w = iterator.next();
-                if (System.identityHashCode(w) == hashCode) {
-                    return w;
+            final int numDisplays = mDisplayContents.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+                final int numWindows = windows.size();
+                for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
+                    final WindowState w = windows.get(winNdx);
+                    if (System.identityHashCode(w) == hashCode) {
+                        return w;
+                    }
                 }
             }
         }
@@ -6779,12 +6797,16 @@ public class WindowManagerService extends IWindowManager.Stub
     // TODO(multidisplay): Call isScreenOn for each display.
     private void sendScreenStatusToClientsLocked() {
         final boolean on = mPowerManager.isScreenOn();
-        final AllWindowsIterator iterator = new AllWindowsIterator();
-        while (iterator.hasNext()) {
-            try {
-                iterator.next().mClient.dispatchScreenState(on);
-            } catch (RemoteException e) {
-                // Ignored
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+            final int numWindows = windows.size();
+            for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
+                try {
+                    windows.get(winNdx).mClient.dispatchScreenState(on);
+                } catch (RemoteException e) {
+                    // Ignored
+                }
             }
         }
     }
@@ -7628,9 +7650,9 @@ public class WindowManagerService extends IWindowManager.Stub
     }
 
     final void rebuildAppWindowListLocked() {
-        DisplayContentsIterator iterator = new DisplayContentsIterator();
-        while (iterator.hasNext()) {
-            rebuildAppWindowListLocked(iterator.next());
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            rebuildAppWindowListLocked(mDisplayContents.valueAt(displayNdx));
         }
     }
 
@@ -8593,9 +8615,9 @@ public class WindowManagerService extends IWindowManager.Stub
             boolean focusDisplayed = false;
             boolean updateAllDrawn = false;
 
-            DisplayContentsIterator iterator = new DisplayContentsIterator();
-            while (iterator.hasNext()) {
-                final DisplayContent displayContent = iterator.next();
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
                 WindowList windows = displayContent.getWindowList();
                 DisplayInfo displayInfo = displayContent.getDisplayInfo();
                 final int displayId = displayContent.getDisplayId();
@@ -9034,9 +9056,9 @@ public class WindowManagerService extends IWindowManager.Stub
             defaultDisplay.layoutNeeded = true;
         }
 
-        DisplayContentsIterator iterator = new DisplayContentsIterator();
-        while (iterator.hasNext()) {
-            DisplayContent displayContent = iterator.next();
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
             if (displayContent.pendingLayoutChanges != 0) {
                 displayContent.layoutNeeded = true;
             }
@@ -9223,9 +9245,10 @@ public class WindowManagerService extends IWindowManager.Stub
     }
 
     private boolean needsLayout() {
-        DisplayContentsIterator iterator = new DisplayContentsIterator();
-        while (iterator.hasNext()) {
-            if (iterator.next().layoutNeeded) {
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
+            if (displayContent.layoutNeeded) {
                 return true;
             }
         }
@@ -9286,35 +9309,38 @@ public class WindowManagerService extends IWindowManager.Stub
             // window list to make sure we haven't left any dangling surfaces
             // around.
 
-            AllWindowsIterator iterator = new AllWindowsIterator();
-            Slog.i(TAG, "Out of memory for surface!  Looking for leaks...");
-            while (iterator.hasNext()) {
-                WindowState ws = iterator.next();
-                WindowStateAnimator wsa = ws.mWinAnimator;
-                if (wsa.mSurfaceControl != null) {
-                    if (!mSessions.contains(wsa.mSession)) {
-                        Slog.w(TAG, "LEAKED SURFACE (session doesn't exist): "
-                                + ws + " surface=" + wsa.mSurfaceControl
-                                + " token=" + ws.mToken
-                                + " pid=" + ws.mSession.mPid
-                                + " uid=" + ws.mSession.mUid);
-                        if (SHOW_TRANSACTIONS) logSurface(ws, "LEAK DESTROY", null);
-                        wsa.mSurfaceControl.destroy();
-                        wsa.mSurfaceShown = false;
-                        wsa.mSurfaceControl = null;
-                        ws.mHasSurface = false;
-                        mForceRemoves.add(ws);
-                        leakedSurface = true;
-                    } else if (ws.mAppToken != null && ws.mAppToken.clientHidden) {
-                        Slog.w(TAG, "LEAKED SURFACE (app token hidden): "
-                                + ws + " surface=" + wsa.mSurfaceControl
-                                + " token=" + ws.mAppToken);
-                        if (SHOW_TRANSACTIONS) logSurface(ws, "LEAK DESTROY", null);
-                        wsa.mSurfaceControl.destroy();
-                        wsa.mSurfaceShown = false;
-                        wsa.mSurfaceControl = null;
-                        ws.mHasSurface = false;
-                        leakedSurface = true;
+            final int numDisplays = mDisplayContents.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+                final int numWindows = windows.size();
+                for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
+                    final WindowState ws = windows.get(winNdx);
+                    WindowStateAnimator wsa = ws.mWinAnimator;
+                    if (wsa.mSurfaceControl != null) {
+                        if (!mSessions.contains(wsa.mSession)) {
+                            Slog.w(TAG, "LEAKED SURFACE (session doesn't exist): "
+                                    + ws + " surface=" + wsa.mSurfaceControl
+                                    + " token=" + ws.mToken
+                                    + " pid=" + ws.mSession.mPid
+                                    + " uid=" + ws.mSession.mUid);
+                            if (SHOW_TRANSACTIONS) logSurface(ws, "LEAK DESTROY", null);
+                            wsa.mSurfaceControl.destroy();
+                            wsa.mSurfaceShown = false;
+                            wsa.mSurfaceControl = null;
+                            ws.mHasSurface = false;
+                            mForceRemoves.add(ws);
+                            leakedSurface = true;
+                        } else if (ws.mAppToken != null && ws.mAppToken.clientHidden) {
+                            Slog.w(TAG, "LEAKED SURFACE (app token hidden): "
+                                    + ws + " surface=" + wsa.mSurfaceControl
+                                    + " token=" + ws.mAppToken);
+                            if (SHOW_TRANSACTIONS) logSurface(ws, "LEAK DESTROY", null);
+                            wsa.mSurfaceControl.destroy();
+                            wsa.mSurfaceShown = false;
+                            wsa.mSurfaceControl = null;
+                            ws.mHasSurface = false;
+                            leakedSurface = true;
+                        }
                     }
                 }
             }
@@ -9322,27 +9348,30 @@ public class WindowManagerService extends IWindowManager.Stub
             if (!leakedSurface) {
                 Slog.w(TAG, "No leaked surfaces; killing applicatons!");
                 SparseIntArray pidCandidates = new SparseIntArray();
-                iterator = new AllWindowsIterator();
-                while (iterator.hasNext()) {
-                    WindowState ws = iterator.next();
-                    if (mForceRemoves.contains(ws)) {
-                        continue;
-                    }
-                    WindowStateAnimator wsa = ws.mWinAnimator;
-                    if (wsa.mSurfaceControl != null) {
-                        pidCandidates.append(wsa.mSession.mPid, wsa.mSession.mPid);
-                    }
-                }
-                if (pidCandidates.size() > 0) {
-                    int[] pids = new int[pidCandidates.size()];
-                    for (int i=0; i<pids.length; i++) {
-                        pids[i] = pidCandidates.keyAt(i);
+                for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                    final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+                    final int numWindows = windows.size();
+                    for (int winNdx = 0; winNdx < numWindows; ++winNdx) {
+                        final WindowState ws = windows.get(winNdx);
+                        if (mForceRemoves.contains(ws)) {
+                            continue;
+                        }
+                        WindowStateAnimator wsa = ws.mWinAnimator;
+                        if (wsa.mSurfaceControl != null) {
+                            pidCandidates.append(wsa.mSession.mPid, wsa.mSession.mPid);
+                        }
                     }
-                    try {
-                        if (mActivityManager.killPids(pids, "Free memory", secure)) {
-                            killedApps = true;
+                    if (pidCandidates.size() > 0) {
+                        int[] pids = new int[pidCandidates.size()];
+                        for (int i=0; i<pids.length; i++) {
+                            pids[i] = pidCandidates.keyAt(i);
+                        }
+                        try {
+                            if (mActivityManager.killPids(pids, "Free memory", secure)) {
+                                killedApps = true;
+                            }
+                        } catch (RemoteException e) {
                         }
-                    } catch (RemoteException e) {
                     }
                 }
             }
@@ -9973,9 +10002,9 @@ public class WindowManagerService extends IWindowManager.Stub
     void dumpDisplayContentsLocked(PrintWriter pw, boolean dumpAll) {
         pw.println("WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)");
         if (mDisplayReady) {
-            DisplayContentsIterator dCIterator = new DisplayContentsIterator();
-            while (dCIterator.hasNext()) {
-                dCIterator.next().dump("  ", pw);
+            final int numDisplays = mDisplayContents.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                mDisplayContents.valueAt(displayNdx).dump("  ", pw);
             }
         } else {
             pw.println("  NO DISPLAY");
@@ -9991,13 +10020,16 @@ public class WindowManagerService extends IWindowManager.Stub
     void dumpWindowsNoHeaderLocked(PrintWriter pw, boolean dumpAll,
             ArrayList<WindowState> windows) {
         int j = 0;
-        final AllWindowsIterator iterator = new AllWindowsIterator(REVERSE_ITERATOR);
-        while (iterator.hasNext()) {
-            final WindowState w = iterator.next();
-            if (windows == null || windows.contains(w)) {
-                pw.print("  Window #"); pw.print(j++); pw.print(' ');
-                        pw.print(w); pw.println(":");
-                w.dump(pw, "    ", dumpAll || windows != null);
+        final int numDisplays = mDisplayContents.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final WindowList windowList = mDisplayContents.valueAt(displayNdx).getWindowList();
+            for (int winNdx = windowList.size() - 1; winNdx >= 0; --winNdx) {
+                final WindowState w = windowList.get(winNdx);
+                if (windows == null || windows.contains(w)) {
+                    pw.print("  Window #"); pw.print(j++); pw.print(' ');
+                            pw.print(w); pw.println(":");
+                    w.dump(pw, "    ", dumpAll || windows != null);
+                }
             }
         }
         if (mInputMethodDialogs.size() > 0) {
@@ -10150,9 +10182,8 @@ public class WindowManagerService extends IWindowManager.Stub
                     pw.print(" mDisplayEnabled="); pw.println(mDisplayEnabled);
             if (needsLayout()) {
                 pw.print("  layoutNeeded on displays=");
-                DisplayContentsIterator dcIterator = new DisplayContentsIterator();
-                while (dcIterator.hasNext()) {
-                    final DisplayContent displayContent = dcIterator.next();
+                for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                    final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
                     if (displayContent.layoutNeeded) {
                         pw.print(displayContent.getDisplayId());
                     }
@@ -10186,11 +10217,15 @@ public class WindowManagerService extends IWindowManager.Stub
         WindowList windows = new WindowList();
         if ("visible".equals(name)) {
             synchronized(mWindowMap) {
-                final AllWindowsIterator iterator = new AllWindowsIterator(REVERSE_ITERATOR);
-                while (iterator.hasNext()) {
-                    final WindowState w = iterator.next();
-                    if (w.mWinAnimator.mSurfaceShown) {
-                        windows.add(w);
+                final int numDisplays = mDisplayContents.size();
+                for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                    final WindowList windowList =
+                            mDisplayContents.valueAt(displayNdx).getWindowList();
+                    for (int winNdx = windowList.size() - 1; winNdx >= 0; --winNdx) {
+                        final WindowState w = windowList.get(winNdx);
+                        if (w.mWinAnimator.mSurfaceShown) {
+                            windows.add(w);
+                        }
                     }
                 }
             }
@@ -10203,15 +10238,18 @@ public class WindowManagerService extends IWindowManager.Stub
             } catch (RuntimeException e) {
             }
             synchronized(mWindowMap) {
-                final AllWindowsIterator iterator = new AllWindowsIterator(REVERSE_ITERATOR);
-                while (iterator.hasNext()) {
-                    final WindowState w = iterator.next();
-                    if (name != null) {
-                        if (w.mAttrs.getTitle().toString().contains(name)) {
+                final int numDisplays = mDisplayContents.size();
+                for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                    final WindowList windowList = mDisplayContents.valueAt(displayNdx).getWindowList();
+                    for (int winNdx = windowList.size() - 1; winNdx >= 0; --winNdx) {
+                        final WindowState w = windowList.get(winNdx);
+                        if (name != null) {
+                            if (w.mAttrs.getTitle().toString().contains(name)) {
+                                windows.add(w);
+                            }
+                        } else if (System.identityHashCode(w) == objectId) {
                             windows.add(w);
                         }
-                    } else if (System.identityHashCode(w) == objectId) {
-                        windows.add(w);
                     }
                 }
             }
@@ -10455,87 +10493,6 @@ public class WindowManagerService extends IWindowManager.Stub
         return displayContent;
     }
 
-    class DisplayContentsIterator implements Iterator<DisplayContent> {
-        private int cur;
-
-        @Override
-        public boolean hasNext() {
-            return cur < mDisplayContents.size();
-        }
-
-        @Override
-        public DisplayContent next() {
-            if (hasNext()) {
-                return mDisplayContents.valueAt(cur++);
-            }
-            throw new NoSuchElementException();
-        }
-
-        @Override
-        public void remove() {
-            throw new IllegalArgumentException("AllDisplayContentIterator.remove not implemented");
-        }
-    }
-
-    final static boolean REVERSE_ITERATOR = true;
-    class AllWindowsIterator implements Iterator<WindowState> {
-        private DisplayContent mDisplayContent;
-        private DisplayContentsIterator mDisplayContentsIterator;
-        private WindowList mWindowList;
-        private int mWindowListIndex;
-        private boolean mReverse;
-
-        AllWindowsIterator() {
-            mDisplayContentsIterator = new DisplayContentsIterator();
-            mDisplayContent = mDisplayContentsIterator.next();
-            mWindowList = mDisplayContent.getWindowList();
-        }
-
-        AllWindowsIterator(boolean reverse) {
-            this();
-            mReverse = reverse;
-            mWindowListIndex = reverse ? mWindowList.size() - 1 : 0;
-        }
-
-        @Override
-        public boolean hasNext() {
-            if (mReverse) {
-                return mWindowListIndex >= 0;
-            }
-            return mWindowListIndex < mWindowList.size();
-        }
-
-        @Override
-        public WindowState next() {
-            if (hasNext()) {
-                WindowState win = mWindowList.get(mWindowListIndex);
-                if (mReverse) {
-                    mWindowListIndex--;
-                    if (mWindowListIndex < 0 && mDisplayContentsIterator.hasNext()) {
-                        mDisplayContent = mDisplayContentsIterator.next();
-                        mWindowList = mDisplayContent.getWindowList();
-                        mWindowListIndex = mWindowList.size() - 1;
-                    }
-                } else {
-                    mWindowListIndex++;
-                    if (mWindowListIndex >= mWindowList.size()
-                            && mDisplayContentsIterator.hasNext()) {
-                        mDisplayContent = mDisplayContentsIterator.next();
-                        mWindowList = mDisplayContent.getWindowList();
-                        mWindowListIndex = 0;
-                    }
-                }
-                return win;
-            }
-            throw new NoSuchElementException();
-        }
-
-        @Override
-        public void remove() {
-            throw new IllegalArgumentException("AllWindowsIterator.remove not implemented");
-        }
-    }
-
     // There is an inherent assumption that this will never return null.
     public DisplayContent getDefaultDisplayContentLocked() {
         return getDisplayContentLocked(Display.DEFAULT_DISPLAY);
index 26dde1e..4185aea 100644 (file)
@@ -1252,7 +1252,7 @@ public class TelephonyManager {
     public void listen(PhoneStateListener listener, int events) {
         String pkgForDebug = mContext != null ? mContext.getPackageName() : "<unknown>";
         try {
-            Boolean notifyNow = (getITelephony() != null);
+            Boolean notifyNow = true;
             sRegistry.listen(pkgForDebug, listener.callback, events, notifyNow);
         } catch (RemoteException ex) {
             // system process dead
index 9d556c0..4d8342c 100644 (file)
@@ -93,6 +93,7 @@ public class DctConstants {
     public static final int EVENT_ICC_CHANGED = BASE + 33;
     public static final int EVENT_DISCONNECT_DC_RETRYING = BASE + 34;
     public static final int EVENT_DATA_SETUP_COMPLETE_ERROR = BASE + 35;
+    public static final int CMD_SET_ENABLE_FAIL_FAST_MOBILE_DATA = BASE + 36;
 
     /***** Constants *****/
 
index ec76a8b..a3c172a 100644 (file)
@@ -70,6 +70,18 @@ public class WifiManager {
     public static final int ERROR_AUTHENTICATING = 1;
 
     /**
+     * Broadcast intent action indicating whether Wi-Fi scanning is allowed currently
+     * @hide
+     */
+    public static final String WIFI_SCAN_AVAILABLE = "wifi_scan_available";
+
+    /**
+     * Extra int indicating scan availability, WIFI_STATE_ENABLED and WIFI_STATE_DISABLED
+     * @hide
+     */
+     public static final String EXTRA_SCAN_AVAILABLE = "scan_enabled";
+
+    /**
      * Broadcast intent action indicating that Wi-Fi has been enabled, disabled,
      * enabling, disabling, or unknown. One extra provides this state as an int.
      * Another extra provides the previous state, if available.
index 3e3752e..0077354 100644 (file)
@@ -141,6 +141,8 @@ public class WifiStateMachine extends StateMachine {
     */
     private int mOperationalMode = CONNECT_MODE;
     private boolean mScanResultIsPending = false;
+    private WorkSource mScanWorkSource = null;
+    private static final int UNKNOWN_SCAN_SOURCE = -1;
     /* Tracks if state machine has received any screen state change broadcast yet.
      * We can miss one of these at boot.
      */
@@ -601,7 +603,7 @@ public class WifiStateMachine extends StateMachine {
                 new BroadcastReceiver() {
                     @Override
                     public void onReceive(Context context, Intent intent) {
-                        startScan();
+                        startScan(UNKNOWN_SCAN_SOURCE);
                     }
                 },
                 new IntentFilter(ACTION_START_SCAN));
@@ -694,6 +696,11 @@ public class WifiStateMachine extends StateMachine {
 
         //start the state machine
         start();
+
+        final Intent intent = new Intent(WifiManager.WIFI_SCAN_AVAILABLE);
+        intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+        intent.putExtra(WifiManager.EXTRA_SCAN_AVAILABLE, WIFI_STATE_DISABLED);
+        mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
     }
 
     /*********************************************************
@@ -716,8 +723,31 @@ public class WifiStateMachine extends StateMachine {
     /**
      * TODO: doc
      */
-    public void startScan() {
-        sendMessage(CMD_START_SCAN);
+    public void startScan(int callingUid) {
+        sendMessage(CMD_START_SCAN, callingUid);
+    }
+
+    private void noteScanStart(int callingUid) {
+        if (mScanWorkSource == null && callingUid != UNKNOWN_SCAN_SOURCE) {
+            mScanWorkSource = new WorkSource(callingUid);
+            try {
+                mBatteryStats.noteWifiScanStartedFromSource(mScanWorkSource);
+            } catch (RemoteException e) {
+                log(e.toString());
+            }
+        }
+    }
+
+    private void noteScanEnd() {
+        if (mScanWorkSource != null) {
+            try {
+                mBatteryStats.noteWifiScanStoppedFromSource(mScanWorkSource);
+            } catch (RemoteException e) {
+                log(e.toString());
+            } finally {
+                mScanWorkSource = null;
+            }
+        }
     }
 
     private void startScanNative(int type) {
@@ -1575,6 +1605,7 @@ public class WifiStateMachine extends StateMachine {
     }
 
     private void sendScanResultsAvailableBroadcast() {
+        noteScanEnd();
         Intent intent = new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
         intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
         mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
@@ -1740,6 +1771,14 @@ public class WifiStateMachine extends StateMachine {
         // TODO: Remove this comment when the driver is fixed.
         setSuspendOptimizationsNative(SUSPEND_DUE_TO_DHCP, false);
         mWifiNative.setPowerSave(false);
+
+        /* P2p discovery breaks dhcp, shut it down in order to get through this */
+        Message msg = new Message();
+        msg.what = WifiP2pService.BLOCK_DISCOVERY;
+        msg.arg1 = WifiP2pService.ENABLED;
+        msg.arg2 = DhcpStateMachine.CMD_PRE_DHCP_ACTION_COMPLETE;
+        msg.obj = mDhcpStateMachine;
+        mWifiP2pChannel.sendMessage(msg);
     }
 
 
@@ -1766,6 +1805,8 @@ public class WifiStateMachine extends StateMachine {
         setSuspendOptimizationsNative(SUSPEND_DUE_TO_DHCP, true);
         mWifiNative.setPowerSave(true);
 
+        mWifiP2pChannel.sendMessage(WifiP2pService.BLOCK_DISCOVERY, WifiP2pService.DISABLED);
+
         // Set the coexistence mode back to its default value
         mWifiNative.setBluetoothCoexistenceMode(
                 mWifiNative.BLUETOOTH_COEXISTENCE_MODE_SENSE);
@@ -1919,6 +1960,7 @@ public class WifiStateMachine extends StateMachine {
                     }
                     break;
                     /* Discard */
+                case CMD_START_SCAN:
                 case CMD_START_SUPPLICANT:
                 case CMD_STOP_SUPPLICANT:
                 case CMD_STOP_SUPPLICANT_FAILED:
@@ -1933,7 +1975,6 @@ public class WifiStateMachine extends StateMachine {
                 case CMD_STOP_AP:
                 case CMD_TETHER_STATE_CHANGE:
                 case CMD_TETHER_NOTIFICATION_TIMED_OUT:
-                case CMD_START_SCAN:
                 case CMD_DISCONNECT:
                 case CMD_RECONNECT:
                 case CMD_REASSOCIATE:
@@ -2436,11 +2477,18 @@ public class WifiStateMachine extends StateMachine {
             mWifiNative.setPowerSave(true);
 
             if (mP2pSupported) mWifiP2pChannel.sendMessage(WifiStateMachine.CMD_ENABLE_P2P);
+
+            final Intent intent = new Intent(WifiManager.WIFI_SCAN_AVAILABLE);
+            intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+            intent.putExtra(WifiManager.EXTRA_SCAN_AVAILABLE, WIFI_STATE_ENABLED);
+            mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
         }
+
         @Override
         public boolean processMessage(Message message) {
             switch(message.what) {
                 case CMD_START_SCAN:
+                    noteScanStart(message.arg1);
                     startScanNative(WifiNative.SCAN_WITH_CONNECTION_SETUP);
                     break;
                 case CMD_SET_COUNTRY_CODE:
@@ -2561,6 +2609,12 @@ public class WifiStateMachine extends StateMachine {
             mIsRunning = false;
             updateBatteryWorkSource(null);
             mScanResults = new ArrayList<ScanResult>();
+
+            final Intent intent = new Intent(WifiManager.WIFI_SCAN_AVAILABLE);
+            intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+            intent.putExtra(WifiManager.EXTRA_SCAN_AVAILABLE, WIFI_STATE_DISABLED);
+            mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
+            noteScanEnd(); // wrap up any pending request.
         }
     }
 
@@ -2711,6 +2765,7 @@ public class WifiStateMachine extends StateMachine {
                 // Handle scan. All the connection related commands are
                 // handled only in ConnectModeState
                 case CMD_START_SCAN:
+                    noteScanStart(message.arg1);
                     startScanNative(WifiNative.SCAN_WITHOUT_CONNECTION_SETUP);
                     break;
                 default:
@@ -2941,7 +2996,6 @@ public class WifiStateMachine extends StateMachine {
             switch (message.what) {
               case DhcpStateMachine.CMD_PRE_DHCP_ACTION:
                   handlePreDhcpSetup();
-                  mDhcpStateMachine.sendMessage(DhcpStateMachine.CMD_PRE_DHCP_ACTION_COMPLETE);
                   break;
               case DhcpStateMachine.CMD_POST_DHCP_ACTION:
                   handlePostDhcpSetup();
@@ -2974,6 +3028,7 @@ public class WifiStateMachine extends StateMachine {
                     break;
                 case CMD_START_SCAN:
                     /* Do not attempt to connect when we are already connected */
+                    noteScanStart(message.arg1);
                     startScanNative(WifiNative.SCAN_WITHOUT_CONNECTION_SETUP);
                     break;
                     /* Ignore connection to same network */
@@ -3291,7 +3346,7 @@ public class WifiStateMachine extends StateMachine {
                     if (mP2pConnected.get()) break;
                     if (message.arg1 == mPeriodicScanToken &&
                             mWifiConfigStore.getConfiguredNetworks().size() == 0) {
-                        sendMessage(CMD_START_SCAN);
+                        sendMessage(CMD_START_SCAN, UNKNOWN_SCAN_SOURCE);
                         sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
                                     ++mPeriodicScanToken, 0), mSupplicantScanIntervalMs);
                     }
index 4cfc4ac..68a082a 100644 (file)
@@ -166,6 +166,16 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
 
     public static final int SET_MIRACAST_MODE               =   BASE + 14;
 
+    // During dhcp (and perhaps other times) we can't afford to drop packets
+    // but Discovery will switch our channel enough we will.
+    //   msg.arg1 = ENABLED for blocking, DISABLED for resumed.
+    //   msg.arg2 = msg to send when blocked
+    //   msg.obj  = StateMachine to send to when blocked
+    public static final int BLOCK_DISCOVERY                 =   BASE + 15;
+
+    public static final int ENABLED                         = 1;
+    public static final int DISABLED                        = 0;
+
     private final boolean mP2pSupported;
 
     private WifiP2pDevice mThisDevice = new WifiP2pDevice();
@@ -182,6 +192,15 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
      * broadcasts
      */
     private boolean mDiscoveryStarted;
+    /* Track whether servcice/peer discovery is blocked in favor of other wifi actions
+     * (notably dhcp)
+     */
+    private boolean mDiscoveryBlocked;
+
+    /*
+     * remember if we were in a scan when it had to be stopped
+     */
+    private boolean mDiscoveryPostponed = false;
 
     private NetworkInfo mNetworkInfo;
 
@@ -479,6 +498,20 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
                     AsyncChannel ac = new AsyncChannel();
                     ac.connect(mContext, getHandler(), message.replyTo);
                     break;
+                case BLOCK_DISCOVERY:
+                    mDiscoveryBlocked = (message.arg1 == ENABLED ? true : false);
+                    // always reset this - we went to a state that doesn't support discovery so
+                    // it would have stopped regardless
+                    mDiscoveryPostponed = false;
+                    if (mDiscoveryBlocked) {
+                        try {
+                            StateMachine m = (StateMachine)message.obj;
+                            m.sendMessage(message.arg2);
+                        } catch (Exception e) {
+                            loge("unable to send BLOCK_DISCOVERY response: " + e);
+                        }
+                    }
+                    break;
                 case WifiP2pManager.DISCOVER_PEERS:
                     replyToMessage(message, WifiP2pManager.DISCOVER_PEERS_FAILED,
                             WifiP2pManager.BUSY);
@@ -851,7 +884,33 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
                     }
                     break;
                 }
+                case BLOCK_DISCOVERY:
+                    boolean blocked = (message.arg1 == ENABLED ? true : false);
+                    if (mDiscoveryBlocked == blocked) break;
+                    mDiscoveryBlocked = blocked;
+                    if (blocked && mDiscoveryStarted) {
+                        mWifiNative.p2pStopFind();
+                        mDiscoveryPostponed = true;
+                    }
+                    if (!blocked && mDiscoveryPostponed) {
+                        mDiscoveryPostponed = false;
+                        mWifiNative.p2pFind(DISCOVER_TIMEOUT_S);
+                    }
+                    if (blocked) {
+                        try {
+                            StateMachine m = (StateMachine)message.obj;
+                            m.sendMessage(message.arg2);
+                        } catch (Exception e) {
+                            loge("unable to send BLOCK_DISCOVERY response: " + e);
+                        }
+                    }
+                    break;
                 case WifiP2pManager.DISCOVER_PEERS:
+                    if (mDiscoveryBlocked) {
+                        replyToMessage(message, WifiP2pManager.DISCOVER_PEERS_FAILED,
+                                WifiP2pManager.BUSY);
+                        break;
+                    }
                     // do not send service discovery request while normal find operation.
                     clearSupplicantServiceRequest();
                     if (mWifiNative.p2pFind(DISCOVER_TIMEOUT_S)) {
@@ -874,6 +933,11 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
                     }
                     break;
                 case WifiP2pManager.DISCOVER_SERVICES:
+                    if (mDiscoveryBlocked) {
+                        replyToMessage(message, WifiP2pManager.DISCOVER_SERVICES_FAILED,
+                                WifiP2pManager.BUSY);
+                        break;
+                    }
                     if (DBG) logd(getName() + " discover services");
                     if (!updateSupplicantServiceRequest()) {
                         replyToMessage(message, WifiP2pManager.DISCOVER_SERVICES_FAILED,