[audio_core] Route audio protocols directly from CFv2 audio_core
This is step 5 of the sequence described at fxbug.dev/90408#c20.
This CL also moves soundplayer out of src/sys/core/meta/core.cml since
soundplayer is not included in all products (such as recovery images).
This change is necessary in this CL because soundplayer depends on
audio_core, which is not in all products and therefore is not in
core.cml.
Bug: 90408
Change-Id: Icaa1daf22ef03c51f7325630003578e3debe1e10
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/665949
Commit-Queue: Tom Bergan <tombergan@google.com>
Reviewed-by: Marie Janssen <jamuraa@google.com>
Reviewed-by: Alper Gungormusler <alperg@google.com>
Reviewed-by: Dale Sather <dalesat@google.com>
Reviewed-by: Yuan Zhi <yuanzhi@google.com>
Reviewed-by: Martin Puryear <mpuryear@google.com>
Reviewed-by: Aaron Wood <aaronwood@google.com>
diff --git a/products/common/workstation.gni b/products/common/workstation.gni
index 807287e..9bbfb2e 100644
--- a/products/common/workstation.gni
+++ b/products/common/workstation.gni
@@ -131,7 +131,11 @@
product_bootfs_labels += [ "//bundles/drivers:usb-peripheral-stack" ]
product_bootfs_labels -= [ "//bundles/drivers:usb-peripheral-stack" ]
-core_realm_shards += [ "//src/media/codec:codec_factory_shard" ]
+# Shards for media.
+core_realm_shards += [
+ "//src/media/codec:codec_factory_shard",
+ "//src/media/audio/audio_core/v2:core_shard",
+]
# Enable input injection for testing through `fuchsia.input.injection.InputDeviceRegistry`.
use_modern_input_injection = true
diff --git a/products/core.gni b/products/core.gni
index 0451e6f..7d70fbb 100644
--- a/products/core.gni
+++ b/products/core.gni
@@ -29,6 +29,7 @@
"//src/devices/bin/driver_playground:driver-playground-core-shard",
"//src/developer/sshd-host:core_shard",
"//src/media/audio/audio_core/v2:core_shard",
+ "//src/media/sounds/soundplayer:core_shard",
"//src/settings/service:setui_service_core_shard",
"//src/sys/pkg/bin/system-update-checker:system-update-checker-core-shard",
"//src/sys/pkg/bin/system-updater:system-updater-core-shard",
@@ -48,7 +49,6 @@
"//src/connectivity/bluetooth:core",
"//src/connectivity/wlan:packages",
"//src/devices/sysmem/bin/sysmem_connector",
- "//src/media/audio/bundles:audio_config",
"//src/settings/service:setui_service",
]
diff --git a/products/speaker.gni b/products/speaker.gni
index 52932f9..8cc3849 100644
--- a/products/speaker.gni
+++ b/products/speaker.gni
@@ -31,7 +31,6 @@
"//src/intl/intl_services/config:sysmgr_small",
"//src/intl/intl_services/config:sysmgr_small_timezones",
"//src/media/audio/bundles:services",
- "//src/media/audio/bundles:audio_config",
"//src/settings/service:setui_service",
"//src/sys/activity",
]
diff --git a/products/terminal.gni b/products/terminal.gni
index bc83aa1..8126ead 100644
--- a/products/terminal.gni
+++ b/products/terminal.gni
@@ -64,7 +64,10 @@
# QEMU images generated for the SDK, but in cache, so they can be updated.
legacy_cache_package_labels += [ "//sdk/bundles:tools" ]
-core_realm_shards += [ "//src/media/codec:codec_factory_shard" ]
+core_realm_shards += [
+ "//src/media/codec:codec_factory_shard",
+ "//src/media/audio/audio_core/v2:core_shard",
+]
# Add cfv2 sl4f to base.
core_realm_shards += [ "//src/testing/sl4f:sl4f_terminal_core_shard" ]
diff --git a/src/connectivity/bluetooth/profiles/bt-a2dp/meta/bt-a2dp-common.core_shard.cml b/src/connectivity/bluetooth/profiles/bt-a2dp/meta/bt-a2dp-common.core_shard.cml
index a5d0fe6..04c92be 100644
--- a/src/connectivity/bluetooth/profiles/bt-a2dp/meta/bt-a2dp-common.core_shard.cml
+++ b/src/connectivity/bluetooth/profiles/bt-a2dp/meta/bt-a2dp-common.core_shard.cml
@@ -17,7 +17,6 @@
offer: [
{
protocol: [
- "fuchsia.media.AudioDeviceEnumerator",
"fuchsia.media.SessionAudioConsumerFactory",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
@@ -34,6 +33,11 @@
to: "#bt-a2dp",
},
{
+ protocol: [ "fuchsia.media.AudioDeviceEnumerator" ],
+ from: "#audio_core",
+ to: [ "#bt-a2dp" ],
+ },
+ {
protocol: [ "fuchsia.bluetooth.bredr.Profile" ],
from: "#bluetooth-core",
to: [ "#bt-a2dp" ],
diff --git a/src/connectivity/bluetooth/profiles/bt-hfp-audio-gateway/meta/bt-hfp-audio-gateway.core_shard.cml b/src/connectivity/bluetooth/profiles/bt-hfp-audio-gateway/meta/bt-hfp-audio-gateway.core_shard.cml
index 1c71ecb..002c7dd 100644
--- a/src/connectivity/bluetooth/profiles/bt-hfp-audio-gateway/meta/bt-hfp-audio-gateway.core_shard.cml
+++ b/src/connectivity/bluetooth/profiles/bt-hfp-audio-gateway/meta/bt-hfp-audio-gateway.core_shard.cml
@@ -30,9 +30,8 @@
},
{
protocol: [ "fuchsia.media.AudioDeviceEnumerator" ],
- from: "self",
+ from: "#audio_core",
to: [ "#bt-hfp-audio-gateway" ],
- dependency: "weak_for_migration",
},
{
protocol: [ "fuchsia.bluetooth.bredr.Profile" ],
diff --git a/src/media/audio/audio_core/meta/audio_core.core_shard.base.cml b/src/media/audio/audio_core/meta/audio_core.core_shard.base.cml
index cc16bbf..6203b8c 100644
--- a/src/media/audio/audio_core/meta/audio_core.core_shard.base.cml
+++ b/src/media/audio/audio_core/meta/audio_core.core_shard.base.cml
@@ -53,5 +53,19 @@
from: "parent",
to: "#audio_core",
},
+ {
+ protocol: [
+ "fuchsia.media.ActivityReporter",
+ "fuchsia.media.Audio",
+ "fuchsia.media.audio.EffectsController",
+ "fuchsia.media.AudioCore",
+ "fuchsia.media.AudioDeviceEnumerator",
+ "fuchsia.media.ProfileProvider",
+ "fuchsia.media.UsageGainReporter",
+ "fuchsia.media.UsageReporter",
+ ],
+ from: "#audio_core",
+ to: "#session-manager",
+ },
],
}
diff --git a/src/media/audio/drivers/configurator/meta/component.core_shard.cml b/src/media/audio/drivers/configurator/meta/component.core_shard.cml
index 2b56bf7..c7e3b51 100644
--- a/src/media/audio/drivers/configurator/meta/component.core_shard.cml
+++ b/src/media/audio/drivers/configurator/meta/component.core_shard.cml
@@ -17,7 +17,7 @@
},
{
protocol: [ "fuchsia.media.AudioDeviceEnumerator" ],
- from: "self",
+ from: "#audio_core",
to: [ "#configurator" ],
},
{
diff --git a/src/media/sounds/soundplayer/BUILD.gn b/src/media/sounds/soundplayer/BUILD.gn
index c253038..b189820 100644
--- a/src/media/sounds/soundplayer/BUILD.gn
+++ b/src/media/sounds/soundplayer/BUILD.gn
@@ -3,6 +3,7 @@
# found in the LICENSE file.
import("//build/components.gni")
+import("//src/sys/core/build/core_shard.gni")
fuchsia_package_with_single_component("soundplayer") {
manifest = "meta/soundplayer.cml"
@@ -121,3 +122,7 @@
fuchsia_test_package("soundplayer-tests") {
test_components = [ ":soundplayer-tests-driver" ]
}
+
+core_shard("core_shard") {
+ shard_file = "meta/soundplayer.core_shard.cml"
+}
diff --git a/src/media/sounds/soundplayer/meta/soundplayer.core_shard.cml b/src/media/sounds/soundplayer/meta/soundplayer.core_shard.cml
new file mode 100644
index 0000000..4524ff3
--- /dev/null
+++ b/src/media/sounds/soundplayer/meta/soundplayer.core_shard.cml
@@ -0,0 +1,30 @@
+// 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.
+{
+ children: [
+ {
+ name: "soundplayer",
+ url: "fuchsia-pkg://fuchsia.com/soundplayer#meta/soundplayer.cm",
+ },
+ ],
+ use: [
+ // Route sound player APIs to CFv1 realm.
+ {
+ protocol: "fuchsia.media.sounds.Player",
+ from: "#soundplayer",
+ },
+ ],
+ offer: [
+ {
+ protocol: [ "fuchsia.logger.LogSink" ],
+ from: "parent",
+ to: "#soundplayer",
+ },
+ {
+ protocol: [ "fuchsia.media.Audio" ],
+ from: "#audio_core",
+ to: "#soundplayer",
+ },
+ ],
+}
diff --git a/src/session/bin/session_manager/meta/session_manager.cml b/src/session/bin/session_manager/meta/session_manager.cml
index 181b597..ac3ac61b 100644
--- a/src/session/bin/session_manager/meta/session_manager.cml
+++ b/src/session/bin/session_manager/meta/session_manager.cml
@@ -69,9 +69,6 @@
"fuchsia.location.namedplace.RegulatoryRegionConfigurator",
"fuchsia.location.namedplace.RegulatoryRegionWatcher",
"fuchsia.lowpan.bootstrap.Thread",
- "fuchsia.media.ActivityReporter",
- "fuchsia.media.audio.EffectsController",
- "fuchsia.media.AudioCore",
"fuchsia.media.drm.PlayReady",
"fuchsia.media.drm.Widevine",
"fuchsia.media.SessionAudioConsumerFactory",
@@ -79,8 +76,6 @@
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
"fuchsia.media.sounds.Player",
- "fuchsia.media.UsageGainReporter",
- "fuchsia.media.UsageReporter",
"fuchsia.net.http.Loader",
"fuchsia.net.interfaces.State",
"fuchsia.net.mdns.Publisher",
@@ -255,6 +250,21 @@
to: "#session",
},
{
+ // Routed to session-manager via audio_core
+ protocol: [
+ "fuchsia.media.ActivityReporter",
+ "fuchsia.media.Audio",
+ "fuchsia.media.audio.EffectsController",
+ "fuchsia.media.AudioCore",
+ "fuchsia.media.AudioDeviceEnumerator",
+ "fuchsia.media.ProfileProvider",
+ "fuchsia.media.UsageGainReporter",
+ "fuchsia.media.UsageReporter",
+ ],
+ from: "parent",
+ to: "#session",
+ },
+ {
// Routed to session-manager from core.cml in all products.
// i.e. not via a core realm shard.
protocol: [
@@ -267,9 +277,6 @@
"fuchsia.intl.PropertyProvider",
"fuchsia.intl.TimeZones",
"fuchsia.logger.LogSink",
- "fuchsia.media.Audio",
- "fuchsia.media.AudioDeviceEnumerator",
- "fuchsia.media.ProfileProvider",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.name.Lookup",
"fuchsia.posix.socket.Provider",
diff --git a/src/session/bin/session_manager/meta/workstation.core_shard.cml b/src/session/bin/session_manager/meta/workstation.core_shard.cml
index 6c8a1f4..6a5e0be 100644
--- a/src/session/bin/session_manager/meta/workstation.core_shard.cml
+++ b/src/session/bin/session_manager/meta/workstation.core_shard.cml
@@ -5,14 +5,16 @@
{
offer: [
{
- protocol: [
- "fuchsia.media.AudioCore",
- "fuchsia.ui.input.PointerCaptureListenerRegistry",
- ],
+ protocol: [ "fuchsia.ui.input.PointerCaptureListenerRegistry" ],
from: "self",
to: [ "#session-manager" ],
},
{
+ protocol: [ "fuchsia.media.AudioCore" ],
+ from: "#audio_core",
+ to: [ "#session-manager" ],
+ },
+ {
protocol: [
"fuchsia.ui.shortcut.Manager",
"fuchsia.ui.shortcut.Registry",
diff --git a/src/settings/service/meta/setui_service_base.core_shard.cml b/src/settings/service/meta/setui_service_base.core_shard.cml
index 9c0c086..fa1f341 100644
--- a/src/settings/service/meta/setui_service_base.core_shard.cml
+++ b/src/settings/service/meta/setui_service_base.core_shard.cml
@@ -50,9 +50,7 @@
},
{
protocol: [
- "fuchsia.media.AudioCore",
"fuchsia.media.sessions2.Discovery",
- "fuchsia.media.UsageReporter",
"fuchsia.recovery.policy.Device",
"fuchsia.tracing.provider.Registry",
"fuchsia.ui.policy.DeviceListenerRegistry",
@@ -67,6 +65,14 @@
to: "#setui_service",
},
{
+ protocol: [
+ "fuchsia.media.AudioCore",
+ "fuchsia.media.UsageReporter",
+ ],
+ from: "#audio_core",
+ to: "#setui_service",
+ },
+ {
protocol: "fuchsia.stash.Store",
from: "#stash",
to: "#setui_service",
diff --git a/src/sys/appmgr/meta/appmgr.core_shard.cml b/src/sys/appmgr/meta/appmgr.core_shard.cml
index 896f8cf..f0c4b71 100644
--- a/src/sys/appmgr/meta/appmgr.core_shard.cml
+++ b/src/sys/appmgr/meta/appmgr.core_shard.cml
@@ -39,14 +39,9 @@
"fuchsia.intl.PropertyProvider",
"fuchsia.intl.TimeZones",
"fuchsia.lowpan.device.Lookup",
- "fuchsia.media.Audio",
- "fuchsia.media.AudioCore",
- "fuchsia.media.AudioDeviceEnumerator",
- "fuchsia.media.ProfileProvider",
"fuchsia.media.SessionAudioConsumerFactory",
"fuchsia.media.sessions2.Discovery",
"fuchsia.media.sessions2.Publisher",
- "fuchsia.media.UsageReporter",
"fuchsia.power.manager.DriverManagerRegistration",
"fuchsia.process.Resolver",
"fuchsia.recovery.policy.Device",
@@ -175,10 +170,6 @@
from: "#network",
},
{
- protocol: "fuchsia.media.sounds.Player",
- from: "#soundplayer",
- },
- {
protocol: "fuchsia.fonts.Provider",
from: "#font_provider",
},
@@ -435,8 +426,6 @@
"fuchsia.feedback.CrashReporter",
"fuchsia.intl.PropertyProvider",
"fuchsia.intl.TimeZones",
- "fuchsia.media.AudioDeviceEnumerator",
- "fuchsia.media.ProfileProvider",
"fuchsia.sys.Launcher",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
@@ -454,15 +443,6 @@
to: "#session-manager",
},
{
- protocol: [ "fuchsia.media.Audio" ],
- from: "self",
- to: [
- "#session-manager",
- "#soundplayer",
- ],
- dependency: "weak_for_migration",
- },
- {
protocol: [ "fuchsia.bluetooth.snoop.Snoop" ],
from: "self",
to: "#bluetooth-core",
diff --git a/src/sys/core/meta/core.cml b/src/sys/core/meta/core.cml
index 8c59f28..9b72d28 100644
--- a/src/sys/core/meta/core.cml
+++ b/src/sys/core/meta/core.cml
@@ -174,11 +174,6 @@
url: "fuchsia-pkg://fuchsia.com/pkg-resolver#meta/pkg-resolver.cm",
},
{
- name: "soundplayer",
- url: "fuchsia-pkg://fuchsia.com/soundplayer#meta/soundplayer.cm",
- environment: "#full-resolver-env",
- },
- {
name: "vulkan_loader",
url: "fuchsia-pkg://fuchsia.com/vulkan_loader#meta/vulkan_loader.cm",
environment: "#full-resolver-env",
@@ -426,7 +421,6 @@
"#remote-control",
"#sampler",
"#session-manager",
- "#soundplayer",
"#ssh-key-manager",
"#starnix_manager",
"#stash",
diff --git a/src/sys/test_manager/meta/test_manager.core_shard.cml b/src/sys/test_manager/meta/test_manager.core_shard.cml
index 80b60b7..f0f722f 100644
--- a/src/sys/test_manager/meta/test_manager.core_shard.cml
+++ b/src/sys/test_manager/meta/test_manager.core_shard.cml
@@ -45,9 +45,6 @@
protocol: [
"fuchsia.feedback.CrashReporter",
"fuchsia.intl.PropertyProvider",
- "fuchsia.media.Audio",
- "fuchsia.media.AudioDeviceEnumerator",
- "fuchsia.media.ProfileProvider",
"fuchsia.sys.Environment",
"fuchsia.sys.Loader",
],
@@ -56,6 +53,15 @@
dependency: "weak_for_migration",
},
{
+ protocol: [
+ "fuchsia.media.Audio",
+ "fuchsia.media.AudioDeviceEnumerator",
+ "fuchsia.media.ProfileProvider",
+ ],
+ from: "#audio_core",
+ to: "#test_manager",
+ },
+ {
protocol: [ "fuchsia.component.resolution.Resolver" ],
from: "#full-resolver",
to: "#test_manager",
diff --git a/src/testing/sl4f/meta/sl4f.core_shard.cml b/src/testing/sl4f/meta/sl4f.core_shard.cml
index 6aefeda..f630e91 100644
--- a/src/testing/sl4f/meta/sl4f.core_shard.cml
+++ b/src/testing/sl4f/meta/sl4f.core_shard.cml
@@ -173,7 +173,6 @@
"fuchsia.developer.tiles.Controller", // test-only
"fuchsia.input.injection.InputDeviceRegistry", // test-only
"fuchsia.lowpan.device.Lookup", // #appmgr
- "fuchsia.media.ProfileProvider", // #appmgr
"fuchsia.sys.Launcher", // #appmgr
"fuchsia.tracing.controller.Controller", // #appmgr
"fuchsia.tracing.provider.Registry", // #appmgr
@@ -188,6 +187,11 @@
dependency: "weak_for_migration",
},
{
+ protocol: [ "fuchsia.media.ProfileProvider" ],
+ from: "#audio_core",
+ to: "#sl4f",
+ },
+ {
protocol: [
"fuchsia.session.Launcher",
"fuchsia.session.Restarter",