Commit b0784c2f authored by Henrique Ferreiro's avatar Henrique Ferreiro Committed by Commit Bot

Migrate assistant_volume_control.mojom to the new Mojo types

Convert the implementation and all users of the
ash::mojom::AssistantVolumeControl and VolumeObserver interfaces.

Bug: 955171
Change-Id: Id4fd8931ecc2d29eaff0b25defb909bf0f491aca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1795422Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarEmily Stark <estark@chromium.org>
Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Commit-Queue: Henrique Ferreiro <hferreiro@igalia.com>
Cr-Commit-Position: refs/heads/master@{#696007}
parent f346d144
......@@ -12,6 +12,7 @@
#include "ash/public/cpp/android_intent_helper.h"
#include "ash/public/cpp/ash_pref_names.h"
#include "ash/public/cpp/new_window_delegate.h"
#include "ash/public/mojom/assistant_volume_control.mojom.h"
#include "ash/session/session_controller_impl.h"
#include "ash/shell.h"
#include "ash/shell_delegate.h"
......@@ -21,6 +22,10 @@
#include "chromeos/services/assistant/public/cpp/assistant_prefs.h"
#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
#include "components/prefs/pref_registry_simple.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote_set.h"
#include "services/content/public/mojom/constants.mojom.h"
#include "services/content/public/mojom/navigable_contents_factory.mojom.h"
#include "services/service_manager/public/cpp/connector.h"
......@@ -35,8 +40,7 @@ constexpr char kAndroidIntentScheme[] = "intent";
} // namespace
AssistantController::AssistantController()
: assistant_volume_control_binding_(this),
assistant_alarm_timer_controller_(this),
: assistant_alarm_timer_controller_(this),
assistant_interaction_controller_(this),
assistant_notification_controller_(this),
assistant_screen_context_controller_(this),
......@@ -70,9 +74,9 @@ void AssistantController::BindRequest(
assistant_controller_bindings_.AddBinding(this, std::move(request));
}
void AssistantController::BindRequest(
mojom::AssistantVolumeControlRequest request) {
assistant_volume_control_binding_.Bind(std::move(request));
void AssistantController::BindReceiver(
mojo::PendingReceiver<mojom::AssistantVolumeControl> receiver) {
assistant_volume_control_receiver_.Bind(std::move(receiver));
}
void AssistantController::AddObserver(AssistantControllerObserver* observer) {
......@@ -200,8 +204,9 @@ void AssistantController::SetMuted(bool muted) {
chromeos::CrasAudioHandler::Get()->SetOutputMute(muted);
}
void AssistantController::AddVolumeObserver(mojom::VolumeObserverPtr observer) {
volume_observer_.AddPtr(std::move(observer));
void AssistantController::AddVolumeObserver(
mojo::PendingRemote<mojom::VolumeObserver> observer) {
volume_observers_.Add(std::move(observer));
int output_volume =
chromeos::CrasAudioHandler::Get()->GetOutputVolumePercent();
......@@ -211,16 +216,14 @@ void AssistantController::AddVolumeObserver(mojom::VolumeObserverPtr observer) {
}
void AssistantController::OnOutputMuteChanged(bool mute_on) {
volume_observer_.ForAllPtrs([mute_on](mojom::VolumeObserver* observer) {
for (auto& observer : volume_observers_)
observer->OnMuteStateChanged(mute_on);
});
}
void AssistantController::OnOutputNodeVolumeChanged(uint64_t node, int volume) {
// |node| refers to the active volume device, which we don't care here.
volume_observer_.ForAllPtrs([volume](mojom::VolumeObserver* observer) {
for (auto& observer : volume_observers_)
observer->OnVolumeChanged(volume);
});
}
void AssistantController::OnAccessibilityStatusChanged() {
......@@ -367,7 +370,7 @@ void AssistantController::BindStateController(
void AssistantController::BindVolumeControl(
mojo::PendingReceiver<mojom::AssistantVolumeControl> receiver) {
Shell::Get()->assistant_controller()->BindRequest(std::move(receiver));
Shell::Get()->assistant_controller()->BindReceiver(std::move(receiver));
}
base::WeakPtr<AssistantController> AssistantController::GetWeakPtr() {
......
......@@ -33,9 +33,10 @@
#include "chromeos/services/assistant/public/mojom/assistant.mojom-forward.h"
#include "components/prefs/pref_service.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/interface_ptr_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote_set.h"
#include "services/content/public/mojom/navigable_contents_factory.mojom-forward.h"
class PrefRegistrySimple;
......@@ -67,7 +68,8 @@ class ASH_EXPORT AssistantController
void BindRequest(
chromeos::assistant::mojom::AssistantControllerRequest request);
void BindRequest(mojom::AssistantVolumeControlRequest request);
void BindReceiver(
mojo::PendingReceiver<mojom::AssistantVolumeControl> receiver);
// Adds/removes the specified |observer|.
void AddObserver(AssistantControllerObserver* observer);
......@@ -96,7 +98,8 @@ class ASH_EXPORT AssistantController
// mojom::VolumeControl:
void SetVolume(int volume, bool user_initiated) override;
void SetMuted(bool muted) override;
void AddVolumeObserver(mojom::VolumeObserverPtr observer) override;
void AddVolumeObserver(
mojo::PendingRemote<mojom::VolumeObserver> observer) override;
// chromeos::CrasAudioHandler::AudioObserver:
void OnOutputMuteChanged(bool mute_on) override;
......@@ -184,9 +187,9 @@ class ASH_EXPORT AssistantController
mojo::BindingSet<chromeos::assistant::mojom::AssistantController>
assistant_controller_bindings_;
mojo::Binding<mojom::AssistantVolumeControl>
assistant_volume_control_binding_;
mojo::InterfacePtrSet<mojom::VolumeObserver> volume_observer_;
mojo::Receiver<mojom::AssistantVolumeControl>
assistant_volume_control_receiver_{this};
mojo::RemoteSet<mojom::VolumeObserver> volume_observers_;
chromeos::assistant::mojom::AssistantPtr assistant_;
......
......@@ -14,7 +14,7 @@ interface AssistantVolumeControl {
// Adds volume observer. The observer will be immediately notified of volume
// and mute status when added.
AddVolumeObserver(VolumeObserver observer);
AddVolumeObserver(pending_remote<VolumeObserver> observer);
};
// Observes volume state changes.
......
......@@ -6,8 +6,12 @@
#include <utility>
#include "ash/public/mojom/assistant_volume_control.mojom.h"
#include "ash/public/mojom/constants.mojom.h"
#include "chromeos/services/assistant/media_session/assistant_media_session.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromeos {
namespace assistant {
......@@ -15,14 +19,13 @@ namespace assistant {
VolumeControlImpl::VolumeControlImpl(mojom::Client* client,
AssistantMediaSession* media_session)
: media_session_(media_session),
binding_(this),
main_task_runner_(base::SequencedTaskRunnerHandle::Get()),
weak_factory_(this) {
client->RequestAssistantVolumeControl(
mojo::MakeRequest(&volume_control_ptr_));
ash::mojom::VolumeObserverPtr observer;
binding_.Bind(mojo::MakeRequest(&observer));
volume_control_ptr_->AddVolumeObserver(std::move(observer));
volume_control_.BindNewPipeAndPassReceiver());
mojo::PendingRemote<mojo::ash::mojom::VolumeObserver> observer;
receiver_.Bind(observer.InitWithNewPipeAndPassReceiver());
volume_control_->AddVolumeObserver(std::move(observer));
}
VolumeControlImpl::~VolumeControlImpl() = default;
......
......@@ -9,7 +9,8 @@
#include "base/macros.h"
#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
#include "libassistant/shared/public/platform_audio_output.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromeos {
namespace assistant {
......@@ -44,8 +45,8 @@ class VolumeControlImpl : public assistant_client::VolumeControl,
void SetSystemMutedOnMainThread(bool muted);
AssistantMediaSession* media_session_;
ash::mojom::AssistantVolumeControlPtr volume_control_ptr_;
mojo::Binding<ash::mojom::VolumeObserver> binding_;
mojo::Remote<ash::mojom::AssistantVolumeControl> volume_control_;
mojo::Receiver<ash::mojom::VolumeObserver> receiver_{this};
scoped_refptr<base::SequencedTaskRunner> main_task_runner_;
int volume_ = 100;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment