RealtimeMediaSourceCenter.h [plain text]
#ifndef RealtimeMediaSourceCenter_h
#define RealtimeMediaSourceCenter_h
#if ENABLE(MEDIA_STREAM)
#include "RealtimeMediaSource.h"
#include "RealtimeMediaSourceSupportedConstraints.h"
#include <wtf/PassRefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class CaptureDevice;
class MediaConstraints;
class RealtimeMediaSourceSettings;
class RealtimeMediaSourceSupportedConstraints;
class TrackSourceInfo;
class RealtimeMediaSourceCenter {
public:
virtual ~RealtimeMediaSourceCenter();
WEBCORE_EXPORT static RealtimeMediaSourceCenter& singleton();
static void setSharedStreamCenterOverride(RealtimeMediaSourceCenter*);
using ValidConstraintsHandler = std::function<void(const Vector<String>&& audioDeviceUIDs, const Vector<String>&& videoDeviceUIDs)>;
using InvalidConstraintsHandler = std::function<void(const String& invalidConstraint)>;
virtual void validateRequestConstraints(ValidConstraintsHandler, InvalidConstraintsHandler, const MediaConstraints& audioConstraints, const MediaConstraints& videoConstraints) = 0;
using NewMediaStreamHandler = std::function<void(RefPtr<MediaStreamPrivate>&&)>;
virtual void createMediaStream(NewMediaStreamHandler, const String& audioDeviceID, const String& videoDeviceID, const MediaConstraints* audioConstraints, const MediaConstraints* videoConstraints) = 0;
virtual Vector<CaptureDevice> getMediaStreamDevices() = 0;
virtual const RealtimeMediaSourceSupportedConstraints& supportedConstraints() { return m_supportedConstraints; }
protected:
RealtimeMediaSourceCenter();
static RealtimeMediaSourceCenter& platformCenter();
RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // RealtimeMediaSourceCenter_h