summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-09-21create persistence binding entry for default adapterRaquel Medina2-1/+12
Add logic to create an entry for 'default_adapter' in the persistence database. This will enable having the stored value available between power up/power down cycles. Bug-AGL: SPEC-3577 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I158dcc1d37ccaf8dfe5d53e262f0619ad780c26a
2020-09-14Fix build warning of -WconversionLi, Xiaoming1-1/+1
log: [ 22%] Building C object binding/CMakeFiles/afm-bluetooth-binding.dir/bluetooth-api.c.o /home/devel/xds-workspace/app/agl-service-bluetooth/binding/bluetooth-api.c: In function ‘bluetooth_get_adapters_count’: /home/devel/xds-workspace/app/agl-service-bluetooth/binding/bluetooth-api.c:540:9: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘int’ may change value [-Wconversion] return count; ^~~~~ Change-Id: I05263a24322e928d5cd5dfdddec68372eeff3e62 Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com>
2020-08-13docs(README.md): avrcp_controls's adapter and device arg are optionaljellyfish_9.99.4jellyfish_9.99.3jellyfish/9.99.4jellyfish/9.99.39.99.49.99.3Li, Xiaoming1-5/+5
If these two args are not provided, the bluetooth service will use mediaplayer_path instead of the path generated by function return_bluez_path(). Explanation of function return_bluez_path(): - File:bluetooth-util.c: - Function: gchar *return_bluez_path(afb_req_t request). - Description: read argument of "adapter" and "device", combine them to generate a bluze path and return this path value. Return NULL if device is not specified. Change-Id: I75727e266cd984620cac410ca6e030d2db8514dc Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com>
2020-08-13fix(bluetooth.lua): introduce some missing verb testLi, Xiaoming1-1/+19
These verbs depends on the context and cannot execute at this moment, so this patch will only complete the missing ones on paper in this phase. The future work of adding extra condition code to optimise these verbs is on schedule. Bug-AGL: SPEC-3458 Change-Id: I6948b335bc1f2a486767fd0292f2c62068adfd56 Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com>
2020-07-22Switch to refcounted allocation for init datajellyfish_9.99.2jellyfish/9.99.29.99.2Scott Murray1-7/+18
When running in qemu, there seems to be a rare race condition where the timeout waiting on BlueZ during init happens with the timing such that bluetooth_func doesn't finish before init returns, resulting in an invalid access to the init_data structure that was on the init function's stack. To fix this, init_data is now allocated and refcounted using glib's atomic refcounted memory allocator API. Bug-AGL: SPEC-3301 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I1ea8831ca5c008a2916909671e62cbd770906e5e
2020-07-20add missing guards in bluetooth-util.cRaquel Medina1-0/+3
This change should have been part of commit c5db00e, but was by mistake left behind. This change includes guards against null pointers in case of a system with no bluetooth adapter. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I01cf72515a8e1e28fa26974927adb605c1a06dbd
2020-07-20fix(bluetooth.lua): remove test of a noexist verbLi, Xiaoming1-4/+0
Coz agl-service-bluetooth has no version verb, this will report a fail case in bluetooth service test wgt. Bug-AGL: SPEC-3458 Change-Id: Ia737f58a7c34e2ccfa92ca02db9a523faa85840c Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com>
2020-07-13fix segfaults due to races & missing adapterRaquel Medina4-21/+66
During start up, there are races between the bluetooth, persistence, bluetooth-map and bluetooth-pbap bindings; on top of it, in the case there's no bluetooth controller in the system, various key parameters can exhibit a null value. The combination of these races and the lack of bluetooth controller can manifest in a number of segfaults in the bluetooth binding (it's very easy to reproduce on qemu). This commit brings in several changes to make the bluetooth binding resilient to the races and lack of bluetooth controller: * on startup, retrieve the default adapter from the persistence binding from the init thread * store the system default adapter in the service init data structure, and store the active adapter in the bluetooth state structure. * update get_default_adapter to return value obtained from persistence biding, without further processing; * add guards to make sure the userdata retrieved from the application framework is valid; * on verbs processing, ensure the caller provides an adapter to apply the verb to, or that at least there's a valid adapter associated to the bluetooth state structure; * initialize agent_data's device_path following free operation; * add guards for mediaplayer_path. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: Ia5a0dc9a61024ff43cd247216d0dff6918046f7e
2020-07-13distinguish between no controller and no bluez serviceRaquel Medina1-2/+6
The initialization sequence for dbus services is not fixed, and some races have been observed between blutoothd and agl-service-bluetooth when running on qemu: sometimes Bluetooth-Manager can be ready before org.bluez and this results in reporting no adapter, even though it's not accurate. Also, although this issue has been seen only using qemu, the race is there and it could also manifest in other platforms with a bluetooth controller attached. This patch simply provides the logic to discern between 'no org.bluez service found' and 'no bluetooth controller present': - in the case of no org.bluez service detected, an error is returned to allow for retries, - in the case of no controller present, no error is returned and agl-service-bluetooth completes the initialization. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I4868803bcfbd36fb65028cea5c997c4f174675a0
2020-07-09unregister agent if previously registeredRaquel Medina1-1/+2
Only unregister agent on exit path if it had been registered beforehand. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I60fc2af01800521e0d5b026dbf7404b445eff6f9
2020-07-08force init completion if no controllerRaquel Medina1-8/+35
Add logic to obtain the number of bluetooth controllers in the system, if there's at least one, then apply the existing logic: register the agent, etc; if there's none, simply add a line to record this case in the journal, skip agent registration and signal that the Bluetooth-Manager service initialization completed without errors, to keep the service running. Also fixed indentation on 2 lines on the same file where the mentioned changes are applied: binding/bluetooth-api.c. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I43a7aac709845bef71295ebd470546f252db8fa0
2020-06-09Update autobuild scriptsjellyfish_9.99.1jellyfish/9.99.19.99.1Scott Murray2-204/+154
Update autobuild scripts with reworked version that fixes building outside of the source tree. Bug-AGL: SPEC-2049, SPEC-3300 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I5308eaf34f4bf209903601f4600bdbfcd0fd8d1c
2020-02-18Update autobuild script to create new targetsFrederic Marec2-26/+174
Update autobuild script to create multiple widget target debug, coverage and all Bug-AGL: SPEC-2049 Signed-off-by: Frederic Marec <frederic.marec@iot.bzh> Change-Id: I0b9b81355ff36a5217364df75b7b72bbc891e01f
2020-02-17binding: bluetooth: remove unused version verbMatt Ranostay1-14/+0
No other applications/bindings check the version verb to figure which schema version to use. Bug-AGL: SPEC-3156 Change-Id: I5baea8d7a38101bc9378f90c40981e73074ed558 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2020-02-11Update .gitreview fileJan-Simon Möller1-1/+0
This updates the gitreview file in the project . Change-Id: I48193cc394bf6602281654794c8efed4fe0dfe84 Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2019-09-12fix(test/CMakeLists.txt): make test wgt workicefish_8.99.5icefish_8.99.4icefish_8.99.3icefish_8.99.2icefish_8.99.1icefish/8.99.5icefish/8.99.4icefish/8.99.3icefish/8.99.2icefish/8.99.18.99.58.99.48.99.38.99.28.99.1Li Xiaoming1-1/+1
Bug-AGL: SPEC-2795 Change-Id: I12522a7adf2d0582495fc14a8a7af6324c7b4681 Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-10refactor(config.xml.in):Replace required api with required bindingLi Xiaoming1-0/+3
Appfw docs: "required-api local": OBSOLETE SINCE FF (AGL6), PROVIDED FOR COMPATIBILITY.Use the feature urn:AGL:widget:required-binding instead. Bug-AGL: SPEC-2781 Change-Id: I1ccff7deb59208e1a74747add299d4208cdb19fd Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-09fix(bluetooth-util.c): Remove -Wformat & -Woverflow warningLi Xiaoming1-2/+2
/work/agl-service-bluetooth/binding/bluetooth-util.c:170:14: warning: integer overflow in expression ‘-2147483648’ of type ‘long int’ results in ‘-2147483648’ [-Woverflow] if (i64 >= -(1L << 31) && i64 < (1L << 31)) ^ In file included from /xdt/sdk/sysroots/ armv7vet2hf-neon-vfpv4-agl-linux-gnueabi/usr/include/afb/afb-binding.h: 116, from /work/agl-service-bluetooth/binding/ bluetooth-util.c:36: /work/agl-service-bluetooth/binding/bluetooth-util.c:291:16: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘gsize’ {aka ‘unsigned int’} [-Wformat=] AFB_WARNING("Can't handle variants with more than one children (%lu)", nitems); Bug-AGL: SPEC-2422 Change-Id: Ic0f1a9f20c8bbe17040c3c9727922bc930b6f786 Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-06fix(confg.cmake): set PROJECT_URL to slience CMake warningLi Xiaoming1-0/+1
CMake Warning at /xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/share/ cmake-3.12/Modules/CMakeAfbTemplates/cmake/cmake.d/ 02-variables.cmake:98 (message): No homepage url found. Please set a PROJECT_URL cmake variable in your config.cmake. Call Stack (most recent call first): /xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/share/cmake-3.12/Modules/ CMakeAfbTemplates/cmake/common.cmake:101 (include) /xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/share/cmake-3.12/Modules/ CMakeAfbTemplates.cmake:19 (include) conf.d/cmake/config.cmake:166 (include) CMakeLists.txt:21 (include) Bug-AGL: SPEC-2804 Change-Id: I032a9f0a8893f4cd781ba6728e7ef8ac411cad9e Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-06-26binding: bluetooth: add scope-platform permission to config.xml.inhalibut_8.0.6halibut_8.0.5halibut_8.0.4halibut_8.0.3halibut_8.0.2halibut_8.0.1halibut_8.0.0halibut_7.99.3halibut_7.99.2halibut/8.0.6halibut/8.0.5halibut/8.0.4halibut/8.0.3halibut/8.0.2halibut/8.0.1halibut/8.0.0halibut/7.99.3halibut/7.99.28.0.68.0.58.0.48.0.38.0.28.0.18.0.07.99.37.99.2halibutMatt Ranostay1-0/+1
Add urn:AGL:permission::partner:scope-platform to run on the platform scope. Bug-AGL: SPEC-2575 Change-Id: Id6fa1242f3c7b8d9245f3319a6da51238944b29a Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-06-20binding: bluetooth: fix conversion compiler warningsMatt Ranostay1-4/+7
Remove follow warnings by switching from int to size_t warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘int’ may change value [-Wconversion] Bug-AGL: SPEC-2535 Change-Id: I28330f92097adc6aa03480078d168d37a60fc051 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-06-18Adding tests for agl-service-bluetooth.Edi Feschiyan7-0/+211
Commented tests needing real hardware device at the bottom. Bug-AGL: SPEC-2523 Signed-off-by: Edi Feschiyan <edi.feschiyan@konsulko.com> Change-Id: Iee0126665af34654d14e8bcd018175fc772f1ce3
2019-05-06binding: bluetooth: use BLUEZ_AT_DEVICE for call_work_create()halibut_7.99.1halibut/7.99.17.99.1Matt Ranostay1-2/+2
Use the BLUEZ_AT_DEVICE macro instead of explicit string references. Bug-AGL: SPEC-2361 Change-Id: I2e892a7b6e2d838765cfa12dadd970e34c2f5d86 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-05-05binding: bluetooth: add missing g_variant_unref() on repliesMatt Ranostay1-0/+1
To avoid memory leaks g_variant_unref() needs to be called on dbus replies. Bug-AGL: SPEC-2361 Change-Id: Ie8db961f182e77fe5a36c91acddff1e549e7f60a Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-28binding: bluetooth: use BLUEZ_AT_DEVICE macroMatt Ranostay1-5/+5
Use the BLUEZ_AT_DEVICE macro instead of explicit string references. Bug-AGL: SPEC-2361 Change-Id: Icddf5914433123e65d2a7d40629bab362b60c1c1 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-12binding: bluetooth: remove useless function prototypeMatt Ranostay1-4/+0
Remove function prototype from bluetooth-common.h for the deleted bluetooth-rfkill.c source file. Change-Id: I2bc9e789868a01a0b62643b6406970c436308567 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-05binding: bluetooth: remove versioning references in structsMatt Ranostay1-2/+2
In order to upgrade to future versions easier don't use versioned structs but the respective typedefs Change-Id: Ic789dc7c74e0a2a1352effa1cfeea4998cbc56f3 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-02binding: bluetooth: add changed action for adapter_changes eventMatt Ranostay2-14/+25
Report back property changes in the adapter_changes event, which is required for detecting when an adapter is truly powered on. Bug-AGL: SPEC-2295 Change-Id: I58441369277d2e778f2bb077e7b1be4aa3a3b1b4 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-03-27binding: bluetooth: allow multiple paths for org.bluez.MediaPlayer1 interfacesMatt Ranostay3-7/+12
Previously org.bluez.MediaPlayer1 paths could only resolve to player0 but certain phones request another instance for another application (e.g. player1). This patchset changes the default media player path to last connected, and which in theory should be from the media application in use on the phone. From limited experiments not in use interfaces will be reaped shortly after going idle. Bug-AGL: SPEC-2281 Change-Id: Id4bdc89cd395d5cd3ac043394761a95b306e5c6d Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-03-07Merge "binding: bluetooth: add adapter_changes event"Jan-Simon Moeller4-4/+71
2019-02-27autobuild: fix warnings due to cp command exit errorRaquel Medina4-120/+158
- bring latest version of autobuild script in - move conf.d/autobuild to root folder - update autobuild script to fix warnings triggered by cp operation error. Change-Id: I1e5f09cda1254e7ec9afd27e70ef97162189fda6 Bug-AGL: SPEC-2164 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
2019-02-25binding: bluetooth: add adapter_changes eventMatt Ranostay4-4/+71
adapter_changes event allows clients to know when an adapter's status changes as in addition or removal. Bug-AGL: SPEC-1763 Change-Id: I7a442ece7cf6b508d6290130a939fccc1bddebb9 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-02-14binding: bluetooth: fix segfault when no adapters are connectedMatt Ranostay1-0/+4
Bug-AGL: SPEC-2047 Change-Id: I55a080af35dad1514ee0423eff80e65331891bc7 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-01-14binding: bluetooth: replace rfkill code with network servicehalibut_7.90.0halibut/7.90.0guppy_6.99.4guppy/6.99.47.90.06.99.4Matt Ranostay4-132/+13
Remove bluetooth-rfkill.c and replace with agl-service-network calls which in turn allows ConnMan to correctly manage bluetooth rfkill state. Bug-AGL: SPEC-2124 Change-Id: Ibe0460be0f29957f99ea06975a1fa12d01840080 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-01-03binding: bluetooth: fix formating in README.mdMatt Ranostay1-1/+1
Fix avrcp_controls verb markdown header to correct number Change-Id: I5b2599c16ea74ab98ce6cf8bca5c2b45cada1bc4 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-01-02binding: bluetooth: add Transport parameter to discovery filterMatt Ranostay2-14/+33
Allow clients to select what Bluetooth transport they want a discovery scan to attempt to detect. This will improve scanning in for example when a client only wants to detect bredr or ble devices . Bug-AGL: SPEC-2094 Change-Id: I2a983f5243aefcb582a7476bbae34d6ba88c39a6 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-11binding: bluetooth: don't display errors if no error pointer is passedguppy_6.99.3guppy/6.99.36.99.3Matt Ranostay1-2/+2
There is sometimes when you don't want AFB_ERROR to be displayed on a dbus failure. Example would be in the initial autoconnect attempt on binding startup. Don't display the AFB_ERROR if error pointer that is passed is NULL Bug-AGL: SPEC-1630 SPEC-1986 Change-Id: I2bc1e8575037a8e84721d2c2c369a409986eda43 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-11binding: bluetooth: g_variant_unref() isn't being called on replyMatt Ranostay1-2/+4
Fix logic check and run g_variant_unref() on reply of dbus call Bug-AGL: SPEC-1630 Change-Id: I7e89031d8cad64c3303227c0ec7fd85a6c85f0c3 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-10binding: bluetooth: add MediaTransport1 to managed_objects outputMatt Ranostay2-3/+28
To allow initial reporting of MediaTransport1 of audio transports add them to the managed_objects verb. Bug-AGL: SPEC-1630 SPEC-1986 Change-Id: Icc09ae063e5dfc52e5396b9ea7149178b1d8aaac Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-10binding: bluetooth: add MediaTransport1 supportMatt Ranostay4-14/+134
Bug-AGL: SPEC-1630 Change-Id: I6ad1f85d4edc00239f891edf6994db416e8a2dbd Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-07binding: bluetooth: add default_adapter verbMatt Ranostay7-5/+127
Allow setting of default adapter for use by other verbs within the binding. This allows to select an adapter on boards with more than one. Bug-AGL: SPEC-1630 Change-Id: Iec77b0abaa9f4c092dc5c827522efb1744953fce Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-07binding: bluetooth: add connect/disconnect actions to avrcp_controlsMatt Ranostay1-1/+26
Allow subscribers to connect/disconnect to a2dp/avrcp Bluetoothp profiles Bug-AGL: SPEC-1630 Change-Id: I5c4c2a2f06636b2b74cb453a3af576beb8026ab1 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-07binding: bluetooth: add autobuild scriptsMatt Ranostay2-0/+120
Bug-AGL: SPEC-1630 Change-Id: I161c1033f3357a1049a133c4f7382d5bafb25c37 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-14binding: bluetooth: add MediaPlayer1 interface media eventsguppy_6.99.2guppy_6.99.1guppy/6.99.2guppy/6.99.16.99.26.99.1Matt Ranostay6-35/+204
Report back MediaPlayer1 interface events for A2DP media playback Bug-AGL: SPEC-1630 Change-Id: I777f19af2de247fe676d5bede4bacbbad8ca9844 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add new avrcp controls verbMatt Ranostay4-1/+83
Since MediaPlayer1 controls are part of bluez it makes sense to keep them here for now Bug-AGL: SPEC-1630 Change-Id: Ia02341179a322082357b0e7eff07264e34197d57 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add autoconnect featureMatt Ranostay3-0/+51
Attempt connection on each paired device till one is successful on startup. Bug-AGL: SPEC-1630 Change-Id: I213876f65528d0eaeaa5b55a745f541b286f26b5 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add power adapter change eventsMatt Ranostay1-0/+12
Bug-AGL: SPEC-1630 Change-Id: I615cbf19d180556b0650dbf6b5ba48848be49f97 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: fix interface removal eventMatt Ranostay2-2/+9
Don't send adapter name in 'device' parameter on removal of bluetooth interface. Bug-AGL: SPEC-1630 Change-Id: I15cb4dcc791d36beb8e8b41993644cad331d3cae Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add input validation on device inputMatt Ranostay1-1/+11
Validate device input to filter out special characters being sent that may cause the dbus call to hang or segfault. Bug-AGL: SPEC-1630 Change-Id: I31aa458154c030181b905b7ccc9d6a8aa0f84ef0 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: change api name to old case sensitive formatMatt Ranostay1-1/+1
Bug-AGL: SPEC-1630 Change-Id: Iae18f069b7a8091331efda97a270b70d05de3e79 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>