gecko/content/media/webaudio/OfflineAudioCompletionEvent.h
Ehsan Akhgari 3922e3215b Bug 836599 - Part 11: Implement the processing of OfflineAudioContext; r=roc
We use a custom AudioNodeEngine for the destination nodes belonging to
OfflineAudioContexts, and there we record the rendered buffer.  Once the buffer
is full, we resample it if the sampling rate of the OfflineAudioContext is
different than the ideal sampling rate, and then we hand it off to the main
thread in order for the complete event to be dispatched.
2013-05-16 19:30:57 -04:00

52 lines
1.3 KiB
C++

/* -*- 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/. */
#ifndef OfflineAudioCompletionEvent_h_
#define OfflineAudioCompletionEvent_h_
#include "nsDOMEvent.h"
#include "AudioBuffer.h"
#include "AudioContext.h"
namespace mozilla {
namespace dom {
class OfflineAudioCompletionEvent : public nsDOMEvent,
public EnableWebAudioCheck
{
public:
OfflineAudioCompletionEvent(AudioContext* aOwner,
nsPresContext *aPresContext,
nsEvent *aEvent);
NS_DECL_ISUPPORTS_INHERITED
NS_FORWARD_TO_NSDOMEVENT
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(OfflineAudioCompletionEvent, nsDOMEvent)
virtual JSObject* WrapObject(JSContext* aCx,
JS::Handle<JSObject*> aScope) MOZ_OVERRIDE;
void InitEvent(AudioBuffer* aRenderedBuffer)
{
InitEvent(NS_LITERAL_STRING("complete"), false, false);
mRenderedBuffer = aRenderedBuffer;
}
AudioBuffer* RenderedBuffer() const
{
return mRenderedBuffer;
}
private:
nsRefPtr<AudioBuffer> mRenderedBuffer;
};
}
}
#endif