RealtimeMediaSourceOwr.h [plain text]
#ifndef RealtimeMediaSourceOwr_h
#define RealtimeMediaSourceOwr_h
#if ENABLE(MEDIA_STREAM) && USE(OPENWEBRTC)
#include "GRefPtrGStreamer.h"
#include "RealtimeMediaSource.h"
#include <owr/owr_media_source.h>
#include <wtf/HashMap.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class RealtimeMediaSourceCapabilities;
class RealtimeMediaSourceOwr : public RealtimeMediaSource {
public:
RealtimeMediaSourceOwr(OwrMediaSource* mediaSource, const String& id, RealtimeMediaSource::Type type, const String& name)
: RealtimeMediaSource(id, type, name)
, m_mediaSource(mediaSource)
{
if (!mediaSource)
notifyMutedChange(true);
}
RealtimeMediaSourceOwr(const String& id, RealtimeMediaSource::Type type, const String& name)
: RealtimeMediaSource(id, type, name)
, m_mediaSource(nullptr)
{
}
virtual ~RealtimeMediaSourceOwr() { }
void swapOutShallowSource(OwrMediaSource& realSource)
{
m_mediaSource = &realSource;
setMuted(false);
}
const RealtimeMediaSourceCapabilities& capabilities() const override { return m_capabilities; }
const RealtimeMediaSourceSettings& settings() const override;
OwrMediaSource* mediaSource() const { return m_mediaSource; }
protected:
virtual void initializeSettings() { };
virtual void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) { };
RealtimeMediaSourceSupportedConstraints& supportedConstraints();
RealtimeMediaSourceSettings m_currentSettings;
private:
RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
RealtimeMediaSourceCapabilities m_capabilities;
OwrMediaSource* m_mediaSource;
};
typedef HashMap<String, RefPtr<RealtimeMediaSourceOwr>> RealtimeMediaSourceOwrMap;
}
#endif // ENABLE(MEDIA_STREAM) && USE(OPENWEBRTC)
#endif // RealtimeMediaSourceOwr_h