gecko-dev/content/media/webaudio/AudioDestinationNode.h
Ehsan Akhgari 21fef81a58 Bug 853298 - Part 1: Switch the ownership model of audio nodes to be based the cycle collector with wrapper caches; r=roc
Here is what this patch does:
 * Got rid of the JSBindingFinalized stuff
 * Made all nodes wrappercached
 * Started to hold a self reference while the AudioBufferSourceNode is playing back
 * Converted the input references to weak references
 * Got rid of all of the SetProduceOwnOutput and UpdateOutputEnded logic

The nodes are now collected by the cycle collector which calls into
DisconnectFromGraph which drops the references to other nodes and destroys the
media stream.  Note that most of the cycles that are now inherent in the
ownership model are between nodes and their AudioParams (that is, the cycles
not created by content.)
2013-04-14 21:52:55 -04:00

38 lines
823 B
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 AudioDestinationNode_h_
#define AudioDestinationNode_h_
#include "AudioNode.h"
namespace mozilla {
namespace dom {
class AudioContext;
class AudioDestinationNode : public AudioNode
{
public:
AudioDestinationNode(AudioContext* aContext, MediaStreamGraph* aGraph);
NS_DECL_ISUPPORTS_INHERITED
virtual JSObject* WrapObject(JSContext* aCx, JSObject* aScope) MOZ_OVERRIDE;
virtual uint32_t NumberOfOutputs() const MOZ_FINAL MOZ_OVERRIDE
{
return 0;
}
};
}
}
#endif