// Copyright 2016 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/interfaces/audio_parameters.mojom";

// This interface handles audio output stream operations.
// It allows to close a stream.
// TODO(rchtara): Add methods that allow the interaction with audio output
// streams: Play, Pause and SetVolume to this interface.
// See crbug.com/606707 for more details.
interface AudioOutputStream {
  Close();
};

// This interface manages audio output streams.
// It allows to create an AudioOutputStream.
// TODO(rchtara): Add a method to request device authorization to this
// interface.
// See crbug.com/606707 for more details.
interface AudioOutput {
  // TODO(rchtara): Remove |stream_id| from AudioOutput::CreateStream when all
  // the stream operations are mojofied.
  CreateStream(
      int32 stream_id,
      AudioParameters params) =>
      (int32 stream_id,
       AudioOutputStream? stream,
       handle<shared_buffer>? shared_buffer,
       handle? socket_descriptor);
};