This is an automated email from the ASF dual-hosted git repository.

kopyscinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git


The following commit(s) were added to refs/heads/master by this push:
     new a04a6d2ce host: refactor BLE Audio
a04a6d2ce is described below

commit a04a6d2ce642bb0f7f49bf60c8b37988152548c0
Author: Krzysztof Kopyściński <krzysztof.kopyscin...@codecoup.pl>
AuthorDate: Fri Mar 1 09:40:42 2024 +0100

    host: refactor BLE Audio
    
    This patch refactors BLE Audio library to conform to new directory tree
    introduced in a9795706bea035d84d1577680e0814ceedc9dc58.
    
    LE Audio related files present in host/include, host/src and
    host/services were moved to corelated folders in host/audio.
    
    Experimental system config BLE_AUDIO enabling LE Audio feature was 
introduced.
    
    Naming convention for BLE Audio functions, structures and files was
    unified - replaced `bcst` shorthand with `broadcast`. For example,
    ble_audio_pub_bcst_announcement_feat was renamed to
    ble_audio_pub_broadcast_announcement_feat.
    
    Contents of host/include/ble_audio_common.h was incorporated into
    host/audio/include/audio/ble_audio.h.
    
    Apps and Auracast service were adjusted to new config and include paths.
    
    BLE_MAX_BIG and BLE_MAX_BIS renamed to BLE_ISO_MAX_BIGS and
    BLE_ISO_MAX_BISES, respectevaly.
---
 .github/test_build_apps_syscfg.yml                 |   1 +
 apps/auracast/pkg.yml                              |   2 +-
 apps/auracast/src/main.c                           |   4 +-
 apps/auracast/syscfg.yml                           |   6 +-
 apps/btshell/src/btshell.h                         |   2 +-
 apps/btshell/src/cmd_iso.c                         |   6 +-
 apps/btshell/src/cmd_leaudio.c                     |   4 +-
 apps/btshell/src/main.c                            |  40 +--
 apps/leaudio_broadcaster/pkg.yml                   |   1 +
 apps/leaudio_broadcaster/src/main.c                |   8 +-
 apps/leaudio_broadcaster/syscfg.yml                |   5 +-
 .../include/audio/ble_audio.h}                     | 291 ++++++++++++++++++--
 .../include/audio}/ble_audio_broadcast_source.h    |   2 +-
 nimble/host/audio/include/host/audio/ble_audio.h   | 293 ---------------------
 .../include/services/auracast/ble_svc_auracast.h   |   4 +-
 nimble/host/{ => audio}/services/auracast/pkg.yml  |   3 +-
 .../services/auracast/src/ble_svc_auracast.c       |   2 +-
 nimble/host/audio/src/ble_audio.c                  |  25 +-
 .../{ => audio}/src/ble_audio_broadcast_source.c   |   6 +-
 nimble/host/audio/src/ble_audio_priv.h             |   2 +-
 .../host/audio/targets/btshell_native/syscfg.yml   |   4 +-
 .../test/src/testcases/ble_audio_base_parse_test.c |   2 +-
 .../testcases/ble_audio_listener_register_test.c   |   2 +-
 nimble/host/include/host/ble_iso.h                 |   2 +-
 nimble/host/pkg.yml                                |   3 +
 nimble/host/src/ble_hs.c                           |   4 +-
 nimble/host/src/ble_iso.c                          |  12 +-
 nimble/host/syscfg.yml                             |  33 ++-
 porting/examples/linux/include/syscfg/syscfg.h     |   8 +-
 .../examples/linux_blemesh/include/syscfg/syscfg.h |   8 +-
 porting/examples/nuttx/include/syscfg/syscfg.h     |   8 +-
 porting/nimble/include/syscfg/syscfg.h             |   8 +-
 porting/npl/riot/include/syscfg/syscfg.h           |   8 +-
 .../syscfg.yml                                     |   4 +-
 34 files changed, 393 insertions(+), 420 deletions(-)

diff --git a/.github/test_build_apps_syscfg.yml 
b/.github/test_build_apps_syscfg.yml
index faafa8a3c..aabcc2979 100644
--- a/.github/test_build_apps_syscfg.yml
+++ b/.github/test_build_apps_syscfg.yml
@@ -27,6 +27,7 @@ syscfg.vals:
     BLE_PERIODIC_ADV_SYNC_BIGINFO_REPORTS: 1
     BLE_ISO: 1
     BLE_ISO_TEST: 1
+    BLE_AUDIO: 1
     BLE_ISO_BROADCAST_SOURCE: 1
     BLE_HCI_VS: 1
     BLE_POWER_CONTROL: 1
diff --git a/apps/auracast/pkg.yml b/apps/auracast/pkg.yml
index 54eb3be59..fa33aa31f 100644
--- a/apps/auracast/pkg.yml
+++ b/apps/auracast/pkg.yml
@@ -30,10 +30,10 @@ pkg.deps:
     - nimble/host/util
     - nimble/host/services/gap
     - nimble/host/store/config
+    - nimble/host/audio/services/auracast
     - "@apache-mynewt-core/kernel/os"
     - "@apache-mynewt-core/sys/console"
     - "@apache-mynewt-core/sys/log"
     - "@apache-mynewt-core/sys/stats"
     - "@apache-mynewt-core/sys/sysinit"
     - "@apache-mynewt-core/sys/id"
-    - "@apache-mynewt-nimble/nimble/host/services/auracast"
diff --git a/apps/auracast/src/main.c b/apps/auracast/src/main.c
index 3e7349ec8..977d643cd 100644
--- a/apps/auracast/src/main.c
+++ b/apps/auracast/src/main.c
@@ -51,7 +51,7 @@ static os_membuf_t bis_mem[
 static struct os_mempool bis_pool;
 
 static os_membuf_t codec_spec_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS) * 2, 19)
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES) * 2, 19)
 ];
 static struct os_mempool codec_spec_pool;
 
@@ -156,7 +156,7 @@ auracast_init()
     assert(rc == 0);
 
     rc = os_mempool_init(&codec_spec_pool,
-                         MYNEWT_VAL(BLE_MAX_BIS) * 2, 19,
+                         MYNEWT_VAL(BLE_ISO_MAX_BISES) * 2, 19,
                          codec_spec_mem, "codec_spec_pool");
     assert(rc == 0);
 }
diff --git a/apps/auracast/syscfg.yml b/apps/auracast/syscfg.yml
index e67af5a00..f22b92d0b 100644
--- a/apps/auracast/syscfg.yml
+++ b/apps/auracast/syscfg.yml
@@ -56,7 +56,7 @@ syscfg.vals:
     BLE_VERSION: 54
     BLE_ISO: 1
     BLE_ISO_BROADCAST_SOURCE: 1
-    BLE_MAX_BIG: 1
-    BLE_MAX_BIS: 2
+    BLE_ISO_MAX_BIGS: 1
+    BLE_ISO_MAX_BISES: 2
 
-    BLE_PHY_NRF52_HEADERMASK_WORKAROUND: 1
\ No newline at end of file
+    BLE_AUDIO: 1
diff --git a/apps/btshell/src/btshell.h b/apps/btshell/src/btshell.h
index c457fd7f9..c2a2eb3e2 100644
--- a/apps/btshell/src/btshell.h
+++ b/apps/btshell/src/btshell.h
@@ -29,7 +29,7 @@
 #include "host/ble_gatt.h"
 #include "host/ble_gap.h"
 #if (MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE))
-#include "host/ble_audio_broadcast_source.h"
+#include "audio/ble_audio_broadcast_source.h"
 #endif
 
 #ifdef __cplusplus
diff --git a/apps/btshell/src/cmd_iso.c b/apps/btshell/src/cmd_iso.c
index 8d0ef343d..284f02111 100644
--- a/apps/btshell/src/cmd_iso.c
+++ b/apps/btshell/src/cmd_iso.c
@@ -34,7 +34,7 @@ static struct iso_rx_stats {
     uint64_t valid_cnt;
     uint64_t error_cnt;
     uint64_t lost_cnt;
-} rx_stats_pool[MYNEWT_VAL(BLE_MAX_BIS)];
+} rx_stats_pool[MYNEWT_VAL(BLE_ISO_MAX_BISES)];
 
 static void
 iso_rx_stats_update(uint16_t conn_handle, const struct ble_iso_rx_data_info 
*info,
@@ -305,9 +305,9 @@ const struct shell_cmd_help cmd_iso_big_sync_create_help = {
 int
 cmd_iso_big_sync_create(int argc, char **argv)
 {
-    struct ble_iso_bis_params bis_params[MYNEWT_VAL(BLE_MAX_BIS)];
+    struct ble_iso_bis_params bis_params[MYNEWT_VAL(BLE_ISO_MAX_BISES)];
     struct ble_iso_big_sync_create_params params = { 0 };
-    uint8_t bis_idxs[MYNEWT_VAL(BLE_MAX_BIS)];
+    uint8_t bis_idxs[MYNEWT_VAL(BLE_ISO_MAX_BISES)];
     uint8_t big_handle;
     int rc;
 
diff --git a/apps/btshell/src/cmd_leaudio.c b/apps/btshell/src/cmd_leaudio.c
index fc4fcd17a..2f31246cf 100644
--- a/apps/btshell/src/cmd_leaudio.c
+++ b/apps/btshell/src/cmd_leaudio.c
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-#include "host/ble_audio_broadcast_source.h"
 #include "cmd_leaudio.h"
 #include "btshell.h"
 #include "console/console.h"
 #include "errno.h"
 
-#if (MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE))
+#if (MYNEWT_VAL(BLE_AUDIO))
+#include "audio/ble_audio_broadcast_source.h"
 int
 cmd_leaudio_base_add(int argc, char **argv)
 {
diff --git a/apps/btshell/src/main.c b/apps/btshell/src/main.c
index 6424bf6b8..0ba90ff13 100644
--- a/apps/btshell/src/main.c
+++ b/apps/btshell/src/main.c
@@ -41,8 +41,10 @@
 #include "host/ble_gatt.h"
 #include "host/ble_store.h"
 #include "host/ble_sm.h"
-#include "host/ble_audio_common.h"
-#include "host/ble_audio_broadcast_source.h"
+#if MYNEWT_VAL(BLE_AUDIO)
+#include "audio/ble_audio_broadcast_source.h"
+#include "audio/ble_audio.h"
+#endif
 #include "host/util/util.h"
 
 /* Mandatory services. */
@@ -132,35 +134,35 @@ struct ble_sm_sc_oob_data oob_data_remote;
 
 #if MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE)
 static struct {struct ble_audio_base *base; uint8_t adv_instance;}
-btshell_base_list[MYNEWT_VAL(BLE_MAX_BIG)];
+btshell_base_list[MYNEWT_VAL(BLE_ISO_MAX_BIGS)];
 
 static os_membuf_t btshell_base_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIG),
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                     sizeof(struct ble_audio_base))
 ];
 static struct os_mempool btshell_base_pool;
 
 static os_membuf_t btshell_big_params_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIG),
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                     sizeof(struct ble_iso_big_params))
 ];
 static struct os_mempool btshell_big_params_pool;
 
 /** Mempool size: in worst case every BIS is in separate subgroup */
 static os_membuf_t btshell_big_sub_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS),
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES),
                     sizeof(struct ble_audio_big_subgroup))
 ];
 static struct os_mempool btshell_big_sub_pool;
 
 static os_membuf_t btshell_bis_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS),
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES),
                     sizeof(struct ble_audio_bis))
 ];
 static struct os_mempool btshell_bis_pool;
 
 static os_membuf_t btshell_metadata_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS),
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES),
                     MYNEWT_VAL(BLE_EXT_ADV_MAX_SIZE) - 27)
 ];
 static struct os_mempool btshell_metadata_pool;
@@ -171,12 +173,12 @@ static struct os_mempool btshell_metadata_pool;
  * has one. This is inefficient but possible and should not cause error if
  * used that way */
 static os_membuf_t btshell_codec_spec_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS) * 2, 9)
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES) * 2, 9)
 ];
 static struct os_mempool btshell_codec_spec_pool;
 
 static os_membuf_t btshell_big_params_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIG), sizeof(struct ble_iso_big_params))
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BIGS), sizeof(struct 
ble_iso_big_params))
 ];
 static struct os_mempool btshell_big_params_pool;
 #endif
@@ -2767,7 +2769,7 @@ static int
 btshell_base_find_free(void)
 {
     int i;
-    for (i = 0; i < MYNEWT_VAL(BLE_MAX_BIG); i++) {
+    for (i = 0; i < MYNEWT_VAL(BLE_ISO_MAX_BIGS); i++) {
         if (btshell_base_list[i].base == NULL) {
             return i;
         }
@@ -2780,7 +2782,7 @@ static struct ble_audio_base *
 btshell_base_find(uint8_t adv_instance)
 {
     int i;
-    for (i = 0; i < MYNEWT_VAL(BLE_MAX_BIG); i++) {
+    for (i = 0; i < MYNEWT_VAL(BLE_ISO_MAX_BIGS); i++) {
         if (btshell_base_list[i].adv_instance == adv_instance) {
             return btshell_base_list[i].base;
         }
@@ -3082,38 +3084,38 @@ mynewt_main(int argc, char **argv)
     assert(rc == 0);
 #endif
 #if (MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE))
-    rc = os_mempool_init(&btshell_base_pool, MYNEWT_VAL(BLE_MAX_BIG),
+    rc = os_mempool_init(&btshell_base_pool, MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                          sizeof(struct ble_audio_base),
                          btshell_base_mem,
                          "btshell_base_pool");
     assert(rc == 0);
-    rc = os_mempool_init(&btshell_big_params_pool, MYNEWT_VAL(BLE_MAX_BIG),
+    rc = os_mempool_init(&btshell_big_params_pool, 
MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                          sizeof(struct ble_iso_big_params),
                          btshell_big_params_mem,
                          "btshell_big_params_pool");
     assert(rc == 0);
-    rc = os_mempool_init(&btshell_big_sub_pool, MYNEWT_VAL(BLE_MAX_BIS),
+    rc = os_mempool_init(&btshell_big_sub_pool, MYNEWT_VAL(BLE_ISO_MAX_BISES),
                          sizeof(struct ble_audio_big_subgroup),
                          btshell_big_sub_mem,
                    "btshell_big_sub_pool");
     assert(rc == 0);
-    rc = os_mempool_init(&btshell_bis_pool, MYNEWT_VAL(BLE_MAX_BIS),
+    rc = os_mempool_init(&btshell_bis_pool, MYNEWT_VAL(BLE_ISO_MAX_BISES),
                          sizeof(struct ble_audio_bis), btshell_bis_mem,
                          "btshell_bis_pool");
     assert(rc == 0);
 
-    rc = os_mempool_init(&btshell_metadata_pool, MYNEWT_VAL(BLE_MAX_BIS),
+    rc = os_mempool_init(&btshell_metadata_pool, MYNEWT_VAL(BLE_ISO_MAX_BISES),
                          MYNEWT_VAL(BLE_EXT_ADV_MAX_SIZE) - 27,
                          btshell_metadata_mem, "btshell_metadata_pool");
     assert(rc == 0);
 
     rc = os_mempool_init(&btshell_codec_spec_pool,
-                         MYNEWT_VAL(BLE_MAX_BIS) * 2, 19,
+                         MYNEWT_VAL(BLE_ISO_MAX_BISES) * 2, 19,
                          btshell_codec_spec_mem, "btshell_codec_spec_pool");
     assert(rc == 0);
 
     rc = os_mempool_init(&btshell_big_params_pool,
-                         MYNEWT_VAL(BLE_MAX_BIG),
+                         MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                          sizeof(struct ble_iso_big_params),
                          btshell_big_params_mem, "btshell_big_params_pool");
     assert(rc == 0);
diff --git a/apps/leaudio_broadcaster/pkg.yml b/apps/leaudio_broadcaster/pkg.yml
index 0955da906..95439284c 100644
--- a/apps/leaudio_broadcaster/pkg.yml
+++ b/apps/leaudio_broadcaster/pkg.yml
@@ -30,6 +30,7 @@ pkg.deps:
     - nimble/host/util
     - nimble/host/services/gap
     - nimble/host/store/config
+    - nimble/host/audio
     - "@apache-mynewt-core/kernel/os"
     - "@apache-mynewt-core/sys/console"
     - "@apache-mynewt-core/sys/log"
diff --git a/apps/leaudio_broadcaster/src/main.c 
b/apps/leaudio_broadcaster/src/main.c
index a4e7bf98e..52033250e 100644
--- a/apps/leaudio_broadcaster/src/main.c
+++ b/apps/leaudio_broadcaster/src/main.c
@@ -24,8 +24,8 @@
 #include "host/ble_hs.h"
 #include "host/util/util.h"
 
-#include "host/ble_audio_broadcast_source.h"
-#include "host/ble_audio_common.h"
+#include "audio/ble_audio_broadcast_source.h"
+#include "audio/ble_audio.h"
 #include "host/ble_iso.h"
 
 #include "hal/hal_gpio.h"
@@ -53,7 +53,7 @@ static os_membuf_t bis_mem[
 static struct os_mempool bis_pool;
 
 static os_membuf_t codec_spec_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS) * 2, 19)
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES) * 2, 19)
 ];
 static struct os_mempool codec_spec_pool;
 
@@ -182,7 +182,7 @@ broadcaster_init()
     assert(rc == 0);
 
     rc = os_mempool_init(&codec_spec_pool,
-                         MYNEWT_VAL(BLE_MAX_BIS) * 2, 19,
+                         MYNEWT_VAL(BLE_ISO_MAX_BISES) * 2, 19,
                          codec_spec_mem, "codec_spec_pool");
     assert(rc == 0);
 }
diff --git a/apps/leaudio_broadcaster/syscfg.yml 
b/apps/leaudio_broadcaster/syscfg.yml
index bed16f05d..cffb828ed 100644
--- a/apps/leaudio_broadcaster/syscfg.yml
+++ b/apps/leaudio_broadcaster/syscfg.yml
@@ -52,10 +52,11 @@ syscfg.vals:
     MSYS_1_BLOCK_COUNT: 32
 
     BLE_VERSION: 54
+    BLE_AUDIO: 1
     BLE_ISO: 1
     BLE_ISO_BROADCAST_SOURCE: 1
-    BLE_MAX_BIG: 1
-    BLE_MAX_BIS: 2
+    BLE_ISO_MAX_BIGS: 1
+    BLE_ISO_MAX_BISES: 2
 
 syscfg.vals.BSP_NRF5340:
     MCU_MPU_ENABLE: 1
diff --git a/nimble/host/include/host/ble_audio_common.h 
b/nimble/host/audio/include/audio/ble_audio.h
similarity index 58%
rename from nimble/host/include/host/ble_audio_common.h
rename to nimble/host/audio/include/audio/ble_audio.h
index 05780c079..c1ce1dc9c 100644
--- a/nimble/host/include/host/ble_audio_common.h
+++ b/nimble/host/audio/include/audio/ble_audio.h
@@ -17,26 +17,16 @@
  * under the License.
  */
 
-#ifndef H_BLE_AUDIO_COMMON_
-#define H_BLE_AUDIO_COMMON_
+#ifndef H_BLE_AUDIO_
+#define H_BLE_AUDIO_
 
-/**
- * @file ble_audio_common.h
- *
- * @brief Bluetooth Low Energy Audio Common API
- *
- * @defgroup bt_le_audio_common Bluetooth LE Audio Common
- * @ingroup bt_host
- * @{
- */
-
-#include "stdint.h"
-#include "os/queue.h"
+#include <stdint.h>
+#include <sys/queue.h>
 
 /**
  * @cond
  * Helper macros for BLE_AUDIO_BUILD_CODEC_CONFIG
- * @{
+ * @private @{
  */
 #define FIELD_LEN_2(_len, _type, _field)     _len, _type, _field,
 #define FIELD_LEN_5(_len, _type, _field)     _len, _type, _field,       \
@@ -276,6 +266,271 @@ struct ble_audio_codec_id {
     uint16_t vendor_specific;
 };
 
+/** @brief Public Broadcast Announcement features bits */
+enum ble_audio_pub_broadcast_announcement_feat {
+    /** Broadcast Stream Encryption */
+    BLE_AUDIO_PUB_BROADCAST_ANNOUNCEMENT_FEAT_ENCRYPTION = 1 << 0,
+
+    /** Standard Quality Public Broadcast Audio */
+    BLE_AUDIO_PUB_BROADCAST_ANNOUNCEMENT_FEAT_SQ = 1 << 1,
+
+    /** High Quality Public Broadcast Audio */
+    BLE_AUDIO_PUB_BROADCAST_ANNOUNCEMENT_FEAT_HQ = 1 << 2,
+};
+
+/** @brief Public Broadcast Announcement structure */
+struct ble_audio_pub_broadcast_announcement {
+    /** Public Broadcast Announcement features bitfield */
+    enum ble_audio_pub_broadcast_announcement_feat features;
+
+    /** Metadata length */
+    uint8_t metadata_len;
+
+    /** Metadata */
+    const uint8_t *metadata;
+};
+
+struct ble_audio_broadcast_name {
+    /** Broadcast Name length */
+    uint8_t name_len;
+
+    /** Broadcast Name */
+    const char *name;
+};
+
+/**
+ * @defgroup ble_audio_events Bluetooth Low Energy Audio Events
+ * @{
+ */
+
+/** BLE Audio event: Broadcast Announcement */
+#define BLE_AUDIO_EVENT_BROADCAST_ANNOUNCEMENT               0
+
+/** @} */
+
+/** @brief Broadcast Announcement */
+struct ble_audio_event_broadcast_announcement {
+    /** Extended advertising report */
+    const struct ble_gap_ext_disc_desc *ext_disc;
+
+    /** Broadcast ID */
+    uint32_t broadcast_id;
+
+    /** Additional service data included in Broadcast Audio Announcement */
+    const uint8_t *svc_data;
+
+    /** Additional service data length  */
+    uint16_t svc_data_len;
+
+    /** Optional Public Broadcast Announcement data */
+    struct ble_audio_pub_broadcast_announcement *pub_announcement_data;
+
+    /** Optional Broadcast Name */
+    struct ble_audio_broadcast_name *name;
+};
+
+/**
+ * Represents a BLE Audio related event. When such an event occurs, the host
+ * notifies the application by passing an instance of this structure to an
+ * application-specified callback.
+ */
+struct ble_audio_event {
+    /**
+     * Indicates the type of BLE Audio event that occurred. This is one of the
+     * BLE_AUDIO_EVENT codes.
+     */
+    uint8_t type;
+
+    /**
+     * A discriminated union containing additional details concerning the 
event.
+     * The 'type' field indicates which member of the union is valid.
+     */
+    union {
+        /**
+         * @ref BLE_AUDIO_EVENT_BROADCAST_ANNOUNCEMENT
+         *
+         * Represents a received Broadcast Announcement.
+         */
+        struct ble_audio_event_broadcast_announcement broadcast_announcement;
+    };
+};
+
+/** Callback function type for handling BLE Audio events. */
+typedef int ble_audio_event_fn(struct ble_audio_event *event, void *arg);
+
+/**
+ * Event listener structure
+ *
+ * This should be used as an opaque structure and not modified manually.
+ */
+struct ble_audio_event_listener {
+    /** The function to call when a BLE Audio event occurs. */
+    ble_audio_event_fn *fn;
+
+    /** An optional argument to pass to the event handler function. */
+    void *arg;
+
+    /** Singly-linked list entry. */
+    SLIST_ENTRY(ble_audio_event_listener) next;
+};
+
+/**
+ * Registers listener for BLE Audio events
+ *
+ * On success listener structure will be initialized automatically and does not
+ * need to be initialized prior to calling this function. To change callback
+ * and/or argument unregister listener first and register it again.
+ *
+ * @param[in] listener          Listener structure
+ * @param[in] event_mask        Optional event mask
+ * @param[in] fn                Callback function
+ * @param[in] arg               Optional callback argument
+ *
+ * @return                      0 on success
+ *                              BLE_HS_EINVAL if no callback is specified
+ *                              BLE_HS_EALREADY if listener is already 
registered
+ */
+int ble_audio_event_listener_register(struct ble_audio_event_listener 
*listener,
+                                      ble_audio_event_fn *fn, void *arg);
+
+/**
+ * Unregisters listener for BLE Audio events
+ *
+ * @param[in] listener          Listener structure
+ *
+ * @return                      0 on success
+ *                              BLE_HS_ENOENT if listener was not registered
+ */
+int ble_audio_event_listener_unregister(struct ble_audio_event_listener 
*listener);
+
+/**
+ * BASE iterator
+ *
+ * The iterator structure used by @ref ble_audio_base_subgroup_iter and
+ * @ble_audio_base_bis_iter functions to iterate the BASE Level 2 and 3 
elements
+ * (Subgroups and BISes).
+ * This should be used as an opaque structure and not modified manually.
+ *
+ * Example:
+ * @code{.c}
+ * struct ble_audio_base_iter subgroup_iter;
+ * struct ble_audio_base_iter bis_iter;
+ * struct ble_audio_base_group group;
+ * struct ble_audio_base_subgroup subgroup;
+ * struct ble_audio_base_bis bis;
+ *
+ * rc = ble_audio_base_parse(data, data_size, &group, &subgroup_iter);
+ * if (rc == 0) {
+ *     for (uint8_t i = 0; i < group->num_subgroups; i++) {
+ *         rc = ble_audio_base_subgroup_iter(&subgroup_iter, &subgroup, 
&bis_iter);
+ *         if (rc == 0) {
+ *             for (uint8_t j = 0; j < subgroup->num_bis; j++) {
+ *                 rc = ble_audio_base_bis_iter(&bis_iter, &bis);
+ *                 if (rc == 0) {
+ *                     foo(&group, &subgroup, &bis);
+ *                 }
+ *             }
+ *         }
+ *     }
+ * }
+ * @endcode
+ */
+struct ble_audio_base_iter {
+    /** Data pointer */
+    const uint8_t *data;
+
+    /** Base length */
+    uint8_t buf_len;
+
+    /** Original BASE pointer */
+    const uint8_t *buf;
+
+    /** Remaining number of elements */
+    uint8_t num_elements;
+};
+
+/** @brief Broadcast Audio Source Endpoint Group structure */
+struct ble_audio_base_group {
+    /** Presentation Delay */
+    uint32_t presentation_delay;
+
+    /** Number of subgroups */
+    uint8_t num_subgroups;
+};
+
+/**
+ * Parse the BASE received from Basic Audio Announcement data.
+ *
+ * @param[in] data              Pointer to the BASE data buffer to parse.
+ * @param[in] data_len          Length of the BASE data buffer.
+ * @param[out] group            Group object.
+ * @param[out] subgroup_iter    Subgroup iterator object.
+ *
+ * @return                      0 on success; nonzero on failure.
+ */
+int ble_audio_base_parse(const uint8_t *data, uint8_t data_len,
+                         struct ble_audio_base_group *group,
+                         struct ble_audio_base_iter *subgroup_iter);
+
+/** @brief Broadcast Audio Source Endpoint Subgroup structure */
+struct ble_audio_base_subgroup {
+    /** Codec information for the subgroup */
+    struct ble_audio_codec_id codec_id;
+
+    /** Length of the Codec Specific Configuration for the subgroup */
+    uint8_t codec_spec_config_len;
+
+    /** Codec Specific Configuration for the subgroup */
+    const uint8_t *codec_spec_config;
+
+    /** Length of the Metadata for the subgroup */
+    uint8_t metadata_len;
+
+    /** Series of LTV structures containing Metadata */
+    const uint8_t *metadata;
+
+    /** Number of BISes in the subgroup */
+    uint8_t num_bis;
+};
+
+/**
+ * @brief Basic Audio Announcement Subgroup information
+ *
+ * @param[in] subgroup_iter     Subgroup iterator object.
+ * @param[out] subgroup         Subgroup object.
+ * @param[out] bis_iter         BIS iterator object.
+ *
+ * @return                      0 on success;
+ *                              A non-zero value on failure.
+ */
+int ble_audio_base_subgroup_iter(struct ble_audio_base_iter *subgroup_iter,
+                                 struct ble_audio_base_subgroup *subgroup,
+                                 struct ble_audio_base_iter *bis_iter);
+
+/** @brief Broadcast Audio Source Endpoint BIS structure */
+struct ble_audio_base_bis {
+    /** BIS_index value for the BIS */
+    uint8_t index;
+
+    /** Length of the Codec Specific Configuration for the BIS */
+    uint8_t codec_spec_config_len;
+
+    /** Codec Specific Configuration for the BIS */
+    const uint8_t *codec_spec_config;
+};
+
+/**
+ * @brief Basic Audio Announcement Subgroup information
+ *
+ * @param[in] bis_iter          BIS iterator object.
+ * @param[out] bis              BIS object.
+ *
+ * @return                      0 on success;
+ *                              A non-zero value on failure.
+ */
+int ble_audio_base_bis_iter(struct ble_audio_base_iter *bis_iter,
+                            struct ble_audio_base_bis *bis);
+
 /** Broadcast Isochronous Streams (BIS) */
 struct ble_audio_bis {
     /** Pointer to next BIS in subgroup */
@@ -333,8 +588,4 @@ struct ble_audio_base {
     STAILQ_HEAD(, ble_audio_big_subgroup) subs;
 };
 
-/**
- * @}
- */
-
-#endif /* H_BLE_AUDIO_COMMON_ */
+#endif /* H_BLE_AUDIO_ */
diff --git a/nimble/host/include/host/ble_audio_broadcast_source.h 
b/nimble/host/audio/include/audio/ble_audio_broadcast_source.h
similarity index 99%
rename from nimble/host/include/host/ble_audio_broadcast_source.h
rename to nimble/host/audio/include/audio/ble_audio_broadcast_source.h
index 605aa5b20..839449cbe 100644
--- a/nimble/host/include/host/ble_audio_broadcast_source.h
+++ b/nimble/host/audio/include/audio/ble_audio_broadcast_source.h
@@ -33,7 +33,7 @@
 #include <stdint.h>
 #include "host/ble_gap.h"
 #include "host/ble_iso.h"
-#include "host/ble_audio_common.h"
+#include "ble_audio.h"
 
 /** Parameters used for creating BASE configuration. */
 struct ble_broadcast_create_params {
diff --git a/nimble/host/audio/include/host/audio/ble_audio.h 
b/nimble/host/audio/include/host/audio/ble_audio.h
deleted file mode 100644
index 7d4200bb0..000000000
--- a/nimble/host/audio/include/host/audio/ble_audio.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef H_BLE_AUDIO_
-#define H_BLE_AUDIO_
-
-#include <stdint.h>
-#include <sys/queue.h>
-
-#include "host/ble_audio_common.h"
-
-/** @brief Public Broadcast Announcement features bits */
-enum ble_audio_pub_bcst_announcement_feat {
-    /** Broadcast Stream Encryption */
-    BLE_AUDIO_PUB_BCST_ANNOUNCEMENT_FEAT_ENCRYPTION = 1 << 0,
-
-    /** Standard Quality Public Broadcast Audio */
-    BLE_AUDIO_PUB_BCST_ANNOUNCEMENT_FEAT_SQ = 1 << 1,
-
-    /** High Quality Public Broadcast Audio */
-    BLE_AUDIO_PUB_BCST_ANNOUNCEMENT_FEAT_HQ = 1 << 2,
-};
-
-/** @brief Public Broadcast Announcement structure */
-struct ble_audio_pub_bcst_announcement {
-    /** Public Broadcast Announcement features bitfield */
-    enum ble_audio_pub_bcst_announcement_feat features;
-
-    /** Metadata length */
-    uint8_t metadata_len;
-
-    /** Metadata */
-    const uint8_t *metadata;
-};
-
-struct ble_audio_bcst_name {
-    /** Broadcast Name length */
-    uint8_t name_len;
-
-    /** Broadcast Name */
-    const char *name;
-};
-
-/**
- * @defgroup ble_audio_events Bluetooth Low Energy Audio Events
- * @{
- */
-
-/** BLE Audio event: Broadcast Announcement */
-#define BLE_AUDIO_EVENT_BCST_ANNOUNCEMENT               0
-
-/** @} */
-
-/** @brief Broadcast Announcement */
-struct ble_audio_event_bcst_announcement {
-    /** Extended advertising report */
-    const struct ble_gap_ext_disc_desc *ext_disc;
-
-    /** Broadcast ID */
-    uint32_t broadcast_id;
-
-    /** Additional service data included in Broadcast Audio Announcement */
-    const uint8_t *svc_data;
-
-    /** Additional service data length  */
-    uint16_t svc_data_len;
-
-    /** Optional Public Broadcast Announcement data */
-    struct ble_audio_pub_bcst_announcement *pub_announcement_data;
-
-    /** Optional Broadcast Name */
-    struct ble_audio_bcst_name *name;
-};
-
-/**
- * Represents a BLE Audio related event. When such an event occurs, the host
- * notifies the application by passing an instance of this structure to an
- * application-specified callback.
- */
-struct ble_audio_event {
-    /**
-     * Indicates the type of BLE Audio event that occurred. This is one of the
-     * BLE_AUDIO_EVENT codes.
-     */
-    uint8_t type;
-
-    /**
-     * A discriminated union containing additional details concerning the 
event.
-     * The 'type' field indicates which member of the union is valid.
-     */
-    union {
-        /**
-         * @ref BLE_AUDIO_EVENT_BCST_ANNOUNCEMENT
-         *
-         * Represents a received Broadcast Announcement.
-         */
-        struct ble_audio_event_bcst_announcement bcst_announcement;
-    };
-};
-
-/** Callback function type for handling BLE Audio events. */
-typedef int ble_audio_event_fn(struct ble_audio_event *event, void *arg);
-
-/**
- * Event listener structure
- *
- * This should be used as an opaque structure and not modified manually.
- */
-struct ble_audio_event_listener {
-    /** The function to call when a BLE Audio event occurs. */
-    ble_audio_event_fn *fn;
-
-    /** An optional argument to pass to the event handler function. */
-    void *arg;
-
-    /** Singly-linked list entry. */
-    SLIST_ENTRY(ble_audio_event_listener) next;
-};
-
-/**
- * Registers listener for BLE Audio events
- *
- * On success listener structure will be initialized automatically and does not
- * need to be initialized prior to calling this function. To change callback
- * and/or argument unregister listener first and register it again.
- *
- * @param[in] listener          Listener structure
- * @param[in] event_mask        Optional event mask
- * @param[in] fn                Callback function
- * @param[in] arg               Optional callback argument
- *
- * @return                      0 on success
- *                              BLE_HS_EINVAL if no callback is specified
- *                              BLE_HS_EALREADY if listener is already 
registered
- */
-int ble_audio_event_listener_register(struct ble_audio_event_listener 
*listener,
-                                      ble_audio_event_fn *fn, void *arg);
-
-/**
- * Unregisters listener for BLE Audio events
- *
- * @param[in] listener          Listener structure
- *
- * @return                      0 on success
- *                              BLE_HS_ENOENT if listener was not registered
- */
-int ble_audio_event_listener_unregister(struct ble_audio_event_listener 
*listener);
-
-/**
- * BASE iterator
- *
- * The iterator structure used by @ref ble_audio_base_subgroup_iter and
- * @ble_audio_base_bis_iter functions to iterate the BASE Level 2 and 3 
elements
- * (Subgroups and BISes).
- * This should be used as an opaque structure and not modified manually.
- *
- * Example:
- * @code{.c}
- * struct ble_audio_base_iter subgroup_iter;
- * struct ble_audio_base_iter bis_iter;
- * struct ble_audio_base_group group;
- * struct ble_audio_base_subgroup subgroup;
- * struct ble_audio_base_bis bis;
- *
- * rc = ble_audio_base_parse(data, data_size, &group, &subgroup_iter);
- * if (rc == 0) {
- *     for (uint8_t i = 0; i < group->num_subgroups; i++) {
- *         rc = ble_audio_base_subgroup_iter(&subgroup_iter, &subgroup, 
&bis_iter);
- *         if (rc == 0) {
- *             for (uint8_t j = 0; j < subgroup->num_bis; j++) {
- *                 rc = ble_audio_base_bis_iter(&bis_iter, &bis);
- *                 if (rc == 0) {
- *                     foo(&group, &subgroup, &bis);
- *                 }
- *             }
- *         }
- *     }
- * }
- * @endcode
- */
-struct ble_audio_base_iter {
-    /** Data pointer */
-    const uint8_t *data;
-
-    /** Base length */
-    uint8_t buf_len;
-
-    /** Original BASE pointer */
-    const uint8_t *buf;
-
-    /** Remaining number of elements */
-    uint8_t num_elements;
-};
-
-/** @brief Broadcast Audio Source Endpoint Group structure */
-struct ble_audio_base_group {
-    /** Presentation Delay */
-    uint32_t presentation_delay;
-
-    /** Number of subgroups */
-    uint8_t num_subgroups;
-};
-
-/**
- * Parse the BASE received from Basic Audio Announcement data.
- *
- * @param[in] data              Pointer to the BASE data buffer to parse.
- * @param[in] data_len          Length of the BASE data buffer.
- * @param[out] group            Group object.
- * @param[out] subgroup_iter    Subgroup iterator object.
- *
- * @return                      0 on success; nonzero on failure.
- */
-int ble_audio_base_parse(const uint8_t *data, uint8_t data_len,
-                         struct ble_audio_base_group *group,
-                         struct ble_audio_base_iter *subgroup_iter);
-
-/** @brief Broadcast Audio Source Endpoint Subgroup structure */
-struct ble_audio_base_subgroup {
-    /** Codec information for the subgroup */
-    struct ble_audio_codec_id codec_id;
-
-    /** Length of the Codec Specific Configuration for the subgroup */
-    uint8_t codec_spec_config_len;
-
-    /** Codec Specific Configuration for the subgroup */
-    const uint8_t *codec_spec_config;
-
-    /** Length of the Metadata for the subgroup */
-    uint8_t metadata_len;
-
-    /** Series of LTV structures containing Metadata */
-    const uint8_t *metadata;
-
-    /** Number of BISes in the subgroup */
-    uint8_t num_bis;
-};
-
-/**
- * @brief Basic Audio Announcement Subgroup information
- *
- * @param[in] subgroup_iter     Subgroup iterator object.
- * @param[out] subgroup         Subgroup object.
- * @param[out] bis_iter         BIS iterator object.
- *
- * @return                      0 on success;
- *                              A non-zero value on failure.
- */
-int ble_audio_base_subgroup_iter(struct ble_audio_base_iter *subgroup_iter,
-                                 struct ble_audio_base_subgroup *subgroup,
-                                 struct ble_audio_base_iter *bis_iter);
-
-/** @brief Broadcast Audio Source Endpoint BIS structure */
-struct ble_audio_base_bis {
-    /** BIS_index value for the BIS */
-    uint8_t index;
-
-    /** Length of the Codec Specific Configuration for the BIS */
-    uint8_t codec_spec_config_len;
-
-    /** Codec Specific Configuration for the BIS */
-    const uint8_t *codec_spec_config;
-};
-
-/**
- * @brief Basic Audio Announcement Subgroup information
- *
- * @param[in] bis_iter          BIS iterator object.
- * @param[out] bis              BIS object.
- *
- * @return                      0 on success;
- *                              A non-zero value on failure.
- */
-int ble_audio_base_bis_iter(struct ble_audio_base_iter *bis_iter,
-                            struct ble_audio_base_bis *bis);
-
-#endif /* H_BLE_AUDIO_ */
diff --git 
a/nimble/host/services/auracast/include/services/auracast/ble_svc_auracast.h 
b/nimble/host/audio/services/auracast/include/services/auracast/ble_svc_auracast.h
similarity index 98%
rename from 
nimble/host/services/auracast/include/services/auracast/ble_svc_auracast.h
rename to 
nimble/host/audio/services/auracast/include/services/auracast/ble_svc_auracast.h
index 560adb8b1..900b6fdda 100644
--- a/nimble/host/services/auracast/include/services/auracast/ble_svc_auracast.h
+++ 
b/nimble/host/audio/services/auracast/include/services/auracast/ble_svc_auracast.h
@@ -19,8 +19,8 @@
 
 #include <stdint.h>
 #include "host/ble_gap.h"
-#include "host/ble_audio_common.h"
-#include "host/ble_audio_broadcast_source.h"
+#include "audio/ble_audio.h"
+#include "audio/ble_audio_broadcast_source.h"
 
 struct ble_svc_auracast_create_params {
     /** Broadcast Audio Source Endpoint */
diff --git a/nimble/host/services/auracast/pkg.yml 
b/nimble/host/audio/services/auracast/pkg.yml
similarity index 93%
rename from nimble/host/services/auracast/pkg.yml
rename to nimble/host/audio/services/auracast/pkg.yml
index a4d0013f9..a2533b29d 100644
--- a/nimble/host/services/auracast/pkg.yml
+++ b/nimble/host/audio/services/auracast/pkg.yml
@@ -16,7 +16,7 @@
 # under the License.
 #
 
-pkg.name: nimble/host/services/auracast
+pkg.name: nimble/host/audio/services/auracast
 pkg.description: Implements Auracast service
 pkg.author: "Apache Mynewt <d...@mynewt.apache.org>"
 pkg.homepage: "http://mynewt.apache.org/";
@@ -28,3 +28,4 @@ pkg.keywords:
 
 pkg.deps:
   - nimble/host
+  - nimble/host/audio
diff --git a/nimble/host/services/auracast/src/ble_svc_auracast.c 
b/nimble/host/audio/services/auracast/src/ble_svc_auracast.c
similarity index 98%
rename from nimble/host/services/auracast/src/ble_svc_auracast.c
rename to nimble/host/audio/services/auracast/src/ble_svc_auracast.c
index 7bd9112df..b323e64bf 100644
--- a/nimble/host/services/auracast/src/ble_svc_auracast.c
+++ b/nimble/host/audio/services/auracast/src/ble_svc_auracast.c
@@ -21,7 +21,7 @@
 
 #include "host/ble_gap.h"
 #include "host/ble_hs.h"
-#include "host/ble_audio_broadcast_source.h"
+#include "audio/ble_audio_broadcast_source.h"
 #include "services/auracast/ble_svc_auracast.h"
 
 int
diff --git a/nimble/host/audio/src/ble_audio.c 
b/nimble/host/audio/src/ble_audio.c
index 61c42e4ff..f7597aaf7 100644
--- a/nimble/host/audio/src/ble_audio.c
+++ b/nimble/host/audio/src/ble_audio.c
@@ -21,7 +21,7 @@
 #include <stddef.h>
 
 #include "host/ble_hs.h"
-#include "host/audio/ble_audio.h"
+#include "audio/ble_audio.h"
 
 #include "ble_audio_priv.h"
 
@@ -29,24 +29,23 @@ static struct ble_gap_event_listener 
ble_audio_gap_event_listener;
 static SLIST_HEAD(, ble_audio_event_listener) ble_audio_event_listener_list =
     SLIST_HEAD_INITIALIZER(ble_audio_event_listener_list);
 
-struct ble_audio_adv_parse_bcst_announcement_data {
+struct ble_audio_adv_parse_broadcast_announcement_data {
     struct ble_audio_event event;
-    struct ble_audio_pub_bcst_announcement pub;
-    struct ble_audio_bcst_name name;
+    struct ble_audio_pub_broadcast_announcement pub;
+    struct ble_audio_broadcast_name name;
     bool success;
 };
 
 static int
-ble_audio_adv_parse_bcst_announcement(const struct ble_hs_adv_field *field,
-                                      void *user_data)
+ble_audio_adv_parse_broadcast_announcement(const struct ble_hs_adv_field 
*field, void *user_data)
 {
-    struct ble_audio_adv_parse_bcst_announcement_data *data = user_data;
-    struct ble_audio_event_bcst_announcement *event;
+    struct ble_audio_adv_parse_broadcast_announcement_data *data = user_data;
+    struct ble_audio_event_broadcast_announcement *event;
     const uint8_t value_len = field->length - sizeof(field->length);
     ble_uuid16_t uuid16 = BLE_UUID16_INIT(0);
     uint8_t offset = 0;
 
-    event = &data->event.bcst_announcement;
+    event = &data->event.broadcast_announcement;
 
     data->success = false;
 
@@ -139,15 +138,15 @@ ble_audio_gap_event(struct ble_gap_event *gap_event, void 
*arg)
 {
     switch (gap_event->type) {
     case BLE_GAP_EVENT_EXT_DISC: {
-        struct ble_audio_adv_parse_bcst_announcement_data data = { 0 };
+        struct ble_audio_adv_parse_broadcast_announcement_data data = { 0 };
         int rc;
 
         rc = ble_hs_adv_parse(gap_event->ext_disc.data,
                               gap_event->ext_disc.length_data,
-                              ble_audio_adv_parse_bcst_announcement, &data);
+                              ble_audio_adv_parse_broadcast_announcement, 
&data);
         if (rc == 0 && data.success) {
-            data.event.type = BLE_AUDIO_EVENT_BCST_ANNOUNCEMENT;
-            data.event.bcst_announcement.ext_disc = &gap_event->ext_disc;
+            data.event.type = BLE_AUDIO_EVENT_BROADCAST_ANNOUNCEMENT;
+            data.event.broadcast_announcement.ext_disc = &gap_event->ext_disc;
 
             (void)ble_audio_event_listener_call(&data.event);
         }
diff --git a/nimble/host/src/ble_audio_broadcast_source.c 
b/nimble/host/audio/src/ble_audio_broadcast_source.c
similarity index 99%
rename from nimble/host/src/ble_audio_broadcast_source.c
rename to nimble/host/audio/src/ble_audio_broadcast_source.c
index 289165818..d243a5f19 100644
--- a/nimble/host/src/ble_audio_broadcast_source.c
+++ b/nimble/host/audio/src/ble_audio_broadcast_source.c
@@ -18,7 +18,7 @@
  */
 
 #include "host/ble_uuid.h"
-#include "host/ble_audio_broadcast_source.h"
+#include "audio/ble_audio_broadcast_source.h"
 
 #include "os/util.h"
 
@@ -35,7 +35,7 @@ struct ble_audio_broadcast {
 static SLIST_HEAD(, ble_audio_broadcast) ble_audio_broadcasts;
 static struct os_mempool ble_audio_broadcast_pool;
 static os_membuf_t ble_audio_broadcast_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIG),
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                     sizeof(struct ble_audio_broadcast))];
 
 static bool
@@ -483,7 +483,7 @@ ble_audio_broadcast_init(void)
     SLIST_INIT(&ble_audio_broadcasts);
 
     rc = os_mempool_init(&ble_audio_broadcast_pool,
-                         MYNEWT_VAL(BLE_MAX_BIG),
+                         MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                          sizeof(struct ble_audio_broadcast),
                          ble_audio_broadcast_mem, "ble_audio_broadcast_pool");
     SYSINIT_PANIC_ASSERT(rc == 0);
diff --git a/nimble/host/audio/src/ble_audio_priv.h 
b/nimble/host/audio/src/ble_audio_priv.h
index bedbdaf05..10f0109dd 100644
--- a/nimble/host/audio/src/ble_audio_priv.h
+++ b/nimble/host/audio/src/ble_audio_priv.h
@@ -20,7 +20,7 @@
 #ifndef H_BLE_AUDIO_PRIV_
 #define H_BLE_AUDIO_PRIV_
 
-#include "host/audio/ble_audio.h"
+#include "audio/ble_audio.h"
 
 int ble_audio_event_listener_call(struct ble_audio_event *event);
 
diff --git a/nimble/host/audio/targets/btshell_native/syscfg.yml 
b/nimble/host/audio/targets/btshell_native/syscfg.yml
index d631ea798..e9db00707 100644
--- a/nimble/host/audio/targets/btshell_native/syscfg.yml
+++ b/nimble/host/audio/targets/btshell_native/syscfg.yml
@@ -61,8 +61,8 @@ syscfg.vals:
     BLE_VERSION: 54
     BLE_ISO_BROADCAST_SINK: 1
     BLE_ISO_BROADCAST_SOURCE: 1
-    BLE_MAX_BIG: 1
-    BLE_MAX_BIS: 2
+    BLE_ISO_MAX_BIGS: 1
+    BLE_ISO_MAX_BISES: 2
 
     CONSOLE_UART: 1
     CONSOLE_UART_BAUD: 1000000
diff --git a/nimble/host/audio/test/src/testcases/ble_audio_base_parse_test.c 
b/nimble/host/audio/test/src/testcases/ble_audio_base_parse_test.c
index 2398d62dd..3231b8539 100644
--- a/nimble/host/audio/test/src/testcases/ble_audio_base_parse_test.c
+++ b/nimble/host/audio/test/src/testcases/ble_audio_base_parse_test.c
@@ -20,7 +20,7 @@
 #include "testutil/testutil.h"
 
 #include "host/ble_hs.h"
-#include "host/audio/ble_audio.h"
+#include "audio/ble_audio.h"
 
 /**
  * BAP_v1.0.1 Table 3.16
diff --git 
a/nimble/host/audio/test/src/testcases/ble_audio_listener_register_test.c 
b/nimble/host/audio/test/src/testcases/ble_audio_listener_register_test.c
index f55b51a3c..363632ecb 100644
--- a/nimble/host/audio/test/src/testcases/ble_audio_listener_register_test.c
+++ b/nimble/host/audio/test/src/testcases/ble_audio_listener_register_test.c
@@ -20,7 +20,7 @@
 #include "testutil/testutil.h"
 
 #include "host/ble_hs.h"
-#include "host/audio/ble_audio.h"
+#include "audio/ble_audio.h"
 
 static struct ble_audio_event_listener event_listener;
 
diff --git a/nimble/host/include/host/ble_iso.h 
b/nimble/host/include/host/ble_iso.h
index cdd3df881..1bae3366d 100644
--- a/nimble/host/include/host/ble_iso.h
+++ b/nimble/host/include/host/ble_iso.h
@@ -109,7 +109,7 @@ struct ble_iso_big_desc {
     uint8_t num_bis;
 
     /** The connection handles of all the BIS in the BIG. */
-    uint16_t conn_handle[MYNEWT_VAL(BLE_MAX_BIS)];
+    uint16_t conn_handle[MYNEWT_VAL(BLE_ISO_MAX_BISES)];
 };
 
 /** @brief Received ISO Data status possible values */
diff --git a/nimble/host/pkg.yml b/nimble/host/pkg.yml
index cab496cae..b4df8f871 100644
--- a/nimble/host/pkg.yml
+++ b/nimble/host/pkg.yml
@@ -32,6 +32,9 @@ pkg.deps:
     - nimble
     - nimble/transport
 
+pkg.deps.BLE_AUDIO:
+    - nimble/host/audio
+
 pkg.deps.BLE_SM_LEGACY:
     - "@apache-mynewt-core/crypto/tinycrypt"
 
diff --git a/nimble/host/src/ble_hs.c b/nimble/host/src/ble_hs.c
index d084c041a..147837d9f 100644
--- a/nimble/host/src/ble_hs.c
+++ b/nimble/host/src/ble_hs.c
@@ -24,7 +24,9 @@
 #include "syscfg/syscfg.h"
 #include "stats/stats.h"
 #include "host/ble_hs.h"
-#include "host/ble_audio_broadcast_source.h"
+#if MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE)
+#include "audio/ble_audio_broadcast_source.h"
+#endif
 #include "ble_hs_priv.h"
 #include "ble_iso_priv.h"
 #include "nimble/nimble_npl.h"
diff --git a/nimble/host/src/ble_iso.c b/nimble/host/src/ble_iso.c
index 90bd613d0..503cdd0d0 100644
--- a/nimble/host/src/ble_iso.c
+++ b/nimble/host/src/ble_iso.c
@@ -87,10 +87,10 @@ static SLIST_HEAD(, ble_iso_big) ble_iso_bigs;
 static SLIST_HEAD(, ble_iso_conn) ble_iso_conns;
 static struct os_mempool ble_iso_big_pool;
 static os_membuf_t ble_iso_big_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIG), sizeof (struct ble_iso_big))];
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BIGS), sizeof (struct 
ble_iso_big))];
 static struct os_mempool ble_iso_bis_pool;
 static os_membuf_t ble_iso_bis_mem[
-    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_MAX_BIS), sizeof (struct ble_iso_bis))];
+    OS_MEMPOOL_SIZE(MYNEWT_VAL(BLE_ISO_MAX_BISES), sizeof (struct 
ble_iso_bis))];
 
 static void
 ble_iso_conn_append(struct ble_iso_conn *conn)
@@ -234,7 +234,7 @@ ble_iso_create_big(const struct ble_iso_create_big_params 
*create_params,
     struct ble_iso_big *big;
 
     cp.adv_handle = create_params->adv_handle;
-    if (create_params->bis_cnt > MYNEWT_VAL(BLE_MAX_BIS)) {
+    if (create_params->bis_cnt > MYNEWT_VAL(BLE_ISO_MAX_BISES)) {
         return BLE_HS_EINVAL;
     }
 
@@ -498,7 +498,7 @@ ble_iso_big_sync_create(const struct 
ble_iso_big_sync_create_params *param,
                         uint8_t *big_handle)
 {
     struct ble_hci_le_big_create_sync_cp *cp;
-    uint8_t buf[sizeof(*cp) + MYNEWT_VAL(BLE_MAX_BIS)];
+    uint8_t buf[sizeof(*cp) + MYNEWT_VAL(BLE_ISO_MAX_BISES)];
     struct ble_iso_big *big;
     int rc;
 
@@ -922,13 +922,13 @@ ble_iso_init(void)
     SLIST_INIT(&ble_iso_bigs);
 
     rc = os_mempool_init(&ble_iso_big_pool,
-                         MYNEWT_VAL(BLE_MAX_BIG),
+                         MYNEWT_VAL(BLE_ISO_MAX_BIGS),
                          sizeof (struct ble_iso_big),
                          ble_iso_big_mem, "ble_iso_big_pool");
     SYSINIT_PANIC_ASSERT(rc == 0);
 
     rc = os_mempool_init(&ble_iso_bis_pool,
-                         MYNEWT_VAL(BLE_MAX_BIS),
+                         MYNEWT_VAL(BLE_ISO_MAX_BISES),
                          sizeof (struct ble_iso_bis),
                          ble_iso_bis_mem, "ble_iso_bis_pool");
     SYSINIT_PANIC_ASSERT(rc == 0);
diff --git a/nimble/host/syscfg.yml b/nimble/host/syscfg.yml
index faaaa0052..2848b648d 100644
--- a/nimble/host/syscfg.yml
+++ b/nimble/host/syscfg.yml
@@ -440,6 +440,11 @@ syscfg.defs:
             that have been enabled in the stack, such as GATT support.
         value: 0
 
+    BLE_AUDIO:
+        description: 'This option enables Bluetooth LE Audio support'
+        value: 0
+        experimental: 1
+
     # Flow control settings.
     BLE_HS_FLOW_CTRL:
         description: >
@@ -493,20 +498,6 @@ syscfg.defs:
             supported by host.
         value: 0
 
-    BLE_MAX_BIG:
-        desciptrion: >
-            Number of available BIGs
-        value: 'MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES'
-        restrictions:
-            - 'BLE_ISO_BROADCAST_SOURCE if 0'
-
-    BLE_MAX_BIS:
-        description: >
-            Number of supported BISes
-        value: 4
-        restrictions:
-            - 'BLE_ISO_BROADCAST_SOURCE if 0'
-
     ### Log settings.
 
     BLE_HS_LOG_MOD:
@@ -523,6 +514,20 @@ syscfg.defs:
         description: 'Minimum level for the BLE EATT log.'
         value: 1
 
+    BLE_ISO_MAX_BIGS:
+        desciptrion: >
+            Number of available BIGs
+        value: 'MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES'
+        restrictions:
+            - 'BLE_ISO_BROADCAST_SOURCE if 0'
+
+    BLE_ISO_MAX_BISES:
+        description: >
+            Number of supported BISes
+        value: 4
+        restrictions:
+            - 'BLE_ISO_BROADCAST_SOURCE if 0'
+
 syscfg.logs:
     BLE_HS_LOG:
         module: MYNEWT_VAL(BLE_HS_LOG_MOD)
diff --git a/porting/examples/linux/include/syscfg/syscfg.h 
b/porting/examples/linux/include/syscfg/syscfg.h
index 86da37381..657132958 100644
--- a/porting/examples/linux/include/syscfg/syscfg.h
+++ b/porting/examples/linux/include/syscfg/syscfg.h
@@ -803,12 +803,12 @@
 #define MYNEWT_VAL_BLE_L2CAP_SIG_MAX_PROCS (1)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIG
-#define MYNEWT_VAL_BLE_MAX_BIG (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BIGS
+#define MYNEWT_VAL_BLE_ISO_MAX_BIGS (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIS
-#define MYNEWT_VAL_BLE_MAX_BIS (4)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BISES
+#define MYNEWT_VAL_BLE_ISO_MAX_BISES (4)
 #endif
 
 #ifndef MYNEWT_VAL_BLE_MESH
diff --git a/porting/examples/linux_blemesh/include/syscfg/syscfg.h 
b/porting/examples/linux_blemesh/include/syscfg/syscfg.h
index c44af9c58..832119965 100644
--- a/porting/examples/linux_blemesh/include/syscfg/syscfg.h
+++ b/porting/examples/linux_blemesh/include/syscfg/syscfg.h
@@ -804,12 +804,12 @@
 #define MYNEWT_VAL_BLE_L2CAP_SIG_MAX_PROCS (1)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIG
-#define MYNEWT_VAL_BLE_MAX_BIG (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BIGS
+#define MYNEWT_VAL_BLE_ISO_MAX_BIGS (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIS
-#define MYNEWT_VAL_BLE_MAX_BIS (4)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BISES
+#define MYNEWT_VAL_BLE_ISO_MAX_BISES (4)
 #endif
 
 /* Overridden by @apache-mynewt-nimble/porting/targets/linux_blemesh (defined 
by @apache-mynewt-nimble/nimble/host) */
diff --git a/porting/examples/nuttx/include/syscfg/syscfg.h 
b/porting/examples/nuttx/include/syscfg/syscfg.h
index d087c5745..af7f7992c 100644
--- a/porting/examples/nuttx/include/syscfg/syscfg.h
+++ b/porting/examples/nuttx/include/syscfg/syscfg.h
@@ -803,12 +803,12 @@
 #define MYNEWT_VAL_BLE_L2CAP_SIG_MAX_PROCS (1)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIG
-#define MYNEWT_VAL_BLE_MAX_BIG (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BIGS
+#define MYNEWT_VAL_BLE_ISO_MAX_BIGS (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIS
-#define MYNEWT_VAL_BLE_MAX_BIS (4)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BISES
+#define MYNEWT_VAL_BLE_ISO_MAX_BISES (4)
 #endif
 
 #ifndef MYNEWT_VAL_BLE_MESH
diff --git a/porting/nimble/include/syscfg/syscfg.h 
b/porting/nimble/include/syscfg/syscfg.h
index 4910e54e6..c62bb02c5 100644
--- a/porting/nimble/include/syscfg/syscfg.h
+++ b/porting/nimble/include/syscfg/syscfg.h
@@ -802,12 +802,12 @@
 #define MYNEWT_VAL_BLE_L2CAP_SIG_MAX_PROCS (1)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIG
-#define MYNEWT_VAL_BLE_MAX_BIG (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BIGS
+#define MYNEWT_VAL_BLE_ISO_MAX_BIGS (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIS
-#define MYNEWT_VAL_BLE_MAX_BIS (4)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BISES
+#define MYNEWT_VAL_BLE_ISO_MAX_BISES (4)
 #endif
 
 #ifndef MYNEWT_VAL_BLE_MESH
diff --git a/porting/npl/riot/include/syscfg/syscfg.h 
b/porting/npl/riot/include/syscfg/syscfg.h
index b70ba2b99..27047feb5 100644
--- a/porting/npl/riot/include/syscfg/syscfg.h
+++ b/porting/npl/riot/include/syscfg/syscfg.h
@@ -1719,12 +1719,12 @@
 #define MYNEWT_VAL_BLE_L2CAP_SIG_MAX_PROCS (1)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIG
-#define MYNEWT_VAL_BLE_MAX_BIG (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BIGS
+#define MYNEWT_VAL_BLE_ISO_MAX_BIGS (MYNEWT_VAL_BLE_MULTI_ADV_INSTANCES)
 #endif
 
-#ifndef MYNEWT_VAL_BLE_MAX_BIS
-#define MYNEWT_VAL_BLE_MAX_BIS (4)
+#ifndef MYNEWT_VAL_BLE_ISO_MAX_BISES
+#define MYNEWT_VAL_BLE_ISO_MAX_BISES (4)
 #endif
 
 #ifndef MYNEWT_VAL_BLE_MESH
diff --git a/targets/nordic_pca10095_net-blehci_broadcaster/syscfg.yml 
b/targets/nordic_pca10095_net-blehci_broadcaster/syscfg.yml
index d3255ff1c..b86d58872 100644
--- a/targets/nordic_pca10095_net-blehci_broadcaster/syscfg.yml
+++ b/targets/nordic_pca10095_net-blehci_broadcaster/syscfg.yml
@@ -43,5 +43,5 @@ syscfg.vals:
     BLE_VERSION: 54
     BLE_ISO: 1
     BLE_ISO_BROADCAST_SOURCE: 1
-    BLE_MAX_BIG: 1
-    BLE_MAX_BIS: 2
+    BLE_ISO_MAX_BIGS: 1
+    BLE_ISO_MAX_BISES: 2

Reply via email to