MockRealtimeMediaSource.cpp [plain text]
#include "config.h"
#include "MockRealtimeMediaSource.h"
#if ENABLE(MEDIA_STREAM)
#include "Logging.h"
#include "MediaConstraints.h"
#include "MediaStreamTrackSourcesRequestClient.h"
#include "NotImplemented.h"
#include "RealtimeMediaSourceSettings.h"
#include <math.h>
#include <wtf/CurrentTime.h>
#include <wtf/NeverDestroyed.h>
#include <wtf/text/StringView.h>
namespace WebCore {
const AtomicString& MockRealtimeMediaSource::mockAudioSourcePersistentID()
{
static NeverDestroyed<AtomicString> id("239c24b1-2b15-11e3-8224-0800200c9a66", AtomicString::ConstructFromLiteral);
return id;
}
const AtomicString& MockRealtimeMediaSource::mockVideoSourcePersistentID()
{
static NeverDestroyed<AtomicString> id("239c24b0-2b15-11e3-8224-0800200c9a66", AtomicString::ConstructFromLiteral);
return id;
}
const AtomicString& MockRealtimeMediaSource::mockAudioSourceName()
{
static NeverDestroyed<AtomicString> name("Mock audio device", AtomicString::ConstructFromLiteral);
return name;
}
const AtomicString& MockRealtimeMediaSource::mockVideoSourceName()
{
static NeverDestroyed<AtomicString> name("Mock video device", AtomicString::ConstructFromLiteral);
return name;
}
RefPtr<TrackSourceInfo> MockRealtimeMediaSource::trackSourceWithUID(const String& id, MediaConstraints*)
{
if (mockAudioSourcePersistentID() == id)
return TrackSourceInfo::create(mockAudioSourcePersistentID(), id, TrackSourceInfo::Audio, "Mock audio device");
if (mockVideoSourcePersistentID() == id)
return TrackSourceInfo::create(mockVideoSourcePersistentID(), id, TrackSourceInfo::Video, "Mock video device");
return nullptr;
}
MockRealtimeMediaSource::MockRealtimeMediaSource(const String& id, RealtimeMediaSource::Type type, const String& name)
: RealtimeMediaSource(id, type, name)
{
if (type == RealtimeMediaSource::Audio)
setPersistentID(mockAudioSourcePersistentID());
else
setPersistentID(mockVideoSourcePersistentID());
}
RefPtr<RealtimeMediaSourceCapabilities> MockRealtimeMediaSource::capabilities()
{
if (m_capabilities)
return m_capabilities;
m_capabilities = RealtimeMediaSourceCapabilities::create(supportedConstraints());
m_capabilities->setDeviceId(id());
initializeCapabilities(*m_capabilities.get());
return m_capabilities;
}
const RealtimeMediaSourceSettings& MockRealtimeMediaSource::settings()
{
if (m_currentSettings.deviceId().isEmpty()) {
m_currentSettings.setSupportedConstraits(supportedConstraints());
m_currentSettings.setDeviceId(id());
}
updateSettings(m_currentSettings);
return m_currentSettings;
}
RealtimeMediaSourceSupportedConstraints& MockRealtimeMediaSource::supportedConstraints()
{
if (m_supportedConstraints.supportsDeviceId())
return m_supportedConstraints;
m_supportedConstraints.setSupportsDeviceId(true);
initializeSupportedConstraints(m_supportedConstraints);
return m_supportedConstraints;
}
}
#endif // ENABLE(MEDIA_STREAM)