Skip to content

Commit 2c5377e

Browse files
authored
Merge pull request #371 from WebPlatformForEmbedded/development/btaudio
Add BluetoothAudioSink configuration
2 parents 2c92bb0 + 04a3f6d commit 2c5377e

File tree

5 files changed

+128
-10
lines changed

5 files changed

+128
-10
lines changed

board/raspberrypi/post-image.sh

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
88
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
99
BLUETOOTH=$(eval grep ^BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH=y ${BR2_CONFIG} | wc -l)
1010

11+
if [ ! "x${BLUETOOTH}" = "x" ]; then
12+
if ! grep -qE '^enable_uart=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
13+
echo "Adding serial console to /dev/ttyS0 to config.txt."
14+
sed -i 's/ttyAMA0/ttyS0/g' "${BINARIES_DIR}/rpi-firmware/cmdline.txt"
15+
cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
16+
# Fixes rpi3 ttyS0 serial console
17+
enable_uart=1
18+
__EOF__
19+
fi
20+
fi
21+
1122
for arg in "$@"
1223
do
1324
case "${arg}" in
@@ -158,14 +169,6 @@ __EOF__
158169
dtoverlay=pi3-miniuart-bt
159170
__EOF__
160171
fi
161-
else
162-
echo "Adding serial console to /dev/ttyS0 to config.txt."
163-
sed -i 's/ttyAMA0/ttyS0/g' "${BINARIES_DIR}/rpi-firmware/cmdline.txt"
164-
cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
165-
# Fixes rpi3 ttyS0 serial console
166-
enable_uart=1
167-
__EOF__
168-
169172
fi
170173
;;
171174
--rpi-wifi*)

package/wpe/wpeframework-clientlibraries/wpeframework-clientlibraries.mk

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ $(error Missing a gstreamer client implementation, please provide one)
7878
endif
7979
endif
8080

81+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK),y)
82+
WPEFRAMEWORK_CLIENTLIBRARIES_CONF_OPTS += -DBLUETOOTHAUDIOSINK=ON
83+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_EXAMPLEPLAYER),y)
84+
WPEFRAMEWORK_CLIENTLIBRARIES_CONF_OPTS += -DBLUETOOTHAUDIOSINK_EXAMPLEPLAYER=ON
85+
endif
86+
endif
87+
8188
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_DEVICEINFO),y)
8289
WPEFRAMEWORK_CLIENTLIBRARIES_CONF_OPTS += -DDEVICEINFO=ON
8390
endif

package/wpe/wpeframework-plugins/Config.in

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,80 @@ config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_PERSISTMAC
2222
default n
2323
help
2424
Maintains the MAC address of the BT adapter after the first startup.
25+
26+
choice BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_BAUDRATE
27+
prompt "Baud rate"
28+
default BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_BAUDRATE_NORMAL
29+
30+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_BAUDRATE_NORMAL
31+
bool "115200"
32+
33+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_BAUDRATE_HIGH
34+
bool "921600"
35+
36+
endchoice
2537
endif
2638

2739
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHREMOTECONTROL
28-
bool "BLE RemoteControl"
29-
depends on BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH
40+
bool "BluetoothRemoteControl"
41+
select BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH
3042
default n
3143
help
3244
A Bluetooth Low Energy HID over GATT remote control
3345

46+
menuconfig BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK
47+
bool "BluetoothAudioSink"
48+
select BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH
49+
select BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC
50+
default n
51+
help
52+
Bluetooth audio sink
53+
54+
if BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK
55+
menuconfig BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE
56+
bool "Enable SDP service"
57+
default y
58+
59+
if BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE
60+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE_NAME
61+
string "Name"
62+
default "A2DP Audio Source"
63+
64+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE_DESCRIPTION
65+
string "Description"
66+
default "Thunder BluetoothAudioSink plugin"
67+
68+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE_PROVIDER
69+
string "Provider"
70+
default "Thunder"
71+
endif
72+
73+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC
74+
bool "Enable SBC codec"
75+
select BR2_PACKAGE_SBC
76+
default y
77+
78+
if BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC
79+
choice BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET
80+
prompt "SBC quality"
81+
default BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_HQ
82+
83+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_LQ
84+
bool "LQ - Low Quality"
85+
86+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_MQ
87+
bool "MQ - Medium Quality"
88+
89+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_HQ
90+
bool "HQ - High Quality"
91+
92+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_XQ
93+
bool "XQ - Extreme Quality"
94+
endchoice
95+
endif
96+
97+
endif
98+
3499
menuconfig BR2_PACKAGE_WPEFRAMEWORK_CDMI
35100
bool "CDMi"
36101
select BR2_PACKAGE_WPEFRAMEWORK_RDKSERVICES

package/wpe/wpeframework-plugins/wpeframework-plugins.mk

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,14 @@ WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_NETWORKCONTROL_INTERFACES='$(call qst
201201
endif
202202

203203
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH),y)
204+
#Prevent switching bluetooth to ttyS0
205+
export BLUETOOTH=1
204206
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTH=ON
207+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_BAUDRATE_HIGH),y)
208+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTH_BAUDRATE=921600
209+
else
210+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTH_BAUDRATE=115200
211+
endif
205212
WPEFRAMEWORK_PLUGINS_DEPENDENCIES += wpeframework-libraries
206213
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTH_AUTOSTART),y)
207214
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTH_AUTOSTART=true
@@ -217,6 +224,29 @@ ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHREMOTECONTROL),y)
217224
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHREMOTECONTROL=ON
218225
endif
219226

227+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK),y)
228+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC), y)
229+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_CODECSBC=ON
230+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_LQ),y)
231+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_CODECSBC_PRESET=LQ
232+
else ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_MQ),y)
233+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_CODECSBC_PRESET=MQ
234+
else ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_HQ),y)
235+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_CODECSBC_PRESET=HQ
236+
else ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_CODECSBC_PRESET_XQ),y)
237+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_CODECSBC_PRESET=XQ
238+
endif
239+
WPEFRAMEWORK_PLUGINS_DEPENDENCIES += sbc
240+
endif
241+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE), y)
242+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_SDPSERVICE=ON
243+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_SDPSERVICE_NAME=${BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE_NAME}
244+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_SDPSERVICE_DESCRIPTION=${BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE_DESCRIPTION}
245+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK_SDPSERVICE_PROVIDER=${BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_SDPSERVICE_PROVIDER}
246+
endif
247+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_BLUETOOTHAUDIOSINK=ON
248+
endif
249+
220250
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_REMOTECONTROL),y)
221251
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DPLUGIN_REMOTECONTROL=ON
222252
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DREMOTECONTROL_IMPLEMENTATION_REPOSITORY=https://github.com/WebPlatformForEmbedded/RemoteControl-brcm

package/wpe/wpeframework/Config.in

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,19 @@ config BR2_PACKAGE_WPEFRAMEWORK_COMPOSITORCLIENT
145145
interaction (Graphics/input). The implementation hides all the compositor specific details.
146146
allows for relaying keys to plugins
147147

148+
menuconfig BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK
149+
select BR2_PACKAGE_WPEFRAMEWORK_CLIENTLIBRARIES
150+
bool "BluetoothAudioSink"
151+
default n
152+
help
153+
C-interface towards BluetoothAudioSink plugin for controlling the Bluetooth sink and supplying audio data samples
154+
155+
if BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK
156+
config BR2_PACKAGE_WPEFRAMEWORK_BLUETOOTHAUDIOSINK_EXAMPLEPLAYER
157+
bool "Example .wav player"
158+
default y
159+
endif
160+
148161
config BR2_PACKAGE_WPEFRAMEWORK_GSTREAMERCLIENT
149162
select BR2_PACKAGE_WPEFRAMEWORK_CLIENTLIBRARIES
150163
bool "GstreamerClient"

0 commit comments

Comments
 (0)