| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module media.mojom; |
| |
| import "media/mojo/mojom/audio_parameters.mojom"; |
| |
| // This interface is implemented by the browser process to log state information |
| // about an active audio component. |
| interface AudioLog { |
| // Called when an audio component is created. |params| are the parameters of |
| // the created stream. |device_id| is the id of the audio device opened by |
| // the created stream. |
| OnCreated(media.mojom.AudioParameters params, |
| string device_id); |
| |
| // Called when an audio component is started, generally this is synonymous |
| // with "playing." |
| OnStarted(); |
| |
| // Called when an audio component is stopped, generally this is synonymous |
| // with "paused." |
| OnStopped(); |
| |
| // Called when an audio component is closed, generally this is synonymous |
| // with "deleted." |
| OnClosed(); |
| |
| // Called when an audio component encounters an error. |
| OnError(); |
| |
| // Called when an audio component changes volume. |volume| is the new volume. |
| OnSetVolume(double volume); |
| |
| // Called with information about audio processing set-up for an audio |
| // component. |
| OnProcessingStateChanged(string message); |
| |
| // Called when an audio component wants to forward a log message. |
| OnLogMessage(string message); |
| }; |
| |
| enum AudioLogComponent { |
| kInputController, |
| kOutputController, |
| kOutputStream, |
| }; |
| |
| // This interface is implemented by the browser process to allow clients to |
| // create AudioLog instances for tracking the behavior of an audio component. |
| // The only client for this interface is the audio service. |
| interface AudioLogFactory { |
| // Creates an AudioLog object for tracking the behavior for one instance of |
| // the given |component|. Each instance of an "owning" class must create its |
| // own AudioLog. The created AudioLog object is bound to |audio_log_receiver|. |
| CreateAudioLog(AudioLogComponent component, |
| int32 component_id, |
| pending_receiver<AudioLog> audio_log_receiver); |
| }; |