github.com/pion/webrtc/v4@v4.0.1/api_js.go (about) 1 // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly> 2 // SPDX-License-Identifier: MIT 3 4 //go:build js && wasm 5 // +build js,wasm 6 7 package webrtc 8 9 // API bundles the global functions of the WebRTC and ORTC API. 10 type API struct { 11 settingEngine *SettingEngine 12 } 13 14 // NewAPI Creates a new API object for keeping semi-global settings to WebRTC objects 15 func NewAPI(options ...func(*API)) *API { 16 a := &API{} 17 18 for _, o := range options { 19 o(a) 20 } 21 22 if a.settingEngine == nil { 23 a.settingEngine = &SettingEngine{} 24 } 25 26 return a 27 } 28 29 // WithSettingEngine allows providing a SettingEngine to the API. 30 // Settings should not be changed after passing the engine to an API. 31 func WithSettingEngine(s SettingEngine) func(a *API) { 32 return func(a *API) { 33 a.settingEngine = &s 34 } 35 }