19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2016 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 569a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * you may not use this file except in compliance with the License. 669a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * You may obtain a copy of the License at 769a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 969a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1169a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 1269a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1369a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * See the License for the specific language governing permissions and 1469a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.hardware.location; 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.annotation.SystemApi; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.hardware.contexthub.V1_0.ContextHub; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 210795272aa226f4e965968a03daddc53ce30b7cdaMathias Agopianimport android.os.Parcelable; 220795272aa226f4e965968a03daddc53ce30b7cdaMathias Agopian 23a23fcd7be8e40078a913b1a99222cdd89229e67bNarayan Kamathimport java.util.Arrays; 24f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 270769e550011d8f8a19e333efe1706ef0e6cc6a5fColin Cross */ 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project@SystemApi 29ed6b9dff563c5e22f040ff37e12c0d771e0478aeAndreas Gampepublic class ContextHubInfo implements Parcelable { 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mId; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mName; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mVendor; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mToolchain; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mPlatformVersion; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mToolchainVersion; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float mPeakMips; 37c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn private float mStoppedPowerDrawMw; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float mSleepPowerDrawMw; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float mPeakPowerDrawMw; 40c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn private int mMaxPacketLengthBytes; 41c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn private byte mChreApiMajorVersion; 42c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn private byte mChreApiMinorVersion; 43c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn private short mChrePatchVersion; 446af763bec7c3f4d50fee8dd0046409bb8a7fe8f6Glenn Kasten private long mChrePlatformId; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 46160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate private int[] mSupportedSensors; 47a5109a878eeff22e32ee5ce1b1cd15e8daad5234San Mehat 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private MemoryRegion[] mMemoryRegions; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 500f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe /* 510f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * TODO(b/67734082): Deprecate this constructor and mark private fields as final. 520f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe */ 53160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate public ContextHubInfo() { 54160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate } 55160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate 56160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate /** 57160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate * @hide 58f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten */ 59f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten public ContextHubInfo(ContextHub contextHub) { 606793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten mId = contextHub.hubId; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mName = contextHub.name; 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mVendor = contextHub.vendor; 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mToolchain = contextHub.toolchain; 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPlatformVersion = contextHub.platformVersion; 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mToolchainVersion = contextHub.toolchainVersion; 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPeakMips = contextHub.peakMips; 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStoppedPowerDrawMw = contextHub.stoppedPowerDrawMw; 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSleepPowerDrawMw = contextHub.sleepPowerDrawMw; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mPeakPowerDrawMw = contextHub.peakPowerDrawMw; 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMaxPacketLengthBytes = contextHub.maxSupportedMsgLen; 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mChrePlatformId = contextHub.chrePlatformId; 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mChreApiMajorVersion = contextHub.chreApiMajorVersion; 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mChreApiMinorVersion = contextHub.chreApiMinorVersion; 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mChrePatchVersion = contextHub.chrePatchVersion; 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mSupportedSensors = new int[0]; 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMemoryRegions = new MemoryRegion[0]; 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 816793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten * returns the maximum number of bytes that can be sent per message to the hub 82e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * 83e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * @return int - maximum bytes that can be transmitted in a 84e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * single packet 85e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat */ 86e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat public int getMaxPacketLengthBytes() { 87e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat return mMaxPacketLengthBytes; 88e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat } 89e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat 90e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat /** 91e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * get the context hub unique identifer 92e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * 93e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * @return int - unique system wide identifier 94e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat */ 95e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat public int getId() { 96e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat return mId; 97e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat } 98e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat 99e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat /** 100e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * get a string as a hub name 101e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return String - a name for the hub 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getName() { 10569a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes return mName; 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10869a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes /** 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * get a string as the vendor name 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return String - a name for the vendor 1126698749dd4d4d6513b26aa9071af290b956b68a7Dan Albert */ 1136698749dd4d4d6513b26aa9071af290b956b68a7Dan Albert public String getVendor() { 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mVendor; 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * get tool chain string 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return String - description of the tool chain 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getToolchain() { 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mToolchain; 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * get platform version 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return int - platform version number 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getPlatformVersion() { 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPlatformVersion; 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * get static platform version number 13769a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return int - platform version number 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14069a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes public int getStaticSwVersion() { 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (mChreApiMajorVersion << 24) | (mChreApiMinorVersion << 16) | (mChrePatchVersion); 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1446698749dd4d4d6513b26aa9071af290b956b68a7Dan Albert /** 1456698749dd4d4d6513b26aa9071af290b956b68a7Dan Albert * get the tool chain version 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return int - the tool chain version 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getToolchainVersion() { 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mToolchainVersion; 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * get the peak processing mips the hub can support 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return float - peak MIPS that this hub can deliver 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getPeakMips() { 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPeakMips; 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * get the stopped power draw in milliwatts 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This assumes that the hub enter a stopped state - which is 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * different from the sleep state. Latencies on exiting the 166f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * sleep state are typically higher and expect to be in multiple 167e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat * milliseconds. 168c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn * 169f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * @return float - power draw by the hub in stopped state 170f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten */ 171887f355f99ff83d568ef2885a4fdcaae475583dfDianne Hackborn public float getStoppedPowerDrawMw() { 172f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten return mStoppedPowerDrawMw; 173e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat } 174e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat 175e9d376b801b7890b1ef5006ed55de4208e64bb63San Mehat /** 17669a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes * get the power draw of the hub in sleep mode. This assumes 1773e458241d9930465a20a861ecb42744355d48e48San Mehat * that the hub supports a sleep mode in which the power draw is 178c6a410164e1fd728cf7873493baacca7bc29548dMark Salyzyn * lower than the power consumed when the hub is actively 1793e458241d9930465a20a861ecb42744355d48e48San Mehat * processing. As a guideline, assume that the hub should be 1803e458241d9930465a20a861ecb42744355d48e48San Mehat * able to enter sleep mode if it knows reliably on completion 1813e458241d9930465a20a861ecb42744355d48e48San Mehat * of some task that the next interrupt/scheduled work item is 1823e458241d9930465a20a861ecb42744355d48e48San Mehat * at least 250 milliseconds later. 183f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * 1846793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten * @return float - sleep power draw in milli watts 1853e458241d9930465a20a861ecb42744355d48e48San Mehat */ 1863e458241d9930465a20a861ecb42744355d48e48San Mehat public float getSleepPowerDrawMw() { 1873e458241d9930465a20a861ecb42744355d48e48San Mehat return mSleepPowerDrawMw; 188f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten } 189f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten 190f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten /** 191f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * get the peak powe draw of the hub. This is the power consumed 192f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * by the hub at maximum load. 193f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * 194f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten * @return float - peak power draw 1950f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe */ 1960f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe public float getPeakPowerDrawMw() { 1970f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe return mPeakPowerDrawMw; 198a5109a878eeff22e32ee5ce1b1cd15e8daad5234San Mehat } 1990f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe 200a5109a878eeff22e32ee5ce1b1cd15e8daad5234San Mehat /** 2010f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * get the sensors supported by this hub 2020f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * 2030f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * @return int[] - all the supported sensors on this hub 2040f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * 2050f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * @see ContextHubManager 2060f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe */ 2070f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe public int[] getSupportedSensors() { 20869a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes return Arrays.copyOf(mSupportedSensors, mSupportedSensors.length); 2090f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe } 2100f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe 2110f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe /** 2120f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * get the various memory regions on this hub 2130f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * 214a5109a878eeff22e32ee5ce1b1cd15e8daad5234San Mehat * @return MemoryRegion[] - all the memory regions on this hub 2150f0b4919667f418b249c497f5ad3e83fdf4437e5Andreas Gampe * 2163e458241d9930465a20a861ecb42744355d48e48San Mehat * @see MemoryRegion 2173e458241d9930465a20a861ecb42744355d48e48San Mehat */ 2181fd0ec738b0a2b97cc28701aa37b1a9869afc684San Mehat public MemoryRegion[] getMemoryRegions() { 2191fd0ec738b0a2b97cc28701aa37b1a9869afc684San Mehat return Arrays.copyOf(mMemoryRegions, mMemoryRegions.length); 2206793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten } 2213e458241d9930465a20a861ecb42744355d48e48San Mehat 2223e458241d9930465a20a861ecb42744355d48e48San Mehat /** 2233e458241d9930465a20a861ecb42744355d48e48San Mehat * @return the CHRE platform ID as defined in chre/version.h 2243e458241d9930465a20a861ecb42744355d48e48San Mehat */ 2257e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat public long getChrePlatformId() { 2267e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat return mChrePlatformId; 2277e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat } 2283e458241d9930465a20a861ecb42744355d48e48San Mehat 2293e458241d9930465a20a861ecb42744355d48e48San Mehat /** 2307e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat * @return the CHRE API's major version as defined in chre/version.h 2317e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat */ 2327e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat public byte getChreApiMajorVersion() { 2333762c311729fe9f3af085c14c5c1fb471d994c03Steve Block return mChreApiMajorVersion; 2347e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat } 2357e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat 2361fd0ec738b0a2b97cc28701aa37b1a9869afc684San Mehat /** 23707b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten * @return the CHRE API's minor version as defined in chre/version.h 23807b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten */ 23907b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten public byte getChreApiMinorVersion() { 24007b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten return mChreApiMinorVersion; 24107b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten } 2429e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray 2439e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray /** 24407b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten * @return the CHRE patch version as defined in chre/version.h 24507b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten */ 24607b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten public short getChrePatchVersion() { 2477e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat return mChrePatchVersion; 24807b0465095bd9ab3412caefa4fcacbdc3825c64bGlenn Kasten } 249f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten 250f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten @Override 2519e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray public String toString() { 2529e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray String retVal = ""; 2539e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += "ID/handle : " + mId; 2549e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += ", Name : " + mName; 2559e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += "\n\tVendor : " + mVendor; 2569e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += ", Toolchain : " + mToolchain; 2579e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += ", Toolchain version: 0x" + Integer.toHexString(mToolchainVersion); 2589e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += "\n\tPlatformVersion : 0x" + Integer.toHexString(mPlatformVersion); 259f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten retVal += ", SwVersion : " 260f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten + mChreApiMajorVersion + "." + mChreApiMinorVersion + "." + mChrePatchVersion; 2617e63789a0e0689d940609b1daceebc1bc08dcbefSan Mehat retVal += ", CHRE platform ID: 0x" + Long.toHexString(mChrePlatformId); 2629e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += "\n\tPeakMips : " + mPeakMips; 2639e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += ", StoppedPowerDraw : " + mStoppedPowerDrawMw + " mW"; 2649e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += ", PeakPowerDraw : " + mPeakPowerDrawMw + " mW"; 2659e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray retVal += ", MaxPacketLength : " + mMaxPacketLengthBytes + " Bytes"; 2669e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray 2679e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray return retVal; 2689e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray } 2699e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray 2709e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray private ContextHubInfo(Parcel in) { 27169a017bc1d1649350f830dfada5c6ed5eac0b770Elliott Hughes mId = in.readInt(); 2729e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray mName = in.readString(); 273f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten mVendor = in.readString(); 274f1b56449f58963e4f0473d5e26961f68c31759f4Glenn Kasten mToolchain = in.readString(); 2750a42b811aea490a9a605b75f0320101f6eafd283San Mehat mPlatformVersion = in.readInt(); 276242d65bf9faf1d2bc3468490e510551140e23462San Mehat mToolchainVersion = in.readInt(); 2779e41c7479ccaedb89a89a58079570ca0ee0e3727Tim Murray mPeakMips = in.readFloat(); 2783e458241d9930465a20a861ecb42744355d48e48San Mehat mStoppedPowerDrawMw = in.readFloat(); 2793e458241d9930465a20a861ecb42744355d48e48San Mehat mSleepPowerDrawMw = in.readFloat(); 2803e458241d9930465a20a861ecb42744355d48e48San Mehat mPeakPowerDrawMw = in.readFloat(); 2813e458241d9930465a20a861ecb42744355d48e48San Mehat mMaxPacketLengthBytes = in.readInt(); 2829e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey mChrePlatformId = in.readLong(); 2839e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey mChreApiMajorVersion = in.readByte(); 2849e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey mChreApiMinorVersion = in.readByte(); 2859e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey mChrePatchVersion = (short) in.readInt(); 2869e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey 2879e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey int numSupportedSensors = in.readInt(); 2889e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey mSupportedSensors = new int[numSupportedSensors]; 2899e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey in.readIntArray(mSupportedSensors); 2909e57c414f39e1a31349bc215635fdcfaf1902ceeJeff Sharkey mMemoryRegions = in.createTypedArray(MemoryRegion.CREATOR); 291160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate } 292160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate 293160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate public int describeContents() { 294160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate return 0; 29506451fe081d5ae79121a6f301475c7042f7f3a5dElliott Hughes } 296160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate 297160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate public void writeToParcel(Parcel out, int flags) { 298160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeInt(mId); 299160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeString(mName); 300160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeString(mVendor); 301160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeString(mToolchain); 302160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeInt(mPlatformVersion); 303160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeInt(mToolchainVersion); 304160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeFloat(mPeakMips); 305160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeFloat(mStoppedPowerDrawMw); 306160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeFloat(mSleepPowerDrawMw); 307160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate out.writeFloat(mPeakPowerDrawMw); 3086793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten out.writeInt(mMaxPacketLengthBytes); 3096793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten out.writeLong(mChrePlatformId); 3106793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten out.writeByte(mChreApiMajorVersion); 31165b4a68669227a57696e0e7ed1e4ef8da2705d9eYabin Cui out.writeByte(mChreApiMinorVersion); 31265b4a68669227a57696e0e7ed1e4ef8da2705d9eYabin Cui out.writeInt(mChrePatchVersion); 3136793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten 3146793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten out.writeInt(mSupportedSensors.length); 3156793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten out.writeIntArray(mSupportedSensors); 3166793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten out.writeTypedArray(mMemoryRegions, flags); 3176793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten } 3186793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten 319cc767191cfb675f744e0165608b0a4196aba2b37Glenn Kasten public static final Parcelable.Creator<ContextHubInfo> CREATOR 320cc767191cfb675f744e0165608b0a4196aba2b37Glenn Kasten = new Parcelable.Creator<ContextHubInfo>() { 321cc767191cfb675f744e0165608b0a4196aba2b37Glenn Kasten public ContextHubInfo createFromParcel(Parcel in) { 3226793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten return new ContextHubInfo(in); 3236793ac943afeb16642f477c43ddfd27e498db37bGlenn Kasten } 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContextHubInfo[] newArray(int size) { 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ContextHubInfo[size]; 327160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate } 328160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate }; 329160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate} 330160edb3645f8b7012bab70ae6e6e8c4a5733082bChristopher Tate