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 MediaConstraints;
class MediaStreamCreationClient;
class MediaStreamTrackSourcesRequestClient;
class RealtimeMediaSourceSettings;
class RealtimeMediaSourceSupportedConstraints;
class TrackSourceInfo;
class RealtimeMediaSourceCenter {
public:
virtual ~RealtimeMediaSourceCenter();
WEBCORE_EXPORT static RealtimeMediaSourceCenter& singleton();
static void setSharedStreamCenterOverride(RealtimeMediaSourceCenter*);
virtual void validateRequestConstraints(MediaStreamCreationClient*, RefPtr<MediaConstraints>& audioConstraints, RefPtr<MediaConstraints>& videoConstraints) = 0;
virtual void createMediaStream(MediaStreamCreationClient*, const String& audioDeviceID, const String& videoDeviceID) = 0;
virtual void createMediaStream(PassRefPtr<MediaStreamCreationClient>, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints) = 0;
virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) = 0;
virtual RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) = 0;
virtual const RealtimeMediaSourceSupportedConstraints& supportedConstraints() { return m_supportedConstraints; }
protected:
RealtimeMediaSourceCenter();
static RealtimeMediaSourceCenter& platformCenter();
RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // RealtimeMediaSourceCenter_h