MockRealtimeMediaSource.h [plain text]
#ifndef MockRealtimeMediaSource_h
#define MockRealtimeMediaSource_h
#if ENABLE(MEDIA_STREAM)
#include "RealtimeMediaSource.h"
#include <wtf/RunLoop.h>
namespace WebCore {
class FloatRect;
class GraphicsContext;
class TrackSourceInfo;
class MockRealtimeMediaSource : public RealtimeMediaSource {
public:
virtual ~MockRealtimeMediaSource() { }
static const AtomicString& mockAudioSourcePersistentID();
static const AtomicString& mockAudioSourceName();
static const AtomicString& mockVideoSourcePersistentID();
static const AtomicString& mockVideoSourceName();
static RefPtr<TrackSourceInfo> trackSourceWithUID(const String&, MediaConstraints*);
protected:
MockRealtimeMediaSource(const String& id, Type, const String& name);
virtual void updateSettings(RealtimeMediaSourceSettings&) = 0;
virtual void initializeCapabilities(RealtimeMediaSourceCapabilities&) = 0;
virtual void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) = 0;
void startProducingData() override { m_isProducingData = true; }
void stopProducingData() override { m_isProducingData = false; }
RefPtr<RealtimeMediaSourceCapabilities> capabilities() override;
const RealtimeMediaSourceSettings& settings() override;
MediaConstraints& constraints() { return *m_constraints.get(); }
RealtimeMediaSourceSupportedConstraints& supportedConstraints();
private:
bool isProducingData() const override { return m_isProducingData; }
RealtimeMediaSourceSettings m_currentSettings;
RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
RefPtr<RealtimeMediaSourceCapabilities> m_capabilities;
RefPtr<MediaConstraints> m_constraints;
bool m_isProducingData { false };
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // MockRealtimeMediaSource_h