// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
    // The common parts of both the eager and lazy core shards.
    // Not usable without a child named "bt-a2dp", which is provided by those shards.
    include: [ "//src/connectivity/bluetooth/profiles/bt-avrcp/meta/bt-avrcp.core_shard.cml" ],
    use: [
        {
            protocol: [
                "fuchsia.bluetooth.a2dp.AudioMode",
                "fuchsia.bluetooth.internal.a2dp.Controller",
            ],
            from: "#bt-a2dp",
        },
    ],
    offer: [
        {
            protocol: [
                "fuchsia.media.SessionAudioConsumerFactory",
                "fuchsia.media.sessions2.Discovery",
                "fuchsia.media.sessions2.Publisher",
                "fuchsia.settings.Audio",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "self",
            to: [ "#bt-a2dp" ],
            dependency: "weak_for_migration",
        },
        {
            protocol: "fuchsia.sysmem.Allocator",
            from: "#sysmem_connector",
            to: "#bt-a2dp",
        },
        {
            protocol: [ "fuchsia.media.AudioDeviceEnumerator" ],
            from: "#audio_core",
            to: [ "#bt-a2dp" ],
        },
        {
            protocol: [ "fuchsia.bluetooth.bredr.Profile" ],
            from: "#bluetooth-core",
            to: [ "#bt-a2dp" ],
        },
        {
            protocol: [ "fuchsia.metrics.MetricEventLoggerFactory" ],
            from: "#cobalt",
            to: [ "#bt-a2dp" ],
        },
        {
            protocol: [ "fuchsia.logger.LogSink" ],
            from: "parent",
            to: [ "#bt-a2dp" ],
        },
        {
            protocol: [ "fuchsia.bluetooth.avrcp.PeerManager" ],
            from: "#bt-avrcp",
            to: [ "#bt-a2dp" ],
        },
        {
            protocol: [ "fuchsia.mediacodec.CodecFactory" ],
            from: "#codec_factory",
            to: [ "#bt-a2dp" ],
        },
        {
            protocol: [ "fuchsia.bluetooth.a2dp.AudioMode" ],
            from: "#bt-a2dp",
            to: "#session-manager",
        },
    ],
}
