本文整理汇总了C++中AudioNodeStream::Engine方法的典型用法代码示例。如果您正苦于以下问题:C++ AudioNodeStream::Engine方法的具体用法?C++ AudioNodeStream::Engine怎么用?C++ AudioNodeStream::Engine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AudioNodeStream
的用法示例。
在下文中一共展示了AudioNodeStream::Engine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
AudioNode::DestroyMediaStream()
{
if (mStream) {
// Remove the node pointer on the engine.
AudioNodeStream* ns = mStream;
MOZ_ASSERT(ns, "How come we don't have a stream here?");
MOZ_ASSERT(ns->Engine()->NodeMainThread() == this,
"Invalid node reference");
ns->Engine()->ClearNode();
mStream->Destroy();
mStream = nullptr;
nsCOMPtr<nsIObserverService> obs = services::GetObserverService();
if (obs) {
nsAutoString id;
id.AppendPrintf("%u", mId);
obs->NotifyObservers(nullptr, "webaudio-node-demise", id.get());
}
#ifdef DEBUG
mDemiseNotified = true;
#endif
}
}
示例2: lock
void
AudioNode::DestroyMediaStream()
{
if (mStream) {
{
// Remove the node reference on the engine, and take care to not
// hold the lock when the stream gets destroyed, because that will
// cause the engine to be destroyed as well, and we don't want to
// be holding the lock as we're trying to destroy it!
AudioNodeStream* ns = static_cast<AudioNodeStream*>(mStream.get());
MutexAutoLock lock(ns->Engine()->NodeMutex());
MOZ_ASSERT(ns, "How come we don't have a stream here?");
MOZ_ASSERT(ns->Engine()->Node() == this, "Invalid node reference");
ns->Engine()->ClearNode();
}
mStream->Destroy();
mStream = nullptr;
}
}