OSDN Git Service
Jakub Pawlowski [Thu, 19 Jan 2017 14:51:18 +0000 (14:51 +0000)]
Fix bad UUID comparison when adding GATT service
am:
33f424d493
Change-Id: I8552b9aa41c0852672a5ecf63ea39b8a289d27df
Jakub Pawlowski [Thu, 19 Jan 2017 06:58:53 +0000 (22:58 -0800)]
Fix bad UUID comparison when adding GATT service
This patch fixes bad comparison in add_service_impl. Instead of checking
wether service is one of two excluded services, it was excluding all
services.
Test: sl4a GatReadTest
Bug:
34280184
Change-Id: I3195e94b6fafe4d2e3c61fc7bfd7398c2855b78e
Jorge E. Moreira [Thu, 19 Jan 2017 14:30:13 +0000 (14:30 +0000)]
Merge "test_vendor: Make tryStartThread return 0 on success"
am:
91b994faa6
Change-Id: I54671e84b39953a5e38e7b41a5275800de9c06b4
Treehugger Robot [Thu, 19 Jan 2017 14:26:33 +0000 (14:26 +0000)]
Merge "test_vendor: Make tryStartThread return 0 on success"
Jorge E. Moreira [Thu, 19 Jan 2017 00:34:42 +0000 (16:34 -0800)]
test_vendor: Make tryStartThread return 0 on success
Test: Start the test vendor library with no error message
Bug:
34357009
Change-Id: Id2821199ad675e2b95a9f333afa803dcced811a3
Jack He [Thu, 19 Jan 2017 03:37:37 +0000 (03:37 +0000)]
Fix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR
am:
a643b5b0df
Change-Id: I3c4d7ccfcfbcb0faa151776ecd325891d14f38f5
Jack He [Thu, 19 Jan 2017 01:14:08 +0000 (17:14 -0800)]
Fix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR
* Current parser does not support multi-directory lists, which may cause
a build failure if BoardConfig.mk defines one.
* This CL splits the list of directories using whitespace and adds them
individually to the include list
Bug:
34396100
Test: Code compilation, no user visible effect
Change-Id: I59e901d76d1bc20f50b54941a3007c5521ded214
Jack He [Wed, 18 Jan 2017 22:19:17 +0000 (22:19 +0000)]
Convert build system to soong using Android.bp
am:
e2eeff4f7f
Change-Id: I1caf32ca845b33d414582f972e89229949c439cf
Jack He [Thu, 8 Dec 2016 02:25:17 +0000 (18:25 -0800)]
Convert build system to soong using Android.bp
* Convert top level Android.mk into build templates in build/Android.bp
and build/fluoride.go
* Initial conversion is done by "androidmk Android.mk > Android.bp"
* Android.bp does not allow source inclusion from external directories
and therefore they have to be made in to cc_library_static in their
respective sub-directories and linked using whole_static_libs in the
modules where they are used
* As Android.bp does not allow multiple modules of the same name,
same-name mudules for different target are merged into one definition
with target specific setup
* Generated proto header path has to be changed in osi/src/metrics.cc as
Android.bp only generate header path relative to the Android.bp file
instead of top-level directory such as system/bt
* Android.bp does not support resource copying yet and hence conf files
are left un-touched.
* Android.bp does support conditional module declaration and therefore
test-vendor libs are left untouched except for unit tests
* The goal of this CL is to direct (almost) translate Android.mk to
Android.bp first with Android.bp specific optimizations coming later
Bug:
32958753
Test: Code compilation, manual testing by test team
Change-Id: I5249e1f2135c4121205619b1d735ce448feb7499
Sanket Agarwal [Wed, 18 Jan 2017 20:41:06 +0000 (20:41 +0000)]
Merge "HF CLIENT BTA: Reduce logging for non-allocated blocks"
am:
7b70d1e420
Change-Id: I4a196410b5517c2a4231deea4b12c79c6b1e3b3f
Treehugger Robot [Wed, 18 Jan 2017 20:34:59 +0000 (20:34 +0000)]
Merge "HF CLIENT BTA: Reduce logging for non-allocated blocks"
Hemant Gupta [Wed, 18 Jan 2017 20:16:04 +0000 (20:16 +0000)]
HID: Prevent crash by Cancelling SDP during cleanup
am:
8ed9a77792
Change-Id: I6020ab9443f3e674511ef88116fcaa0ea9a727ba
Sanket Agarwal [Wed, 18 Jan 2017 01:37:10 +0000 (17:37 -0800)]
HF CLIENT BTA: Reduce logging for non-allocated blocks
Bug: b/
33552136
Test: adb shell dumpsys bluetooth_manager
Change-Id: I3cb6c28bffe6b335cf82cac63dc78ce4957d78f4
Hemant Gupta [Fri, 9 Dec 2016 17:40:10 +0000 (23:10 +0530)]
HID: Prevent crash by Cancelling SDP during cleanup
Usecase:
1) User tried to connect to HID Device.
2) SDP is internally performed by DUT. SDP is at stage,
where L2CAP connection, configuration is done, and data
fetch is ongoing.
3) BT was turned off from UI.
Observation:
BT crashed while accessing memory that was freed already because BT turn off,
caused ACL disconnection, leading to L2CAP disconnect indication in stack,
leading to sdp disconnect indication.
backtrace:
#00 pc
000f98d4 /system/lib/hw/bluetooth.default.so (SDP_FindServiceUUIDInDb+51)
#01 pc
000b5dbd /system/lib/hw/bluetooth.default.so (hidh_search_callback+0x40)
#02 pc
000f770b /system/lib/hw/bluetooth.default.so (sdp_disconnect_ind+0x5e)
#03 pc
00107a5f /system/lib/hw/bluetooth.default.so (l2c_csm_execute+3446)
#04 pc
001080e7 /system/lib/hw/bluetooth.default.so (l2c_link_hci_disc_comp+122)
#05 pc
000fda81 /system/lib/hw/bluetooth.default.so (btu_hcif_process_event+588)
#06 pc
000fec81 /system/lib/hw/bluetooth.default.so (btu_hci_msg_ready+96)
#07 pc
00118191 /system/lib/hw/bluetooth.default.so
#08 pc
0011917f /system/lib/hw/bluetooth.default.so
#09 pc
00041993 /system/lib/libc.so (_ZL15__pthread_startPv+30)
#10 pc
000192b5 /system/lib/libc.so (__start_thread+6)
Register Dump
pid: 15740, tid: 15761, name: bluedroid wake/ >>> com.android.bluetooth <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20000
r0
815a5cac r1
a1a2f370 r2
00000000 r3
85d4e541
r4
00020000 r5
815a5cac r6
a1a2f370 r7
b6d3ae40
r8
00000000 r9
b6d3ae40 sl
00000002 fp
00000013
ip
a228c050 sp
a1a2f360 lr
a20eddc1 pc
a21318d4 cpsr
200e0030
Rootcause
The above scenario could lead to crash we see as below, as bta_hh_cb.p_disc_db would be freed
during HID Host cleanup, and would be accessed via callback received for parsing SDP results on
SDP completion.
Fix:
While cleaning up HID Host, Cancel SDP search before freeing and resetting bta_hh_cb.p_disc_db.
This will internally send L2CAP disconnect request for SDP, and would lead to sdp_disconnect_cfm
call when L2CAP is disconnected, and would lead to call of hidh_search_callback with result code
as SDP_CANCEL.
Change-Id: I63563cb23dd69946f87a70cafa203c44edc9b753
Pavlin Radoslavov [Wed, 18 Jan 2017 02:10:34 +0000 (02:10 +0000)]
Add conditional unit testing for codecs that might not be on the device
am:
4decac33f6
Change-Id: I9ac89df8897be966206020361ec3b4681aeb9681
Pavlin Radoslavov [Sat, 14 Jan 2017 01:42:01 +0000 (17:42 -0800)]
Add conditional unit testing for codecs that might not be on the device
Codecs like aptX and aptX-HD are supported on the device if the
corresponding shared library is installed.
Fix the unit tests to conditionally test for aptX/aptX-HD.
Also, update function descriptions in files a2dp_sbc.h and
a2dp_vendor_ldac.h .
Test: Running unit tests on a device that doesn't have aptX/aptX-HD
Change-Id: I44dc275ca6e0cb5438ee6ed0b6213213d56592f4
liuchao [Tue, 17 Jan 2017 20:11:25 +0000 (20:11 +0000)]
Fix a NULL-pointer access before check in connect_int
am:
9b2e40df05
Change-Id: I3217f206ef56d73dbac01b19eeb123b6cfb68870
liuchao [Wed, 4 Jan 2017 05:49:36 +0000 (13:49 +0800)]
Fix a NULL-pointer access before check in connect_int
This fixes a potential NULL-pointer access in case cb is returned NULL
Test: mm -j 8
Change-Id: Iaf7aa0ba736b5cb161811726b4aaea7f1ab7e5b3
Pavlin Radoslavov [Tue, 17 Jan 2017 19:50:19 +0000 (19:50 +0000)]
Merge "Reduced the log verbosity level for aptX/aptX-HD data packets"
am:
5256f1feea
Change-Id: I762b7e65001740fec55515f7121f5217c4dbb455
Jakub Pawlowski [Tue, 17 Jan 2017 19:50:04 +0000 (19:50 +0000)]
Don't allow GATT and GAP service override
am:
8a06ff5ce2
Change-Id: I9eaff8a251269b3f073845c80284fefde35822b4
Treehugger Robot [Tue, 17 Jan 2017 19:42:53 +0000 (19:42 +0000)]
Merge "Reduced the log verbosity level for aptX/aptX-HD data packets"
Jakub Pawlowski [Tue, 17 Jan 2017 18:46:10 +0000 (18:46 +0000)]
Fix NPE when discovering invalid GATT datatbase
am:
8957fdca4f
Change-Id: I1e196651928314494a696e5a3ef126272dd3208a
Jakub Pawlowski [Mon, 16 Jan 2017 12:53:14 +0000 (04:53 -0800)]
Don't allow GATT and GAP service override
Those services are automatically added by the stack, and overriding them
results in invalid GATT database being created.
Bug:
34280184
Test: Manual test
Change-Id: Ie6a09e9d606e40066bef6f6a2c934eacd17bf53b
Jakub Pawlowski [Mon, 16 Jan 2017 12:05:57 +0000 (04:05 -0800)]
Fix NPE when discovering invalid GATT datatbase
When doing a discovery of invalid GATT database, where two services are
added with same start handle, characteristics are added to the first
one, where descriptors are added to the later. This cause NPE when
adding descriptor.
Bug:
34280184
Test: manual test
Change-Id: I27619098df33a641cb089b82cf4d4ffd3c6e6aea
Pavlin Radoslavov [Sat, 14 Jan 2017 07:24:25 +0000 (23:24 -0800)]
Reduced the log verbosity level for aptX/aptX-HD data packets
Also, fixed a typo in a log message.
Test: A2DP streaming to headset, and capturing "adb logcat" output
Change-Id: I525d78e3ebde334857261f0cbd256a7f6a946e96
Reddy Praveen [Tue, 17 Jan 2017 09:54:28 +0000 (09:54 +0000)]
Fix for Extended Scan parameter length
am:
0c86aad3f5
Change-Id: I561461bd6b119912ef53dfbca923f2aac9b3fad7
Reddy Praveen [Fri, 13 Jan 2017 11:27:37 +0000 (16:57 +0530)]
Fix for Extended Scan parameter length
With BT 5.0 extended advertisement scan parameter length
is configured with correct value.
Test: BT scan from settings menu
Change-Id: I749099282a9f2cf190d4f9576649aefe88564809
Signed-off-by: Reddy Praveen <praveen.reddy@intel.com>
Pavlin Radoslavov [Fri, 13 Jan 2017 18:44:20 +0000 (18:44 +0000)]
Removed the feeding_init call from tA2DP_ENCODER_INTERFACE
am:
f8e2670d12
Change-Id: I716d1c077b089345c08ca76ccf2823ac1ff6d8e3
Pavlin Radoslavov [Wed, 11 Jan 2017 18:35:15 +0000 (10:35 -0800)]
Removed the feeding_init call from tA2DP_ENCODER_INTERFACE
The feeding_init call is not used anymore - it has been superseded
by the newer A2dpCodecs.setCodecAudioConfig() mechanism.
Also, moved aptx_init_framing_params() and aptx_hd_init_framing_params()
calls to the corresponding encoder_update functions.
Test: A2DP streaming to Bluetooth headsets
Change-Id: I52f42b4701d04fe2ddb8f115bb9cd57fe38e2b38
Pavlin Radoslavov [Tue, 10 Jan 2017 23:03:39 +0000 (23:03 +0000)]
Integrated A2DP LDAC support with the LDAC encoder library
am:
d556b752bd
Change-Id: Ib0d6db87f7f30ac7544bf2e5764b7dda0d1a24f9
Pavlin Radoslavov [Tue, 10 Jan 2017 21:18:14 +0000 (13:18 -0800)]
Integrated A2DP LDAC support with the LDAC encoder library
* Add compile-time dependency on the libldacBT_enc module
in external/libldac
* Use the <ldacBT.h> header and remove local typedefs and defines
Also, fix an initialization issue of the LDAC handler
inside file a2dp_vendor_ldac_encoder.cc
Bug:
30958229
Test: A2DP streaming to LDAC headset
Change-Id: I3757230c9901509daab36f2b2018faa05490171d
Ivan Podogov [Tue, 10 Jan 2017 11:24:27 +0000 (11:24 +0000)]
Merge "Add "connecting" and "disconnecting" states to HID Device."
am:
35ae4adf21
Change-Id: I5eef753ca30b57848ebeaeb3b73aa134cb6b6970
Treehugger Robot [Tue, 10 Jan 2017 11:20:24 +0000 (11:20 +0000)]
Merge "Add "connecting" and "disconnecting" states to HID Device."
Jakub Pawlowski [Mon, 9 Jan 2017 20:40:07 +0000 (20:40 +0000)]
Batch scan simplification
am:
eab3651db4
Change-Id: Iab508f656ceaaa726edff3e04945146a3d4762d4
Jakub Pawlowski [Mon, 9 Jan 2017 20:40:04 +0000 (20:40 +0000)]
LE filters without custom data types
am:
2ffd8da9af
Change-Id: I787c473f2c5839674fbf0ab3c646f210d15ab717
Jakub Pawlowski [Mon, 9 Jan 2017 20:40:00 +0000 (20:40 +0000)]
Get rid of BTA_DmBleCfgFilterCondition
am:
ad6afdf96c
Change-Id: I9d5464bc0199759ef83cac4a2b7b6a94635053a4
Jakub Pawlowski [Mon, 9 Jan 2017 20:39:56 +0000 (20:39 +0000)]
Simplify LE scan filter memory management
am:
ae2aabef09
Change-Id: I654160519dd7b03fa11d58a6ce6e5dbc24dd5d88
Jakub Pawlowski [Mon, 9 Jan 2017 20:39:52 +0000 (20:39 +0000)]
Remove reduntant re-schedule
am:
2c1522e2b8
Change-Id: Id7a3ed5b5fe1460e14450616bad422b39f8cbc9d
Jakub Pawlowski [Mon, 9 Jan 2017 20:39:38 +0000 (20:39 +0000)]
Use callbacks for LE filter functions (BTM layer)
am:
1febda9706
Change-Id: I218fb9df79b2b4df4d8a1774273a951c63042772
Jakub Pawlowski [Thu, 5 Jan 2017 09:34:53 +0000 (01:34 -0800)]
Batch scan simplification
Bug:
30622771
Test: sl4a UniqueFilteringTest BleOpportunisticScanTest
Change-Id: I0e6ca8ed3d7d98057277a5187e684246f410d978
Jakub Pawlowski [Wed, 4 Jan 2017 15:58:37 +0000 (07:58 -0800)]
LE filters without custom data types
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: Ib4edfa40038ca59c37ae1dfc763f0cac563177d7
Jakub Pawlowski [Wed, 4 Jan 2017 14:50:46 +0000 (06:50 -0800)]
Get rid of BTA_DmBleCfgFilterCondition
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I93b4f1275b9437a20cf1429d184dbefa79451986
Jakub Pawlowski [Wed, 4 Jan 2017 09:05:24 +0000 (01:05 -0800)]
Simplify LE scan filter memory management
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I58f3c335e84b4d7ee578c321109125084826efa0
Jakub Pawlowski [Tue, 3 Jan 2017 14:36:19 +0000 (06:36 -0800)]
Remove reduntant re-schedule
Calls to BleScannerInterface are already made using jni thread.
Also all this calls do is scheduling to BTA thread, so remove
unnecessary call to do_in_jni_thread
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I2c799dde720f9bc694fecacd6d3959b96c1b9ba8
Jakub Pawlowski [Fri, 30 Dec 2016 14:38:29 +0000 (06:38 -0800)]
Use callbacks for LE filter functions (BTM layer)
This patch use callbacks, instead of custom event queue when scheduling
LE filter VSC.
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I64ac4392883c647d1e500c257c31a8d3e740a0a8
Jakub Pawlowski [Mon, 9 Jan 2017 18:55:46 +0000 (18:55 +0000)]
Fix bad connectable advertising constant
am:
35675d0e73
Change-Id: I02605b0df8e6d46db0ca2f81e6c5e172337614a7
Jakub Pawlowski [Mon, 9 Jan 2017 18:55:32 +0000 (18:55 +0000)]
Zero is a valid advertiser id
am:
daa8a99913
Change-Id: I05b1d504381932959877a0c856b1bb7ef82292a1
Jack He [Mon, 9 Jan 2017 18:55:12 +0000 (18:55 +0000)]
Remove redundant dependency on libpower
am:
4302060551
Change-Id: Ie78d7e79d9f1b9043eceae84865b4eb5274fd4db
Jakub Pawlowski [Mon, 9 Jan 2017 15:05:00 +0000 (07:05 -0800)]
Fix bad connectable advertising constant
Test: start connectable advertising using bluetoothtbd
Change-Id: Ie7e42570748d43a27bc7691378aee85ab1565a05
Jakub Pawlowski [Mon, 9 Jan 2017 14:53:36 +0000 (06:53 -0800)]
Zero is a valid advertiser id
Test: start advertising using bluetooth-cli
Change-Id: Iead31c5e73a70850c6a209b6bbbeaeb792202608
Jack He [Wed, 4 Jan 2017 19:46:00 +0000 (11:46 -0800)]
Remove redundant dependency on libpower
* libpower dependency was introduced in change
I1e8d49b087eff6301373e1e90e8d868f15847c34
* It is never used in any part of the system/bt stack and therefore
should be removed from the shared library dependency list
Bug:
34079981
Test: code compilation, no user visible effect
Change-Id: Ic8e3ad0c369839fb9ced446695c72fdf0ffad1ca
Jakub Pawlowski [Mon, 9 Jan 2017 18:16:14 +0000 (18:16 +0000)]
Fix Heart Rate Service example
am:
e3051fec06
Change-Id: I8ff34d31fe85899a0657ce437f4bf614a24528c8
Ivan Podogov [Thu, 5 Jan 2017 12:20:26 +0000 (12:20 +0000)]
Add "connecting" and "disconnecting" states to HID Device.
Currently the upper java layers have full support for all four
connection states, yet the lower stack only reports about
"connected" and "disconnected".
This patch adds sending "connecting" and "disconnecting" messages
when bta_hd_connect_act and bta_hd_disconnect_act finish
successfully.
Test: build, run, logcat
Change-Id: I00f9f414daa3854198ff9eee19e9c98a2e18f603
Jakub Pawlowski [Mon, 9 Jan 2017 14:47:39 +0000 (06:47 -0800)]
Fix Heart Rate Service example
Name must be appended at end, not beginning.
Test: run bt-example-hr-server --advertise
Change-Id: I70909e0bfc94521c396908d0dcb78cf4439a7e63
Jakub Pawlowski [Mon, 9 Jan 2017 09:40:50 +0000 (09:40 +0000)]
Remove unnecessary cutils dependency
am:
19e3d703b2
Change-Id: Id0b5878395183458449cb0c89b515659b5e86133
Jakub Pawlowski [Mon, 9 Jan 2017 08:14:45 +0000 (08:14 +0000)]
Update Linux BUILD.gn files
am:
a9743d8101
Change-Id: I846fa35f6f6ec7ccdc242d77b2f7e5ce41e46f9b
Jakub Pawlowski [Mon, 9 Jan 2017 08:09:15 +0000 (00:09 -0800)]
Remove unnecessary cutils dependency
Test: build with ninja and mma
Change-Id: I31688da8a554ed71b580c30a0e4c000ea4903d70
Jakub Pawlowski [Mon, 9 Jan 2017 08:02:58 +0000 (00:02 -0800)]
Update Linux BUILD.gn files
Test: build with ninja
Change-Id: I4993dae7f76479da9bfad70aae88cc51fd7127d5
Pavlin Radoslavov [Sat, 7 Jan 2017 03:10:11 +0000 (03:10 +0000)]
Renamed the aptX and aptX-HD shared libraries
am:
d43a901c57
Change-Id: I0bccfb379fb0719e9500c44d44378cfab23037ea
Pavlin Radoslavov [Fri, 6 Jan 2017 23:07:43 +0000 (15:07 -0800)]
Renamed the aptX and aptX-HD shared libraries
* The names of the expected aptX and aptX-HD shared libraries are
updated to reflect better their purpose:
- aptX: libaptX.so -> libaptX_encoder.so
- aptX-HD: libaptXHD.so -> libaptXHD_encoder.so
Also:
* Add a missing upcall with the codec info the first time the codec
is selected internally
* Minor cleanup
Bug:
30958229
Test: A2DP streaming to aptX/aptX-HD headsets
Change-Id: Ib2bfc83823190fb7a057353eb47cd71c5b4d5a3a
Pavlin Radoslavov [Thu, 5 Jan 2017 07:49:56 +0000 (07:49 +0000)]
Merge "Integration of the LDAC codec for A2DP source"
am:
690c0478b6
Change-Id: I3ef8f12d26b0832bc8c6da03275ad1416de86e7c
Treehugger Robot [Thu, 5 Jan 2017 07:43:49 +0000 (07:43 +0000)]
Merge "Integration of the LDAC codec for A2DP source"
Jack He [Thu, 5 Jan 2017 04:28:30 +0000 (04:28 +0000)]
Merge "Fix A2DP metrics session duration"
am:
644f61e760
Change-Id: I675bf805857d7e37b522d29912e633154071bf8d
Treehugger Robot [Thu, 5 Jan 2017 04:24:33 +0000 (04:24 +0000)]
Merge "Fix A2DP metrics session duration"
Pavlin Radoslavov [Tue, 1 Nov 2016 12:45:40 +0000 (05:45 -0700)]
Integration of the LDAC codec for A2DP source
The codec can be used if the encoding shared library is installed
on the device:
libldacBT_enc.so
Also, increased the maximum number of SEPs AVDT_NUM_SEPS from 3
to 6 to accomodate Sink devices that support more than 3 codecs.
Test: A2DP streaming to LDAC headsets
Bug:
30958229
Change-Id: I114c3e6be2ebe1ac8aece62a3146637d37cd938e
Jack He [Thu, 5 Jan 2017 02:42:48 +0000 (02:42 +0000)]
Merge "Add LeakyBondedQueue to libosi"
am:
797be14aba
Change-Id: Ib260e88f8dc8be1f86d200f8ab4f0690c4b4aad9
Treehugger Robot [Thu, 5 Jan 2017 02:39:27 +0000 (02:39 +0000)]
Merge "Add LeakyBondedQueue to libosi"
Pavlin Radoslavov [Thu, 5 Jan 2017 02:02:08 +0000 (02:02 +0000)]
Merge "Integration of the aptX and aptX-HD codecs for A2DP source"
am:
bcb80655e3
Change-Id: Ifd232e09aebc80ffb09fc195429e18787851e6aa
Treehugger Robot [Thu, 5 Jan 2017 01:56:34 +0000 (01:56 +0000)]
Merge "Integration of the aptX and aptX-HD codecs for A2DP source"
Ruchi Kandoi [Thu, 5 Jan 2017 01:31:43 +0000 (01:31 +0000)]
scripts: modify change_types.sh to skip matching "<data type>_"
am:
69b8f87943
Change-Id: I24fc6ef1b6484bfb9a3a6e671b9b5d3b76882d9c
Jack He [Fri, 9 Dec 2016 03:29:00 +0000 (19:29 -0800)]
Fix A2DP metrics session duration
* Fixed A2DP duration counting. It is now counting from music play start
to music play end.
* Start logging a2dp connection as Bluetooth sessions. Currently, only
A2DP connections are logged. Thus the bluetooth session length will be
the total connection length and the length within A2DP session message
will be the audio connection length.
* Add a audio_duration_millis field in A2DPSession to record audio duration
* Add bonded memory constraint for metrics entries
* Use a builder mechanism to only build metrics upon dumping
* Refactor metrics module into BluetoothMetricsLogger class
* Created unit test for BluetoothMetricsLogger
Bug:
33694310
Test: Code compilation, Unit test, BtFunhausMetricsTest
Change-Id: Iea2a997c4ea074687a5d50860e9229f0e1b82659
Jack He [Tue, 20 Dec 2016 19:57:17 +0000 (11:57 -0800)]
Add LeakyBondedQueue to libosi
* LeakyBondedQueue is a fixed size queue that leaks oldest item when
reaching its capacity. This is useful in creating memory bonded data
structure where freshness is more important than full coverage.
* The queue is protected by a simple mutex and is thread-safe, although
improvements could be made to lock enqueue and dequeue separately, it
is not implemented at this moment due to lack of demand
* The queue uses unique_ptr to automatically free its content when it is
destructed
* Add several tests to verify its API and memory management
* This data structure will be firstly used in the metrics module
Bug:
33781460
Test: Code compilation, unit tests
Change-Id: I51cb73666ac58e4792d9cba0d6f16dad30a0ff39
Pavlin Radoslavov [Tue, 25 Oct 2016 00:48:24 +0000 (17:48 -0700)]
Integration of the aptX and aptX-HD codecs for A2DP source
Each of the codecs can be used if the corresponding encoding
shared library is installed on the device:
- aptX: libaptX.so
- aptX-HD: libaptXHD.so
Test: A2DP streaming to aptX and aptX-HD headsets
Bug:
30958229
Change-Id: I1ca36da653721576f5a5b6bdac186b9ea2790c85
Ruchi Kandoi [Tue, 3 Jan 2017 22:05:38 +0000 (14:05 -0800)]
scripts: modify change_types.sh to skip matching "<data type>_"
Script erroronously modifies UINT8_TO_BE_STREAM() to
uint8_t_TO_BE_STREAM(). Modidy the script to prevent that.
Test: Manual; Run the script on system/nfc
Change-Id: I9e130b8eb79e400282233fad7da206b4bb1301af
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
liuchao [Wed, 4 Jan 2017 20:41:22 +0000 (20:41 +0000)]
Fix an inappropriate sscanf return value judgment
am:
0e42408b91
Change-Id: Ic3d9b940b9470590da8b7f403066757d0e6e2f91
liuchao [Wed, 4 Jan 2017 02:46:06 +0000 (10:46 +0800)]
Fix an inappropriate sscanf return value judgment
This fixes an inappropriate sscanf return value judgment that
res check here is not needed while res2 is the one that need to be checked
Test: mm -j 8
Change-Id: I3e332286c9434d5b9d01421f5f421039f84ad6c7
Ivan Podogov [Wed, 4 Jan 2017 15:44:31 +0000 (15:44 +0000)]
Make HID Device service independent from HID Host.
am:
2a399b3745
Change-Id: I21033a763e8103d35ff44a0a6d503935e504b12f
Ivan Podogov [Tue, 3 Jan 2017 12:29:45 +0000 (12:29 +0000)]
Make HID Device service independent from HID Host.
By default, enabling the HID Device service is only possible
during disabling the HID Host service. If, on the other hand,
the HID Host service was never initialized, then a request to
enable the HID Device service should just be executed
immediately.
Test: manual, on a device without the HID Host profile.
Change-Id: I2ab4b8aec413b66d57eb322d38660f1b4c48ba32
Ivan Podogov [Wed, 4 Jan 2017 13:00:03 +0000 (13:00 +0000)]
Merge "Allow HID Device to connect to a specific device"
am:
7bd36a3588
Change-Id: Ib9155090374c80102ee9874b4c692955ce1b60de
Treehugger Robot [Wed, 4 Jan 2017 12:56:49 +0000 (12:56 +0000)]
Merge "Allow HID Device to connect to a specific device"
Pavlin Radoslavov [Wed, 4 Jan 2017 03:40:07 +0000 (03:40 +0000)]
Add a mechanism for configuring the A2DP Source codecs
am:
5ce0116fbf
Change-Id: Ieacf4534900cf360aaa32d676d42e13d0cb80498
Pavlin Radoslavov [Mon, 5 Dec 2016 21:02:26 +0000 (13:02 -0800)]
Add a mechanism for configuring the A2DP Source codecs
* Codec config internal abstraction:
- Add new classes A2dpCodecConfig and A2dpCodecs that (will)
encapsulate all codec-related APIs
- Add unit tests for the above two classes
- Add method A2dpCodecConfig.buildCodecConfig(), and use it when
creating the codec configuration instead of A2DP_InitSource2SinkCodec().
The new method can build the codec config by taking into account
optional user codec-related configuration preferences.
- Use the A2DP codec config API from the hardware/libhardware bt_av.h API
- Replace enum tA2DP_CODEC_SEP_INDEX with btav_a2dp_codec_index_t
from the bt_av.h API
- Move codec-specific functions from stack/include/a2dp_api.h
and stack/a2dp/a2dp_api.cc to stack/include/a2dp_codec_api.h
and stack/a2dp/a2dp_codec_config.cc
- Create a new base class A2dpCodecConfig() to hold some of the
codec-related state, and implement the corresponding A2dpCodecConfigSbc
and A2dpCodecConfigSbcSink derived classes.
- Move A2DP spec-related constants from stack/include/a2dp_api.h
to stack/include/a2dp_constants.h
- Move A2DP-related error codes from stack/include/a2dp_api.h
to stack/include/a2dp_error_codes.h
- Move A2DP SBC spec-related constants from stack/include/a2dp_sbc.h to
stack/include/a2dp_sbc_constants.h
* Implement the backend mechanism for handling user (re)configuration of
A2DP Source codecs as requested via the JNI API calls.
Also, any codec changes are reported back via JNI API callbacks.
The current audio parameter selection (sample rate, bits per
sample, channel mode - mono/stereo) is as follows:
- If the user selected parameters are acceptable (based on
local codec capability and the remote Sink capability),
those parameters are used.
- Else if the Audio HAL's requested parameters are acceptable,
those are used.
- Else if the default settings are acceptable, those are used.
- Else use the best match among the local and the remote device's
capabilities.
* Update the mechanism for handling OTA configuration requests from the
remote Sink device.
- The OTA prefered codec configuration is ignored if the current
codec configuration contains explicit user configuration, or if the
codec configuration for the same codec contains explicit user
configuration.
* Refactor the Audio HAL <-> Bluetooth audio parameter negotiation
mechanism:
The new mechanism gives some flexibility to the Media Framework to
choose the appropriate audio format (sample rate, bits per sample,
and channel mode - mono/stereo), and at the same time allows
the Bluetooth stack to double-check / overwrite the choice.
- out_get_parameters() on the Audio HAL side asks the Bluetooth stack
for all currently supported formats (for the current codec),
and returns them to the Media Framework: sample rate, bits per sample,
and channel mode (mono/stereo).
- The first time adev_open_output_stream() is called on the Audio HAL,
it asks the Bluetooth stack about the audio format currently selected
by the Bluetooth stack (based on codec negotiation with the Sink device,
and User Configuration).
- The second time adev_open_output_stream() is called on the Audio HAL,
its "config" will eventually contain the audio format selected
internally by the Media Framework. That audio format is sent to the
Bluetooth stack.
If that format is acceptable to the Bluetooth stack, the Bluetooth
stack will reconfigure itself internally, and will respond back with
those values. Otherwise, it will respond back with the values that
should be used instead.
* Misc other fixes and refactoring:
- Fix the BTA handling of A2DP codec reconfiguration
- Fix a bug in the implementation of A2DP_BitsSet(), and add the
approriate unit test. Also, fix the code that was using this function
incorrectly.
- The SBC encoder is compiled as a separate library
- Replace leftover usage of "false" with "FALSE" for macros, and
vice-versa for variable values.
Test: A2DP streaming to headsets, TestPlans/71390
Bug:
30958229
Change-Id: I440b6126e2250e33b0075f9789dd93154c007c2b
Jakub Pawlowski [Tue, 3 Jan 2017 23:48:40 +0000 (23:48 +0000)]
Fix failling ClosureTest
am:
dec747b3ba
Change-Id: Ide2dd751115739bcfe8c2966d993c1cd750e0966
Jakub Pawlowski [Tue, 3 Jan 2017 21:53:34 +0000 (13:53 -0800)]
Fix failling ClosureTest
BTA closure doesn't keep the HDR messages any more, test have keep track
of HDR pointers for itself.
Bug:
33947176
Test: test/run_unit_tests.sh net_test_bta
Change-Id: I32994f248dc2e082bf8bed426a32acf677c58ed5
Ivan Podogov [Fri, 30 Dec 2016 15:19:48 +0000 (15:19 +0000)]
Allow HID Device to connect to a specific device
With this change, when the app requests a connection to a
specific device, it is always "plugged" first.
Unplugging the previous device is left for the app to do.
Test: make
Change-Id: I2e27c12e2ee96d0c311615a3853d8c430f3b2c31
Jakub Pawlowski [Fri, 30 Dec 2016 06:30:35 +0000 (06:30 +0000)]
LE scanner BTA layer simplification
am:
e396065650
Change-Id: If42006688b29d3bae5345ced48d43bb74fc52335
Jakub Pawlowski [Fri, 30 Dec 2016 06:30:17 +0000 (06:30 +0000)]
Merge "Fix race condition in do_in_bta_thread"
am:
8534bc3889
Change-Id: Ia6c5aa8e2bbd7b0288dd999cdc7c03bf1092b1ae
Jakub Pawlowski [Thu, 29 Dec 2016 09:23:52 +0000 (01:23 -0800)]
LE scanner BTA layer simplification
BTA layer for scanner is very complicated. This patch simplifies it:
* get rid of type redeclarations for BTM types
* get rid of trivial *_act methods and call BTM API directly where possible
Bug:
30622771
Test: slra FilterTest
Change-Id: I3899b30074b2abc4a3945c5cc14f1bb40a504876
Jakub Pawlowski [Fri, 30 Dec 2016 06:25:08 +0000 (06:25 +0000)]
Merge "Fix race condition in do_in_bta_thread"
Jakub Pawlowski [Thu, 29 Dec 2016 06:45:34 +0000 (22:45 -0800)]
Fix race condition in do_in_bta_thread
Attach posted_task to the HDR message, instead of using a queue.
Bug:
33947176
Test: re-run sl4a FilteringTest 3 times with no flakiness
Change-Id: If0b69e82d11eeae52ac8e591bebff634073251f1
Hemant Gupta [Thu, 29 Dec 2016 19:39:01 +0000 (19:39 +0000)]
HIDD: Add support for HID Device Role
am:
8843cc830b
Change-Id: I9f5b818dc50c8a99502bb2373db31ef8557d598a
Hemant Gupta [Fri, 18 Apr 2014 07:04:55 +0000 (12:34 +0530)]
HIDD: Add support for HID Device Role
This patch adds support for HID Device role in bluedroid stack allowing
DUT to be used as Keyboard or Mouse.
Bug:
33011576
Change-Id: I45b581a54f6c7bbc1f25226715a7ea23e34255c0
Jakub Pawlowski [Thu, 29 Dec 2016 05:24:51 +0000 (05:24 +0000)]
HCI interface improvements
am:
dabf8d36c6
Change-Id: I0d78a25eaacd0dc45ac7cd76eedfc0a374c0a36f
Jakub Pawlowski [Wed, 28 Dec 2016 12:47:37 +0000 (04:47 -0800)]
HCI interface improvements
This patch improves btu_hcif_send_cmd_with_cb, which will accept
base::Callback instead of function pointer as argument. It will also
carry information about where was packet send from, which can be
displayed when command status is received, greatly improving logs.
The improved method is also used for handling VSC advertising.
Bug:
30622771
Test: sl4a ConcurrentBleAdvertiserTest
Change-Id: I55c3e32f9231c00bfa85f971265809d6f1fecdfb
Jakub Pawlowski [Thu, 29 Dec 2016 01:36:39 +0000 (01:36 +0000)]
Fix AdvertisingManager not being initialized
am:
2255250d9b
Change-Id: Ib4328198433e89853316c727f648a26dfe97025e
Jakub Pawlowski [Thu, 22 Dec 2016 11:13:00 +0000 (03:13 -0800)]
Fix AdvertisingManager not being initialized
When BLE_VND_INCLUDED is not set, advertising was not properly
initialized, which resulted in stack crashes. This patch makes sure that
LE advertising is always properly initialized
Bug:
33168939
Test: enable LE advertising with BLE_VND_INCLUDED set to false
Change-Id: I5fa0b3da39da99e750e1f8b6f0452a628094bfc4
Jakub Pawlowski [Wed, 28 Dec 2016 21:02:51 +0000 (21:02 +0000)]
Fix pointer type in BTA_DmBleCfgFilterCondition
am:
ce34742e35
Change-Id: I36d2b506e610a60819e981892d9655eacf78d562
Jakub Pawlowski [Wed, 28 Dec 2016 07:50:12 +0000 (23:50 -0800)]
Fix pointer type in BTA_DmBleCfgFilterCondition
p_cond_param->srvc_uuid is of type tBTA_DM_BLE_PF_UUID_COND
Bug:
33910711
Test: sl4a FilteringTest
Change-Id: I6b30e1e441f8256d8c8dbf593f746a3d7810eda6
Andre Eisenbach [Wed, 28 Dec 2016 00:30:35 +0000 (00:30 +0000)]
Fix pointer arithmetic in BTA_DmBleCfgFilterCondition
am:
bced7f0c0b
Change-Id: I59ba47e90c7c282ab21263a153d6886761edd725
Andre Eisenbach [Tue, 27 Dec 2016 22:48:34 +0000 (14:48 -0800)]
Fix pointer arithmetic in BTA_DmBleCfgFilterCondition
Using the pointer to the beginning of a union in a member of the union,
which will then be over-written, is a bad idea(TM).
Bug:
33910711
Test: manual
Change-Id: I0b979e493688bf8c02119a2ef6707d6c8e730dcb