109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)/* 209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Copyright (C) 2014 Google Inc. All rights reserved. 309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * 409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * modification, are permitted provided that the following conditions 609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * are met: 709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 1009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 1109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 1209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * 1309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY 1409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR 1709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 1809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 1909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 2009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 2109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) */ 2509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 2609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#ifndef WebMediaDevicesRequest_h 2709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define WebMediaDevicesRequest_h 2809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 2909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "WebSecurityOrigin.h" 3009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "public/platform/WebCommon.h" 3109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "public/platform/WebPrivatePtr.h" 3209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "public/platform/WebString.h" 3309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 34c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 3509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 36e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class MediaDevicesRequest; 3709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class WebDocument; 3809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class WebMediaDeviceInfo; 3909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)template <typename T> class WebVector; 4009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 4109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class WebMediaDevicesRequest { 4209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)public: 4309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) WebMediaDevicesRequest() { } 4409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) WebMediaDevicesRequest(const WebMediaDevicesRequest& request) { assign(request); } 4509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) ~WebMediaDevicesRequest() { reset(); } 4609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 4709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) WebMediaDevicesRequest& operator=(const WebMediaDevicesRequest& other) 4809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { 4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) assign(other); 5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return *this; 5109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) } 5209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 5309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_EXPORT void reset(); 5409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool isNull() const { return m_private.isNull(); } 5509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_EXPORT bool equals(const WebMediaDevicesRequest&) const; 5609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_EXPORT void assign(const WebMediaDevicesRequest&); 5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 5809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_EXPORT WebSecurityOrigin securityOrigin() const; 5909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_EXPORT WebDocument ownerDocument() const; 6009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 6109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) BLINK_EXPORT void requestSucceeded(WebVector<WebMediaDeviceInfo>); 6209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 6309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#if BLINK_IMPLEMENTATION 64e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebMediaDevicesRequest(MediaDevicesRequest*); 65e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) operator MediaDevicesRequest*() const; 6609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#endif 6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 6809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)private: 69e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebPrivatePtr<MediaDevicesRequest> m_private; 7009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)}; 7109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 7209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)inline bool operator==(const WebMediaDevicesRequest& a, const WebMediaDevicesRequest& b) 7309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles){ 7409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return a.equals(b); 7509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} 7609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 7709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} // namespace blink 7809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 7909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#endif // WebMediaDevicesRequest_h 80