/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsIDOMHTMLMediaElement.idl"

%{C++
#include "jsapi.h"
%}

/**
 * The nsIDOMHTMLAudioElement interface is the interface to a HTML
 * <audio> element.
 *
 * For more information on this interface, please see
 * http://www.whatwg.org/specs/web-apps/current-work/#audio
 *
 * @status UNDER_DEVELOPMENT
 */

[scriptable, uuid(4f9b3309-a287-4049-962a-f1a4bf05735b)]
interface nsIDOMHTMLAudioElement : nsIDOMHTMLMediaElement
{
  // Setup the audio stream for writing
  void mozSetup(in uint32_t channels, in uint32_t rate);

  // Write audio to the audio stream
  [implicit_jscontext]
  unsigned long mozWriteAudio(in jsval data);

  // Get the current offset (measured in samples since the start) of the audio
  // stream created using mozWriteAudio().
  unsigned long long mozCurrentSampleOffset();
};
