MockRealtimeMediaSource.h [plain text]
#ifndef MockRealtimeMediaSource_h
#define MockRealtimeMediaSource_h
#if ENABLE(MEDIA_STREAM)
#include "RealtimeMediaSource.h"
#if USE(OPENWEBRTC)
#include "RealtimeMediaSourceOwr.h"
#endif
namespace WebCore {
class CaptureDevice;
#if USE(OPENWEBRTC)
using BaseRealtimeMediaSourceClass = RealtimeMediaSourceOwr;
#else
using BaseRealtimeMediaSourceClass = RealtimeMediaSource;
#endif
class MockRealtimeMediaSource : public BaseRealtimeMediaSourceClass {
public:
virtual ~MockRealtimeMediaSource() { }
static const AtomicString& mockAudioSourcePersistentID();
static const AtomicString& mockAudioSourceName();
static const AtomicString& mockVideoSourcePersistentID();
static const AtomicString& mockVideoSourceName();
static CaptureDevice audioDeviceInfo();
static CaptureDevice videoDeviceInfo();
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;
void stopProducingData() override;
RefPtr<RealtimeMediaSourceCapabilities> capabilities() const override;
const RealtimeMediaSourceSettings& settings() const override;
MediaConstraints& constraints() { return *m_constraints.get(); }
RealtimeMediaSourceSupportedConstraints& supportedConstraints();
private:
void initializeCapabilities();
void initializeSettings();
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