OSDN Git Service
Victor Khimenko [Thu, 29 Sep 2016 06:08:00 +0000 (06:08 +0000)]
Merge "Support TARGET_TRANSLATE_2ND_ARCH case"
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)
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
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
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
Jakub Pawlowski [Tue, 27 Sep 2016 15:21:55 +0000 (08:21 -0700)]
Update BUILD.gn files
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
Jakub Pawlowski [Fri, 23 Sep 2016 20:53:24 +0000 (20:53 +0000)]
Merge "Convert BLE multi-advertising code to C++"
Ajay Panicker [Fri, 23 Sep 2016 19:00:17 +0000 (19:00 +0000)]
Merge "Move btsnoop_hci.log to /data/misc/bluetooth/logs"
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
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
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
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
Treehugger Robot [Thu, 22 Sep 2016 01:49:03 +0000 (01:49 +0000)]
Merge "Fix improper null check when handling rc features"
Ajay Panicker [Thu, 22 Sep 2016 01:32:33 +0000 (01:32 +0000)]
Merge "Remove net_bt_stack group and replace it with bluetooth"
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
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
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
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
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
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
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
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
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
Treehugger Robot [Thu, 15 Sep 2016 22:09:32 +0000 (22:09 +0000)]
Merge "Update the style guide"
Andre Eisenbach [Wed, 14 Sep 2016 21:32:49 +0000 (14:32 -0700)]
Add .clang-format
Change-Id: I3750edd23be239d1b19aa1b7d949cfa3d074cb2f
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
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"
Treehugger Robot [Thu, 15 Sep 2016 20:35:41 +0000 (20:35 +0000)]
Merge "Add BT_HCI_UNKNOWN_MESSAGE_TYPE log event"
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
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
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
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
Treehugger Robot [Wed, 14 Sep 2016 22:02:25 +0000 (22:02 +0000)]
Merge "Add 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
Myles Watson [Wed, 14 Sep 2016 18:39:33 +0000 (11:39 -0700)]
test_vendor: Remove unnecessary const from params
Change-Id: I6502e3e78f139722bb887640dcc00ee79f1b0044
Pavlin Radoslavov [Wed, 14 Sep 2016 05:00:53 +0000 (22:00 -0700)]
Removed unused local variable
Change-Id: Iee7a951351448f07c5e4c92d3b034e5a8377cf5f
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
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
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
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
Treehugger Robot [Tue, 13 Sep 2016 03:03:35 +0000 (03:03 +0000)]
Merge "test_vendor: White space fix in vendor manager"
Treehugger Robot [Tue, 13 Sep 2016 02:53:16 +0000 (02:53 +0000)]
Merge "test_vendor: Silence packet_stream.cc"
Treehugger Robot [Tue, 13 Sep 2016 02:06:30 +0000 (02:06 +0000)]
Merge "Extended the A2DP codec abstraction API"
Myles Watson [Fri, 9 Sep 2016 22:56:31 +0000 (15:56 -0700)]
test_vendor: White space fix in vendor manager
Change-Id: I00f2e40ba29a84fd3733b99abafc8e5b9961de7d
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
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
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
Jack He [Mon, 12 Sep 2016 18:36:52 +0000 (11:36 -0700)]
Added void keyword to function declaration and definition
Change-Id: I79ac76e64e836551cfd555a7b9786d254fcbc07a
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>
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>
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>
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
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>
Jakub Pawlowski [Mon, 5 Sep 2016 16:11:27 +0000 (09:11 -0700)]
Use proper type in filter init
Change-Id: I429ea832f32cb4c67525dda71f9e05ba60110e1e
Treehugger Robot [Wed, 7 Sep 2016 01:24:09 +0000 (01:24 +0000)]
Merge "Updating QDID to reflect the certfication done for N."
pkanwar [Tue, 6 Sep 2016 16:21:35 +0000 (09:21 -0700)]
Updating QDID to reflect the certfication done for N.
Change-Id: Ia80cb82c833df341f832d2ab8cc71a868e2c8f5e
(cherry picked from commit
a1e4dd95ea389036c9e59872de09059726723fb4)
Myles Watson [Fri, 20 May 2016 19:06:19 +0000 (12:06 -0700)]
test_vendor: Refactor test channel
The test channel can always be enabled when using the AsyncManager.
- Remove enabled_ and port_
- Allow multiple connections
- Pass file descriptors as parameters instead of private variables
- Add a clean up function to the Test Channel
- Add a static class in bt_vendor.cc and always EXPORT the entry point
- Move the vendor callbacks and the global pointer to the vendor
manager object from vendor_manager to bt_vendor
Change-Id: I3e0dee846eb89f434893603a705c2b13219272be
Signed-off-by: Myles Watson <mylesgw@google.com>
Signed-off-by: Jorge E. Moreira <jemoreira@google.com>
Treehugger Robot [Sat, 3 Sep 2016 13:09:30 +0000 (13:09 +0000)]
Merge "gatt_db: Fix uuid_to_str for UUID_32"
Treehugger Robot [Sat, 3 Sep 2016 04:55:53 +0000 (04:55 +0000)]
Merge "Deregister from notifications when an HOGP background connection is cancelled"
Greg Kaiser [Sat, 3 Sep 2016 00:34:32 +0000 (17:34 -0700)]
gatt_db: Fix uuid_to_str for UUID_32
A typo in a conditional had us treating LEN_UUID_32 as
an unknown length in this function.
Change-Id: Iec0190fd70859d9b72295e91798af5fdc4dfae93
Ajay Panicker [Fri, 2 Sep 2016 20:46:00 +0000 (20:46 +0000)]
Merge "AVRCP 1.6: media browsing support on Target(1/3)"
IHLHO KIM [Tue, 16 Aug 2016 08:55:47 +0000 (08:55 +0000)]
Deregister from notifications when an HOGP background connection is cancelled
Bug:
29111689
Change-Id: I5b57da9e08dea372e9b236b360ffeeae4f6b49af
Jakub Pawlowski [Fri, 2 Sep 2016 20:09:27 +0000 (20:09 +0000)]
Merge "Remove BTA layer components for LE advertising"
Avish Shah [Wed, 22 Jun 2016 01:17:20 +0000 (06:47 +0530)]
AVRCP 1.6: media browsing support on Target(1/3)
-> As a part of Avrcp 1.6 upgrade, added support
for following features:
[1] setAddressedPlayer
[2] setBrowsedPlayer
[3] getFolderItems scope=VFS/NowPlaying/Search
[4] changePath
[5] getItemAttributes
[6] playItem
[7] getTotalNumberOfItems
[8] search string in current browsed path.
[9] AddToNowPlaying
-> Defined functions and enhanced structures to
support above mentioned features.
-> Added Dual RC support.
Bug:
19361366
Merged-In: I45ed60e337b57c686d9693e19993fee1ce3c2504
Change-Id: I45ed60e337b57c686d9693e19993fee1ce3c2504
Myles Watson [Wed, 22 Jun 2016 21:55:10 +0000 (14:55 -0700)]
test_vendor: Add BtAddress unit tests
Change-Id: I23d27a1a5c258de330f4eac23d314ef8b9200d2a
Signed-off-by: Myles Watson <mylesgw@google.com>
Myles Watson [Tue, 7 Jun 2016 17:01:28 +0000 (10:01 -0700)]
test_vendor: Add a BtAddress class
The class provides IsValidBtAddress(string), functions to convert
from vectors and strings, and some operators.
Change-Id: I553c47e698ec46ed0e24656f89141c23f7369380
Signed-off-by: Myles Watson <mylesgw@google.com>
Jakub Pawlowski [Tue, 16 Aug 2016 16:41:55 +0000 (09:41 -0700)]
Remove BTA layer components for LE advertising
Advertising is so simple, it doesn't need the BTA layer.
Values returned by BTM_VendorSpecificCommand shouldn't be handled as
success or failure, it's just to inform wether we sent the callback.
Bug:
30622771
Change-Id: I104c4fbf84d3818b76fe8c527fbde4e6c4336c3a
Jakub Pawlowski [Tue, 16 Aug 2016 10:25:45 +0000 (03:25 -0700)]
Unify LE advertising instance identifiers
Up till now, we had three numbers associated with each advertising
instance: client_id, inst_id, and cbindex. We also had special structure
mapping each of those numbers to another.
From now on, when registering advertiser, we'll grab next free
advertising instance id and make advertiser_id equal to it. Thanks to
this, we can remove all the mapping and have just one number associated
with each advertising instance.
This also means we no longer need to pass *p_ref value to the BTM layer
with each request, as advertiser_id is equal to inst_id.
Bug:
30622771
Change-Id: Ied71bff36e30d6c6ce4ca3e62d46ba96320cf597
Pavlin Radoslavov [Wed, 31 Aug 2016 00:48:01 +0000 (17:48 -0700)]
Cleanup in the bta/av layer
* Removed unused defines and function declarations
* Removed unused tBTA_AV_Q_INFO.vdp
* Cleanup of some of the log messages
Also:
* Added constant AVDT_TSEP_INVALID instead of using a hard-coded value
Change-Id: I9ce7b5b08dec7c9ea9699d9f6c598acb39fb105a
Pavlin Radoslavov [Sun, 28 Aug 2016 23:59:51 +0000 (16:59 -0700)]
Added A2DP codec-related APIs
Those APIs can be used to check various codec-related characterictics,
and minimize the codec-specific knowledge in the rest of the code.
The added APIs are:
- A2D_GetCodecType()
- A2D_IsCodecSupported()
- A2D_UsesRtpHeader()
- A2D_IsVendorCodecSupported()
- A2D_VendorCodecGetVendorId()
- A2D_VendorCodecGetCodecId()
- A2D_VendorUsesRtpHeader()
Also:
- Added unit tests for the new API calls
- Removed redundant definition of BTA_AV_CODEC_TYPE_IDX
- Removed unused A2D_MEDIA_CT_* codec type defines
Bug:
30958229
Change-Id: Id9ab01fd93b0b0a9b55a0af9bfb482310ae0ade4
Jakub Pawlowski [Wed, 13 Jul 2016 18:55:16 +0000 (11:55 -0700)]
Separate advertiser from GATT client (4/4)
Bug:
30622771
Change-Id: I761f0bff09aec1047bd512915960021e4fbdc0c8
Jakub Pawlowski [Thu, 11 Aug 2016 10:30:47 +0000 (03:30 -0700)]
Use closures in advertising related code
This patch is a preparation to get rid of BTA layer for advertising, and
for further refactoring required to keep this code maintainable.
Tests: SL4A/ConcurrentBleAdvertisingTest
Bug:
30622771
Change-Id: I574b57159390d090b16d264d3c1fba2f07b70d4c
Pavlin Radoslavov [Thu, 25 Aug 2016 22:34:57 +0000 (15:34 -0700)]
Cleanup and removed BTIF-related unused code
* Removed field tBTIF_MEDIA_CB.av_sm_hdl, because it is never used
after an assignment.
* Removed the corresponding function btif_av_get_sm_handle() which
is not used/needed anymore.
* Declared btif_hf_is_call_idle() function in a new header file
"btif_hf.h"
* Removed tBTIF_STATUS, BTIF_SUCCESS and BTIF_ERROR_SRV_* error codes
which are never used.
* Removed duplicate conditional define of BTA_AV_CO_CP_SCMS_T
* Removed unused typedef tBTA_AV_AUDIO_CODEC_INFO, and unused
BTA_AV_CO_* defines and enums.
Change-Id: I7bb49957fad94073d474fea6ea0d466f36df37fb
Treehugger Robot [Thu, 25 Aug 2016 22:11:07 +0000 (22:11 +0000)]
Merge "Update linux BUILD.gn files"
Jakub Pawlowski [Thu, 25 Aug 2016 20:14:26 +0000 (13:14 -0700)]
Update linux BUILD.gn files
Change-Id: Iccec195d35b5a62d7b45834670229a68deeb4add
Pavlin Radoslavov [Wed, 16 Mar 2016 22:28:07 +0000 (15:28 -0700)]
Free av_open_on_rc_timer on cleanup
Bug:
27602473
Change-Id: I4b0f1563952be75a6dee238607e6674ce98ea623
Andre Eisenbach [Thu, 23 Jun 2016 21:22:35 +0000 (14:22 -0700)]
Remove log spam in btif_gattc_update_properties
Bug:
29601962
Change-Id: Ibcccbe20a4b7c79edcaff162e4f4a19078ffb75d
(cherry picked from commit
ffdb33b5fcfa0a652e9fa368f7f8c3bb0654b46e)
Treehugger Robot [Thu, 25 Aug 2016 08:44:55 +0000 (08:44 +0000)]
Merge "Don't set the A2DP sink data callback when registering A2DP source"
Pavlin Radoslavov [Wed, 24 Aug 2016 18:46:58 +0000 (11:46 -0700)]
Removed duplicate and unused BTA_AV_ and BTIF_AV_ constants
* Replaced usage of BTA_AV_CODEC_SBC and BTIF_AV_CODEC_SBC
with A2D_MEDIA_CT_SBC
* Removed remaining unused BTA_AV_CODEC_* re-defines
* Removed other BTA_* constants and re-defines that are never used
* Removed unused BTIF_AV_ constants and typedefs
Change-Id: I38090acee3dfdcd1196185e0b060cdad7572003a
Pavlin Radoslavov [Wed, 24 Aug 2016 17:42:22 +0000 (10:42 -0700)]
Don't set the A2DP sink data callback when registering A2DP source
The p_sink_data_cback pointer should be NULL when registering
A2DP source with BTA_AvRegister()
Change-Id: I1a709c4e0d3cfe6faf0368a013b391c6e6a53a82
Treehugger Robot [Wed, 24 Aug 2016 20:55:54 +0000 (20:55 +0000)]
Merge "Removed unused log-related defines and typedefs"
Jakub Pawlowski [Wed, 10 Aug 2016 16:07:44 +0000 (09:07 -0700)]
Make it possible to post closures to BTA message queue
Currently, every task executed on bta thread needs a separate event id,
structure holding its parameters, API method, and method that will be
executed in bta thread, which must accept generic tBTA_DM_MSG.
Because of that we end up with lots of boilerplate code, and possibility
to misinterpret bytes in tBTA_DM_MSG struct.
After this patch, we can post closures onto bta thread. Thanks to it we
don't need a struct to hold parameters, and the executed method can have
a meaningful parameters.
First experiments showed over 50% reduction in code size when rewriting
advertising code to new style, not to mention much better readability.
Bug:
30622771
Change-Id: I400839b920c04c67c893899969d07a02d9c1b2e6
Bill Yi [Wed, 24 Aug 2016 18:18:47 +0000 (11:18 -0700)]
Merge remote-tracking branch 'goog/stage-aosp-master' into HEAD
Pavlin Radoslavov [Wed, 24 Aug 2016 18:01:42 +0000 (11:01 -0700)]
Removed unused log-related defines and typedefs
Change-Id: I794f07821a653f03e02cb5ad11790dfe2dfaea98
Myles Watson [Tue, 21 Jun 2016 23:45:02 +0000 (16:45 -0700)]
test_vendor: Build independently from the stack
Remove the dependency on bluetooth_* flags.
Enable more warnings.
(Based on the build flags in system/bt/Android.mk)
Change-Id: I5f480f15c037955404502a0216b61aa407670163
Signed-off-by: Myles Watson <mylesgw@google.com>
Myles Watson [Wed, 24 Aug 2016 16:03:32 +0000 (09:03 -0700)]
test_vendor: Fix style for UNUSED_ATTR, whitespace
Remove "/* args */" and use UNUSED_ATTR. It's easier to find using grep.
Change-Id: Ic1a95e44b86d019647acafe982cfef5c69e1da1a
Signed-off-by: Myles Watson <mylesgw@google.com>
Pavlin Radoslavov [Wed, 24 Aug 2016 09:01:30 +0000 (09:01 +0000)]
Fix a typo: __func_ -> __func__
am:
3e0f253c28
Change-Id: I4309954020a7630fa1dc4eca766fc12e982fbefc
Pavlin Radoslavov [Wed, 24 Aug 2016 08:44:41 +0000 (01:44 -0700)]
Fix a typo: __func_ -> __func__
Change-Id: I8b6f0664a96932c35a804541d54a50370d09c022
Pavlin Radoslavov [Wed, 24 Aug 2016 05:17:32 +0000 (05:17 +0000)]
A2DP-related naming refactoring and cleanup
am:
7aaf7c6c42
Change-Id: I2420388d1335ab2ff9edef957ed0934433e3e63e
Pavlin Radoslavov [Tue, 23 Aug 2016 19:24:03 +0000 (12:24 -0700)]
A2DP-related naming refactoring and cleanup
* Renamed A2DP-related function names, types, constants and fields.
Also, move some of those functions to a better location.
- tAVDT_DATA_CBACK -> tAVDT_SINK_DATA_CBACK
- tAVDT_MEDIA_CBACK -> tAVDT_SINK_MEDIA_CBACK
- p_data_cback -> p_sink_data_cback
- p_media_cback -> p_sink_media_cback
- p_app_data_cback -> p_app_sink_data_cback
- tBTA_AV_DATA_CBACK -> tBTA_AV_SINK_DATA_CBACK
- BTA_AV_MEDIA_SINK_CFG_EVT -> BTA_AV_SINK_MEDIA_CFG_EVT
- BTA_AV_MEDIA_DATA_EVT -> BTA_AV_SINK_MEDIA_DATA_EVT
- bta_av_stream_data_cback() -> bta_av_sink_data_cback()
- bte_av_media_callback() -> bte_av_sink_media_callback()
- tBTA_AV_CODEC -> tA2D_CODEC
- btif_a2dp_get_track_frequency() -> A2D_sbc_get_track_frequency()
- btif_a2dp_get_track_channel_count() -> A2D_sbc_get_track_channel_count()
- dump_codec_info() -> A2D_sbc_dump_codec_info()
* Misc. other cleanup:
- log messages cleanup
- normalize usage of "+=" in Android.mk files
Change-Id: Ida1528fb5d75cc322533f921daefb65be44562f1
Myles Watson [Tue, 23 Aug 2016 01:10:54 +0000 (01:10 +0000)]
test_vendor: Allow includes from bt_hci_defs
am:
a11e1c1b71
Change-Id: Ie3494281cda35263f0b0a259eef045541aba3585
Pavlin Radoslavov [Tue, 23 Aug 2016 01:10:53 +0000 (01:10 +0000)]
Removed BTA_AV_INCLUDED conditional guard which is always true
am:
bde45bd653
Change-Id: I3e3775b77c304fa5d440fc841bb6c76efbe3ef89
Myles Watson [Mon, 13 Jun 2016 19:46:38 +0000 (12:46 -0700)]
test_vendor: Allow includes from bt_hci_defs
Avoid duplicating header files for BT constants.
Update Android.mk to search $(BT_DIR)/include and
$(BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR)
Change-Id: I1403724c1cf9cda8156a5b65cf55da8178bd910f
Signed-off-by: Myles Watson <mylesgw@google.com>
Pavlin Radoslavov [Mon, 22 Aug 2016 21:49:11 +0000 (14:49 -0700)]
Removed BTA_AV_INCLUDED conditional guard which is always true
Change-Id: Idf7063359600b30c007fbde89dde55ef987c0368
Pavlin Radoslavov [Mon, 22 Aug 2016 19:42:31 +0000 (19:42 +0000)]
Merge "Removed unused code related to Audio, A2DP Sink and Video"
am:
e80e75b4a5
Change-Id: I877e15663150975a102adf692e68e1d27cfc56b8
Treehugger Robot [Mon, 22 Aug 2016 19:36:45 +0000 (19:36 +0000)]
Merge "Removed unused code related to Audio, A2DP Sink and Video"
Pavlin Radoslavov [Mon, 22 Aug 2016 19:30:29 +0000 (19:30 +0000)]
Expose function audio_a2dp_hw_dump_ctrl_event()
am:
febb1515f9
Change-Id: Ifbaade2d4edb6792e328dc37ae21bd0ac5f24560
Pavlin Radoslavov [Fri, 19 Aug 2016 22:04:18 +0000 (15:04 -0700)]
Expose function audio_a2dp_hw_dump_ctrl_event()
Renamed function dump_a2dp_ctrl_event() to
audio_a2dp_hw_dump_ctrl_event() and expose it, so it can be used
by outside code to print events.
Change-Id: Ibd9d3171c7d5256f80101ecc1563b472b7f5e92d
Pavlin Radoslavov [Sat, 20 Aug 2016 00:46:19 +0000 (17:46 -0700)]
Removed unused code related to Audio, A2DP Sink and Video
* Function BTA_AvEnable_Sink() - never used
- Event BTA_AV_API_SINK_ENABLE_EVT
- Processing function bta_av_api_sink_enable()
- AVDT_SINK_Activate() and AVDT_SINK_Deactivate() : not used anymore
* A2DP SINK related functions that are only declared:
- btif_queue_focus_request()
- audio_focus_status()
* Audio-related function that is never used:
- bta_av_sbc_cfg_for_cap()
* Video-related functions that are only declared:
- bta_av_co_video_src_data_path()
- bta_av_co_video_setconfig()
- bta_av_co_video_open()
- bta_av_co_video_close()
- bta_av_co_video_start()
- bta_av_co_video_report_conn()
- bta_av_co_video_report_rr()
- bta_av_co_video_delay()
- bta_av_co_video_disc_res()
- bta_av_co_video_getconfig()
- bta_av_co_video_stop()
Change-Id: I0c0c80578ab2675d2fe23dea3f11b2a0d82283f0