MediaStreamCapabilities.cpp [plain text]
#include "config.h"
#if ENABLE(MEDIA_STREAM)
#include "MediaStreamCapabilities.h"
#include "AllAudioCapabilities.h"
#include "AllVideoCapabilities.h"
#include "CapabilityRange.h"
#include "MediaSourceStates.h"
#include "RealtimeMediaSourceCapabilities.h"
namespace WebCore {
RefPtr<MediaStreamCapabilities> MediaStreamCapabilities::create(PassRefPtr<RealtimeMediaSourceCapabilities> capabilities)
{
if (capabilities->hasVideoSource())
return AllVideoCapabilities::create(capabilities);
return AllAudioCapabilities::create(capabilities);
}
MediaStreamCapabilities::MediaStreamCapabilities(PassRefPtr<RealtimeMediaSourceCapabilities> capabilities)
: m_SourceCapabilities(capabilities)
{
}
Vector<String> MediaStreamCapabilities::sourceType() const
{
ASSERT(m_SourceCapabilities->hasVideoSource());
size_t count = m_SourceCapabilities->sourceTypes().size();
if (!count)
return Vector<String>();
Vector<String> capabilities;
capabilities.reserveCapacity(count);
for (auto& type : m_SourceCapabilities->sourceTypes())
capabilities.append(RealtimeMediaSourceStates::sourceType(type));
return capabilities;
}
Vector<String> MediaStreamCapabilities::sourceId() const
{
size_t count = m_SourceCapabilities->sourceId().size();
if (!count)
return Vector<String>();
Vector<String> capabilities;
capabilities.reserveCapacity(count);
for (auto& id : m_SourceCapabilities->sourceId())
capabilities.append(id);
return capabilities;
}
Vector<String> MediaStreamCapabilities::facingMode() const
{
ASSERT(m_SourceCapabilities->hasVideoSource());
size_t count = m_SourceCapabilities->facingModes().size();
if (!count)
return Vector<String>();
Vector<String> capabilities;
capabilities.reserveCapacity(count);
for (auto& mode : m_SourceCapabilities->facingModes())
capabilities.append(RealtimeMediaSourceStates::facingMode(mode));
return capabilities;
}
RefPtr<CapabilityRange> MediaStreamCapabilities::width() const
{
ASSERT(m_SourceCapabilities->hasVideoSource());
return CapabilityRange::create(m_SourceCapabilities->width());
}
RefPtr<CapabilityRange> MediaStreamCapabilities::height() const
{
ASSERT(m_SourceCapabilities->hasVideoSource());
return CapabilityRange::create(m_SourceCapabilities->height());
}
RefPtr<CapabilityRange> MediaStreamCapabilities::frameRate() const
{
ASSERT(m_SourceCapabilities->hasVideoSource());
return CapabilityRange::create(m_SourceCapabilities->frameRate());
}
RefPtr<CapabilityRange> MediaStreamCapabilities::aspectRatio() const
{
ASSERT(m_SourceCapabilities->hasVideoSource());
return CapabilityRange::create(m_SourceCapabilities->aspectRatio());
}
RefPtr<CapabilityRange> MediaStreamCapabilities::volume() const
{
ASSERT(!m_SourceCapabilities->hasVideoSource());
return CapabilityRange::create(m_SourceCapabilities->volume());
}
}
#endif