| 5a55b21e |
adv_monitor: Handle D-Bus proxy event of an ADV monitor
This adds two handlers, one for adding and one for removing, of D-Bus proxy
events. The handler of property changes is set to NULL as intended,
since for simplicity no further changes on monitor's properties would
affect the ongoing monitoring.
The following test steps were performed with bluetoothctl.
- After registering the root path, expose two monitors and verify that
the proxy added event are received.
- Have two monitors added, unexpose the monitors, and verify that the
proxy removed events are received for those two monitors.
- Have two monitors added, unregister the monitors and verify that the
proxy removed events are received for those two monitors. |
Miao-chen Chou |
5 years ago |
1 file, +474, -13 |
| 8f3a6268 |
gdbus: Make g_dbus_proxy_get_path take const proxy
This makes g_dbus_proxy_get_path take const proxy since it doesn't
change anything on the proxy and avoid pointless casts. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +2, -2 |
| 18e10e0c |
adv_monitor: Handle D-Bus client ready events
This adds a handler of client ready events. The handler replies to the
RegisterMonitor() method call.
The following tests were performed.
- Call RegisterMonitor() and expect to receive a return. |
Miao-chen Chou |
5 years ago |
1 file, +19, -7 |
| 1601b5ba |
adv_monitor: Implement UnregisterMonitor()
This implements the UnregisterMonitor() method handler of ADV monitor
manager interface.
The following tests were performed.
- Issue a UnregisterMonitor() call with a nonexistent path and expect
org.bluez.Error.DoesNotExist as the return.
- Issue a UnregisterMonitor() call with a invalid path and expect
org.bluez.Error.InvalidArguments as the return.
- Issue RegisterMonitor() with a path, issue UnregisterMonitor() and
expect a successful method call return. |
Miao-chen Chou |
5 years ago |
1 file, +36, -1 |
| 0633cf2a |
adv_monitor: Implement RegisterMonitor()
This implements the RegisterMonitor() method handler of ADV monitor
manager interface.
The following tests were performed.
- Issue a RegisterMonitor() call with a valid path and expect a
success as return.
- Issue a RegisterMonitor() call with an invalid path and expect
org.bluez.Error.InvalidArguments as return.
- Issue two Registermonitor() calls with the same path and expect
org.bluez.Error.AlreadyExists.
- Verify the values of the registered paths with logging.
- Verify D-Bus disconnection callback was triggered when the client detach
from D-Bus. |
Miao-chen Chou |
5 years ago |
1 file, +164, -1 |
| 2dea0819 |
adv_monitor: Implement Get functions of Adv monitor manager properties
This implements the Get functions of SupportedMonitorTypes and
SupportedFeatures.
The following test was performed.
- Issue dbus-send to read SupportedMonitorTypes and SupportedFeatures. |
Miao-chen Chou |
5 years ago |
1 file, +121, -5 |
| 1b32562b |
adv_monitor: Introduce org.bluez.AdvertisementMonitorManager1 interface
This introduces the org.bluez.AdvertisementMonitorManager1 without
implementing handlers of methods and properties.
The following test was performed.
- Upon adapter registration, the info line of creating an ADV monitor
manager gets printed, and system bus emits the interface events of
org.bluez.AdvertisementMonitorManager1. |
Miao-chen Chou |
5 years ago |
4 files, +204, -1 |
| 1a515e15 |
adapter: Remove indirect dependency of headers
Given that adapter.h refers symbols from lib/bluetooth.h and lib/sdp.h,
these two headers should be included directly in adapter.h. |
Miao-chen Chou |
5 years ago |
1 file, +3, -0 |
| b7f310a6 |
btpclient: Fix gap reset not sending response
This patch fixes the GAP reset command to response the default settings
after resetting the stack. |
Tedd Ho-Jeong An |
5 years ago |
1 file, +19, -15 |
| f62e1f8d |
tools/btpclientctl: Add btpclient test application
This patch adds a test application for btpclient, which exercises the
BTP API. |
Tedd Ho-Jeong An |
5 years ago |
3 files, +2378, -1 |
| 4c3a3ffb |
btp: Update connect event structure
This patch updates the connect event struct to align withe the btp spec.
Opcode 0x82 - Device Connected event
Controller Index: <controller id>
Event parameters: Address_Type (1 octet)
Address (6 octets)
Connection Interval (2 octets)
Connection Latency (2 octets)
Supervision Timeout (2 octets) |
Tedd Ho-Jeong An |
5 years ago |
1 file, +3, -0 |
| 87d6b134 |
emulator: Implement LE Remove CIG
This adds support for LE Remove CIG command. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +10, -0 |
| ed08a077 |
monitor: Fix decoding of LE Remove CIG
HCI_LE_Remove_CIG does actually returns the CIG_ID in addition to the
status. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +20, -1 |
| ab39b46b |
audio/transport: Don't set volume if it's invalid
Adding a check inside media_transport_update_volume to prevent
the volume being updated with an invalid value. |
Archie Pusaka |
5 years ago |
1 file, +3, -0 |
| fd3fe457 |
avrcp: Add handler for GET_TOTAL_NUMBER_OF_ITEMS
According to the AVRCP spec, section 4.5, GetTotalNumberOfItems PDU
is mandatory for TG supporting category 1 or 3. |
Archie Pusaka |
5 years ago |
1 file, +58, -0 |
| 179ccb93 |
avrcp: Set volume if volume changed event is registered
Some audio devices don't list the AVRCP TG role in SDP but still support
absolute volume and volume changed event, this change should allow the
stack to control the volumes on these audio devices. |
Yu Liu |
5 years ago |
1 file, +7, -1 |
| 1b90cf43 |
Disable auto-connect on device remove
Auto-connect is not disabled when a device is removed. So in case the
pairing is cancelled, the device is removed, but it stays in the kernel
auto-connect list. This causes future advertisement from that device to
trigger a pairing even if the user has already cancelled the pairing.
This patch disables auto-connect on device remove. |
Manish Mandlik |
5 years ago |
1 file, +5, -0 |
| 5a180f2e |
Release 5.55 |
Marcel Holtmann |
5 years ago |
2 files, +24, -1 |
| a73d0804 |
build: Update library version |
Marcel Holtmann |
5 years ago |
1 file, +1, -1 |
| a2e5a6ba |
lib: Update company identifiers |
Marcel Holtmann |
5 years ago |
1 file, +292, -0 |
| 53e1c753 |
avrcp: Implement Press/Hold/Release method for MediaPlayer1
This allows us to send any passthrough command, complete with the
support to hold down the key. Using Press() will automatically
release the key, while using Hold() will keep the key held until
an explicit call to Release() is received.
This doesn't allow us to hold multiple keys simultaneously, since
according to the AV/C Panel Subunit Specification, part 9.4, when the
target receive a pressed command without receiving a release command
of the previous key, it will be treated as if the release command is
sent but not received.
Previously, the rewind and fast_forward keys are unique in terms that
they are treated as holdable keys, this patch preserves that behavior
of calling Rewind() and FastForward(). A rewind event which is
reported via the new Press() method will automatically be released
instead. |
Archie Pusaka |
5 years ago |
6 files, +189, -53 |
| 4b3f8587 |
doc/media-api: Add Press/Hold/Release methods for MediaPlayer1
This allows us to send any passthrough command. The button can also
be held for an extended amount of time.
Reviewed-by: Michael Sun <michaelfsun@chromium.org> |
Archie Pusaka |
5 years ago |
1 file, +29, -0 |
| 94f791dc |
mesh: Align option names with functionality
Change option "config" ('c') to "storage" ('s) to specify
a custom storage directory for node configuration.
Change option 'f' (long name was missing) to "config" ('c')
to specify a custom mesh configuration file to override the
default mesh-main.conf |
Inga Stotland |
5 years ago |
1 file, +8, -7 |
| b6b51422 |
mesh: Remove unused timing variable tx_start
In model.c, tx_Start is a static variable, dynamically set, but
never used. Is removed now. |
Inga Stotland |
5 years ago |
1 file, +0, -6 |
| c24db50c |
client: Fix typo in bluetoothctl |
Barry Byford |
5 years ago |
1 file, +2, -2 |
| 384559f2 |
monitor: Add support for Suspend and Resume events
Add support to pretty print Suspend and Resume mgmt events in btmon.
Example:
@ MGMT Event: Controller Suspended (0x002d) plen 1
Suspend state: Page scanning and/or passive scanning (2)
@ MGMT Event: Controller Resumed (0x002e) plen 8
Wake reason: Remote wake due to peer device connection (2)
LE Address: CD:F3:CD:13:C5:9A (OUI CD-F3-CD) |
Abhishek Pandit-Subedi |
5 years ago |
1 file, +55, -0 |
| 35d34660 |
mgmt: Add controller suspend and resume events
Add the controller suspend and resume events. |
Abhishek Pandit-Subedi |
5 years ago |
1 file, +14, -0 |
| 4eae282b |
mesh: Move RPL check from model to net layer
Check whether an incoming message has an RPL entry prior to
handing it over to model layer for processing. If present in RPL
or the RPL queue is full, ignore the incoming message.
If the incoming message is processed successfully, add the message
as a new RPL entry. |
Inga Stotland |
5 years ago |
4 files, +106, -106 |
| fec55b9e |
mesh: Initialize RPL when creating or loading a node
When either a new node is created or an existing node is loaded from
storage, initialize RPL storage directory.
Additionally, when an existing node configguration is read from storage,
load saved RPL entries into the corresponding RPL lists. |
Inga Stotland |
5 years ago |
5 files, +37, -21 |
| 636e46d6 |
mesh: Store key indices as integers in node config
Store NetKey and AppKey indices as integers instead of hex strings.
This removes unnecessary string manipulations while not affecting
the configuration file readability. |
Inga Stotland |
5 years ago |
1 file, +38, -64 |
| 8a8e1fd8 |
profiles/network: Log connection event after setting device name
Without reordering these two statements, the logs look like this:
bnep%d connected
bnep0 disconnected |
edef |
5 years ago |
1 file, +1, -1 |
| 67095102 |
gatt: Accept empty array in parse_includes()
Currently parse_includes() will return false if the "Includes" property
is an empty array. Empty array in the "Includes" property should be
treated as valid. |
Jie Jiang |
5 years ago |
1 file, +7, -5 |
| 2b480bd5 |
adapter: Mark device temporary state pairing failure
This caused the device hanging around as a discovered device forever
even if it is turned off or not in present. |
Yu Liu |
5 years ago |
1 file, +8, -0 |
| a359a4c4 |
test/test-mesh: Add "options" to Send/Publish
This adds a new dictionary paramenter (empty by default) when
invoking Send() or Publish() methods. |
Inga Stotland |
5 years ago |
1 file, +9, -2 |
| a6270757 |
tools/mesh-cfglient: Add "options" to Send/DevKeySend
This adds a new dictionary paramenter (empty by default) when
invoking Send() and DevKeySend() methods. |
Inga Stotland |
5 years ago |
1 file, +8, -0 |
| f2dc6f99 |
mesh: Handle "options" dictionary in Send/Publish methods
This adds processing of "options" dictionary argument in Send,
DevKeySend & Publish methods on mesh.Node interface.
This new argument is a dictionary that currently has only one
new key word defined for Send() and DevKeySend():
"ForceSegmented" - to force small payloads to be sent as
one-segment messages
In case of Publish(), and additional keyword is defined
"Vendor" - 16-bit Company ID as defined by the Bluetooth SIG
Other key words may be defined in future to accommodate evolving
requirements of Mesh Profile specification.
Also, the addition of "options" dictionary to Publish allows to
eliminate VendorPublish() method (taken care by "Vendor" keyword). |
Inga Stotland |
5 years ago |
4 files, +75, -82 |
| 879ea568 |
doc/mesh-api: Add "options" dictionary to Send/Publish
This modifies Send, DevKeySend and Publish methods
on mesh.Node interface to include additional argument "options".
This new argument is a dictionary that currently has only one
new key word defined for Send() and DevKeySend():
"ForceSegmented" - to force small payloads to be sent as
one-segment messages
In case of Publish(), and additional keyword is defined
"Vendor" - 16-bit Company ID as defined by the Bluetooth SIG
Other key words may be defined in future to accommodate evolving
requirements of Mesh Profile specification.
Also, the addition of "options" dictionary to Publish allows to
eliminate VendorPublish() method (taken care by "Vendor" keyword). |
Inga Stotland |
5 years ago |
1 file, +35, -25 |
| c9f7c61f |
mesh: Add random address to mesh HCI init
This prevents error 0x12 when enabling/disabling LE scans |
Daan Pape |
5 years ago |
1 file, +9, -0 |
| 43f0c044 |
mesh: Use valid net key index when handling Send call
Retrieve value of bound Net Key index based on the value of
passed AppKey index. Check if the key is present and fail early
in case of error. Also, pass the correct NetKey index to model
layer in mesh_model_send(), instead of hard coded 0. |
Inga Stotland |
5 years ago |
2 files, +9, -6 |
| 4de3420d |
mesh: Use correct retransmit parameters for publications
This adds previously missing retransmit count and interval values
specific to model publications. The values are configured by Config CLient
and may be different to each model. |
Inga Stotland |
5 years ago |
7 files, +104, -78 |
| 291dbf2c |
device: Fix race condition between device connection and disconnection
When Connect() is called and waiting for return, dev_disconnected may be
called due to MGMT_EV_DEVICE_DISCONNECTED event from kernel. In that
case reply to client that the connection failed otherwise the dbus
method will timeout because bluetoothd never replies.
Tested with simulation of a lot of Connect() to bluetooth devices and
check that error is returned from bluetoothd rather than dbus timeout
when this race condition happens. |
Sonny Sasaka |
5 years ago |
1 file, +13, -0 |
| 39ca6601 |
adapter: Fix crash in discovery_disconnect
discovery_disconnect crashed because the adapter pointer has been freed
before. This patch makes sure that discovery list is cleaned up before
adapter pointer is freed. |
Sonny Sasaka |
5 years ago |
1 file, +15, -5 |
| eb4b99a4 |
input/device: Unregister all UHID event listeners at UHID_DESTROY
When destroying UHID, we should also unregister all event listeners so
that they don't get double registered at reconnection. It fixes a bug
where battery report is not available to kernel after reconnection and
also prevents memory leak.
Tested with Logitech M535 mouse:
* Connect mouse to the device running BlueZ
* cat /sys/class/power_supply/hid-{addr}-battery/capacity # works
* Disconnect mouse
* Reconnect mouse
* cat /sys/class/power_supply/hid-{addr}-battery/capacity # still works |
Sonny Sasaka |
5 years ago |
3 files, +12, -0 |
| 4d0336ea |
client: Add cancel-pairing command
This adds cancel-pairing command which can be used to cancel the ongoing
pairing. |
Miao-chen Chou |
5 years ago |
1 file, +35, -0 |
| ef7e4848 |
mesh: Send correct NetKey index in DevKeyMessageReceived
The value of net_index in DevKeyMessageReceived() method must be set
to the value of a subnet index on which a device key encoded message
has been received. Was hard coded to 0. Fixed. |
Inga Stotland |
5 years ago |
1 file, +2, -1 |
| b50c299a |
mesh: Check for enabled modes when dst is fixed address
This moves the check for incoming messages addressed to fixed addresses,
e.g. RELAY, PROXY, FRIEND. If the corresponding feature is not enabled,
the message is not processed. |
Inga Stotland |
5 years ago |
2 files, +9, -21 |
| bff0b258 |
mesh: Always set net modes based on node feature settings
The network settings such as relay, beacon, proxy and friend are
always set based on local node feature settings. This change makes
the net modes initialization unconditional, to include the "No Support"
setting on node level which should result in the disabled mode in net.c |
Inga Stotland |
5 years ago |
1 file, +5, -13 |
| 8fe6fddd |
main: add configurable refresh_discovery parameter
This is to configure the default behavior of issuing SDP query
to update the services upon profile connection. |
Archie Pusaka |
5 years ago |
4 files, +14, -1 |
| ebfa306d |
device: Don't browse SDP if HIDSDPDisable is set
According to the HID1.1 spec, part 5.3.4.9:
The HIDSDPDisable attribute is a Boolean value, which indicates
whether connection to the SDP channel and Control or Interrupt
channels are mutually exclusive. This feature supports Bluetooth
HID devices that have minimal resources, and multiplex those
resources between servicing the initialization (SDP) and runtime
(Control and Interrupt) channels.
However, Bluez still tries to connect SDP upon HID connection,
regardless of the existence of the HIDSDPDisable attribute.
This patch prevents the connection of SDP after HID has been
established, if the device has HIDSDPDisable attribute. |
Archie Pusaka |
5 years ago |
3 files, +13, -2 |
| d081375e |
shared/ad: move MAX_ADV_DATA_LEN macro to the header
This moves MAX_ADV_DATA_LEN macro to src/shared/ad.h and rename it to
BT_AD_MAX_DATA_LEN. |
Miao-chen Chou |
5 years ago |
2 files, +10, -10 |