| // Copyright 2016 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. |
| |
| library fuchsia.media; |
| |
| [Discoverable] |
| protocol Audio { |
| CreateAudioRenderer(request<AudioRenderer> audio_renderer_request); |
| |
| /// Create an AudioCapturer which either captures from the current default |
| /// audio input device, or loops-back from the current default audio output |
| /// device based on value passed for the loopback flag. |
| /// |
| // TODO(mpuryear): Get rid of the loopback flag ASAP. Routing decisions (and |
| // security surrounding routing decisions) should be much more sophisticated |
| // than this. This is just a placeholder until we have a design in place. |
| // Eventually, I suspect that all of this will move up into the audio policy |
| // manager and application clients will obtain AudioCapturers from and control |
| // through the policy manager. |
| CreateAudioCapturer(request<AudioCapturer> audio_capturer_request, |
| bool loopback); |
| |
| // TODO(38104): Remove these methods. |
| [Transitional, Deprecated] |
| SetSystemMute(bool muted); |
| [Transitional, Deprecated] |
| SetSystemGain(float32 gain_db); |
| [Transitional, Deprecated] |
| -> SystemGainMuteChanged(float32 gain_db, bool muted); |
| }; |
| |
| /// Permitted ranges for AudioRenderer and AudioCapturer |
| const uint32 MIN_PCM_CHANNEL_COUNT = 1; |
| const uint32 MAX_PCM_CHANNEL_COUNT = 8; |
| const uint32 MIN_PCM_FRAMES_PER_SECOND = 1000; |
| const uint32 MAX_PCM_FRAMES_PER_SECOND = 192000; |