| 9d387f43 |
Convert unit tests from GLib to GNU Check |
Johan Hedberg |
14 years ago |
3 files, +38, -8 |
| 41ccb16f |
Add get_le/get_be helpers
Helpers to access LE / BE values. In different Bluetooth
protocols/profiles there is a mixture of LE / BE byte order. |
Andrei Emeltchenko |
14 years ago |
1 file, +64, -0 |
| 7bcf9638 |
Make whitespace usage consistent in mgmt-api.txt |
Johan Hedberg |
14 years ago |
1 file, +28, -0 |
| ba69cd1f |
mgmt: Rename Name Info command to match corresponding flag |
Johan Hedberg |
14 years ago |
1 file, +2, -2 |
| dfd9c98a |
mgmt: Allow specifying discovery type for Start Discovery |
Johan Hedberg |
14 years ago |
1 file, +6, -1 |
| 82b17d0d |
Add new command and event for LTK storage support
This documents the new command and event that are to be added to
the Management API to add support for persistent pairing of LE
devices. |
Vinicius Costa Gomes |
14 years ago |
1 file, +32, -0 |
| 84596969 |
Add device type to found and connected mgmt events |
Johan Hedberg |
14 years ago |
1 file, +18, -0 |
| 0eeebf47 |
Add User Passkey commands and events to mgmt |
Johan Hedberg |
14 years ago |
1 file, +27, -0 |
| a6c19f4e |
Rename mgmt key commands and events |
Johan Hedberg |
14 years ago |
1 file, +8, -6 |
| 672fbbe4 |
Add timeout to Set Discoverable mgmt command |
Johan Hedberg |
14 years ago |
1 file, +4, -0 |
| 890eb14f |
Update controller info command with current plan |
Johan Hedberg |
14 years ago |
1 file, +8, -9 |
| 10cbe2ae |
Fix whitespace for fast connectable mgmt command doc |
Johan Hedberg |
14 years ago |
1 file, +4, -4 |
| ed4de024 |
Add (legacy) name resolution handling to mgmt API |
Johan Hedberg |
14 years ago |
1 file, +14, -0 |
| 557a8ae8 |
Unregister players' events when disconnected |
Lucas De Marchi |
14 years ago |
1 file, +1, -0 |
| fd8dda80 |
Fix leak of GTimer |
Lucas De Marchi |
14 years ago |
1 file, +1, -0 |
| ce8cd610 |
Add missing TRACK-REACHED-START event
When track is changed, we automatically start to play it, therefore we
need to notify CT regarding this event. |
Lucas De Marchi |
14 years ago |
1 file, +2, -0 |
| 1723fe2f |
Fix handling of dbus signals
We're previously leaking a D-Bus message and always returning that
the signal was not handled. |
Lucas De Marchi |
14 years ago |
1 file, +11, -5 |
| bb957be6 |
Add EIR length parameter to eir_parse()
LE uses shorter EIR (31 bytes) than HCI (240 bytes) |
Frédéric Danis |
14 years ago |
9 files, +23, -25 |
| 011c01ed |
Add btohll / htobll macros
Handle 64 bit swap |
Andrei Emeltchenko |
14 years ago |
1 file, +4, -0 |
| b051c670 |
Add definitions for L2CAP fixed channels |
Andrei Emeltchenko |
14 years ago |
1 file, +5, -0 |
| f19d4349 |
Simplify eir_parse_uuid* functions |
Frédéric Danis |
14 years ago |
1 file, +14, -22 |
| 40023618 |
Add unit/test-eir to .gitignore |
Frédéric Danis |
14 years ago |
1 file, +1, -0 |
| 64e54c20 |
Simplify eir_parse function |
Frédéric Danis |
14 years ago |
1 file, +80, -75 |
| 5a4402f8 |
Fix MediaPlayer documentation |
Lucas De Marchi |
14 years ago |
1 file, +0, -6 |
| 9aa24695 |
Fix leak of dbus message |
Lucas De Marchi |
14 years ago |
1 file, +5, -1 |
| b2cf7cf2 |
Fix release all sessions on powering adapter off
When adapter is powered off, all sessions should be released without
changing mode, which is contrary to what session_remove does. This
prevents from such situation when powering off leads to new mode
derived from mode_sessions.
Currently, if there are multiple mode sessions requested by different
clients, powering adapter off results in powering immediately it on. |
Dmitriy Paliy |
14 years ago |
1 file, +2, -12 |
| 79f47253 |
sbc: Reduce for-loop induced indentation in sbc_unpack_frame |
Johan Hedberg |
14 years ago |
1 file, +20, -16 |
| 54cea427 |
sbc: overflow bugfix and audio decoding quality improvement
The "(((audio_sample << 1) | 1) << frame->scale_factor[ch][sb])"
part of expression
"frame->sb_sample[blk][ch][sb] =
(((audio_sample << 1) | 1) << frame->scale_factor[ch][sb]) /
levels[ch][sb] - (1 << frame->scale_factor[ch][sb])"
in "sbc_unpack_frame" function can sometimes overflow 32-bit signed int.
This problem can be reproduced by first using bitpool 128 and encoding
some random noise data, and then feeding it to sbc decoder. The obvious
thing to do would be to change "audio_sample" variable type to uint32_t.
However the problem is a little bit more complicated. According
to the section "12.6.2 Scale Factors" of A2DP spec:
scalefactor[ch][sb] = pow(2.0, (scale_factor[ch][sb] + 1))
And according to "12.6.4 Reconstruction of the Subband Samples":
sb_sample[blk][ch][sb] = scalefactor[ch][sb] *
((audio_sample[blk][ch][sb]*2.0+1.0) / levels[ch][sb]-1.0);
Hence the current code for calculating "sb_sample[blk][ch][sb]" is
not quite correct, because it loses one least significant bit of
sample data and passes twice smaller sample values to the synthesis
filter (the filter also deviates from the spec to compensate this).
This all has quite a noticeable impact on audio quality. Moreover,
it makes sense to keep a few extra bits of precision here in order
to minimize rounding errors. So the proposed patch introduces a new
SBCDEC_FIXED_EXTRA_BITS constant and uses uint64_t data type
for intermediate calculations in order to safeguard against
overflows. This patch intentionally addresses only the quality
issue, but performance can be also improved later (like replacing
division with multiplication by reciprocal).
Test for the difference of sbc encoding/decoding roundtrip vs.
the original audio file for joint stereo, bitpool 128, 8 subbands
and http://media.xiph.org/sintel/sintel-master-st.flac sample
demonstrates some quality improvement:
=== before ===
--- comparing original / sbc_encoder.exe + sbcdec ---
stddev: 4.64 PSNR: 82.97 bytes:170495708/170496000
=== after ===
--- comparing original / sbc_encoder.exe + sbcdec ---
stddev: 1.95 PSNR: 90.50 bytes:170495708/170496000 |
Siarhei Siamashka |
14 years ago |
2 files, +11, -6 |
| f0c16d85 |
Use color output for unit tests |
Marcel Holtmann |
14 years ago |
1 file, +1, -1 |
| 02907710 |
Add basic unit tests framework for EIR parsing |
Johan Hedberg |
14 years ago |
2 files, +74, -0 |
| 4a4b5655 |
Fix implicit declaration of 'g_slist_free_full'
audio/avrcp.c: In function 'avrcp_unregister':
audio/avrcp.c:1253: error: implicit declaration of function 'g_slist_free_full'
thermometer/thermometer.c: In function 'destroy_char':
thermometer/thermometer.c:79: error: implicit declaration of function 'g_slist_free_full' |
Frédéric Danis |
14 years ago |
2 files, +6, -1 |
| 68838679 |
Move SDP client functions from glib-helper.c to sdp-client.c |
Johan Hedberg |
14 years ago |
10 files, +405, -345 |
| 9b98a6c7 |
Add glib-compat.h to deal with issues in old GLib versions |
Johan Hedberg |
14 years ago |
22 files, +50, -20 |
| b3ba3242 |
AVRCP: Implement RequestContinuingResponse PDU |
Lucas De Marchi |
14 years ago |
1 file, +146, -68 |
| d888f549 |
AVRCP: Implement AbortContinuingResponse PDU |
Lucas De Marchi |
14 years ago |
1 file, +55, -0 |
| 464c36f7 |
AVRCP: respond with UINT32_MAX if duration is not available
Section 5.4.1 of AVRCP 1.3 spec says:
If TG does not support SongLength And SongPosition on TG, then TG shall
return 0xFFFFFFFF.
SongPosition is always available, but song length depends on user to
provied it. |
Lucas De Marchi |
14 years ago |
1 file, +7, -4 |
| 2c920f6d |
AVRCP: implement TRACK-REACHED-START event |
Lucas De Marchi |
14 years ago |
3 files, +17, -3 |
| 9ab125a8 |
AVRCP: Use track's UID in event notification
When registering for TRACK_CHANGED event, CT expects the track's UID in
the INTERIM and CHANGED responses. According to AVRCP 1.3 spec, there
are only 2 possible values:
1) 0: there's a track selected
2) UINT32_MAX: there's no track selected
AVRCP 1.4 reserves the value UINT64_MAX for the second case. Since this
later value is the one used in certification process for best IOP
we return UINT64_MAX instead of the former.
This implementation allows to pass PTS test TP/NFY/BV-05-C. |
Lucas De Marchi |
14 years ago |
3 files, +22, -12 |
| 549087a1 |
hciops: fix discov_state when powering off an adapter |
Johan Hedberg |
14 years ago |
1 file, +1, -0 |
| 02bc7a19 |
Simplify property variable usage in btd_adapter_stop |
Johan Hedberg |
14 years ago |
1 file, +8, -15 |
| 38eaee6b |
Fix updating Adapter.Discovering property when powering off |
Johan Hedberg |
14 years ago |
1 file, +8, -1 |
| c18d64b0 |
Fix input pending connect handling
iconn->pending_connect needs to be freed after sending the error reply |
Chan-yeol Park |
14 years ago |
1 file, +3, -0 |
| b110c733 |
hciops: fix adapter initialization when commands are missed
Sometimes after e.g, suspend we miss some initialization commands from
the kernel, even though we had a workaround for this it doesn't really
work as expected since the adapter must be up in order to resend.
To fix this problem the resend logic is moved after DEVUP. |
Luiz Augusto von Dentz |
14 years ago |
1 file, +24, -16 |
| d6ca7019 |
Simplify process_thermometer_char() logic |
Johan Hedberg |
14 years ago |
1 file, +4, -8 |
| e3eb563d |
Fix thermometer Intermediate property changes
Set Intermediate property if intermediate temperature characteristic is
supported |
Santiago Carot-Nemesio |
14 years ago |
1 file, +2, -1 |
| 4cd8ecb0 |
Read measurement interval characteristic |
Santiago Carot-Nemesio |
14 years ago |
1 file, +69, -1 |
| c9fc5907 |
Read temperature type characteristic |
Santiago Carot-Nemesio |
14 years ago |
1 file, +30, -1 |
| 2219cc88 |
Get all characteristics in thermometer service |
Santiago Carot-Nemesio |
14 years ago |
1 file, +110, -0 |
| 62d4daf2 |
Add handler function to manage GATT indications |
Santiago Carot-Nemesio |
14 years ago |
1 file, +17, -0 |
| 2d2e3a41 |
Add functions to manage attio callbacks |
Santiago Carot-Nemesio |
14 years ago |
1 file, +28, -0 |