MediaStreamAudioSourceNode.h [plain text]
#ifndef MediaStreamAudioSourceNode_h
#define MediaStreamAudioSourceNode_h
#if ENABLE(WEB_AUDIO) && ENABLE(MEDIA_STREAM)
#include "AudioNode.h"
#include "AudioSourceProvider.h"
#include "AudioSourceProviderClient.h"
#include "MediaStream.h"
#include <wtf/OwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Threading.h>
namespace WebCore {
class AudioContext;
class MediaStreamAudioSourceNode : public AudioNode, public AudioSourceProviderClient {
public:
static PassRefPtr<MediaStreamAudioSourceNode> create(AudioContext*, MediaStream*, AudioSourceProvider*);
virtual ~MediaStreamAudioSourceNode();
MediaStream* mediaStream() { return m_mediaStream.get(); }
virtual void process(size_t framesToProcess);
virtual void reset();
virtual void setFormat(size_t numberOfChannels, float sampleRate);
AudioSourceProvider* audioSourceProvider() const { return m_audioSourceProvider; }
private:
MediaStreamAudioSourceNode(AudioContext*, MediaStream*, AudioSourceProvider*);
virtual double tailTime() const OVERRIDE { return 0; }
virtual double latencyTime() const OVERRIDE { return 0; }
virtual bool propagatesSilence() const OVERRIDE { return false; }
RefPtr<MediaStream> m_mediaStream;
AudioSourceProvider* m_audioSourceProvider;
Mutex m_processLock;
unsigned m_sourceNumberOfChannels;
};
}
#endif // ENABLE(WEB_AUDIO) && ENABLE(MEDIA_STREAM)
#endif // MediaStreamAudioSourceNode_h