1926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/* 209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Copyright (C) 2014 Google Inc. All rights reserved. 3926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 4926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Redistribution and use in source and binary forms, with or without 5926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * modification, are permitted provided that the following conditions 6926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * are met: 7926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 8926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * notice, this list of conditions and the following disclaimer. 9926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 10926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 11926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * documentation and/or other materials provided with the distribution. 12926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 13926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY 14926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR 17926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 25926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 26926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#include "config.h" 2709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "modules/mediastream/MediaDeviceInfo.h" 28926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 2909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "wtf/text/WTFString.h" 30926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 31c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 32926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 33e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)MediaDeviceInfo* MediaDeviceInfo::create(const WebMediaDeviceInfo& webMediaDeviceInfo) 34926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 3509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) ASSERT(!webMediaDeviceInfo.isNull()); 36197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return new MediaDeviceInfo(webMediaDeviceInfo); 37926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 38926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 39e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)MediaDeviceInfo::MediaDeviceInfo(const WebMediaDeviceInfo& webMediaDeviceInfo) 4009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) : m_webMediaDeviceInfo(webMediaDeviceInfo) 41926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 42926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 43926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 4409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)String MediaDeviceInfo::deviceId() const 45926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 4609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return m_webMediaDeviceInfo.deviceId(); 47926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 48926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)String MediaDeviceInfo::kind() const 50926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 5109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) switch (m_webMediaDeviceInfo.kind()) { 52e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) case WebMediaDeviceInfo::MediaDeviceKindAudioInput: 5309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return "audioinput"; 54e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) case WebMediaDeviceInfo::MediaDeviceKindAudioOutput: 5509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return "audiooutput"; 56e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) case WebMediaDeviceInfo::MediaDeviceKindVideoInput: 5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return "videoinput"; 5809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) } 59926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 6009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) ASSERT_NOT_REACHED(); 6109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return String(); 62926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 63926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 6409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)String MediaDeviceInfo::label() const 65926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 6609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return m_webMediaDeviceInfo.label(); 67926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 68926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 6909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)String MediaDeviceInfo::groupId() const 70926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 7109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return m_webMediaDeviceInfo.groupId(); 72926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 73926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 74c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 75