OSDN Git Service

android-x86/system-bt.git
7 years agoFix NULL pointer crash in send_at_cmd
Sebastien Griffoul [Fri, 30 Sep 2016 19:08:42 +0000 (19:08 +0000)]
Fix NULL pointer crash in send_at_cmd
am: 5c8fa2b199

Change-Id: I64b04cbf63438f25e58b700a9af6fe1d51a3905b

7 years agoFix NULL pointer crash in send_at_cmd
Sebastien Griffoul [Fri, 17 Oct 2014 10:14:19 +0000 (12:14 +0200)]
Fix NULL pointer crash in send_at_cmd

If the string argument of send_at_cmd is a null pointer,
then the function should not crash: indeed this is a valid
parameters which can be used to send an AT cmd which doesn't
require any extra parameter.

Test: trivial fix. Existing unit tests still pass.
Change-Id: I3d83eebed660d703cd5a93a19dc73f4f354ab7bf
Signed-off-by: Sebastien Griffoul <sebastien.griffoul@intel.com>
7 years agoEnable libbase logging for whole stack
Jakub Pawlowski [Fri, 30 Sep 2016 00:22:21 +0000 (00:22 +0000)]
Enable libbase logging for whole stack
am: 75b83661ea

Change-Id: Ic09c0c3bfefbad2e8949f29b9d36c8fa13b266ae

7 years agoEnable libbase logging for whole stack
Jakub Pawlowski [Wed, 28 Sep 2016 01:24:59 +0000 (18:24 -0700)]
Enable libbase logging for whole stack

Currently, only C++ code in the service/ folder can use libbase logging.
This patch makes sure that logging can be used and is properly
configured for usage when the stack is running as part of Bluetooth.apk.

Bug: 31806042
Change-Id: I1f8be79ba9999b53ece0b5217a893b4bd20ecafc

7 years agoMerge "Support TARGET_TRANSLATE_2ND_ARCH case"
Victor Khimenko [Thu, 29 Sep 2016 06:13:07 +0000 (06:13 +0000)]
Merge "Support TARGET_TRANSLATE_2ND_ARCH case"
am: d09a76a935

Change-Id: Ib9c919256db089ed4ef859016d46ae8ec7791bdd

7 years agoMerge "Support TARGET_TRANSLATE_2ND_ARCH case"
Victor Khimenko [Thu, 29 Sep 2016 06:08:00 +0000 (06:08 +0000)]
Merge "Support TARGET_TRANSLATE_2ND_ARCH case"

7 years agoFix 100 LE device connection limitation
Andre Eisenbach [Thu, 29 Sep 2016 02:02:20 +0000 (02:02 +0000)]
Fix 100 LE device connection limitation
am: 426da5ad3c

Change-Id: Ie9d7439eda57bfaeac544bc35f6100413b1fe354

7 years agoFix 100 LE device connection limitation
Andre Eisenbach [Wed, 28 Sep 2016 01:07:58 +0000 (18:07 -0700)]
Fix 100 LE device connection limitation

Currently after 100 devices are added to the device security database,
any subsequent LE connection to a newly discovered LE device address
will fail as entries in the security record database are not reused.

This patch removes a device record if the device itself is removed and
also ensures that the oldest device security record is deleted if the
limit is reached to ensure a new record can be allocated.

Bug: 31625900
Test: SL4A multi-device connection test + regression
Change-Id: I22f6c82c64a9a9bfb2a16d79182903e5aa011355
(cherry picked from commit 013c32bf98b8d511dc29fcd7de7578a421a52590)

7 years agoSupport TARGET_TRANSLATE_2ND_ARCH case
Victor Khimenko [Wed, 28 Sep 2016 22:40:03 +0000 (00:40 +0200)]
Support TARGET_TRANSLATE_2ND_ARCH case

Build-only change to support the multilib case where the second arch
is translated (and thus bluetooth library is needed).

"True" multilib case is explicitly not supported.

Test: Build system refactoring CL. Existing unit tests still pass.

BUG=31422117

Change-Id: I09f239d39f5dbe0848a89367327db1ea1074ca39

7 years agoSeparate the definition of BTM layer types from control blocks
Jakub Pawlowski [Wed, 28 Sep 2016 21:24:01 +0000 (21:24 +0000)]
Separate the definition of BTM layer types from control blocks
am: dc3c1f2afa

Change-Id: Iea26880f80f623744cd96b40c27188428b7d9860

7 years agoSeparate the definition of BTM layer types from control blocks
Jakub Pawlowski [Wed, 28 Sep 2016 16:02:39 +0000 (09:02 -0700)]
Separate the definition of BTM layer types from control blocks

Right now, data types, control blocks, and functions used in the BTM
layer are defined in the same header files. This means that if someone
wants to write a test that uses those data types, they must also define
all control blocks, or compile the whole module.

This patch separates the data types from other definitions. Thanks to
it, we will be able to write unit tests, once other dependencies get
separated.

Change-Id: Ibc089e273cc37642fbb8672964b266c20f8d825d

7 years agoUse better callbacks in LE multi advertising
Jakub Pawlowski [Tue, 27 Sep 2016 18:42:32 +0000 (18:42 +0000)]
Use better callbacks in LE multi advertising
am: 0a009c382f

Change-Id: Ia9e39fe19443641b6d17cc8e78e8156b5304619f

7 years agoUse better callbacks in LE multi advertising
Jakub Pawlowski [Tue, 6 Sep 2016 14:42:36 +0000 (07:42 -0700)]
Use better callbacks in LE multi advertising

Right now, LE multi advertising related code uses it's own
implementation of queue on top of static array. Use std::queue, and
base::Callback instead.

Changing function pointers to base::Callback instances is required for
further refactoring, which will turn this code into class.

Bug: 30622771
Test: sl4a BleAdvertiseApiTest ConcurrentBleAdvertisingTest
Change-Id: I839e036c6edb4e19a17def4d68d351296468f88c

7 years agoUpdate BUILD.gn files
Jakub Pawlowski [Tue, 27 Sep 2016 15:33:33 +0000 (15:33 +0000)]
Update BUILD.gn files
am: 29796eb6de

Change-Id: I41391c0764e9def86ff32e72e65222e0c3f6043f

7 years agoUpdate BUILD.gn files
Jakub Pawlowski [Tue, 27 Sep 2016 15:21:55 +0000 (08:21 -0700)]
Update BUILD.gn files

7 years agoBluetooth: Prevent gatt DB copy if server cache is absent
Nitin Arora [Sat, 24 Sep 2016 00:31:06 +0000 (00:31 +0000)]
Bluetooth: Prevent gatt DB copy if server cache is absent
am: c695f2578d

Change-Id: Ic25dfb446c5133823523e3b707177739d1296a9a

7 years agoBluetooth: Prevent gatt DB copy if server cache is absent
Nitin Arora [Thu, 14 Jul 2016 01:02:03 +0000 (18:02 -0700)]
Bluetooth: Prevent gatt DB copy if server cache is absent

In case the server cache does not exist for a specific
connection, the API used to copy the server DB into the
DB structure needs to return immediately. This change
makes sure of that and prevents dereferencing of a null
block causing the runtime error.

Change-Id: Iec3040a1280ef9d80b1b9c76eca8071dff499411

7 years agoMerge "Convert BLE multi-advertising code to C++"
Jakub Pawlowski [Fri, 23 Sep 2016 21:02:40 +0000 (21:02 +0000)]
Merge "Convert BLE multi-advertising code to C++"
am: 6cbb6f8c37

Change-Id: I917c9c38fafc5b8a4e537c89038e5bdd056e7c4c

7 years agoMerge "Convert BLE multi-advertising code to C++"
Jakub Pawlowski [Fri, 23 Sep 2016 20:53:24 +0000 (20:53 +0000)]
Merge "Convert BLE multi-advertising code to C++"

7 years agoMerge "Move btsnoop_hci.log to /data/misc/bluetooth/logs"
Ajay Panicker [Fri, 23 Sep 2016 19:13:32 +0000 (19:13 +0000)]
Merge "Move btsnoop_hci.log to /data/misc/bluetooth/logs"
am: b64d604c0c

Change-Id: I87d5ef9224da76d569c2e4b32782f839686590df

7 years agoMerge "Move btsnoop_hci.log to /data/misc/bluetooth/logs"
Ajay Panicker [Fri, 23 Sep 2016 19:00:17 +0000 (19:00 +0000)]
Merge "Move btsnoop_hci.log to /data/misc/bluetooth/logs"

7 years agoConvert BLE multi-advertising code to C++
Jakub Pawlowski [Mon, 5 Sep 2016 11:31:34 +0000 (04:31 -0700)]
Convert BLE multi-advertising code to C++

This patch converts btm_ble_multi_adv.c file to .cc. It also separate
header definitions from rest of BTM layer. It is another step towards
making BLE advertising-related code testable.

Bug: 30622771
Change-Id: I89965e10fbf773e48176ee19ef613dd0df2fb951

7 years agoRemoved usage of A2DP codec_type as a separate field
Pavlin Radoslavov [Thu, 22 Sep 2016 23:25:37 +0000 (23:25 +0000)]
Removed usage of A2DP codec_type as a separate field
am: b3e5af36e9

Change-Id: I886c6b3cbaa9cd1abdfc8340e586f5cd2dc33cc2

7 years agoFix the BLE connection failure with some mice
chaoyu.x.wu [Thu, 22 Sep 2016 21:58:35 +0000 (21:58 +0000)]
Fix the BLE connection failure with some mice
am: 1ec17e06c7

Change-Id: Ib5b03ac545fee9c71ae53d869615a1f0fc155182

7 years agoRemoved usage of A2DP codec_type as a separate field
Pavlin Radoslavov [Tue, 20 Sep 2016 21:10:08 +0000 (14:10 -0700)]
Removed usage of A2DP codec_type as a separate field

The value of codec_type can be extracted from the codec_info,
so it is not needed to pass it around as an argument, or keep
it as an field.

Also:
* Added new APIs and the corresponding unit tests:
  - A2D_GetPacketTimestamp()
  - A2D_BuildCodecHeader() - replacement for bta_av_sbc_bld_hdr()
  - A2D_CodecName()
* Replaced tBTA_AV_SEP.codec_type with tBTA_AV_SEP.codec_info

Bug: 30958229
Test: A2DP tested manually. Unit tests included in the CL.
Change-Id: I3bfd4750e8639d77a9938ab3c274c9d6ea859fb6

7 years agoMove btsnoop_hci.log to /data/misc/bluetooth/logs
Ajay Panicker [Wed, 14 Sep 2016 18:46:23 +0000 (11:46 -0700)]
Move btsnoop_hci.log to /data/misc/bluetooth/logs

Bug: 31466840
Change-Id: Ibd8f8b85eb59be8bfbb8a7c83b5935802624a748

7 years agoFix the BLE connection failure with some mice
chaoyu.x.wu [Mon, 11 Apr 2016 06:08:48 +0000 (14:08 +0800)]
Fix the BLE connection failure with some mice

If enable the "connection parameters update" during GATT discovery,
it may cause some device connection failure due to connection timeout.
Since the the "connection parameter update" is enabled again when GATT
discovery completed, remove the enable of "connection parameter update"
after SMP complete to fix the issue.

This issue was already fixed in commit 2d41fe1c, but then it was
re-introduced in commit 444a8da8, which also removed comment explaining
the issue, added back in this patch.

Bug: 29060797
Change-Id: I42b0b36056821c30d887484e22bfcbd04ea7ca03

7 years agoMerge "Fix improper null check when handling rc features"
Ajay Panicker [Thu, 22 Sep 2016 08:21:11 +0000 (08:21 +0000)]
Merge "Fix improper null check when handling rc features"
am: e90972c9f2

Change-Id: I228b1a0befa5becf1c60ca5eaa4b8b1a1e2292f8

7 years agoMerge "Remove net_bt_stack group and replace it with bluetooth"
Ajay Panicker [Thu, 22 Sep 2016 08:09:28 +0000 (08:09 +0000)]
Merge "Remove net_bt_stack group and replace it with bluetooth"
am: b85d405374

Change-Id: Iea39edaa3c6294001384597a151906aacf423980

7 years agoMerge "Fix improper null check when handling rc features"
Treehugger Robot [Thu, 22 Sep 2016 01:49:03 +0000 (01:49 +0000)]
Merge "Fix improper null check when handling rc features"

7 years agoMerge "Remove net_bt_stack group and replace it with bluetooth"
Ajay Panicker [Thu, 22 Sep 2016 01:32:33 +0000 (01:32 +0000)]
Merge "Remove net_bt_stack group and replace it with bluetooth"

7 years agoFix improper null check when handling rc features
Ajay Panicker [Wed, 21 Sep 2016 23:35:00 +0000 (16:35 -0700)]
Fix improper null check when handling rc features

Bug: 31533166
Change-Id: Ia04e9c51280a3e379c0670b39a84eb5a53c5332b

7 years agoBlacklist Motorola Roadster for Absolute Volume
Keizo Mendori [Wed, 21 Sep 2016 22:08:29 +0000 (22:08 +0000)]
Blacklist Motorola Roadster for Absolute Volume
am: e89122a9c9

Change-Id: Id7753a999d4e7c283c901c1eb9a80666f5dda767

7 years agoBlacklist Motorola Roadster for Absolute Volume
Keizo Mendori [Wed, 8 Jun 2016 02:40:43 +0000 (11:40 +0900)]
Blacklist Motorola Roadster for Absolute Volume

Motorola Roadster is advertizing Absolute Volume but it has a
buggy implementation.

Bug: 29740052
Change-Id: I18c1a2f03617669138be2e7e1d9c7bb391cd1129

7 years agoMerge changes from topics 'bt-only-pcm-media-feeding-format', 'bt-a2d-sbc-cie-localize'
Pavlin Radoslavov [Tue, 20 Sep 2016 20:56:06 +0000 (20:56 +0000)]
Merge changes from topics 'bt-only-pcm-media-feeding-format', 'bt-a2d-sbc-cie-localize'
am: ab8facfc57

Change-Id: If307b1c892e394e0d273ce346f4b57fff0164068

7 years agoUse only PCM as the media feeding format
Pavlin Radoslavov [Tue, 20 Sep 2016 20:56:05 +0000 (20:56 +0000)]
Use only PCM as the media feeding format
am: c66edf3144

Change-Id: I053b54f9306b607f9cef3a94511b60c7815939b6

7 years agoLocalize the usage of tA2D_SBC_CIE only within the SBC codec
Pavlin Radoslavov [Tue, 20 Sep 2016 20:56:04 +0000 (20:56 +0000)]
Localize the usage of tA2D_SBC_CIE only within the SBC codec
am: b18f03ecb0

Change-Id: I0aee46e8312931fa3a67f893682340dcea00ff1d

7 years agoMerge changes from topics 'bt-only-pcm-media-feeding-format', 'bt-a2d-sbc-cie-localize'
Treehugger Robot [Tue, 20 Sep 2016 20:29:39 +0000 (20:29 +0000)]
Merge changes from topics 'bt-only-pcm-media-feeding-format', 'bt-a2d-sbc-cie-localize'

* changes:
  Use only PCM as the media feeding format
  Localize the usage of tA2D_SBC_CIE only within the SBC codec

7 years agotest_vendor: Use kInvalidTaskId in the controller
Jorge E. Moreira [Tue, 20 Sep 2016 19:25:56 +0000 (19:25 +0000)]
test_vendor: Use kInvalidTaskId in the controller
am: 6d835905f0

Change-Id: I45669e742ef1e9241a5f708bbfb9253f534cbb9a

7 years agoUse only PCM as the media feeding format
Pavlin Radoslavov [Fri, 16 Sep 2016 00:50:18 +0000 (17:50 -0700)]
Use only PCM as the media feeding format

* Removed field tA2D_AV_MEDIA_FEEDINGS.format, because we always
  use/assume the feeding format is PCM.
* Removed tA2D_AV_MEDIA_FEED_CFG_PCM, tA2D_AV_MEDIA_FEED_CFG,
  tA2D_AV_CODEC_PCM, and tA2D_AV_CODEC_NONE, because they are not
  needed/used anymore.
* Removed feeding mode:
  - tBTIF_MEDIA_INIT_AUDIO_FEEDING.feeding_mode
  - tBTIF_AV_FEEDING_MODE, BTIF_AV_FEEDING_ASYNCHRONOUS,
    BTIF_AV_FEEDING_SYNCHRONOUS
  - tBTIF_MEDIA_CB.feeding_mode
* Added new APIs and the corresponding unit tests:
  - A2D_CodecConfigMatchesCapabilities()
  - A2D_BuildSinkConfig()
  - A2D_CodecEquals()
  - A2D_CodecRequiresReconfig()

Also:
 * Removed header file btif/include/btif_av_api.h because it is not
   needed anymore.
 * Removed functions or typedefs that are unused or replaced:
   - bta_av_co_audio_codec_match() -> replaced by
     A2D_CodecConfigMatchesCapabilities()
   - bta_av_co_audio_codec_cfg_matches_caps()
   - bta_av_co_audio_peer_reset_config()
   - bta_av_co_audio_discard_config()
   - bta_av_co_get_codec_info()
   - bta_av_co_peer_cp_supported()
   - tA2D_AV_CODEC_ID
   - tBTIF_AV_CODEC_INFO
 * Increased the sampling_freq storage from uint16_t to uint32_t
 * Decreased the number of channels n_channels storage from uint16_t
   to uint8_t
 * Removed unneessary global function declarations inside btif_av_co.h
 * Changed the order of the A2D_BuildSrc2SinkConfig() arguments, so
   the order is more intuitive.
 * Misc other cleanup:
   - file bta_av_co.cc: code simplification, renamed snk -> sink,
     Removed unnecessary cast-away of a const argument: bta_av_co_cp_scmst
     Renamed/updated bta_av_co_audio_peer_supports_codec() ->
             bta_av_co_find_peer_sink_supports_codec()
     Renamed/updated bta_av_co_audio_peer_src_supports_codec() ->
             bta_av_co_find_peer_src_supports_codec()

Bug: 30958229
Test: A2DP tested manually. Unit tests included in the CL.
Change-Id: I60981c62b1a88491b5232c4f6515933c4261fac9

7 years agoRemove net_bt_stack group and replace it with bluetooth
Ajay Panicker [Tue, 20 Sep 2016 18:43:03 +0000 (11:43 -0700)]
Remove net_bt_stack group and replace it with bluetooth

Bug: 31549206
Change-Id: I10504d73a962dde583ddb5771cb0a0fe6ca6d580

7 years agotest_vendor: Use kInvalidTaskId in the controller
Jorge E. Moreira [Mon, 19 Sep 2016 22:58:16 +0000 (15:58 -0700)]
test_vendor: Use kInvalidTaskId in the controller

Test: make test-vendor

Change-Id: I6eefd385ecb992f854544ca92c5a8559b6f281f0

7 years agoLocalize the usage of tA2D_SBC_CIE only within the SBC codec
Pavlin Radoslavov [Tue, 13 Sep 2016 22:02:52 +0000 (15:02 -0700)]
Localize the usage of tA2D_SBC_CIE only within the SBC codec

* Added new A2DP API and use it as appropriate
 - A2D_IsValidCodec()
 - A2D_CodecTypeEquals()
 - A2D_GetMinBitpool()
 - A2D_GetMaxBitpool()
* Removed A2D_GetDefaultConfigSbc(), because it is not needed anymore.
* Removed bta_av_co_audio_get_sbc_config() and replaced it
  with code that is not SBC codec-specific:
  bta_av_co_audio_encoder_init() and bta_av_co_audio_encoder_update()
* Removed bta_av_co_get_remote_bitpool_pref() because it is
  not used/needed anymore.
* Moved the following declarations the a2d_sbc.h header file to
  the a2d_sbc.c codec-specific implementation, because they don't need
  to be exposed anymore.
  - struct tA2D_SBC_CIE
  - function A2D_BldSbcInfo()
  - function A2D_ParsSbcInfo()
* Added corresponding unit tests for the new API

Bug: 30958229
Test: A2DP tested manually. Unit tests included in the CL.
Change-Id: Ib242956c303f0ca3c5f70ebc00416a7a45e70228

7 years agoFix gatt_server_old service added logic
Jakub Pawlowski [Mon, 19 Sep 2016 19:38:32 +0000 (19:38 +0000)]
Fix gatt_server_old service added logic
am: aeafd3967e

Change-Id: Id59e5f407a7f30542ed75554ab877ec5686bb71f

7 years agoFix gatt_server_old service added logic
Jakub Pawlowski [Mon, 19 Sep 2016 17:38:20 +0000 (10:38 -0700)]
Fix gatt_server_old service added logic

Bug: 31274906
Change-Id: Ifb4ee2a5f1ebcc14e2e1b60caa2fe6536d20946b

7 years agoFix bad address type assumption
Jakub Pawlowski [Fri, 16 Sep 2016 17:15:48 +0000 (17:15 +0000)]
Fix bad address type assumption
am: f5566938ba

Change-Id: Ib3bc8b2e8299960ead6c9b6f7969df8453300431

7 years agoFix bad address type assumption
Jakub Pawlowski [Fri, 16 Sep 2016 15:03:16 +0000 (08:03 -0700)]
Fix bad address type assumption

LE related code should not use BTM_ACL_IS_CONNECTED, because it assumes
classic transport.

In this particular case, connection created event, which was result of
advertising, caused cancellation of "LE Create Connection".
Attempt to send "LE Create Connection Cancel" was checking if connection
is already established, but was failing to do so becuase
BTM_ACL_IS_CONNECTED was used instead of btm_bda_to_acl with proper
transport. This caused just created connection to be dropped.

Bug: 31442085
Change-Id: Ia345a3d00e8567160f4abb2a31c4130ee69d67a3

7 years agoMerge "Update the style guide"
Myles Watson [Thu, 15 Sep 2016 22:12:46 +0000 (22:12 +0000)]
Merge "Update the style guide"
am: 02b83686b6

Change-Id: Idd4299419cb9326577478bc60e86ee53f571dc0c

7 years agoAdd .clang-format
Andre Eisenbach [Thu, 15 Sep 2016 22:10:56 +0000 (22:10 +0000)]
Add .clang-format
am: 99a236f01a

Change-Id: I83b914993265bf0c7f2a3dd17437a60feaef38f9

7 years agoMerge "Update the style guide"
Treehugger Robot [Thu, 15 Sep 2016 22:09:32 +0000 (22:09 +0000)]
Merge "Update the style guide"

7 years agoAdd .clang-format
Andre Eisenbach [Wed, 14 Sep 2016 21:32:49 +0000 (14:32 -0700)]
Add .clang-format

Change-Id: I3750edd23be239d1b19aa1b7d949cfa3d074cb2f

7 years agoFix NPE in l2cble_notify_le_connection
Jakub Pawlowski [Thu, 15 Sep 2016 21:53:07 +0000 (21:53 +0000)]
Fix NPE in l2cble_notify_le_connection
am: b4458c93d5

Change-Id: I4d4e647734515a2364b69afb31ca838725d014b8

7 years agoMerge "Add a missing case for BTA_DM_SEARCH_CANCEL_CMPL_EVT"
Jakub Pawlowski [Thu, 15 Sep 2016 21:53:07 +0000 (21:53 +0000)]
Merge "Add a missing case for BTA_DM_SEARCH_CANCEL_CMPL_EVT"
am: 2d8048d72f

Change-Id: Ie0e87e60834c9223b4a5ee338f7aa157f8b37095

7 years agoFix NPE in l2cble_notify_le_connection
Jakub Pawlowski [Thu, 15 Sep 2016 15:04:04 +0000 (08:04 -0700)]
Fix NPE in l2cble_notify_le_connection

Accessing p_lcb must be guarded with NULL check.

Bug: 31442085
Change-Id: I0f6e3f8e0247c5e8946c4d098f8a3ba442f5fb28

7 years agoMerge "Add a missing case for BTA_DM_SEARCH_CANCEL_CMPL_EVT"
Treehugger Robot [Thu, 15 Sep 2016 21:41:57 +0000 (21:41 +0000)]
Merge "Add a missing case for BTA_DM_SEARCH_CANCEL_CMPL_EVT"

7 years agoMerge "Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event"
Pavlin Radoslavov [Thu, 15 Sep 2016 20:55:31 +0000 (20:55 +0000)]
Merge "Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event"
am: c94437561f

Change-Id: Id78a7d380b1a1cbedecec73d26b9d41067211d74

7 years agoMerge "Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event"
Treehugger Robot [Thu, 15 Sep 2016 20:35:41 +0000 (20:35 +0000)]
Merge "Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event"

7 years agoAdd a missing case for BTA_DM_SEARCH_CANCEL_CMPL_EVT
Jakub Pawlowski [Thu, 15 Sep 2016 15:02:05 +0000 (08:02 -0700)]
Add a missing case for BTA_DM_SEARCH_CANCEL_CMPL_EVT

Cancelling discovery was not handled properly in
btif_dm_search_services_evt and was causing crashes due to assert in
default case.

Bug: 31442085
Change-Id: If9a2c203730c9b06df5ff8d8e251f0c35addcb82

7 years agoUpdate the style guide
Myles Watson [Thu, 15 Sep 2016 16:19:10 +0000 (09:19 -0700)]
Update the style guide

Add a pointer to the C++ style guide.

Add a HOWTO for those who have outstanding patches that
they'd like to reformat.

Change-Id: Ia749c6498424cfbdf0bb759a1736978f91a34289

7 years agoDon't use move in FOR_EACH_* macro
Jakub Pawlowski [Thu, 15 Sep 2016 13:38:30 +0000 (13:38 +0000)]
Don't use move in FOR_EACH_* macro
am: 10c37e63c1

Change-Id: Ieb71b05695a6e362aab1f79aa8d83e520bd70321

7 years agoDon't use move in FOR_EACH_* macro
Jakub Pawlowski [Thu, 15 Sep 2016 11:04:37 +0000 (04:04 -0700)]
Don't use move in FOR_EACH_* macro

FOR_EACH_* macros are resolved to for loop. Using std::move inside it
will cause already moved object to be used when more than one observer
is registered. This patch fixes that.

This issue was already fixed in commit e84c4bd, but was reintroduced in
a641b6fa.

Change-Id: I14b72371d369e4bdcaf3a6e30045bf8a1e8c3e1b

7 years agoAdd BT_HCI_UNKNOWN_MESSAGE_TYPE log event
Pavlin Radoslavov [Wed, 14 Sep 2016 23:39:02 +0000 (16:39 -0700)]
Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event

If the received HCI type is unknown, then log an event and abort.
The most likely reason for that to happen is if the UART stream
is corrupted. We cannot recover from that, and there is not much
else we can do.

Also, fixed a bug in an HCI-related unit test that was exposed
by the above change.

Bug: 31432127
Change-Id: Ia888c485f177af4962268bf8f593b27fd7a4b080

7 years agoMerge "Add security record for devices found through LE batch scan"
Andre Eisenbach [Wed, 14 Sep 2016 22:06:06 +0000 (22:06 +0000)]
Merge "Add security record for devices found through LE batch scan"
am: c8bd6de515

Change-Id: If593628632df3b60b2906de10f830fed464661be

7 years agoMerge "Add security record for devices found through LE batch scan"
Treehugger Robot [Wed, 14 Sep 2016 22:02:25 +0000 (22:02 +0000)]
Merge "Add security record for devices found through LE batch scan"

7 years agotest_vendor: Remove unnecessary const from params
Myles Watson [Wed, 14 Sep 2016 21:04:32 +0000 (21:04 +0000)]
test_vendor: Remove unnecessary const from params
am: 354a9bf886

Change-Id: Idd092ebf7c1a97ffa816bd60bf3ee451252b3a75

7 years agoAdd security record for devices found through LE batch scan
Andre Eisenbach [Wed, 14 Sep 2016 19:41:37 +0000 (12:41 -0700)]
Add security record for devices found through LE batch scan

Currently, starting an LE batch scan are not added to the stack internal
device database, which means that the address type and device type
needed for a connection are not available.

This patch ensures that devices found during an LE scan are added to the
device database to ensure connection attempts will succeed.

Bug: 31309376
Change-Id: Ic52d7eaa03d17dcbbd848af9140038bc84ea3bd0

7 years agotest_vendor: Remove unnecessary const from params
Myles Watson [Wed, 14 Sep 2016 18:39:33 +0000 (11:39 -0700)]
test_vendor: Remove unnecessary const from params

Change-Id: I6502e3e78f139722bb887640dcc00ee79f1b0044

7 years agoRemoved unused local variable
Pavlin Radoslavov [Wed, 14 Sep 2016 05:16:30 +0000 (05:16 +0000)]
Removed unused local variable
am: ac59fa20a7

Change-Id: I365c7c4c9575120c9363e971f8cd85b3235cbc3d

7 years agoRemoved unused local variable
Pavlin Radoslavov [Wed, 14 Sep 2016 05:00:53 +0000 (22:00 -0700)]
Removed unused local variable

Change-Id: Iee7a951351448f07c5e4c92d3b034e5a8377cf5f

7 years agoavrc: Fix AVRC_MsgReq() msg_mask bug
Greg Kaiser [Tue, 13 Sep 2016 23:02:36 +0000 (23:02 +0000)]
avrc: Fix AVRC_MsgReq() msg_mask bug
am: ebfeca0a62

Change-Id: I45dc17b9e45d8cdabcf1c546d63988bf048a54a2

7 years agoA2DP related API update and cleanup
Pavlin Radoslavov [Tue, 13 Sep 2016 20:45:00 +0000 (20:45 +0000)]
A2DP related API update and cleanup
am: d7ff47cc64

Change-Id: Ie71c7ca4a6c4666dffb31b74516f324ba0f5a267

7 years agoavrc: Fix AVRC_MsgReq() msg_mask bug
Greg Kaiser [Tue, 13 Sep 2016 15:07:04 +0000 (08:07 -0700)]
avrc: Fix AVRC_MsgReq() msg_mask bug

msg_mask is intended to be a bit field.  But by declaring it a
bool, we end up turning all bit values into 1, and losing the
other bit values.  We fix this by properly declaring this as
a uint8_t.

Bug:31273148
Change-Id: Id95e1853ea1ad4fbebc35fdc24708765f1fd9e07

7 years agoA2DP related API update and cleanup
Pavlin Radoslavov [Thu, 8 Sep 2016 18:27:46 +0000 (11:27 -0700)]
A2DP related API update and cleanup

* Added new A2DP API and use it as appropriate
  - A2D_GetTrackFrequency()
  - A2D_GetTrackChannelCount()
  - A2D_GetNumberOfSubbands()
  - A2D_GetNumberOfBlocks()
  - A2D_GetAllocationMethodCode()
  - A2D_GetChannelModeCode()
  - A2D_GetSamplingFrequencyCode()
  - A2D_GetSinkTrackChannelType()
  - A2D_GetSinkFramesCountToProcess()

* Added corresponding unit tests for the new API

Also, A2DP related cleanup:
 - Renamed A2D_sbc_dump_codec_info to A2D_DumpCodecInfoSbc()
 - Changed the order of tA2D_SBC_CIE.min_bitpool and
   tA2D_SBC_CIE.max_bitpool to reflect the order of the corresponding
   fields in the Bluetooth spec (A2DP spec v1.3, page 21).
 - Added new API A2D_GetMediaType() and the corresponding unit test
 - Renamed AVDT_MEDIA_AUDIO to AVDT_MEDIA_TYPE_AUDIO
 - Renamed tA2D_SBC_CIE.alloc_mthd to alloc_method
 - Renamed A2D_BAD_ALLOC_MTHD to A2D_BAD_ALLOC_METHOD
 - Renamed A2D_NS_ALLOC_MTHD to A2D_NS_ALLOC_METHOD
 - Eliminated usage of A2D_MEDIA_TYPE_AUDIO and replace it with
   AVDT_MEDIA_TYPE_AUDIO.
    Now the media_type value everywhere is the AVDT_MEDIA_TYPE_* value
    without the reserved 4 bits (LSBs).
 - Fixed macro defines in file "stack/avdt/avdt_defs.h"

Bug: 30958229
Change-Id: Id82653e9c9460aeb92d942a9179bb5abdb4bfdec

7 years agoFix advertising timers
Jakub Pawlowski [Tue, 13 Sep 2016 10:19:42 +0000 (10:19 +0000)]
Fix advertising timers
am: a8fcd684da

Change-Id: I752d36909feb7c2e2d7c5cc6a2f8b15e487dbc68

7 years agoFix advertising timers
Jakub Pawlowski [Thu, 8 Sep 2016 11:58:09 +0000 (04:58 -0700)]
Fix advertising timers

Right now, timers that rotate advertising address are started when stack
is starting and keep running all the time even when advertising is not
used. This patch fix that by starting the timer when advertising
instance is registered, and stopping it when it's unregistered.

Bug: 30622771
Change-Id: I638176bdc2f26c62d5ec3a56f6e81cd9c016df0b

7 years agoBluetooth: split setting params and enabling advertising (3/3)
Jakub Pawlowski [Tue, 13 Sep 2016 08:35:38 +0000 (08:35 +0000)]
Bluetooth: split setting params and enabling  advertising (3/3)
am: 73679d01c7

Change-Id: Iaba2b31418ff52a9dd6ac9dc8383f9dcc676c0d1

7 years agoBluetooth: split setting params and enabling advertising (3/3)
Jakub Pawlowski [Thu, 18 Aug 2016 21:42:54 +0000 (14:42 -0700)]
Bluetooth: split setting params and enabling  advertising (3/3)

Proper order of commands when starting advertising:
* set parameters
* set data
* enable advertising

This cannot be achieved when setting advertising parameters and enabling
advertising is put together in one function. Enabling before setting
data might cause first advertisements to be empty. If a device with
hardware filter pick up such advertisement, it might fail to properly
recognize our device.

Bug: 30622771
Bug: 19372779
Change-Id: I3a2c1171e301ecfd7cbf1cb8b86cfda0e5fc2382

7 years agoMerge "test_vendor: White space fix in vendor manager"
Myles Watson [Tue, 13 Sep 2016 03:06:45 +0000 (03:06 +0000)]
Merge "test_vendor: White space fix in vendor manager"
am: f6c30e115c

Change-Id: I7799006694c88c5ea5cd2303312d94ad8419852d

7 years agoMerge "test_vendor: White space fix in vendor manager"
Treehugger Robot [Tue, 13 Sep 2016 03:03:35 +0000 (03:03 +0000)]
Merge "test_vendor: White space fix in vendor manager"

7 years agoMerge "test_vendor: Silence packet_stream.cc"
Myles Watson [Tue, 13 Sep 2016 02:58:44 +0000 (02:58 +0000)]
Merge "test_vendor: Silence packet_stream.cc"
am: 85dba1c476

Change-Id: Iea952846e306e6ea937efe81492315b3ab692919

7 years agoMerge "test_vendor: Silence packet_stream.cc"
Treehugger Robot [Tue, 13 Sep 2016 02:53:16 +0000 (02:53 +0000)]
Merge "test_vendor: Silence packet_stream.cc"

7 years agoMerge "Extended the A2DP codec abstraction API"
Pavlin Radoslavov [Tue, 13 Sep 2016 02:09:11 +0000 (02:09 +0000)]
Merge "Extended the A2DP codec abstraction API"
am: b4eb64344a

Change-Id: I2d007ad343d74c911abe4f8d6a05724f84a368a4

7 years agoMerge "Extended the A2DP codec abstraction API"
Treehugger Robot [Tue, 13 Sep 2016 02:06:30 +0000 (02:06 +0000)]
Merge "Extended the A2DP codec abstraction API"

7 years agotest_vendor: Move checks for vendor_manager_
Jorge E. Moreira [Tue, 13 Sep 2016 02:04:02 +0000 (02:04 +0000)]
test_vendor: Move checks for vendor_manager_
am: 9cd5cd2856

Change-Id: I1a1f97d2055d1eabbfb7dad3c552e56b7765114f

7 years agotest_vendor: White space fix in vendor manager
Myles Watson [Fri, 9 Sep 2016 22:56:31 +0000 (15:56 -0700)]
test_vendor: White space fix in vendor manager

Change-Id: I00f2e40ba29a84fd3733b99abafc8e5b9961de7d

7 years agoExtended the A2DP codec abstraction API
Pavlin Radoslavov [Thu, 8 Sep 2016 04:57:47 +0000 (21:57 -0700)]
Extended the A2DP codec abstraction API

 * Added new A2DP codec-independent API and updated/renamed existing API.
   - A2D_InitCodecConfig()
   - A2D_InitDefaultCodec()
   - A2D_SetCodec()
   - A2D_IsCodecSupported() -> A2D_IsSourceCodecSupported()
   - A2D_IsSinkCodecSupported()
   - A2D_BuildSrc2SinkConfig() - previously bta_av_build_src_cfg()
   - A2D_IsSinkCodecSupported() - previously
       bta_av_co_audio_sink_supports_config()
   - A2D_IsSourceCodecSupported() - previously
       bta_av_co_audio_media_supports_config()
   - A2D_IsPeerSourceCodecSupported()
   - A2D_GetDefaultConfigSbc() - to be deleted
   - A2D_CodecSepIndexStr()

 * Added the corresponding SBC-specific implementation and a placeholder
   for vendor implementation.

 * Added the corresponding unit tests

Also:
 * Added type tA2D_CODEC_SEP_INDEX and list each known codec (Source or Sink):
   A2D_CODEC_SEP_INDEX_*
 * Renamed BTIF_SV_AV_AA_SBC_INDEX -> A2D_CODEC_SEP_INDEX_SBC
 * Renamed BTIF_SV_AV_AA_SBC_SINK_INDEX -> A2D_CODEC_SEP_INDEX_SBC_SINK
 * Renamed BTA_AV_MAX_SEPS -> A2D_CODEC_SEP_INDEX_MAX
 * Renamed tA2D_CODEC -> tA2D_CODEC_TYPE
 * Renamed tBTIF_AV_MEDIA_FEEDINGS -> tA2D_AV_MEDIA_FEEDINGS
 * Renamed tBTIF_AV_CODEC_ID -> tA2D_AV_CODEC_ID (to be deleted)
 * Renamed BTIF_AV_CODEC_PCM -> tA2D_AV_CODEC_PCM (to be deleted)
 * Renamed BTIF_AV_CODEC_NONE -> tA2D_AV_CODEC_NONE (to be deleted)
 * tBTIF_AV_MEDIA_FEED_CFG_PCM -> tA2D_AV_MEDIA_FEED_CFG_PCM (to be
   deleted)
 * tBTIF_AV_MEDIA_FEED_CFG -> tA2D_AV_MEDIA_FEED_CFG (to be deleted)
 * Moved SBC codec-related configuration and capabilities from
   btif/co/bta_av_co.cc to stack/a2dp/a2d_sbc.c :
   - bta_av_co_sbc_caps -> a2d_sbc_caps
   - bta_av_co_sbc_sink_caps -> a2d_sbc_sink_caps
   - btif_av_sbc_default_config -> a2d_sbc_default_config
 * Replaced usage of BTIF_AV_SBC_DEFAULT_SAMP_FREQ with
   A2D_SBC_IE_SAMP_FREQ_44
 * Merged bta_av_sbc_cfg_matches_cap() and bta_av_sbc_cfg_in_cap()
   into A2D_CodecInfoMatchesCapabilitySbc()
 * Misc other fixes and cleanup: use tA2D_STATUS as appropriate, remove
   FUNC_TRACE(), etc.

Bug: 30958229
Change-Id: I35e224754041cdce479c87e57d8e2c8b3adc8edd

7 years agotest_vendor: Silence packet_stream.cc
Myles Watson [Wed, 13 Jul 2016 00:01:57 +0000 (17:01 -0700)]
test_vendor: Silence packet_stream.cc

Only log if Events report the wrong size.

Change-Id: I3c06e94298f7341a940bb6d5106c869746bdaa78

7 years agotest_vendor: Move checks for vendor_manager_
Jorge E. Moreira [Mon, 12 Sep 2016 22:03:41 +0000 (15:03 -0700)]
test_vendor: Move checks for vendor_manager_

Only some vendor operations use vendor_manager_.  Move the checks into
the operations that use it.

Change-Id: I8bb23d740c94df7e2081c29b1d9e062c5c012714

7 years agoAdded void keyword to function declaration and definition
Jack He [Mon, 12 Sep 2016 21:01:40 +0000 (21:01 +0000)]
Added void keyword to function declaration and definition
am: 2c8ddc6788

Change-Id: I79d50cfe9b809b7fb3459f09b9a681430564216c

7 years agoAdded void keyword to function declaration and definition
Jack He [Mon, 12 Sep 2016 18:36:52 +0000 (11:36 -0700)]
Added void keyword to function declaration and definition

Change-Id: I79ac76e64e836551cfd555a7b9786d254fcbc07a

7 years agotest_vendor: Remove using directives from headers
Myles Watson [Fri, 9 Sep 2016 21:45:07 +0000 (21:45 +0000)]
test_vendor: Remove using directives from headers
am: b7d64b2071

Change-Id: Ide1343b07810040c8e994ef9df7e37d406ec2683

7 years agotest_vendor: Use BtAddress instead of vectors
Myles Watson [Fri, 9 Sep 2016 21:45:03 +0000 (21:45 +0000)]
test_vendor: Use BtAddress instead of vectors
am: 3be0c20a70

Change-Id: Ied59064b505905c02a29adfc53e21ca4206250de

7 years agotest_vendor: Remove using directives from headers
Myles Watson [Mon, 29 Aug 2016 15:19:19 +0000 (08:19 -0700)]
test_vendor: Remove using directives from headers

Change-Id: I83358cbb68b10e80e4e553a6657fcb38cfcb928f
Signed-off-by: Myles Watson <mylesgw@google.com>
7 years agotest_vendor: Use BtAddress instead of vectors
Myles Watson [Mon, 29 Aug 2016 15:17:25 +0000 (08:17 -0700)]
test_vendor: Use BtAddress instead of vectors

Change-Id: I229f2a4f93a9219a502960e6d91f514738f3b3c8
Signed-off-by: Myles Watson <mylesgw@google.com>
7 years agotest_vendor: Remove unused extern statements
Myles Watson [Fri, 9 Sep 2016 17:48:51 +0000 (17:48 +0000)]
test_vendor: Remove unused extern statements
am: 265316f78c

Change-Id: Id0b0d5be188bd14764ceb3cadd5cd8c27d8872ef

7 years agotest_vendor: Remove unused extern statements
Myles Watson [Mon, 29 Aug 2016 14:30:48 +0000 (07:30 -0700)]
test_vendor: Remove unused extern statements

It should be safe to include C header files without
using extern.

Change-Id: I2b562ef3f76df9f9dac69323345ed3d3610e8bc2
Signed-off-by: Myles Watson <mylesgw@google.com>
7 years agoMove all advertising related code into one file
Jakub Pawlowski [Thu, 8 Sep 2016 20:37:02 +0000 (20:37 +0000)]
Move all advertising related code into one file
am: b0897559c3

Change-Id: I7050da5e21e27b12e0de9530476fdaa5b50db79a

7 years agoMove all advertising related code into one file
Jakub Pawlowski [Wed, 7 Sep 2016 17:53:18 +0000 (10:53 -0700)]
Move all advertising related code into one file

This patch moves btm_ble_adv_raddr_timer_timeout into same file that use
it. It also moves all structures related to multi-advertising into only
source file that uses them, to make sure noone uses them externally
while they undergo further refactoring.

Bug: 30622771
Change-Id: I721d222aa8f5317620c616cc59ee04b7b28a68b3

7 years agotest_vendor: Refactor controller timing
Myles Watson [Thu, 8 Sep 2016 17:05:22 +0000 (17:05 +0000)]
test_vendor: Refactor controller timing
am: caa53d094c

Change-Id: Icc42613ca45a2140461a92eafc9809aa29edc24d

7 years agotest_vendor: Refactor controller timing
Myles Watson [Thu, 16 Jun 2016 10:54:23 +0000 (03:54 -0700)]
test_vendor: Refactor controller timing

Use AsyncManager to implement a timer tick and an event queue.

Change-Id: Iec2a0ef06f17ecce0652ecc52f5ef732fc4af026
Signed-off-by: Myles Watson <mylesgw@google.com>