/* * Copyright (C) 2015 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * 3. Neither the name of Google Inc. nor the names of its contributors * may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef RealtimeMediaSourceSupportedConstraints_h #define RealtimeMediaSourceSupportedConstraints_h #if ENABLE(MEDIA_STREAM) #include namespace WebCore { enum class MediaConstraintType { Unknown, Width, Height, AspectRatio, FrameRate, FacingMode, Volume, SampleRate, SampleSize, EchoCancellation, DeviceId, GroupId }; class RealtimeMediaSourceSupportedConstraints { public: RealtimeMediaSourceSupportedConstraints() { } bool supportsWidth() const { return m_supportsWidth; } void setSupportsWidth(bool value) { m_supportsWidth = value; } bool supportsHeight() const { return m_supportsHeight; } void setSupportsHeight(bool value) { m_supportsHeight = value; } bool supportsAspectRatio() const { return m_supportsAspectRatio; } void setSupportsAspectRatio(bool value) { m_supportsAspectRatio = value; } bool supportsFrameRate() const { return m_supportsFrameRate; } void setSupportsFrameRate(bool value) { m_supportsFrameRate = value; } bool supportsFacingMode() const { return m_supportsFacingMode; } void setSupportsFacingMode(bool value) { m_supportsFacingMode = value; } bool supportsVolume() const { return m_supportsVolume; } void setSupportsVolume(bool value) { m_supportsVolume = value; } bool supportsSampleRate() const { return m_supportsSampleRate; } void setSupportsSampleRate(bool value) { m_supportsSampleRate = value; } bool supportsSampleSize() const { return m_supportsSampleSize; } void setSupportsSampleSize(bool value) { m_supportsSampleSize = value; } bool supportsEchoCancellation() const { return m_supportsEchoCancellation; } void setSupportsEchoCancellation(bool value) { m_supportsEchoCancellation = value; } bool supportsDeviceId() const { return m_supportsDeviceId; } void setSupportsDeviceId(bool value) { m_supportsDeviceId = value; } bool supportsGroupId() const { return m_supportsGroupId; } void setSupportsGroupId(bool value) { m_supportsGroupId = value; } bool supportsConstraint(MediaConstraintType) const; static const AtomicString& nameForConstraint(MediaConstraintType); static MediaConstraintType constraintFromName(const String&); private: bool m_supportsWidth { false }; bool m_supportsHeight { false }; bool m_supportsAspectRatio { false }; bool m_supportsFrameRate { false }; bool m_supportsFacingMode { false }; bool m_supportsVolume { false }; bool m_supportsSampleRate { false }; bool m_supportsSampleSize { false }; bool m_supportsEchoCancellation { false }; bool m_supportsDeviceId { false }; bool m_supportsGroupId { false }; }; } // namespace WebCore #endif // ENABLE(MEDIA_STREAM) #endif // RealtimeMediaSourceSupportedConstraints_h