Commit Graph

19270 Commits

Author SHA1 Message Date
Sebastian Chlad
254d71e0d9 android/pts: Re-run PTS for A2DP
PTS session for A2DP which includes new PICS settings with PICS:
'Additional encoder Codec' set to TRUE as there is aptX support
added.
2014-06-09 11:45:27 +02:00
Marcel Holtmann
cbea745941 doc: Update management command list for 3.16 kernels 2014-06-08 21:11:58 +02:00
Antonio Ospite
fbe7d5226f plugins/sixaxis: Add a set_leds_sysfs() function
On recent kernels the hid-sony driver exposes leds class entries in
sysfs for setting the Sixaxis LEDs, use this interface and fall back to
hidraw in case using sysfs fails (e.g. on older hid-sony versions).

Setting the LEDs via sysfs is the preferred way on newer kernels, the
rationale behind that is:

  1. the Sixaxis uses the same HID output report for setting both LEDs
     and rumble effects;
  2. hid-sony remembers the state of LEDs in order to preserve them when
     setting rumble effects;
  3. when the LEDs are set via hidraw hid-sony has no way to know the
     new LEDs state and thus can change the LEDs in an inconsistent way
     when setting rumble effects later.

Also require libudev >= 172, this is where
udev_enumerate_add_match_parent() has been first introduced.

NOTE: using udev_enumerate_add_match_parent() results in a memory leak
when enumerating child devices, this has been fixed in udev 207; the
commit which fixes the issue is this one:
http://cgit.freedesktop.org/systemd/systemd/commit/?id=51cc07576e119dea6e65478eeba9472979fd0936
2014-06-08 14:54:41 +02:00
Antonio Ospite
1a124e4acc plugins/sixaxis: Add a get_leds_data() function
Get all the data necessary to set the LEDs in a single function,
returning a leds_data structure to be passed as argument to the
setup_leds() callback.

For now only a 'bitmap' field is used, which is the only thing that
set_leds_hidraw() needs.
2014-06-08 14:54:41 +02:00
Antonio Ospite
fdbe933252 plugins/sixaxis: Fix get_js_number() for devices connected via BT
Match hid devices and input devices using HID_UNIQ and UNIQ when these
are available, this is the correct way to get matching devices when the
controllers are connected via BT (UNIQ refers to the device bdaddr, PHYS
is the adapter bdaddr, so matching against PHYS will result in all
devices with the same LED number).

Fall back to HID_PHYS and PHYS when needed, hid devices do not define
HID_UNIQ when connected via USB.
2014-06-08 14:54:41 +02:00
Marcel Holtmann
9423547294 unit: The crypto create and cleanup functions are not test cases 2014-06-06 16:44:39 +02:00
Eva Kolanska
8e07f07562 android/pts: Update GATT test result 2014-06-06 14:28:58 +03:00
Marcin Kraglak
64bd6b25f1 android/client: Fix reversing send_response values
Add function to parse hex string to uint8_t array and use it in
send_response command.
2014-06-06 14:28:56 +03:00
Luiz Augusto von Dentz
e8782aa19b doc: Update test coverage numbers 2014-06-06 11:41:59 +03:00
Andrzej Kaczmarek
85e5b72c14 android/hal-audio-aptx: Add encoding 2014-06-06 11:27:45 +03:00
Andrzej Kaczmarek
922a069bec android/hal-audio-aptx: Load aptX encoder library
This patch adds loading of aptX encoder library which should be provided
by user. hal-audio-aptx will try to load 'libbt-aptx.so' so it should be
available in search patch, preferably in /system/lib.
2014-06-06 11:27:45 +03:00
Andrzej Kaczmarek
683aa4bf36 android/hal-audio-aptx: Add initial support for aptX codec
This patch adds support for aptX codec. Since this is proprietary codec
it requires to obtain license form vendor (CSR) in order to use it.
Also shared library which provices encoder implementation is required
since this implementation only wraps it into audio HAL.
2014-06-06 11:27:45 +03:00
Andrzej Kaczmarek
99849cb584 android/hal-audio: Allow codec to init on startup
This patch adds optional load/unload methods for codec which can be
used to initialize some static data for codec, e.g. load shared library
which provides encoder. Unlike init/cleanup which are called on stream
open/close these methods are called when audio device is opened/closed
thus most likely only once.

Codecs which are loaded properly (or do not have load callback) are
added to separate queue and used later to register endpoints.
2014-06-06 11:27:45 +03:00
Andrzej Kaczmarek
c44c923bc9 android/hal-audio: Always call qos_update
As it turned out, it's better to always call update_qos and just
provide dummy callback from codecs which do not support it.
2014-06-06 11:27:45 +03:00
Luiz Augusto von Dentz
53e754a98f android/avrcp-lib: Add fragmentation support
This adds handling for fragmentation if the PDU cannot fit into a AV/C
frame which can be up to 512 bytes or less depending on the L2CAP MTU
negotiated.
2014-06-06 11:17:07 +03:00
Luiz Augusto von Dentz
c05c743254 android/avctp: Add define for AV/C data MTU and offset
This defines the MTU and offset of AV/C data in AVCTP PDU.
2014-06-06 11:17:07 +03:00
Luiz Augusto von Dentz
1573ebb852 unit/test-avrcp: Add /TP/RCR/BV-04-C test
To verify the TG can accept abort fragmentation correctly.
2014-06-06 11:17:07 +03:00
Luiz Augusto von Dentz
ae65964e6c unit/test-avrcp: Add /TP/RCR/BV-02-C test
To verify that the TG can handle fragmentation correctly.
2014-06-06 11:17:07 +03:00
Jakub Tyszkowski
4e486830c8 android/pts: Update GATT results
Update results for server's Service Changed Indication (CCC) tests.
2014-06-06 06:05:40 +02:00
Jakub Tyszkowski
1fce0a2a50 android/gatt: Make CCC descriptor readable
Descriptor unlike characteristic should be readable.
2014-06-06 06:05:40 +02:00
Jakub Tyszkowski
04b9cb4167 android/gatt: Store CCC and indicate service change
We indicate service change on service stop and service start API calls.
Indication is also send when connecting to bonded device to force it
rebuilding its cache. Write request is properly handled on the response
queue know.
2014-06-06 06:05:40 +02:00
Jakub Tyszkowski
3a5e8fe9b2 android: Add gatt CCC value storage
Client Characteristic Configuration for Service Changed Characteristic
should be stored for every bonded device, so we know if we should be
sending value (range affected by changes) indication.
2014-06-06 06:05:40 +02:00
Marcin Kraglak
120bc54206 android/gatt: Set attrib MTU correctly
We should set g_attrib mtu with MIN of two values: Remote Rx MTU
and local Tx MTU. In previous solution once we set g_attrib mtu, we
could only reduce MTU (because we took previously set g_attrib MTU
and Remote Rx MTU). It affected cases when remote wanted to increase
MTU.
2014-06-06 06:05:40 +02:00
Lukasz Rymanowski
17bbfe2572 android/gatt: Handle prepare and execute write
Once remote device sends write execute we need to notify all the
server applications with this. Application will send response on this and
once we collect all the responses we should send execute write response
to remote device

This is initial version of handling execute write. Still many corner cases
have to be handled. Some of them seems to be not easy to solve with
existing BT HAL API e.g. BlueZ sends execute write to couple of server
applications and one of them reply with error. According to spec execute
write shall be atomic. In scenario that one server out of many replies
with error makes this write not atomic. There is no way to handle it with current
BT HAL API.
2014-06-06 06:05:40 +02:00
Lukasz Rymanowski
f6b9be29da android/gatt: Fix state of pending request for prep write
State PENDING is used when we send request to upper layer and this is
how we do with prep write request
2014-06-06 06:05:40 +02:00
Marcin Kraglak
a94d2065b6 android/gatt: Fix parallel reading/writing attributes values from applications
It is needed because in some cases we send few read requests to applications.
Now all transactions data are overriden by last one, and if application wants
to respond to previous requests, transaction data is not found.
It happens when two devices will read attribute from one application in the same
time or if device will read few values in time (i.e. read by type request or find
by type value request).
2014-06-06 06:05:40 +02:00
Grzegorz Kolodziejczyk
2fbdb09de7 android/client: Fix handling hex test arguments
This patch allows to pass as argument hex and int values as test command
argument. Hex values must be prefixed by '0x' or '0X'.
2014-06-06 06:05:40 +02:00
Grzegorz Kolodziejczyk
40c05ce909 android/client: Add additional support for handling hex values
This patch allows to handle properly hex values prefixed by "0x" or
"0X" as function parameter.
2014-06-06 06:05:40 +02:00
Grzegorz Kolodziejczyk
06ba8f9321 android/client: Add properly print prefix for hex values
This patch fix print hex values by adding "0x" prefix.
2014-06-06 06:05:40 +02:00
Andre Guedes
000d8538f7 gitignore: Add cscope files 2014-06-05 22:21:12 +03:00
Andre Guedes
be05ab5d2c android: Fix compile error
During configure, if SBC is not installed in the system, we may use
SBC_CFLAGS and SBC_LIBS variables to indicate where SBC headers and
binaries can be found.

However, SBC_CFLAGS variable is not used in android/Makefile.am,
causing the following compile error:

$ ./bootstrap-configure SBC_CFLAGS=-I../sbc SBC_LIBS=-L../sbc/src/
$ make

(...)

android/hal-audio-sbc.c:22:21: fatal error: sbc/sbc.h: No such file or directory
 #include <sbc/sbc.h>
^
compilation terminated.
make[1]: *** [android/android_audio_a2dp_default_la-hal-audio-sbc.lo] Error 1

This patch fixes this error by appending SBC_CFLAGS to android_audio_
a2dp_default_la_CFLAGS.
2014-06-05 20:36:48 +03:00
Andrzej Kaczmarek
64bb9becff profiles/audio: Fix propagation of EHOSTDOWN error
EHOSTDOWN error is now overwritten by EIO and once it's passed to
device_profile_connected it triggers connection of another profiles
while it should actually stop connecting them.
2014-06-04 22:38:44 +03:00
Andrzej Kaczmarek
b2c877b4fc core: Fix cleaning pending services when ACL connection failed
In case ACL connection failed to establish, all pending services shall
be always removed. At the moment it's only done in case there's pending
Connect message which does not take into account reconnect scenario,
i.e. service connection was triggered by reconnection timeout and there
is no pending message.

In such case, when reconnection failed there will be some services on
pending list and subsequent reconnect attempts will fail with EBUSY
immediately.
2014-06-04 22:38:43 +03:00
Eva Kolanska
c55aea2754 android/pts: Update GATT test results 2014-06-04 14:47:12 +03:00
Eva Kolanska
682fb9d341 android/pts: Update GATT test results 2014-06-04 13:11:25 +03:00
Luiz Augusto von Dentz
2d5f743734 android/hal-audio-sbc: Fix use of incorrect number of frames per packet
Number of frames should always be limited to the maximun that can be set
in the payload header.
2014-06-03 16:26:33 +03:00
Luiz Augusto von Dentz
8b62dc6154 audio/media: Check if setting value is already set
If the setting value is already set the is no need to send anything.
2014-06-03 16:26:33 +03:00
Luiz Augusto von Dentz
86a6ea1f83 audio/media: Fix crash while changing repeat mode
By changing repeat mode to 'group' which does not have a direct
translation to MPRIS LoopStatus will cause the following crash:

_dbus_abort () from /usr/lib/libdbus-1.so.3
_dbus_warn_check_failed () from /usr/lib/libdbus-1.so.3
dbus_message_iter_append_basic () from /usr/lib/libdbus-1.so.3
set_repeat_setting (key=0x80d6a87 "Repeat", value=0x80d8079 "group", user_data=0x984ab40) at profiles/audio/media.c:1050
2014-06-03 16:26:33 +03:00
Andrzej Kaczmarek
48519c78b6 tools/btmgmt: Trival whitespace fix 2014-06-03 13:40:22 +03:00
Andrzej Kaczmarek
4a56237aa8 tools/btmgmt: Fix io-cap usage message 2014-06-03 13:40:20 +03:00
Andrzej Kaczmarek
1285ac1816 tools/btmgmt: Rename set-io-cap to io-cap
Every other 'set-something' command is just called 'something', so
let's keep this consistent.
2014-06-03 13:40:18 +03:00
Andrzej Kaczmarek
d85a554377 tools/btmgmt: Add scan-params command 2014-06-03 13:40:16 +03:00
Szymon Janc
2316c1ebe4 monitor: Fix crash when parsing SDP
get_tid() may return NULL if bogus tid is passed.
This fix following crash:

Invalid write of size 1
   at 0x4A0A643: memcpy@@GLIBC_2.14 (in /usr/lib64/valgrind/
     vgpreload_memcheck-amd64-linux.so)
   by 0x4218E4: search_attr_req (sdp.c:413)
   by 0x42214D: sdp_packet (sdp.c:748)
   by 0x41ED09: l2cap_frame (l2cap.c:2632)
   by 0x414D51: packet_hci_acldata (packet.c:7713)
   by 0x415133: packet_monitor (packet.c:3332)
   by 0x404AEC: control_reader (control.c:911)
   by 0x40231A: main (main.c:197)
 Address 0x6 is not stack'd, malloc'd or (recently) free'd

Process terminating with default action of signal 11 (SIGSEGV)
 Access not within mapped region at address 0x6
   at 0x4A0A643: memcpy@@GLIBC_2.14 (in /usr/lib64/valgrind/
     vgpreload_memcheck-amd64-linux.so)
   by 0x4218E4: search_attr_req (sdp.c:413)
   by 0x42214D: sdp_packet (sdp.c:748)
   by 0x41ED09: l2cap_frame (l2cap.c:2632)
   by 0x414D51: packet_hci_acldata (packet.c:7713)
   by 0x415133: packet_monitor (packet.c:3332)
   by 0x404AEC: control_reader (control.c:911)
   by 0x40231A: main (main.c:197)
2014-06-02 18:28:51 +03:00
Johan Hedberg
45749f6aad emulator: Fix random address type in LE conn complete events 2014-06-02 13:09:00 +03:00
Johan Hedberg
895e0a16f1 emulator: Fix matching up connections to random addresses 2014-06-02 13:08:53 +03:00
Johan Hedberg
ded7da4696 monitor: Fix User Passkey Request name 2014-06-01 22:52:24 +03:00
Johan Hedberg
0fcb1d9513 tools/btmgmt: Add support for passkey notification 2014-06-01 22:52:17 +03:00
Johan Hedberg
a27603068b tools/btmgmt: Add support for passkey requests 2014-06-01 22:52:10 +03:00
Marcin Kraglak
b45ae2a1a0 android/gatt: Check for invalid handle errors
Check if handle or handle range is valid for server. If is invalid,
reply with ATT_ECODE_INVALID_HANDLE.
2014-06-01 18:30:20 +02:00
Marcin Kraglak
6f629ca9a9 shared/gatt: Return bool in gatt_db_get_attribute_permissions
It will return true if attribute with given handle exists in db and
set permissions value, otherwise it will return false.
Now, if get_permissions failed, we should reply with
ATT_ECODE_ATTR_NOT_FOUND.
2014-06-01 18:30:20 +02:00