diff mbox series

[BlueZ,v1,1/2] build: Fix --disable-avrcp

Message ID 20250109210500.2324501-1-luiz.dentz@gmail.com
State New
Headers show
Series [BlueZ,v1,1/2] build: Fix --disable-avrcp | expand

Commit Message

Luiz Augusto von Dentz Jan. 9, 2025, 9:04 p.m. UTC
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

This fixes --disable-avrcp causing build errors.

Fixes: https://github.com/bluez/bluez/issues/1061
---
 Makefile.plugins           |  9 +++++----
 configure.ac               |  3 +++
 profiles/audio/media.c     | 38 +++++++++++++++++++++++++++++++++++++-
 profiles/audio/transport.c | 10 ++++++++++
 4 files changed, 55 insertions(+), 5 deletions(-)

Comments

bluez.test.bot@gmail.com Jan. 9, 2025, 10:11 p.m. UTC | #1
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=923917

---Test result---

Test Summary:
CheckPatch                    PENDING   0.19 seconds
GitLint                       PENDING   0.24 seconds
BuildEll                      PASS      20.68 seconds
BluezMake                     PASS      1674.84 seconds
MakeCheck                     PASS      13.49 seconds
MakeDistcheck                 PASS      160.75 seconds
CheckValgrind                 PASS      216.12 seconds
CheckSmatch                   PASS      273.86 seconds
bluezmakeextell               PASS      100.11 seconds
IncrementalBuild              PENDING   0.28 seconds
ScanBuild                     PASS      853.30 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth
patchwork-bot+bluetooth@kernel.org Jan. 10, 2025, 3:40 p.m. UTC | #2
Hello:

This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Thu,  9 Jan 2025 16:04:59 -0500 you wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> This fixes --disable-avrcp causing build errors.
> 
> Fixes: https://github.com/bluez/bluez/issues/1061
> ---
>  Makefile.plugins           |  9 +++++----
>  configure.ac               |  3 +++
>  profiles/audio/media.c     | 38 +++++++++++++++++++++++++++++++++++++-
>  profiles/audio/transport.c | 10 ++++++++++
>  4 files changed, 55 insertions(+), 5 deletions(-)

Here is the summary with links:
  - [BlueZ,v1,1/2] build: Fix --disable-avrcp
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=1e1c311243b1
  - [BlueZ,v1,2/2] build: Fix --disable-a2dp
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=4f288bd961fc

You are awesome, thank you!
diff mbox series

Patch

diff --git a/Makefile.plugins b/Makefile.plugins
index 7644041b3b6d..97335d643028 100644
--- a/Makefile.plugins
+++ b/Makefile.plugins
@@ -8,6 +8,10 @@  builtin_sources += plugins/autopair.c
 builtin_modules += policy
 builtin_sources += plugins/policy.c
 
+builtin_sources += profiles/audio/media.h profiles/audio/media.c \
+			profiles/audio/transport.h profiles/audio/transport.c \
+			profiles/audio/player.h profiles/audio/player.c
+
 if ADMIN
 builtin_modules += admin
 builtin_sources += plugins/admin.c
@@ -32,8 +36,6 @@  builtin_sources += profiles/audio/source.h profiles/audio/source.c \
 			profiles/audio/sink.h profiles/audio/sink.c \
 			profiles/audio/a2dp.h profiles/audio/a2dp.c \
 			profiles/audio/avdtp.h profiles/audio/avdtp.c \
-			profiles/audio/media.h profiles/audio/media.c \
-			profiles/audio/transport.h profiles/audio/transport.c \
 			profiles/audio/a2dp-codecs.h
 endif
 
@@ -42,8 +44,7 @@  if AVRCP
 builtin_modules += avrcp
 builtin_sources += profiles/audio/control.h profiles/audio/control.c \
 			profiles/audio/avctp.h profiles/audio/avctp.c \
-			profiles/audio/avrcp.h profiles/audio/avrcp.c \
-			profiles/audio/player.h profiles/audio/player.c
+			profiles/audio/avrcp.h profiles/audio/avrcp.c
 endif
 
 if NETWORK
diff --git a/configure.ac b/configure.ac
index 01f0f2ba04c0..964206bf17f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -180,6 +180,9 @@  AM_CONDITIONAL(A2DP, test "${enable_a2dp}" != "no")
 AC_ARG_ENABLE(avrcp, AS_HELP_STRING([--disable-avrcp],
 		[disable AVRCP profile]), [enable_avrcp=${enableval}])
 AM_CONDITIONAL(AVRCP, test "${enable_avrcp}" != "no")
+if test "${enable_avrcp}" != "no"; then
+	AC_DEFINE(HAVE_AVRCP, 1, [Define to 1 if you have AVRCP support.])
+fi
 
 AC_ARG_ENABLE(network, AS_HELP_STRING([--disable-network],
 		[disable network profiles]), [enable_network=${enableval}])
diff --git a/profiles/audio/media.c b/profiles/audio/media.c
index 062475e56c49..69c6dc67135b 100644
--- a/profiles/audio/media.c
+++ b/profiles/audio/media.c
@@ -49,7 +49,10 @@ 
 #include "media.h"
 #include "transport.h"
 #include "a2dp.h"
+
+#ifdef HAVE_AVRCP
 #include "avrcp.h"
+#endif
 
 #define MEDIA_INTERFACE "org.bluez.Media1"
 #define MEDIA_ENDPOINT_INTERFACE "org.bluez.MediaEndpoint1"
@@ -65,7 +68,9 @@  struct media_app {
 	char			*path;		/* Application object path */
 	struct queue		*proxies;	/* Application proxies */
 	struct queue		*endpoints;	/* Application endpoints */
+#ifdef HAVE_AVRCP
 	struct queue		*players;	/* Application players */
+#endif
 	int			err;
 };
 
@@ -73,7 +78,9 @@  struct media_adapter {
 	struct btd_adapter	*btd_adapter;
 	struct queue		*apps;		/* Application list */
 	GSList			*endpoints;	/* Endpoints list */
+#ifdef HAVE_AVRCP
 	GSList			*players;	/* Players list */
+#endif
 };
 
 struct endpoint_request {
@@ -482,6 +489,7 @@  struct a2dp_config_data {
 
 int8_t media_player_get_device_volume(struct btd_device *device)
 {
+#ifdef HAVE_AVRCP
 	struct avrcp_player *target_player;
 	struct media_adapter *adapter;
 	GSList *l;
@@ -505,6 +513,7 @@  int8_t media_player_get_device_volume(struct btd_device *device)
 	}
 
 done:
+#endif /* HAVE_AVRCP */
 	/* If media_player doesn't exists use device_volume */
 	return btd_device_get_volume(device);
 }
@@ -1760,6 +1769,7 @@  static DBusMessage *unregister_endpoint(DBusConnection *conn, DBusMessage *msg,
 	return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 }
 
+#ifdef HAVE_AVRCP
 static struct media_player *media_adapter_find_player(
 						struct media_adapter *adapter,
 						const char *sender,
@@ -2649,10 +2659,12 @@  static struct media_player *media_player_create(struct media_adapter *adapter,
 
 	return mp;
 }
+#endif /* HAVE_AVRCP */
 
 static DBusMessage *register_player(DBusConnection *conn, DBusMessage *msg,
 					void *data)
 {
+#ifdef HAVE_AVRCP
 	struct media_adapter *adapter = data;
 	struct media_player *mp;
 	DBusMessageIter args;
@@ -2683,11 +2695,15 @@  static DBusMessage *register_player(DBusConnection *conn, DBusMessage *msg,
 	}
 
 	return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+#else
+	return btd_error_not_supported(msg);
+#endif
 }
 
 static DBusMessage *unregister_player(DBusConnection *conn, DBusMessage *msg,
 					void *data)
 {
+#ifdef HAVE_AVRCP
 	struct media_adapter *adapter = data;
 	struct media_player *player;
 	const char *sender, *path;
@@ -2706,6 +2722,9 @@  static DBusMessage *unregister_player(DBusConnection *conn, DBusMessage *msg,
 	media_player_remove(player);
 
 	return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
+#else
+	return btd_error_not_supported(msg);
+#endif
 }
 
 static void app_free(void *data)
@@ -2714,7 +2733,9 @@  static void app_free(void *data)
 
 	queue_destroy(app->proxies, NULL);
 	queue_destroy(app->endpoints, media_endpoint_remove);
+#ifdef HAVE_AVRCP
 	queue_destroy(app->players, media_player_remove);
+#endif
 
 	if (app->client) {
 		g_dbus_client_set_disconnect_watch(app->client, NULL, NULL);
@@ -2913,6 +2934,7 @@  fail:
 
 static void app_register_player(void *data, void *user_data)
 {
+#ifdef HAVE_AVRCP
 	struct media_app *app = user_data;
 	GDBusProxy *proxy = data;
 	const char *iface = g_dbus_proxy_get_interface(proxy);
@@ -2994,6 +3016,7 @@  fail:
 	error("Unable to register player %s:%s: %s", app->sender, path,
 							strerror(-app->err));
 	media_player_destroy(player);
+#endif /* HAVE_AVRCP */
 }
 
 static void remove_app(void *data)
@@ -3042,7 +3065,11 @@  static void client_ready_cb(GDBusClient *client, void *user_data)
 		goto reply;
 	}
 
+#ifdef HAVE_AVRCP
 	if ((queue_isempty(app->endpoints) && queue_isempty(app->players))) {
+#else
+	if (queue_isempty(app->endpoints)) {
+#endif
 		error("No valid external Media objects found");
 		fail = true;
 		reply = btd_error_failed(app->reg,
@@ -3091,6 +3118,7 @@  static bool match_endpoint_by_path(const void *a, const void *b)
 	return !strcmp(endpoint->path, path);
 }
 
+#ifdef HAVE_AVRCP
 static bool match_player_by_path(const void *a, const void *b)
 {
 	const struct media_player *player = a;
@@ -3098,12 +3126,12 @@  static bool match_player_by_path(const void *a, const void *b)
 
 	return !strcmp(player->path, path);
 }
+#endif
 
 static void proxy_removed_cb(GDBusProxy *proxy, void *user_data)
 {
 	struct media_app *app = user_data;
 	struct media_endpoint *endpoint;
-	struct media_player *player;
 	const char *iface, *path;
 
 	iface = g_dbus_proxy_get_interface(proxy);
@@ -3122,7 +3150,10 @@  static void proxy_removed_cb(GDBusProxy *proxy, void *user_data)
 		DBG("Proxy removed - removing endpoint: %s", endpoint->path);
 
 		media_endpoint_remove(endpoint);
+#ifdef HAVE_AVRCP
 	} else if (!strcmp(iface, MEDIA_PLAYER_INTERFACE)) {
+		struct media_player *player;
+
 		player = queue_remove_if(app->players, match_player_by_path,
 						(void *) path);
 		if (!player)
@@ -3134,6 +3165,7 @@  static void proxy_removed_cb(GDBusProxy *proxy, void *user_data)
 		DBG("Proxy removed - removing player: %s", player->path);
 
 		media_player_remove(player);
+#endif
 	}
 }
 
@@ -3162,7 +3194,9 @@  static struct media_app *create_app(DBusConnection *conn, DBusMessage *msg,
 
 	app->proxies = queue_new();
 	app->endpoints = queue_new();
+#ifdef HAVE_AVRCP
 	app->players = queue_new();
+#endif
 	app->reg = dbus_message_ref(msg);
 
 	g_dbus_client_set_disconnect_watch(app->client, client_disconnect_cb,
@@ -3326,6 +3360,7 @@  static void path_free(void *data)
 		release_endpoint(endpoint);
 	}
 
+#ifdef HAVE_AVRCP
 	for (l = adapter->players; l;) {
 		struct media_player *mp = l->data;
 
@@ -3333,6 +3368,7 @@  static void path_free(void *data)
 
 		media_player_destroy(mp);
 	}
+#endif
 
 	adapters = g_slist_remove(adapters, adapter);
 
diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index dbebb1ea5fa0..1b9c66e4940d 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
@@ -612,6 +612,7 @@  static int8_t transport_a2dp_get_volume(struct media_transport *transport)
 	return a2dp->volume;
 }
 
+#ifdef HAVE_AVRCP
 static int transport_a2dp_src_set_volume(struct media_transport *transport,
 					int8_t level)
 {
@@ -643,6 +644,7 @@  static int transport_a2dp_snk_set_volume(struct media_transport *transport,
 
 	return avrcp_set_volume(transport->device, level, notify);
 }
+#endif
 
 static int transport_a2dp_snk_set_delay(struct media_transport *transport,
 					uint16_t delay)
@@ -2409,11 +2411,19 @@  static void *transport_asha_init(struct media_transport *transport, void *data)
 
 static const struct media_transport_ops transport_ops[] = {
 	A2DP_OPS(A2DP_SOURCE_UUID, transport_a2dp_src_init,
+#ifdef HAVE_AVRCP
 			transport_a2dp_src_set_volume,
+#else
+			NULL,
+#endif
 			NULL,
 			transport_a2dp_src_destroy),
 	A2DP_OPS(A2DP_SINK_UUID, transport_a2dp_snk_init,
+#ifdef HAVE_AVRCP
 			transport_a2dp_snk_set_volume,
+#else
+			NULL,
+#endif
 			transport_a2dp_snk_set_delay,
 			transport_a2dp_snk_destroy),
 	BAP_UC_OPS(PAC_SOURCE_UUID),