├── .DS_Store
├── .gitignore
├── README.md
├── css
└── style_webrtc.css
├── examples
├── peerjs.html
├── signal.html
├── simplewebrtc.html
├── webrtc.html
└── xirsys_connect.js
├── images
├── arrow_hide.png
├── arrow_show.png
├── brand-logo.png
├── chat-on.png
├── end-call-grn.png
├── end-call-wt.png
├── end-call.png
├── expand.png
├── full-screen.png
├── sign-out-grn.png
├── sign-out.png
├── start-call-grn.png
├── start-call.png
├── user-icon-sm-grn.png
└── user-icon-sm.png
├── lib
├── .DS_Store
├── xirsys.api.js
├── xirsys.core.js
├── xirsys.databind.js
├── xirsys.model.js
├── xirsys.p2p.adapter.js
├── xirsys.p2p.js
├── xirsys.signal.js
├── xirsys.simplewebrtc.connection.js
└── xirsys.simplewebrtc.js
└── thirdparty
├── easyrtc
├── .gitignore
├── LICENSE
├── README.md
├── api
│ ├── adapter.js
│ ├── buildEnglishVersions.bat
│ ├── buildEnglishVersions.sh
│ ├── easy_app.js
│ ├── easyrtc.css
│ ├── easyrtc.js
│ ├── easyrtc_ft.js
│ ├── easyrtc_int.js
│ ├── easyrtc_lang_en.js
│ ├── img
│ │ ├── LICENSE
│ │ ├── easyrtc.png
│ │ ├── powered_by_easyrtc.png
│ │ ├── priologic_logo_white.png
│ │ └── x.svg
│ └── labs
│ │ ├── README.md
│ │ ├── desktopCapture.zip
│ │ ├── desktop_capture_iframe_version.js
│ │ ├── desktop_capture_no_iframe_version.js
│ │ ├── easyrtc_rates.js
│ │ └── inline-installcode.html
├── demos
│ ├── css
│ │ ├── demo4.css
│ │ ├── demo_audio_video_simple.css
│ │ ├── demo_audio_video_simple_hd.css
│ │ ├── demo_lowbandwidth.css
│ │ ├── demo_room.css
│ │ └── landing.css
│ ├── demo4.html
│ ├── demo_audio_only.html
│ ├── demo_audio_video.html
│ ├── demo_audio_video_simple.html
│ ├── demo_audio_video_simple_hd.html
│ ├── demo_connector.html
│ ├── demo_data_channel_filesharing.html
│ ├── demo_data_channel_messaging.html
│ ├── demo_ice_filter.html
│ ├── demo_instant_messaging.html
│ ├── demo_instant_messaging_rooms.html
│ ├── demo_instant_messaging_selfconnect.html
│ ├── demo_lowbandwidth.html
│ ├── demo_multiparty.html
│ ├── demo_multistream.html
│ ├── demo_multistream_iframe.html
│ ├── demo_multistream_no_iframe.html
│ ├── demo_reconnect.html
│ ├── demo_screen_receive.html
│ ├── demo_screen_send.html
│ ├── demo_video_only.html
│ ├── images
│ │ ├── LICENSE
│ │ ├── bg_dark.png
│ │ ├── bg_light.png
│ │ ├── blank.gif
│ │ ├── br_chrome.png
│ │ ├── br_chrome_canary.png
│ │ ├── br_ff.png
│ │ ├── br_ff_aurora.png
│ │ ├── br_ff_nightly.png
│ │ ├── br_ie.png
│ │ ├── br_opera.png
│ │ ├── br_safari.png
│ │ ├── br_status_fail.png
│ │ ├── br_status_pass.png
│ │ ├── br_status_warn.png
│ │ ├── button_close.png
│ │ ├── button_mute.png
│ │ ├── button_refresh.png
│ │ ├── button_unmute.png
│ │ ├── by_priologic_logo.png
│ │ ├── cloud.png
│ │ ├── easyrtc_logo.png
│ │ ├── irongrip.png
│ │ ├── powered_by_easyrtc.png
│ │ ├── priologic_logo_white.png
│ │ └── textEntry.png
│ ├── index.html
│ └── js
│ │ ├── demo4.js
│ │ ├── demo_audio_only.js
│ │ ├── demo_audio_video.js
│ │ ├── demo_audio_video_simple.js
│ │ ├── demo_audio_video_simple_hd.js
│ │ ├── demo_connector.js
│ │ ├── demo_data_channel_filesharing.js
│ │ ├── demo_data_channel_messaging.js
│ │ ├── demo_ice_filter.js
│ │ ├── demo_instant_messaging.js
│ │ ├── demo_instant_messaging_rooms.js
│ │ ├── demo_instant_messaging_selfconnect.js
│ │ ├── demo_lowbandwidth.js
│ │ ├── demo_multiparty.js
│ │ ├── demo_multistream.js
│ │ ├── demo_multistream_iframe.js
│ │ ├── demo_multistream_no_iframe.js
│ │ ├── demo_reconnect.js
│ │ ├── demo_screen_receive.js
│ │ ├── demo_screen_send.js
│ │ ├── demo_video_only.js
│ │ └── prettify
│ │ ├── README
│ │ ├── jquery-1.9.1.min.js
│ │ ├── jquery.js
│ │ ├── jquery.min.js
│ │ ├── lang-css.js
│ │ ├── lang-sql.js
│ │ ├── lang-vhdl.js
│ │ ├── lang-yaml.js
│ │ ├── loadAndFilter.js
│ │ ├── prettify.css
│ │ └── prettify.js
├── dev
│ ├── dictionary
│ │ └── project.dic
│ ├── readme.md
│ └── scripts
│ │ ├── client_jsdoc_templates
│ │ ├── README.md
│ │ ├── publish.js
│ │ ├── static
│ │ │ ├── scripts
│ │ │ │ └── prettify
│ │ │ │ │ ├── Apache-License-2.0.txt
│ │ │ │ │ ├── lang-css.js
│ │ │ │ │ └── prettify.js
│ │ │ └── styles
│ │ │ │ ├── jsdoc-default.css
│ │ │ │ ├── prettify-jsdoc.css
│ │ │ │ └── prettify-tomorrow.css
│ │ └── tmpl
│ │ │ ├── container.tmpl
│ │ │ ├── details.tmpl
│ │ │ ├── example.tmpl
│ │ │ ├── examples.tmpl
│ │ │ ├── exceptions.tmpl
│ │ │ ├── fires.tmpl
│ │ │ ├── layout.tmpl
│ │ │ ├── mainpage.tmpl
│ │ │ ├── members.tmpl
│ │ │ ├── method.tmpl
│ │ │ ├── params.tmpl
│ │ │ ├── properties.tmpl
│ │ │ ├── returns.tmpl
│ │ │ ├── source.tmpl
│ │ │ ├── tutorial.tmpl
│ │ │ └── type.tmpl
│ │ ├── client_jsdoc_templates2
│ │ ├── README.md
│ │ ├── publish.js
│ │ ├── static
│ │ │ ├── scripts
│ │ │ │ └── prettify
│ │ │ │ │ ├── Apache-License-2.0.txt
│ │ │ │ │ ├── lang-css.js
│ │ │ │ │ └── prettify.js
│ │ │ └── styles
│ │ │ │ ├── jsdoc-default.css
│ │ │ │ ├── prettify-jsdoc.css
│ │ │ │ └── prettify-tomorrow.css
│ │ └── tmpl
│ │ │ ├── container.tmpl
│ │ │ ├── details.tmpl
│ │ │ ├── example.tmpl
│ │ │ ├── examples.tmpl
│ │ │ ├── exceptions.tmpl
│ │ │ ├── fires.tmpl
│ │ │ ├── layout.tmpl
│ │ │ ├── mainpage.tmpl
│ │ │ ├── members.tmpl
│ │ │ ├── method.tmpl
│ │ │ ├── params.tmpl
│ │ │ ├── properties.tmpl
│ │ │ ├── returns.tmpl
│ │ │ ├── source.tmpl
│ │ │ ├── tutorial.tmpl
│ │ │ └── type.tmpl
│ │ ├── readme.md
│ │ ├── update_client_easyrtc_docs.bat
│ │ ├── update_client_easyrtc_docs.sh
│ │ ├── update_client_easyrtc_ft_docs.bat
│ │ ├── update_client_easyrtc_ft_docs.sh
│ │ ├── update_server_docs.bat
│ │ └── update_server_docs.sh
├── docs
│ ├── client_html_docs
│ │ ├── easyrtc.html
│ │ ├── easyrtc_ft.html
│ │ ├── jsdoc
│ │ │ └── styles
│ │ │ │ └── jsdoc-client.css
│ │ ├── scripts
│ │ │ ├── linenumber.js
│ │ │ └── prettify
│ │ │ │ ├── Apache-License-2.0.txt
│ │ │ │ ├── lang-css.js
│ │ │ │ └── prettify.js
│ │ └── styles
│ │ │ ├── jsdoc-default.css
│ │ │ ├── prettify-jsdoc.css
│ │ │ └── prettify-tomorrow.css
│ ├── easyrtc_authentication.md
│ ├── easyrtc_changelog.md
│ ├── easyrtc_client_tutorial.md
│ ├── easyrtc_faq.md
│ ├── easyrtc_rooms.md
│ ├── easyrtc_server_configuration.md
│ ├── easyrtc_server_events.md
│ ├── easyrtc_server_ice.md
│ ├── easyrtc_server_install.md
│ ├── easyrtc_server_msgtypes.md
│ ├── easyrtc_server_ssl.md
│ ├── easyrtc_upcoming_features.md
│ ├── easyrtc_webrtc_problems.md
│ ├── easyrtc_with_other_servers.md
│ └── server_html_docs
│ │ ├── easyrtc_default_event_listeners.js.html
│ │ ├── easyrtc_public_obj.js.html
│ │ ├── fonts
│ │ ├── OpenSans-Bold-webfont.eot
│ │ ├── OpenSans-Bold-webfont.svg
│ │ ├── OpenSans-Bold-webfont.woff
│ │ ├── OpenSans-BoldItalic-webfont.eot
│ │ ├── OpenSans-BoldItalic-webfont.svg
│ │ ├── OpenSans-BoldItalic-webfont.woff
│ │ ├── OpenSans-Italic-webfont.eot
│ │ ├── OpenSans-Italic-webfont.svg
│ │ ├── OpenSans-Italic-webfont.woff
│ │ ├── OpenSans-Light-webfont.eot
│ │ ├── OpenSans-Light-webfont.svg
│ │ ├── OpenSans-Light-webfont.woff
│ │ ├── OpenSans-LightItalic-webfont.eot
│ │ ├── OpenSans-LightItalic-webfont.svg
│ │ ├── OpenSans-LightItalic-webfont.woff
│ │ ├── OpenSans-Regular-webfont.eot
│ │ ├── OpenSans-Regular-webfont.svg
│ │ └── OpenSans-Regular-webfont.woff
│ │ ├── global.html
│ │ ├── index.html
│ │ ├── module-easyrtc_default_event_listeners-eventListener.html
│ │ ├── module-easyrtc_default_event_listeners.html
│ │ ├── module-easyrtc_public_obj-pub.events.html
│ │ ├── module-easyrtc_public_obj-pub.html
│ │ ├── module-easyrtc_public_obj-pub.util.html
│ │ ├── module-easyrtc_public_obj.html
│ │ ├── pub.appObj.connectionObj.connectionRoomObj.html
│ │ ├── pub.appObj.connectionObj.html
│ │ ├── pub.appObj.html
│ │ ├── pub.appObj.roomObj.html
│ │ ├── pub.appObj.sessionObj.html
│ │ ├── scripts
│ │ ├── linenumber.js
│ │ └── prettify
│ │ │ ├── Apache-License-2.0.txt
│ │ │ ├── lang-css.js
│ │ │ └── prettify.js
│ │ └── styles
│ │ ├── jsdoc-default.css
│ │ ├── prettify-jsdoc.css
│ │ └── prettify-tomorrow.css
├── index.js
├── lib
│ ├── easyrtc_default_event_listeners.js
│ ├── easyrtc_default_options.js
│ ├── easyrtc_private_obj.js
│ ├── easyrtc_public_obj.js
│ ├── easyrtc_server.js
│ ├── easyrtc_util.js
│ └── general_util.js
├── package.json
└── server_example
│ ├── README.md
│ ├── package.json
│ ├── server.js
│ └── static
│ └── index.html
├── peer.js
└── simplewebrtc.bundle.js
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .task-pachpict/
2 | _xirsys_connect.js
3 | examples/_xirsys_connect.js
4 |
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | xsdk
2 | ====
3 |
4 | This repository contains simple examples for the new XirSys platform. Each of the examples are created to make it easier to use and understand the XirSys API. Eventually, this repo will house the public SDK for XirSys.
5 |
6 | The SDK and demos are still in active development. At present the Signal and SimpleWebRTC demos are up to date and functional examples of the Xirsys platform. The other demos will be brought up to speed and added to this repository soon.
7 |
8 | To get started we recommend reading the WebRTC Walkthrough documentation.
9 |
10 | Changes
11 | -------
12 |
13 | ##### 07/09/2016
14 | Update SimpleWebRTC demo to use XirSys signalling.
15 |
16 | ##### 22/12/2015
17 | All demos have been updated over the last six months. A walkthrough guide has been added.
18 |
19 | ##### 23/06/2015
20 | Removed non-working demos for now, leaving only signalling and SimpleWebRTC demos. Other demos will be added back to this repo shortly.
21 |
22 | ##### 03/06/2015
23 | Multitude of small improvements, focusing on setting the Signal and WebRTC demos working well.
24 |
25 | ##### 20/03/2015
26 | Added screenshare example. To use, invoke Chrome with flags:
27 |
28 | --enable-usermedia-screen-capturing // enable screen capture
29 |
30 | --allow-http-screen-capture // enable non-SSL domain support (for localhost testing)
31 |
32 | Updated docs to conform to new signalling packet type.
33 |
34 | ##### 31/03/2015
35 | Implement handshake for pub/sub (one-to-many). Pub/sub is still in development and cannot be used. However, the publish example shows how pub/sub handshakes can be implemented, now. See docs for further info.
36 |
37 | SimpleWebRTC
38 | ------------
39 |
40 | The SimpleWebRTC demo is a great example of using the XirSys platform. The signalling for the SimpleWebRTC demo is based off of the demo server supplied by &Yet for use with SimpleWebRTC. The version of SimpleWebRTC supplied in the thirdparty directory is the standard and latest distribution of SimpleWebRTC. This is augmented by the files in the lib directory which update SimpleWebRTC to be compatible with both XirSys signalling and XirSys TURN servers.
41 |
--------------------------------------------------------------------------------
/examples/xirsys_connect.js:
--------------------------------------------------------------------------------
1 | // 'ident' and 'secret' should ideally be passed server-side for security purposes.
2 | // If secureTokenRetrieval is true then you should remove these two values.
3 |
4 | // Insecure method
5 | var xirsysConnect = {
6 | secureTokenRetrieval : false,
7 | data : {
8 | domain : 'your-domain.com',
9 | application : 'default',
10 | room : 'default',
11 | ident : 'your-ident',
12 | secret : 'your-secret-key',
13 | secure : 1
14 | }
15 | };
16 |
17 | // Secure method
18 | /*var xirsysConnect = {
19 | secureTokenRetrieval : true,
20 | server : '../getToken.php',
21 | data : {
22 | domain : '< www.yourdomain.com >',
23 | application : 'default',
24 | room : 'default',
25 | secure : 1
26 | }
27 | };*/
28 |
29 |
--------------------------------------------------------------------------------
/images/arrow_hide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/arrow_hide.png
--------------------------------------------------------------------------------
/images/arrow_show.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/arrow_show.png
--------------------------------------------------------------------------------
/images/brand-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/brand-logo.png
--------------------------------------------------------------------------------
/images/chat-on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/chat-on.png
--------------------------------------------------------------------------------
/images/end-call-grn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/end-call-grn.png
--------------------------------------------------------------------------------
/images/end-call-wt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/end-call-wt.png
--------------------------------------------------------------------------------
/images/end-call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/end-call.png
--------------------------------------------------------------------------------
/images/expand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/expand.png
--------------------------------------------------------------------------------
/images/full-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/full-screen.png
--------------------------------------------------------------------------------
/images/sign-out-grn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/sign-out-grn.png
--------------------------------------------------------------------------------
/images/sign-out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/sign-out.png
--------------------------------------------------------------------------------
/images/start-call-grn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/start-call-grn.png
--------------------------------------------------------------------------------
/images/start-call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/start-call.png
--------------------------------------------------------------------------------
/images/user-icon-sm-grn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/user-icon-sm-grn.png
--------------------------------------------------------------------------------
/images/user-icon-sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/images/user-icon-sm.png
--------------------------------------------------------------------------------
/lib/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/lib/.DS_Store
--------------------------------------------------------------------------------
/lib/xirsys.api.js:
--------------------------------------------------------------------------------
1 | /*********************************************************************************
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2014 XirSys
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
24 | ********************************************************************************
25 |
26 | This script provides functionality for connecting to the
27 | XirSys API endpoints.
28 |
29 | No external libraries are required. However, if supporting an
30 | older browser (earlier than Internet Explorer 8, Firefox 3.1,
31 | Safari 4, and Chrome 3), then you may want to use the open
32 | source JSON library by Douglas Crockford :
33 | (https://github.com/douglascrockford/JSON-js)
34 |
35 | *********************************************************************************/
36 |
37 | 'use strict';
38 |
39 | (function () {
40 |
41 | /*********************************************************************************
42 | * For full use of this class, see the information at the top of this script.
43 | *********************************************************************************/
44 |
45 | $xirsys.class.create({
46 | namespace : 'api',
47 | constructor : function ($opts, $url) {
48 | if (!!$url) {
49 | $xirsys.api.iceUrl = $url + "ice";
50 | }
51 | this.data = $opts;
52 | },
53 | fields : {
54 | ice : null
55 | },
56 | methods : {
57 | getIceServers : function ($cb) {
58 | var self = this;
59 | $xirsys.ajax.do({
60 | url: $xirsys.api.iceUrl,
61 | method: 'POST', // In http://xirsys.com/guide/ it uses a GET rather than a POST ... Should resolve.
62 | data: self.xirsys_opts
63 | })
64 | .done(function($data) {
65 | self.ice = $data.d;
66 | $cb.apply(this, [self.ice]);
67 | });
68 | }
69 | },
70 | statics : {
71 | iceUrl : $xirsys.baseUrl + "ice"
72 | }
73 | });
74 |
75 | })();
76 |
--------------------------------------------------------------------------------
/lib/xirsys.databind.js:
--------------------------------------------------------------------------------
1 | /*********************************************************************************
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2014 XirSys
5 |
6 | @author: Lee Sylvester
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy
9 | of this software and associated documentation files (the "Software"), to deal
10 | in the Software without restriction, including without limitation the rights
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | copies of the Software, and to permit persons to whom the Software is
13 | furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in
16 | all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | THE SOFTWARE.
25 |
26 | *********************************************************************************/
27 |
28 | 'use strict';
29 |
30 | (function () {
31 |
32 | $xirsys.class.create({
33 | namespace : 'databind',
34 | inherits : $xirsys.events,
35 | constructor : function ($id, $cb) {
36 | this.init($id, $cb);
37 | },
38 | methods : {
39 | init : function($id, $cb) {
40 | this.id = $id;
41 | this.cb = $cb;
42 | this.attr = "data-bind-" + $id;
43 | this.msg = $id + ":change";
44 | if (document.addEventListener)
45 | document.addEventListener("change", this.change_handler.bind(this), false);
46 | else
47 | document.attachEvent("onChange", this.change_handler.bind(this));
48 | $xirsys.events.getInstance().on(this.msg, this.msg_handler.bind(this));
49 | },
50 | change_handler : function($evt) {
51 | var trgt = $evt.target || $evt.srcElement,
52 | prop_name = trgt.getAttribute(this.attr);
53 | if (!!prop_name && prop_name !== "")
54 | $xirsys.events.getInstance().emit(this.msg, prop_name, trgt.value);
55 | },
56 | msg_handler : function($evt, $prop, $val) {
57 | var elems = document.querySelectorAll("[" + this.attr + "='" + $prop + "']"),
58 | tag_name;
59 |
60 | if (this.cb)
61 | this.cb.call(this, $val);
62 |
63 | for (var i = 0, len = elems.length; i < len; i++) {
64 | tag_name = elems[i].tagName.toLowerCase();
65 |
66 | if (tag_name === "input" || tag_name === "textarea" || tag_name === "select")
67 | elems[i].value = $val;
68 | else
69 | elems[i].innerHTML = $val;
70 | }
71 | }
72 | }
73 | })
74 |
75 | })();
--------------------------------------------------------------------------------
/lib/xirsys.model.js:
--------------------------------------------------------------------------------
1 | /*********************************************************************************
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2014 XirSys
5 |
6 | @author: Lee Sylvester
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy
9 | of this software and associated documentation files (the "Software"), to deal
10 | in the Software without restriction, including without limitation the rights
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | copies of the Software, and to permit persons to whom the Software is
13 | furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in
16 | all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | THE SOFTWARE.
25 |
26 | *********************************************************************************/
27 |
28 | 'use strict';
29 |
30 | (function () {
31 |
32 | var cls = $xirsys.class.create({
33 | namespace : 'model',
34 | inherits : $xirsys.databind,
35 | constructor : function ($id, $cb) {
36 | cls.Super.init.call(this, $id, $cb);
37 | this.id = $id;
38 | },
39 | fields : {
40 | attrs : {}
41 | },
42 | methods : {
43 | set: function($attr, $val) {
44 | this.attrs[$attr] = $val;
45 | $xirsys.events.getInstance().emit(this.id + ":change", $attr, $val, this);
46 | },
47 | get: function($attr) {
48 | return this.attrs[$attr];
49 | }
50 | }
51 | })
52 |
53 | })();
--------------------------------------------------------------------------------
/lib/xirsys.simplewebrtc.js:
--------------------------------------------------------------------------------
1 | /*********************************************************************************
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2014 XirSys
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
24 | *********************************************************************************/
25 |
26 | 'use strict';
27 |
28 | (function () {
29 |
30 | $xirsys.class.create({
31 | namespace : 'simplewebrtc',
32 | // $url must include a trailing forward stroke
33 | constructor : function ($url) {
34 | var c = $xirsys.simplewebrtc;
35 | if (!!$url) {
36 | c.tokenUrl = $url + 'signal/token';
37 | c.iceUrl = $url + 'ice';
38 | c.roomUrl = $url + 'room';
39 | c.wsUrl = $url + 'signal/list';
40 | }
41 | },
42 | fields : {
43 | connectionTypes: {
44 | default: 'default',
45 | direct: 'direct',
46 | server: 'server'
47 | },
48 | token : "",
49 | ice : [],
50 | xirsys_opts : null
51 | },
52 | methods : {
53 | connect : function ($opts, $rtcOpts, $resp) {
54 | this.xirsys_opts = $opts;
55 | $rtcOpts = $rtcOpts || {};
56 | var self = this;
57 | self.xirsysRequest($xirsys.simplewebrtc.wsUrl, function ($wdata) {
58 | self.ws = $wdata.d.value;
59 | $rtcOpts.url = "ws" + self.ws.substr(2, self.ws.length);
60 | $rtcOpts.connection = new $xirsys.connection(self, null, $opts);
61 | self.ref = new SimpleWebRTC($rtcOpts);
62 | $resp.apply(self, [self.ref]);
63 | });
64 | },
65 | on : function ($ev, $fun) {
66 | this.ref.on($ev, $fun);
67 | },
68 | getDomId : function ($peer) {
69 | return this.ref.getDomId($peer);
70 | },
71 | capabilities : function () {
72 | return this.ref.capabilities;
73 | },
74 | createRoom : function ($room, $fun) {
75 | var self = this;
76 | if (!!$room) {
77 | this.xirsys_opts.room = $room;
78 | }
79 | self.ref.createRoom($room, $fun);
80 | },
81 | prepareRoom : function ($room) {
82 | if (!!$room) {
83 | this.prepare_room = $room;
84 | this.ref.sessionReady = true;
85 | }
86 | },
87 | joinRoom : function ($room) {
88 | var self = this;
89 | if (!!$room) {
90 | this.xirsys_opts.room = $room;
91 | }
92 | self.ref.joinRoom($room);
93 | },
94 | leaveRoom : function() {
95 | this.ref.leaveRoom();
96 | },
97 | xirsysRequest : function ($url, $cb) {
98 | var self = this;
99 | $xirsys.ajax.do({
100 | url: $url,
101 | method: 'POST',
102 | data: self.xirsys_opts
103 | })
104 | .done($cb);
105 | },
106 | getLocalScreen : function () {
107 | return this.ref.getLocalScreen();
108 | },
109 | stopScreenShare : function () {
110 | this.ref.stopScreenShare();
111 | },
112 | shareScreen : function ($handle) {
113 | this.ref.shareScreen($handle);
114 | }
115 | },
116 | statics : {
117 | tokenUrl : $xirsys.baseUrl + "signal/token",
118 | iceUrl : $xirsys.baseUrl + "ice",
119 | wsUrl : $xirsys.baseUrl + "signal/list",
120 | roomUrl : $xirsys.baseUrl + "room"
121 | }
122 | });
123 |
124 | })();
125 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/.gitignore:
--------------------------------------------------------------------------------
1 | # This file is used to restrict unnecessary files from being committed to git.
2 | # It the same as the recommended default, but with an addition of restricting
3 | # node_modules from being committed and .log files.
4 |
5 | #################
6 | ## Eclipse
7 | #################
8 |
9 | *.pydevproject
10 | .project
11 | .metadata
12 | bin/
13 | tmp/
14 | *.tmp
15 | *.bak
16 | *.swp
17 | *~.nib
18 | local.properties
19 | .classpath
20 | .settings/
21 | .loadpath
22 |
23 | # External tool builders
24 | .externalToolBuilders/
25 |
26 | # Locally stored "Eclipse launch configurations"
27 | *.launch
28 |
29 | # CDT-specific
30 | .cproject
31 |
32 | # PDT-specific
33 | .buildpath
34 |
35 |
36 | #################
37 | ## Visual Studio
38 | #################
39 |
40 | ## Ignore Visual Studio temporary files, build results, and
41 | ## files generated by popular Visual Studio add-ons.
42 |
43 | # User-specific files
44 | *.suo
45 | *.user
46 | *.sln.docstates
47 |
48 | # Build results
49 | [Dd]ebug/
50 | [Rr]elease/
51 | *_i.c
52 | *_p.c
53 | *.ilk
54 | *.meta
55 | *.obj
56 | *.pch
57 | *.pdb
58 | *.pgc
59 | *.pgd
60 | *.rsp
61 | *.sbr
62 | *.tlb
63 | *.tli
64 | *.tlh
65 | *.tmp
66 | *.vspscc
67 | .builds
68 | *.dotCover
69 |
70 | ## TODO: If you have NuGet Package Restore enabled, uncomment this
71 | #packages/
72 |
73 | # Visual C++ cache files
74 | ipch/
75 | *.aps
76 | *.ncb
77 | *.opensdf
78 | *.sdf
79 |
80 | # Visual Studio profiler
81 | *.psess
82 | *.vsp
83 |
84 | # ReSharper is a .NET coding add-in
85 | _ReSharper*
86 |
87 | # Installshield output folder
88 | [Ee]xpress
89 |
90 | # DocProject is a documentation generator add-in
91 | DocProject/buildhelp/
92 | DocProject/Help/*.HxT
93 | DocProject/Help/*.HxC
94 | DocProject/Help/*.hhc
95 | DocProject/Help/*.hhk
96 | DocProject/Help/*.hhp
97 | DocProject/Help/Html2
98 | DocProject/Help/html
99 |
100 | # Click-Once directory
101 | publish
102 |
103 | # Others
104 | [Bb]in
105 | [Oo]bj
106 | sql
107 | TestResults
108 | *.Cache
109 | ClientBin
110 | stylecop.*
111 | ~$*
112 | *.dbmdl
113 | Generated_Code #added for RIA/Silverlight projects
114 |
115 | # Backup & report files from converting an old project file to a newer
116 | # Visual Studio version. Backup files are not needed, because we have git ;-)
117 | _UpgradeReport_Files/
118 | Backup*/
119 | UpgradeLog*.XML
120 |
121 |
122 |
123 | ############
124 | ## Windows
125 | ############
126 |
127 | # Windows image file caches
128 | Thumbs.db
129 |
130 | # Folder config file
131 | Desktop.ini
132 |
133 |
134 | #############
135 | ## Python
136 | #############
137 |
138 | *.py[co]
139 |
140 | # Packages
141 | *.egg
142 | *.egg-info
143 | dist
144 | build
145 | eggs
146 | parts
147 | bin
148 | var
149 | sdist
150 | develop-eggs
151 | .installed.cfg
152 |
153 | # Installer logs
154 | pip-log.txt
155 |
156 | # Unit test / coverage reports
157 | .coverage
158 | .tox
159 |
160 | #Translations
161 | *.mo
162 |
163 | #Mr Developer
164 | .mr.developer.cfg
165 |
166 | # Mac crap
167 | .DS_Store
168 |
169 | #########
170 | # Node.js
171 | #########
172 | node_modules
173 |
174 | #########
175 | # EasyRTC
176 | #########
177 | *.log
178 | config_override.js
179 | nbproject
180 | /.idea
181 | desktopCapture
182 | /api/labs/desktopCapture
183 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015, Priologic Software Inc.
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 | * Redistributions in binary form must reproduce the above copyright
10 | notice, this list of conditions and the following disclaimer in the
11 | documentation and/or other materials provided with the distribution.
12 |
13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
17 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23 | POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/buildEnglishVersions.bat:
--------------------------------------------------------------------------------
1 | type adapter.js easyrtc_int.js easy_app.js easyrtc_lang_en.js > easyrtc.js
2 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/buildEnglishVersions.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | cat adapter.js easyrtc_int.js easy_app.js easyrtc_lang_en.js > easyrtc.js
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/easyrtc.css:
--------------------------------------------------------------------------------
1 | /*
2 | * These styles define the appearance of the default error dialog box.
3 | */
4 | #easyrtcErrorDialog {
5 | background-color: #ffe0e0;
6 |
7 | position:fixed;
8 | right: 10px;
9 | top:20px;
10 | z-index: 30;
11 | opacity: 0.95;
12 | padding: 0.5em;
13 | border-radius:10px;
14 | border-color: red;
15 | border-style: solid;
16 | border-width: 1px;
17 | -webkit-box-shadow: 2px 2px 8px 1px rgba(0,0,0,0.9);
18 | box-shadow: 2px 2px 8px 1px rgba(0,0,0,0.9);
19 | }
20 |
21 | .easyrtcErrorDialog_title {
22 | position:static;
23 | text-align:center;
24 | font-size: 18px;
25 | font-weight: bold;
26 | margin-bottom: 0.5em;
27 | clear:both;
28 | }
29 |
30 | #easyrtcErrorDialog_body{
31 | position:static;
32 | height:150px;
33 | overflow-y:auto;
34 | }
35 |
36 | .easyrtcErrorDialog_element {
37 | position:static;
38 | font-style: italic;
39 | font-size: 12px;
40 | width:300px;
41 | margin-bottom: 0.5em;
42 | clear: both;
43 | float:left;
44 | }
45 |
46 | .easyrtcErrorDialog_okayButton {
47 | position:static;
48 | clear:both;
49 | float:right;
50 | }
51 |
52 | .easyrtcMirror {
53 | -webkit-transform: scaleX(-1);
54 | -moz-transform: scaleX(-1);
55 | -ms-transform: scaleX(-1);
56 | -o-transform: scaleX(-1);
57 | transform: scaleX(-1);
58 | }
59 |
60 | .easyrtc_closeButton {
61 | z-index: 2;
62 | position: absolute;
63 | width: 40px;
64 | height:40px;
65 | right: 0px;
66 | top: 0px;
67 | background-image: url('data:image/svg+xml;utf8, ');
68 | opacity: 0.3;
69 | }
70 |
71 | .easyrtc_closeButton:hover {
72 | opacity: 1;
73 | }
74 |
75 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/easyrtc_lang_en.js:
--------------------------------------------------------------------------------
1 |
2 | var easyrtc_constantStrings = {
3 | "unableToEnterRoom":"Unable to enter room {0} because {1}" ,
4 | "resolutionWarning": "Requested video size of {0}x{1} but got size of {2}x{3}",
5 | "badUserName": "Illegal username {0}",
6 | "localMediaError": "Error getting local media stream: {0}",
7 | "miscSignalError": "Miscellaneous error from signalling server. It may be ignorable.",
8 | "noServer": "Unable to reach the EasyRTC signalling server.",
9 | "badsocket": "Socket.io connect event fired with bad websocket.",
10 | "icf": "Internal communications failure",
11 | "statsNotSupported":"call statistics not supported by this browser, try Chrome.",
12 | "noWebrtcSupport":"Your browser doesn't appear to support WebRTC.",
13 | "gumFailed":"Failed to get access to local media. Error code was {0}.",
14 | "requireAudioOrVideo":"At least one of audio and video must be provided"
15 | };
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/img/LICENSE:
--------------------------------------------------------------------------------
1 | Licenses for images In img folder
2 | ----------------------------------
3 |
4 | Logos for Priologic Software Inc, and EasyRTC are owned by Priologic Software Inc.
5 |
6 | Permission is granted to use powered_by_easyrtc.png within your own application as long as it is not altered in any way.
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/img/easyrtc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/api/img/easyrtc.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/img/powered_by_easyrtc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/api/img/powered_by_easyrtc.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/img/priologic_logo_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/api/img/priologic_logo_white.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/img/x.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
11 |
12 |
13 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/labs/README.md:
--------------------------------------------------------------------------------
1 | Labs Folder
2 | ===========
3 | The code in the labs folder is experimental. It may change, it hasn't been thoroughly tested, use at your own risk.
4 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/labs/desktopCapture.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/api/labs/desktopCapture.zip
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/labs/desktop_capture_iframe_version.js:
--------------------------------------------------------------------------------
1 |
2 | // This file is a modification of Muaz Khan's getScreenId.js. It uses loads an iframe
3 | // pointed at Muaz Khan's page, and then communicates with that Iframe. You can also point
4 | // it at other urls.
5 | //
6 | // Technically, it is possible to desktop capture without iframes and for a production system.
7 | // However, this solution get will get you running with the minimal effort on your side.
8 | //
9 | // //
10 | //
11 | // // Last time updated at July 29, 2014, 08:32:23
12 | // Latest file can be found here: https://cdn.webrtc-experiment.com/getScreenId.js
13 |
14 | // Muaz Khan - www.MuazKhan.com
15 | // MIT License - www.WebRTC-Experiment.com/licence
16 | // Documentation - https://github.com/muaz-khan/WebRTC-Experiment/tree/master/getScreenId.js
17 | // Modified by Eric Davies Sept 1/ 2014.
18 | //
19 | // ______________
20 | // getScreenId.js
21 |
22 |
23 |
24 | (function() {
25 | /** Create a local media stream for desktop capture.
26 | * This will fail if a desktop capture extension is not installed.
27 | * not granting permission.
28 | * @param {function(Object)} successCallback - will be called with localmedia stream on success.
29 | * @param {function(String,String)} errorCallback - is called with an error code and error description.
30 | * @param {String} streamName - an optional name for the media source so you can use multiple cameras and screen share simultaneously.
31 | * @param {String} iframeUrl - an optional url for the iframe. The default is to use Muaz Khan's.
32 | * @example
33 | * easyrtc.initMediaSource(
34 | * function(mediastream){
35 | * easyrtc.setVideoObjectSrc( document.getElementById("mirrorVideo"), mediastream);
36 | * },
37 | * function(errorCode, errorText){
38 | * easyrtc.showError(errorCode, errorText);
39 | * });
40 | *
41 | */
42 | var iframeUrl = 'https://www.webrtc-experiment.com/getSourceId/';
43 |
44 | easyrtc.initDesktopStream= function(successCallback, failureCallback, streamName) {
45 | // for Firefox:
46 | // sourceId == 'firefox'
47 | // screen_constraints = {...}
48 |
49 |
50 |
51 | if (!!navigator.mozGetUserMedia) {
52 | easyrtc._presetMediaConstraints = {
53 | video: {
54 | mozMediaSource: 'window',
55 | mediaSource: 'window',
56 | maxWidth: 1920,
57 | maxHeight: 1080,
58 | minAspectRatio: 1.77
59 | },
60 | audio: false
61 | };
62 | easyrtc.initMediaSource(successCallback, failureCallback, streamName);
63 | return;
64 | }
65 |
66 | postMessage();
67 |
68 | var cb = function(event) {
69 | if (!event.data) return;
70 |
71 | if (event.data.chromeMediaSourceId) {
72 | window.removeEventListener("message", cb);
73 | if (event.data.chromeMediaSourceId === 'PermissionDeniedError') {
74 | failureCallback(easyrtc.errCodes.MEDIA_ERR, 'permission-denied');
75 | } else {
76 | easyrtc._presetMediaConstraints = {
77 | video: {
78 | mandatory: {
79 | chromeMediaSource:'desktop',
80 | chromeMediaSourceId: event.data.chromeMediaSourceId,
81 | maxWidth: 1920,
82 | maxHeight: 1080,
83 | minAspectRatio: 1.77
84 | }
85 | },
86 | audio: false
87 | }
88 | easyrtc.initMediaSource(successCallback, failureCallback, streamName);
89 | }
90 | }
91 |
92 | if (event.data.chromeExtensionStatus) {
93 | console.log("extension status is ", event.data.chromeExtensionStatus);
94 | }
95 | };
96 | easyrtc.desktopCaptureInstalled = null;
97 | window.addEventListener('message', cb);
98 | };
99 |
100 |
101 | var iframe = document.createElement('iframe');
102 |
103 | function postMessage() {
104 | if (!iframe.isLoaded) {
105 | setTimeout(postMessage, 100);
106 | return;
107 | }
108 |
109 | iframe.contentWindow.postMessage({
110 | captureSourceId: true
111 | }, '*');
112 | }
113 |
114 | iframe.onload = function() {
115 | iframe.isLoaded = true;
116 | };
117 |
118 | iframe.src = iframeUrl;
119 |
120 | iframe.style.display = 'none';
121 | (document.body || document.documentElement).appendChild(iframe);
122 | })();
--------------------------------------------------------------------------------
/thirdparty/easyrtc/api/labs/inline-installcode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
35 |
36 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/css/demo4.css:
--------------------------------------------------------------------------------
1 | #demoContainer {
2 | position:relative;
3 | }
4 | #connectControls {
5 | float:left;
6 | width:250px;
7 | text-align:center;
8 | border: 2px solid black;
9 | }
10 | #otherClients {
11 | height:200px;
12 | overflow-y:scroll;
13 | }
14 | #selfVideo {
15 | height:225px;
16 | width:300px;
17 | float:left;
18 | border:1px solid gray;
19 | margin-left:10px;
20 | }
21 | .callerVideoBox {
22 | position:relative;
23 | }
24 | .callerVideo {
25 | height:225px;
26 | width:300px;
27 | border:1px solid gray;
28 | margin-left:10px;
29 | }
30 | .easyrtc_closeButton {
31 | position:absolute;
32 | right:2px;
33 | background-color: transparent;
34 | background-image: url('../images/button_close.png');
35 | border:none;
36 | margin:0px;
37 | padding:0px;
38 | top:0px;
39 | width:56px;
40 | height:56px;
41 | z-index: 2;
42 | opacity:0.4;
43 | }
44 | .easyrtc_closeButton:hover {
45 | cursor: pointer;
46 | opacity:1;
47 | }
48 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/css/demo_audio_video_simple.css:
--------------------------------------------------------------------------------
1 | #demoContainer {
2 | position:relative;
3 | }
4 | #connectControls {
5 | float:left;
6 | width:250px;
7 | text-align:center;
8 | border: 2px solid black;
9 | }
10 | #otherClients {
11 | height:200px;
12 | overflow-y:scroll;
13 | }
14 | #selfVideo {
15 | height:225px;
16 | width:300px;
17 | float:left;
18 | border:1px solid gray;
19 | margin-left:10px;
20 | }
21 |
22 | #callerVideo {
23 | height:225px;
24 | width:300px;
25 | border:1px solid gray;
26 | margin-left:10px;
27 | }
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/css/demo_audio_video_simple_hd.css:
--------------------------------------------------------------------------------
1 | #demoContainer {
2 | position:relative;
3 | }
4 | #container {
5 | width:1330px;
6 | }
7 | .callButton {
8 | float:left;
9 | }
10 | #connectControls {
11 | float:left;
12 | }
13 | #otherClients {
14 | height:50px;
15 | }
16 | #selfVideo {
17 | volume: 0;
18 | position:absolute;
19 | left: 10px;
20 | top:10px;
21 | z-index: 2;
22 | opacity: 0.8;
23 | height:120px;
24 | width:160px;
25 | }
26 | #callerVideoBox {
27 | position:relative;
28 | border: 1px solid gray;
29 | }
30 | #callerVideo {
31 | height:720px;
32 | width:1280px;
33 | }
34 | .closeButton {
35 | position:absolute;
36 | right:2px;
37 | background-color: transparent;
38 | background-image: url('../images/button_close.png');
39 | border:none;
40 | margin:0px;
41 | padding:0px;
42 | top:0px;
43 | width:56px;
44 | height:56px;
45 | z-index: 2;
46 | opacity:0.4;
47 | }
48 | .closeButton:hover {
49 | cursor: pointer;
50 | opacity:1;
51 | }
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/css/demo_lowbandwidth.css:
--------------------------------------------------------------------------------
1 | #demoContainer {
2 | position:relative;
3 | }
4 | #connectControls {
5 | float:left;
6 | width:250px;
7 | text-align:center;
8 | border: 2px solid black;
9 | }
10 | #otherClients {
11 | height:200px;
12 | overflow-y:scroll;
13 | }
14 | #selfVideo {
15 | height:225px;
16 | width:300px;
17 | float:left;
18 | border:1px solid gray;
19 | margin-left:10px;
20 | }
21 |
22 | #callerVideo {
23 | height:225px;
24 | width:300px;
25 | border:1px solid gray;
26 | margin-left:10px;
27 | }
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/css/demo_room.css:
--------------------------------------------------------------------------------
1 |
2 | .transit {
3 | transition: left 1s, top 1s, right 1s, bottom 1s, width 1s, height 1s, transform 1s;
4 | -moz-transition: left 1s, top 1s, right 1s, bottom 1s, width 1s, height 1s, -moz-transform 1s;
5 | -webkit-transition: left 1s, top 1s, right 1s, bottom 1s, width 1s, height 1s, -webkit-transform 1s;
6 | -o-transition: left 1s, top 1s, right 1s, bottom 1s, width 1s, height 1s,-o-transform 1s;
7 | }
8 |
9 | .hidden {
10 | background-color: transparent;
11 | border-color: 2px solid blue;
12 | }
13 |
14 | .boxCommon {
15 | position:absolute;
16 | }
17 |
18 | .closeButton {
19 | display: none; /* hide the easyApp's close button because we have our own */
20 | }
21 |
22 | .thumbCommon {
23 | z-index:2;
24 | box-shadow: 5px 5px 5px #000000;
25 | }
26 |
27 | #controlArea {
28 | background-color: #ff8000;
29 | }
30 |
31 | body {
32 | background-color:#ffd0d0;
33 | margin-left:0px;
34 | margin-top:0px;
35 | }
36 |
37 | #killButton {
38 | opacity:0.7;
39 | }
40 |
41 | #killButton:hover {
42 | opacity:1.0;
43 | }
44 |
45 | #muteButton {
46 | opacity:0.7;
47 | }
48 |
49 | #muteButton:hover {
50 | opacity:1.0;
51 | }
52 |
53 | #textentryBox {
54 | border:2px solid #a0ffa0;
55 | border-radius:10px;
56 | z-index:5;
57 | position: absolute;
58 | background-color: #ffffff;
59 | box-shadow: 5px 5px 5px #000000;
60 | font-family: 'Courier New',Courier,monospace;
61 | }
62 |
63 | #textentryField {
64 | font-size:x-large;
65 | margin: 20px;
66 | }
67 |
68 | #textentrySubmit {
69 | font-size:larger;
70 | }
71 |
72 | #textentryCancel {
73 | font-size:larger;
74 | }
75 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/css/landing.css:
--------------------------------------------------------------------------------
1 | /*
2 | General CSS for easyrtc local landing site.
3 | Only general layout is here.
4 | Any CSS related directly to the operation of a demo is kept in another file.
5 | */
6 |
7 | body {
8 | background-image:url("../images/bg_light.png");
9 | font-family:Arial, Helvetica, sans-serif;
10 | }
11 |
12 | #container {
13 | width:960px;
14 | margin-left: auto;
15 | margin-right:auto;
16 |
17 | background-image:url("../images/bg_dark.png");
18 | background-color:black;
19 |
20 | border-color: #FF6600;
21 | border-width: 1px;
22 | border-style: solid;
23 | border-radius:10px;
24 | }
25 |
26 | #logo_easyrtc {
27 | margin-top:5px;
28 | margin-left:5px;
29 | }
30 | #logo_priologic {
31 | margin-top:5px;
32 | margin-right:5px;
33 | }
34 |
35 | #menu {
36 | text-align: right;
37 | clear: both;
38 | padding-bottom: 2px;
39 | padding-top: 2px;
40 | }
41 | .menu_item {
42 | display: inline;
43 | text-decoration: none;
44 | border-color: gray;
45 | border-width: 2px;
46 | border-style: outset;
47 | color: white;
48 | padding: 0px 3px 0px 3px;
49 | background-color: rgba(0,0,0,.4);
50 | }
51 | .menu_item:hover {
52 | border-style:inset;
53 | background-color: rgba(100,100,100,0);
54 | }
55 | .menu_link {
56 | text-decoration:none;
57 | }
58 | .menu_link:focus {
59 | text-decoration:underline;
60 | }
61 |
62 |
63 |
64 | #main {
65 | background-color:white;
66 | overflow:hidden;
67 | padding-left: 10px;
68 | padding-right: 10px;
69 | }
70 |
71 | #footer {
72 | font-size: small;
73 | padding: 5px;
74 | color:white;
75 | min-height:60px;
76 | }
77 | #footer p {
78 | margin: 0px;
79 | color:white;
80 | text-align:center;
81 | }
82 | #footer a {
83 | color:white;
84 | }
85 | #license {
86 | font-size: x-small;
87 | }
88 | #logo_priologic {
89 | float:left;
90 | padding-top: 10px;
91 | margin-right: 10px;
92 | }
93 | #logo_pb_easyrtc {
94 | float:right;
95 | margin-left: 10px;
96 | }
97 |
98 |
99 | .demo_table {
100 | border-collapse:collapse;
101 | border:1px solid gray;
102 | }
103 | .demo_table th{
104 | padding:3px;
105 | text-align:left;
106 | }
107 | .demo_table td{
108 | border-top:1px solid gray;
109 | padding:3px;
110 | }
111 | .demo_table #browser_note{
112 | text-align:center;
113 | font-size: smaller;
114 | color: gray;
115 | }
116 |
117 | hr {
118 | clear:both;
119 | }
120 |
121 | .prettyprint {
122 | white-space: pre-wrap;
123 | max-height:400px;
124 | overflow-y:scroll;
125 | }
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/demo_multiparty.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Multiparty Chatroom
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Send
24 | Cancel
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/demo_reconnect.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EasyRTC Demo: Reconnect
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | State = Unconnected
16 | verify connected
17 | manually disconnect
18 | manually connect
19 |
20 |
21 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/LICENSE:
--------------------------------------------------------------------------------
1 | Licenses for images In demo folder
2 | ----------------------------------
3 |
4 | Browser logos are copyright by their respective owner.
5 |
6 | Logos for Priologic Software Inc, and EasyRTC are owned by Priologic Software Inc.
7 |
8 | Permission is granted to use powered_by_easyrtc.png within your own application as long as it is not altered in any way.
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/bg_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/bg_dark.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/bg_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/bg_light.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/blank.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/blank.gif
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_chrome.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_chrome_canary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_chrome_canary.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_ff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_ff.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_ff_aurora.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_ff_aurora.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_ff_nightly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_ff_nightly.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_ie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_ie.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_opera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_opera.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_safari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_safari.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_status_fail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_status_fail.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_status_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_status_pass.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/br_status_warn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/br_status_warn.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/button_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/button_close.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/button_mute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/button_mute.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/button_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/button_refresh.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/button_unmute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/button_unmute.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/by_priologic_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/by_priologic_logo.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/cloud.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/easyrtc_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/easyrtc_logo.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/irongrip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/irongrip.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/powered_by_easyrtc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/powered_by_easyrtc.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/priologic_logo_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/priologic_logo_white.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/images/textEntry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/images/textEntry.png
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo4.js:
--------------------------------------------------------------------------------
1 | //
2 | //Copyright (c) 2015, Priologic Software Inc.
3 | //All rights reserved.
4 | //
5 | //Redistribution and use in source and binary forms, with or without
6 | //modification, are permitted provided that the following conditions are met:
7 | //
8 | // * Redistributions of source code must retain the above copyright notice,
9 | // this list of conditions and the following disclaimer.
10 | // * Redistributions in binary form must reproduce the above copyright
11 | // notice, this list of conditions and the following disclaimer in the
12 | // documentation and/or other materials provided with the distribution.
13 | //
14 | //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 | //ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 | //LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 | //CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | //SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 | //INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 | //CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 | //POSSIBILITY OF SUCH DAMAGE.
25 | //
26 | var selfEasyrtcid = "";
27 |
28 |
29 | function connect() {
30 | easyrtc.enableDebug(false);
31 | easyrtc.setRoomOccupantListener(convertListToButtons);
32 | easyrtc.easyApp("easyrtc.demo4", "selfVideo",
33 | ["callerVideo", "callerVideo2", "callerVideo3"], loginSuccess, loginFailure);
34 | }
35 |
36 |
37 | function clearConnectList() {
38 | otherClientDiv = document.getElementById('otherClients');
39 | while (otherClientDiv.hasChildNodes()) {
40 | otherClientDiv.removeChild(otherClientDiv.lastChild);
41 | }
42 | }
43 |
44 |
45 | function convertListToButtons (roomName, occupants, isPrimary) {
46 | clearConnectList();
47 | var otherClientDiv = document.getElementById('otherClients');
48 | for(var easyrtcid in occupants) {
49 | var button = document.createElement('button');
50 | button.onclick = function(easyrtcid) {
51 | return function() {
52 | performCall(easyrtcid);
53 | };
54 | }(easyrtcid);
55 |
56 | var label = document.createTextNode(easyrtcid);
57 | button.appendChild(label);
58 | otherClientDiv.appendChild(button);
59 | }
60 | }
61 |
62 |
63 | function performCall(otherEasyrtcid) {
64 | var acceptedCB = function(accepted, easyrtcid) {
65 | if( !accepted ) {
66 | alert("Sorry, your call to " + easyrtcid + " was rejected");
67 | }
68 | };
69 | var successCB = function() {};
70 | var failureCB = function() {};
71 | easyrtc.call(otherEasyrtcid, successCB, failureCB, acceptedCB);
72 | }
73 |
74 |
75 | function loginSuccess(easyrtcid) {
76 | selfEasyrtcid = easyrtcid;
77 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
78 | }
79 |
80 |
81 | function loginFailure(errorCode, message) {
82 | easyrtc.showError(errorCode, message);
83 | }
84 |
85 |
86 | // Sets calls so they are automatically accepted (this is default behaviour)
87 | easyrtc.setAcceptChecker(function(easyrtcid, callback) {
88 | callback(true);
89 | } );
90 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_audio_video_simple.js:
--------------------------------------------------------------------------------
1 | var selfEasyrtcid = "";
2 |
3 |
4 | function connect() {
5 | easyrtc.setVideoDims(640,480);
6 | easyrtc.setRoomOccupantListener(convertListToButtons);
7 | easyrtc.easyApp("easyrtc.audioVideoSimple", "selfVideo", ["callerVideo"], loginSuccess, loginFailure);
8 | }
9 |
10 |
11 | function clearConnectList() {
12 | var otherClientDiv = document.getElementById('otherClients');
13 | while (otherClientDiv.hasChildNodes()) {
14 | otherClientDiv.removeChild(otherClientDiv.lastChild);
15 | }
16 | }
17 |
18 |
19 | function convertListToButtons (roomName, data, isPrimary) {
20 | clearConnectList();
21 | var otherClientDiv = document.getElementById('otherClients');
22 | for(var easyrtcid in data) {
23 | var button = document.createElement('button');
24 | button.onclick = function(easyrtcid) {
25 | return function() {
26 | performCall(easyrtcid);
27 | };
28 | }(easyrtcid);
29 |
30 | var label = document.createTextNode(easyrtc.idToName(easyrtcid));
31 | button.appendChild(label);
32 | otherClientDiv.appendChild(button);
33 | }
34 | }
35 |
36 |
37 | function performCall(otherEasyrtcid) {
38 | easyrtc.hangupAll();
39 |
40 | var successCB = function() {};
41 | var failureCB = function() {};
42 | easyrtc.call(otherEasyrtcid, successCB, failureCB);
43 | }
44 |
45 |
46 | function loginSuccess(easyrtcid) {
47 | selfEasyrtcid = easyrtcid;
48 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
49 | }
50 |
51 |
52 | function loginFailure(errorCode, message) {
53 | easyrtc.showError(errorCode, message);
54 | }
55 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_audio_video_simple_hd.js:
--------------------------------------------------------------------------------
1 | //
2 | //Copyright (c) 2015, Priologic Software Inc.
3 | //All rights reserved.
4 | //
5 | //Redistribution and use in source and binary forms, with or without
6 | //modification, are permitted provided that the following conditions are met:
7 | //
8 | // * Redistributions of source code must retain the above copyright notice,
9 | // this list of conditions and the following disclaimer.
10 | // * Redistributions in binary form must reproduce the above copyright
11 | // notice, this list of conditions and the following disclaimer in the
12 | // documentation and/or other materials provided with the distribution.
13 | //
14 | //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 | //ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 | //LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 | //CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | //SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 | //INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 | //CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 | //POSSIBILITY OF SUCH DAMAGE.
25 | //
26 | var selfEasyrtcid = "";
27 |
28 |
29 | function connect() {
30 | easyrtc.setVideoDims(1280,720);
31 | easyrtc.enableDebug(false);
32 | easyrtc.setRoomOccupantListener(convertListToButtons);
33 | easyrtc.easyApp("easyrtc.videoChatHd", "selfVideo", ["callerVideo"], loginSuccess, loginFailure);
34 | }
35 |
36 |
37 | function clearConnectList() {
38 | var otherClientDiv = document.getElementById('otherClients');
39 | while (otherClientDiv.hasChildNodes()) {
40 | otherClientDiv.removeChild(otherClientDiv.lastChild);
41 | }
42 | }
43 |
44 |
45 | function convertListToButtons (roomName, data, isPrimary) {
46 | clearConnectList();
47 | var otherClientDiv = document.getElementById('otherClients');
48 | for(var easyrtcid in data) {
49 | var button = document.createElement('button');
50 | button.onclick = function(easyrtcid) {
51 | return function() {
52 | performCall(easyrtcid);
53 | };
54 | }(easyrtcid);
55 |
56 | var label = document.createTextNode(easyrtc.idToName(easyrtcid));
57 | button.appendChild(label);
58 | button.className = "callbutton";
59 | otherClientDiv.appendChild(button);
60 | }
61 | }
62 |
63 |
64 | function performCall(otherEasyrtcid) {
65 | easyrtc.hangupAll();
66 | var acceptedCB = function(accepted, caller) {
67 | if( !accepted ) {
68 | easyrtc.showError("CALL-REJECTED", "Sorry, your call to " + easyrtc.idToName(caller) + " was rejected");
69 | }
70 | };
71 | var successCB = function() {};
72 | var failureCB = function() {};
73 | easyrtc.call(otherEasyrtcid, successCB, failureCB, acceptedCB);
74 | }
75 |
76 |
77 | function loginSuccess(easyrtcid) {
78 | selfEasyrtcid = easyrtcid;
79 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
80 | }
81 |
82 |
83 | function loginFailure(errorCode, message) {
84 | easyrtc.showError(errorCode, message);
85 | }
86 |
87 |
88 | // Sets calls so they are automatically accepted (this is default behaviour)
89 | easyrtc.setAcceptChecker(function(caller, cb) {
90 | cb(true);
91 | } );
92 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_connector.js:
--------------------------------------------------------------------------------
1 | var selfEasyrtcid = "";
2 |
3 |
4 | function connect() {
5 | easyrtc.setVideoDims(640,480);
6 | easyrtc.setRoomOccupantListener(convertListToButtons);
7 | easyrtc.easyApp("easyrtc.audioVideoSimple", "selfVideo", ["callerVideo"], loginSuccess, loginFailure);
8 | }
9 |
10 |
11 | function clearConnectList() {
12 | var otherClientDiv = document.getElementById('otherClients');
13 | while (otherClientDiv.hasChildNodes()) {
14 | otherClientDiv.removeChild(otherClientDiv.lastChild);
15 | }
16 | }
17 |
18 |
19 | function convertListToButtons (roomName, data, isPrimary) {
20 | clearConnectList();
21 | var otherClientDiv = document.getElementById('otherClients');
22 | for(var easyrtcid in data) {
23 | var button = document.createElement('button');
24 | button.onclick = function(easyrtcid) {
25 | return function() {
26 | performCall(easyrtcid);
27 | };
28 | }(easyrtcid);
29 |
30 | var label = document.createTextNode(easyrtc.idToName(easyrtcid));
31 | button.appendChild(label);
32 | otherClientDiv.appendChild(button);
33 | }
34 | }
35 |
36 |
37 | function performCall(otherEasyrtcid) {
38 | easyrtc.hangupAll();
39 |
40 | var successCB = function() {};
41 | var failureCB = function() {};
42 | easyrtc.call(otherEasyrtcid, successCB, failureCB);
43 | }
44 |
45 |
46 | function loginSuccess(easyrtcid) {
47 | selfEasyrtcid = easyrtcid;
48 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
49 | }
50 |
51 |
52 | function loginFailure(errorCode, message) {
53 | easyrtc.showError(errorCode, message);
54 | }
55 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_ice_filter.js:
--------------------------------------------------------------------------------
1 | var selfEasyrtcid = "";
2 |
3 |
4 | function connect() {
5 | easyrtc.setRoomOccupantListener(convertListToButtons);
6 | easyrtc.easyApp("easyrtc.iceFilter", "selfVideo", ["callerVideo"], loginSuccess, loginFailure);
7 | }
8 |
9 |
10 | function clearConnectList() {
11 | var otherClientDiv = document.getElementById('otherClients');
12 | while (otherClientDiv.hasChildNodes()) {
13 | otherClientDiv.removeChild(otherClientDiv.lastChild);
14 | }
15 | }
16 |
17 |
18 | function convertListToButtons (roomName, data, isPrimary) {
19 | clearConnectList();
20 | var otherClientDiv = document.getElementById('otherClients');
21 | for(var easyrtcid in data) {
22 | var button = document.createElement('button');
23 | button.onclick = function(easyrtcid) {
24 | return function() {
25 | performCall(easyrtcid);
26 | };
27 | }(easyrtcid);
28 |
29 | var label = document.createTextNode(easyrtc.idToName(easyrtcid));
30 | button.appendChild(label);
31 | otherClientDiv.appendChild(button);
32 | }
33 | }
34 |
35 |
36 | function performCall(otherEasyrtcid) {
37 | easyrtc.hangupAll();
38 | easyrtc.setIceUsedInCalls( getModifiedIceList());
39 | var successCB = function() {};
40 | var failureCB = function() {};
41 | easyrtc.call(otherEasyrtcid, successCB, failureCB);
42 | }
43 |
44 |
45 |
46 |
47 |
48 | var iceMap = [];
49 |
50 | function getModifiedIceList(){
51 | var iceList = [];
52 | var i;
53 |
54 | for( i = 0; i < iceMap.length; i++ ) {
55 | if( document.getElementById("iscb" + i).checked ) {
56 | iceList.push( iceMap[i]);
57 | }
58 | }
59 | return {iceServers: iceList};
60 | }
61 |
62 |
63 | function loginSuccess(easyrtcid) {
64 | var i;
65 |
66 | selfEasyrtcid = easyrtcid;
67 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
68 | var blockentries = "Ice Entries ";
69 | var iceServers = easyrtc.getServerIce();
70 | for(i = 0; i < iceServers.iceServers.length; i++ ) {
71 | iceMap[i] = iceServers.iceServers[i];
72 | var label = "iscb" + i;
73 | blockentries += ' ' + iceServers.iceServers[i].url + '>
';
75 |
76 | }
77 | document.getElementById("iceEntries").innerHTML = blockentries;
78 |
79 | }
80 |
81 |
82 | function loginFailure(errorCode, message) {
83 | easyrtc.showError(errorCode, message);
84 | }
85 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_instant_messaging.js:
--------------------------------------------------------------------------------
1 | //
2 | //Copyright (c) 2015, Priologic Software Inc.
3 | //All rights reserved.
4 | //
5 | //Redistribution and use in source and binary forms, with or without
6 | //modification, are permitted provided that the following conditions are met:
7 | //
8 | // * Redistributions of source code must retain the above copyright notice,
9 | // this list of conditions and the following disclaimer.
10 | // * Redistributions in binary form must reproduce the above copyright
11 | // notice, this list of conditions and the following disclaimer in the
12 | // documentation and/or other materials provided with the distribution.
13 | //
14 | //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 | //ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 | //LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 | //CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | //SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 | //INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 | //CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 | //POSSIBILITY OF SUCH DAMAGE.
25 | //
26 | var selfEasyrtcid = "";
27 | function addToConversation(who, msgType, content) {
28 | // Escape html special characters, then add linefeeds.
29 | content = content.replace(/&/g,'&').replace(//g,'>');
30 | content = content.replace(/\n/g, ' ');
31 | document.getElementById('conversation').innerHTML +=
32 | "" + who + ": " + content + " ";
33 | }
34 |
35 |
36 | function connect() {
37 | easyrtc.setPeerListener(addToConversation);
38 | easyrtc.setRoomOccupantListener(convertListToButtons);
39 | easyrtc.connect("easyrtc.instantMessaging", loginSuccess, loginFailure);
40 | }
41 |
42 |
43 | function convertListToButtons (roomName, occupants, isPrimary) {
44 | var otherClientDiv = document.getElementById('otherClients');
45 | while (otherClientDiv.hasChildNodes()) {
46 | otherClientDiv.removeChild(otherClientDiv.lastChild);
47 | }
48 |
49 | for(var easyrtcid in occupants) {
50 | var button = document.createElement('button');
51 | button.onclick = function(easyrtcid) {
52 | return function() {
53 | sendStuffWS(easyrtcid);
54 | };
55 | }(easyrtcid);
56 | var label = document.createTextNode("Send to " + easyrtc.idToName(easyrtcid));
57 | button.appendChild(label);
58 |
59 | otherClientDiv.appendChild(button);
60 | }
61 | if( !otherClientDiv.hasChildNodes() ) {
62 | otherClientDiv.innerHTML = "Nobody else logged in to talk to... ";
63 | }
64 | }
65 |
66 |
67 | function sendStuffWS(otherEasyrtcid) {
68 | var text = document.getElementById('sendMessageText').value;
69 | if(text.replace(/\s/g, "").length === 0) { // Don't send just whitespace
70 | return;
71 | }
72 |
73 | easyrtc.sendDataWS(otherEasyrtcid, "message", text);
74 | addToConversation("Me", "message", text);
75 | document.getElementById('sendMessageText').value = "";
76 | }
77 |
78 |
79 | function loginSuccess(easyrtcid) {
80 | selfEasyrtcid = easyrtcid;
81 | document.getElementById("iam").innerHTML = "I am " + easyrtcid;
82 | }
83 |
84 |
85 | function loginFailure(errorCode, message) {
86 | easyrtc.showError(errorCode, message);
87 | }
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_instant_messaging_selfconnect.js:
--------------------------------------------------------------------------------
1 | //
2 | //Copyright (c) 2015, Priologic Software Inc.
3 | //All rights reserved.
4 | //
5 | //Redistribution and use in source and binary forms, with or without
6 | //modification, are permitted provided that the following conditions are met:
7 | //
8 | // * Redistributions of source code must retain the above copyright notice,
9 | // this list of conditions and the following disclaimer.
10 | // * Redistributions in binary form must reproduce the above copyright
11 | // notice, this list of conditions and the following disclaimer in the
12 | // documentation and/or other materials provided with the distribution.
13 | //
14 | //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 | //ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 | //LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 | //CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | //SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 | //INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 | //CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 | //POSSIBILITY OF SUCH DAMAGE.
25 | //
26 | var selfEasyrtcid = "";
27 | function addToConversation(who, msgType, content) {
28 | // Escape html special characters, then add linefeeds.
29 | content = content.replace(/&/g,'&').replace(//g,'>');
30 | content = content.replace(/\n/g, ' ');
31 | document.getElementById('conversation').innerHTML +=
32 | "" + who + ": " + content + " ";
33 | }
34 |
35 |
36 |
37 | function connect(immediateMode) {
38 | easyrtc.setPeerListener(addToConversation);
39 | easyrtc.setRoomOccupantListener(convertListToButtons);
40 |
41 | var mysocket = io.connect(null, {
42 | 'connect timeout': 10000,
43 | 'force new connection': true
44 | });
45 |
46 |
47 | if (!mysocket) {
48 | throw "io.connect failed";
49 | }
50 | else {
51 | console.log("application allocated socket ", mysocket);
52 | easyrtc.useThisSocketConnection(mysocket);
53 | }
54 | if( immediateMode) {
55 | easyrtc.connect("easyrtc.reconnect", loginSuccess, loginFailure);
56 | }
57 | else {
58 | setTimeout(function() {
59 | easyrtc.connect("easyrtc.reconnect", loginSuccess, loginFailure);
60 | }, 10*1000);
61 | }
62 | }
63 |
64 |
65 | function convertListToButtons (roomName, occupants, isPrimary) {
66 | var otherClientDiv = document.getElementById('otherClients');
67 | while (otherClientDiv.hasChildNodes()) {
68 | otherClientDiv.removeChild(otherClientDiv.lastChild);
69 | }
70 |
71 | for(var easyrtcid in occupants) {
72 | var button = document.createElement('button');
73 | button.onclick = function(easyrtcid) {
74 | return function() {
75 | sendStuffWS(easyrtcid);
76 | };
77 | }(easyrtcid);
78 | var label = document.createTextNode("Send to " + easyrtc.idToName(easyrtcid));
79 | button.appendChild(label);
80 |
81 | otherClientDiv.appendChild(button);
82 | }
83 | if( !otherClientDiv.hasChildNodes() ) {
84 | otherClientDiv.innerHTML = "Nobody else logged in to talk to... ";
85 | }
86 | }
87 |
88 |
89 | function sendStuffWS(otherEasyrtcid) {
90 | var text = document.getElementById('sendMessageText').value;
91 | if(text.replace(/\s/g, "").length === 0) { // Don't send just whitespace
92 | return;
93 | }
94 |
95 | easyrtc.sendDataWS(otherEasyrtcid, "message", text);
96 | addToConversation("Me", "message", text);
97 | document.getElementById('sendMessageText').value = "";
98 | }
99 |
100 |
101 | function loginSuccess(easyrtcid) {
102 | selfEasyrtcid = easyrtcid;
103 | document.getElementById("iam").innerHTML = "I am " + easyrtcid;
104 | document.getElementById("buttonImmediate").enabled = false;
105 | document.getElementById("buttonDelayed").enabled = false;
106 | }
107 |
108 |
109 | function loginFailure(errorCode, message) {
110 | easyrtc.showError(errorCode, message);
111 | }
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_lowbandwidth.js:
--------------------------------------------------------------------------------
1 | var selfEasyrtcid = "";
2 |
3 |
4 | function connect() {
5 |
6 | var localFilter = easyrtc.buildLocalSdpFilter( {
7 | audioRecvBitrate:20, videoRecvBitrate:30
8 | });
9 | var remoteFilter = easyrtc.buildRemoteSdpFilter({
10 | audioSendBitrate: 20, videoSendBitrate:30
11 | });
12 | easyrtc.setSdpFilters(localFilter, remoteFilter);
13 | easyrtc.setRoomOccupantListener(convertListToButtons);
14 | easyrtc.easyApp("easyrtc.lowbandwidth", "selfVideo", ["callerVideo"], loginSuccess, loginFailure);
15 | }
16 |
17 |
18 | function clearConnectList() {
19 | var otherClientDiv = document.getElementById('otherClients');
20 | while (otherClientDiv.hasChildNodes()) {
21 | otherClientDiv.removeChild(otherClientDiv.lastChild);
22 | }
23 | }
24 |
25 |
26 | function convertListToButtons (roomName, data, isPrimary) {
27 | clearConnectList();
28 | var otherClientDiv = document.getElementById('otherClients');
29 | for(var easyrtcid in data) {
30 | var button = document.createElement('button');
31 | button.onclick = function(easyrtcid) {
32 | return function() {
33 | performCall(easyrtcid);
34 | };
35 | }(easyrtcid);
36 |
37 | var label = document.createTextNode(easyrtc.idToName(easyrtcid));
38 | button.appendChild(label);
39 | otherClientDiv.appendChild(button);
40 | }
41 | }
42 |
43 |
44 | function performCall(otherEasyrtcid) {
45 | easyrtc.hangupAll();
46 |
47 | var successCB = function() {};
48 | var failureCB = function() {};
49 | easyrtc.call(otherEasyrtcid, successCB, failureCB);
50 | }
51 |
52 |
53 | function loginSuccess(easyrtcid) {
54 | selfEasyrtcid = easyrtcid;
55 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
56 | }
57 |
58 |
59 | function loginFailure(errorCode, message) {
60 | easyrtc.showError(errorCode, message);
61 | }
62 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/demo_reconnect.js:
--------------------------------------------------------------------------------
1 | //
2 | //Copyright (c) 2015, Priologic Software Inc.
3 | //All rights reserved.
4 | //
5 | //Redistribution and use in source and binary forms, with or without
6 | //modification, are permitted provided that the following conditions are met:
7 | //
8 | // * Redistributions of source code must retain the above copyright notice,
9 | // this list of conditions and the following disclaimer.
10 | // * Redistributions in binary form must reproduce the above copyright
11 | // notice, this list of conditions and the following disclaimer in the
12 | // documentation and/or other materials provided with the distribution.
13 | //
14 | //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 | //ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 | //LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 | //CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | //SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 | //INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 | //CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 | //POSSIBILITY OF SUCH DAMAGE.
25 | //
26 | var selfEasyrtcid = "";
27 |
28 |
29 |
30 | function initApp() {
31 | console.log("Initializing.");
32 | easyrtc.enableVideo(false);
33 | easyrtc.enableAudio(false);
34 | connect();
35 | }
36 |
37 | function connect() {
38 | easyrtc.connect("easyrtc.reconnect", loginSuccess, loginFailure);
39 | }
40 |
41 | function disconnect() {
42 | easyrtc.disconnect();
43 | }
44 |
45 | easyrtc.enableDebug(true);
46 |
47 | easyrtc.setDisconnectListener(function() {
48 | easyrtc.showError("xx", "saw disconnect");
49 | });
50 |
51 |
52 | function sendDummy() {
53 | easyrtc.getRoomList(
54 | function() {
55 | easyrtc.showError("xx", "got fresh roomlist");
56 | },
57 | function(){
58 | easyrtc.showError("xx", "failed on fresh roomlist");
59 | });
60 | }
61 |
62 | function loginSuccess(easyrtcid) {
63 | document.getElementById("stateLabel").innerHTML = " connected as " + easyrtcid;
64 | easyrtc.showError("xx", "login success");
65 | }
66 |
67 |
68 | function loginFailure(errorCode, message) {
69 | document.getElementById("stateLabel").innerHTML = "disconnected";
70 | easyrtc.showError("xx", "login failure");
71 | }
72 |
73 |
74 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/prettify/lang-css.js:
--------------------------------------------------------------------------------
1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/prettify/lang-sql.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/js/prettify/lang-sql.js
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/prettify/lang-vhdl.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/demos/js/prettify/lang-vhdl.js
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/prettify/lang-yaml.js:
--------------------------------------------------------------------------------
1 | var a=null;
2 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]);
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/demos/js/prettify/prettify.css:
--------------------------------------------------------------------------------
1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/dictionary/project.dic:
--------------------------------------------------------------------------------
1 | abcd
2 | ackhandler
3 | acks
4 | audiovideo
5 | badsocket
6 | bitrate
7 | codec
8 | composited
9 | conns
10 | datachannel
11 | dest
12 | dont
13 | dtls
14 | easyrtc
15 | easyrtcid
16 | easyrtcids
17 | easyrtcid's
18 | easyrtcsid
19 | freds
20 | getusermedia
21 | goog
22 | icecandidate
23 | inboundrtp
24 | interop
25 | jsonable
26 | kbit
27 | kbits
28 | localmedia
29 | mediastream
30 | nable
31 | minified
32 | mozilla
33 | onaddstream
34 | onclose
35 | onconnect
36 | onconnection
37 | ondatachannel
38 | onicecandidate
39 | oniceconnectionstatechange
40 | onidentityresult
41 | onidpassertionerror
42 | onidpvalidationerror
43 | onmessage
44 | onnegotiationneeded
45 | onopen
46 | onpeeridentity
47 | onremovestream
48 | onsignalingstatechange
49 | outboundrtp
50 | parm
51 | preallocated
52 | printf
53 | priologic
54 | programmatically
55 | rtcp
56 | sipgate
57 | srtp
58 | unmute
59 | webcam
60 | webrtc
61 | websocket
62 | websockets
63 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/readme.md:
--------------------------------------------------------------------------------
1 | EasyRTC Dev Folder
2 | ==================
3 |
4 | Any files used strictly by the EasyRTC dev team is kept here. This includes release scripts, dev tests, dictionary words, and dev-only documentation.
5 |
6 | Nothing here should be needed by end users.
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/README.md:
--------------------------------------------------------------------------------
1 | The default template for JSDoc 3 uses: [the Taffy Database library](http://taffydb.com/) and the [Underscore Template library](http://documentcloud.github.com/underscore/#template).
2 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/static/scripts/prettify/lang-css.js:
--------------------------------------------------------------------------------
1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/static/styles/prettify-jsdoc.css:
--------------------------------------------------------------------------------
1 | /* JSDoc prettify.js theme */
2 |
3 | /* plain text */
4 | .pln {
5 | color: #000000;
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 |
10 | /* string content */
11 | .str {
12 | color: #006400;
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
17 | /* a keyword */
18 | .kwd {
19 | color: #000000;
20 | font-weight: bold;
21 | font-style: normal;
22 | }
23 |
24 | /* a comment */
25 | .com {
26 | font-weight: normal;
27 | font-style: italic;
28 | }
29 |
30 | /* a type name */
31 | .typ {
32 | color: #000000;
33 | font-weight: normal;
34 | font-style: normal;
35 | }
36 |
37 | /* a literal value */
38 | .lit {
39 | color: #006400;
40 | font-weight: normal;
41 | font-style: normal;
42 | }
43 |
44 | /* punctuation */
45 | .pun {
46 | color: #000000;
47 | font-weight: bold;
48 | font-style: normal;
49 | }
50 |
51 | /* lisp open bracket */
52 | .opn {
53 | color: #000000;
54 | font-weight: bold;
55 | font-style: normal;
56 | }
57 |
58 | /* lisp close bracket */
59 | .clo {
60 | color: #000000;
61 | font-weight: bold;
62 | font-style: normal;
63 | }
64 |
65 | /* a markup tag name */
66 | .tag {
67 | color: #006400;
68 | font-weight: normal;
69 | font-style: normal;
70 | }
71 |
72 | /* a markup attribute name */
73 | .atn {
74 | color: #006400;
75 | font-weight: normal;
76 | font-style: normal;
77 | }
78 |
79 | /* a markup attribute value */
80 | .atv {
81 | color: #006400;
82 | font-weight: normal;
83 | font-style: normal;
84 | }
85 |
86 | /* a declaration */
87 | .dec {
88 | color: #000000;
89 | font-weight: bold;
90 | font-style: normal;
91 | }
92 |
93 | /* a variable name */
94 | .var {
95 | color: #000000;
96 | font-weight: normal;
97 | font-style: normal;
98 | }
99 |
100 | /* a function name */
101 | .fun {
102 | color: #000000;
103 | font-weight: bold;
104 | font-style: normal;
105 | }
106 |
107 | /* Specify class=linenums on a pre to get line numbering */
108 | ol.linenums {
109 | margin-top: 0;
110 | margin-bottom: 0;
111 | }
112 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/static/styles/prettify-tomorrow.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Theme */
2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3 | /* Pretty printing styles. Used with prettify.js. */
4 | /* SPAN elements with the classes below are added by prettyprint. */
5 | /* plain text */
6 | .pln {
7 | color: #4d4d4c; }
8 |
9 | @media screen {
10 | /* string content */
11 | .str {
12 | color: #718c00; }
13 |
14 | /* a keyword */
15 | .kwd {
16 | color: #8959a8; }
17 |
18 | /* a comment */
19 | .com {
20 | color: #8e908c; }
21 |
22 | /* a type name */
23 | .typ {
24 | color: #4271ae; }
25 |
26 | /* a literal value */
27 | .lit {
28 | color: #f5871f; }
29 |
30 | /* punctuation */
31 | .pun {
32 | color: #4d4d4c; }
33 |
34 | /* lisp open bracket */
35 | .opn {
36 | color: #4d4d4c; }
37 |
38 | /* lisp close bracket */
39 | .clo {
40 | color: #4d4d4c; }
41 |
42 | /* a markup tag name */
43 | .tag {
44 | color: #c82829; }
45 |
46 | /* a markup attribute name */
47 | .atn {
48 | color: #f5871f; }
49 |
50 | /* a markup attribute value */
51 | .atv {
52 | color: #3e999f; }
53 |
54 | /* a declaration */
55 | .dec {
56 | color: #f5871f; }
57 |
58 | /* a variable name */
59 | .var {
60 | color: #c82829; }
61 |
62 | /* a function name */
63 | .fun {
64 | color: #4271ae; } }
65 | /* Use higher contrast and text-weight for printable form. */
66 | @media print, projection {
67 | .str {
68 | color: #060; }
69 |
70 | .kwd {
71 | color: #006;
72 | font-weight: bold; }
73 |
74 | .com {
75 | color: #600;
76 | font-style: italic; }
77 |
78 | .typ {
79 | color: #404;
80 | font-weight: bold; }
81 |
82 | .lit {
83 | color: #044; }
84 |
85 | .pun, .opn, .clo {
86 | color: #440; }
87 |
88 | .tag {
89 | color: #006;
90 | font-weight: bold; }
91 |
92 | .atn {
93 | color: #404; }
94 |
95 | .atv {
96 | color: #060; } }
97 | /* Style */
98 | /*
99 | pre.prettyprint {
100 | background: white;
101 | font-family: Menlo, Monaco, Consolas, monospace;
102 | font-size: 12px;
103 | line-height: 1.5;
104 | border: 1px solid #ccc;
105 | padding: 10px; }
106 | */
107 |
108 | /* Specify class=linenums on a pre to get line numbering */
109 | ol.linenums {
110 | margin-top: 0;
111 | margin-bottom: 0; }
112 |
113 | /* IE indents via margin-left */
114 | li.L0,
115 | li.L1,
116 | li.L2,
117 | li.L3,
118 | li.L4,
119 | li.L5,
120 | li.L6,
121 | li.L7,
122 | li.L8,
123 | li.L9 {
124 | /* */ }
125 |
126 | /* Alternate shading for lines */
127 | li.L1,
128 | li.L3,
129 | li.L5,
130 | li.L7,
131 | li.L9 {
132 | /* */ }
133 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/container.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Extends
17 |
18 |
21 |
22 |
23 |
24 | Mixes In
25 |
26 |
29 |
30 |
31 |
32 | Requires
33 |
34 |
37 |
38 |
39 |
43 | Classes
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
55 | Namespaces
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
67 |
68 |
69 | Members
70 |
71 |
72 |
73 |
74 |
75 |
76 |
80 |
81 | Methods
82 |
83 |
84 |
85 |
86 |
87 |
88 |
92 | Type Definitions
93 |
94 |
97 |
98 |
102 |
103 |
106 |
107 |
108 |
112 | Events
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/details.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
10 |
11 | Properties:
12 |
13 |
14 |
15 |
16 |
17 |
18 | Version:
19 |
20 |
21 |
22 |
23 | Since:
24 |
25 |
26 |
27 |
28 | Inherited From:
29 |
32 |
33 |
34 |
35 | Deprecated:
39 |
40 |
41 |
42 | Author:
43 |
44 |
47 |
48 |
49 |
50 |
51 | Copyright:
52 |
53 |
54 |
55 |
56 | License:
57 |
58 |
59 |
60 |
61 | Default Value:
62 |
63 |
64 |
65 |
66 |
67 |
68 | Tutorials:
69 |
70 |
73 |
74 |
75 |
76 |
77 | See:
78 |
79 |
82 |
83 |
84 |
85 |
86 | To Do:
87 |
88 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/example.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/examples.tmpl:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/exceptions.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Type
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/fires.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/layout.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | EasyRTC Client JsDocs
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Client API - Class easyrtc
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | Documentation generated by JSDoc on
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/mainpage.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/members.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | Example 1? 's':'' ?>
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/method.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | Type:
22 |
27 |
28 |
29 |
30 | This:
31 |
32 |
33 |
34 |
35 | Parameters:
36 |
37 |
38 |
39 |
40 |
41 |
42 | Fires:
43 |
46 |
47 |
48 |
49 | Throws:
50 | 1) { ?>
56 |
57 |
59 |
60 |
61 | Returns:
62 | 1) { ?>
68 |
69 |
71 |
72 |
73 | Example 1? 's':'' ?>
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/params.tmpl:
--------------------------------------------------------------------------------
1 |
40 |
41 |
42 |
43 |
44 |
45 | Name
46 |
47 |
48 | Type
49 |
50 |
51 | Argument
52 |
53 |
54 |
55 | Default
56 |
57 |
58 | Description
59 |
60 |
61 |
62 |
63 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | <optional>
84 |
85 |
86 |
87 | <nullable>
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | Properties
102 |
103 |
104 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/properties.tmpl:
--------------------------------------------------------------------------------
1 |
40 |
41 |
42 |
43 |
44 |
45 | Name
46 |
47 |
48 | Type
49 |
50 |
51 | Argument
52 |
53 |
54 |
55 | Default
56 |
57 |
58 | Description
59 |
60 |
61 |
62 |
63 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | <optional>
84 |
85 |
86 |
87 | <nullable>
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | Properties
102 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/returns.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Type
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/source.tmpl:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/tutorial.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0) { ?>
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates/tmpl/type.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 | |
7 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/README.md:
--------------------------------------------------------------------------------
1 | The default template for JSDoc 3 uses: [the Taffy Database library](http://taffydb.com/) and the [Underscore Template library](http://documentcloud.github.com/underscore/#template).
2 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/static/scripts/prettify/lang-css.js:
--------------------------------------------------------------------------------
1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/static/styles/prettify-jsdoc.css:
--------------------------------------------------------------------------------
1 | /* JSDoc prettify.js theme */
2 |
3 | /* plain text */
4 | .pln {
5 | color: #000000;
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 |
10 | /* string content */
11 | .str {
12 | color: #006400;
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
17 | /* a keyword */
18 | .kwd {
19 | color: #000000;
20 | font-weight: bold;
21 | font-style: normal;
22 | }
23 |
24 | /* a comment */
25 | .com {
26 | font-weight: normal;
27 | font-style: italic;
28 | }
29 |
30 | /* a type name */
31 | .typ {
32 | color: #000000;
33 | font-weight: normal;
34 | font-style: normal;
35 | }
36 |
37 | /* a literal value */
38 | .lit {
39 | color: #006400;
40 | font-weight: normal;
41 | font-style: normal;
42 | }
43 |
44 | /* punctuation */
45 | .pun {
46 | color: #000000;
47 | font-weight: bold;
48 | font-style: normal;
49 | }
50 |
51 | /* lisp open bracket */
52 | .opn {
53 | color: #000000;
54 | font-weight: bold;
55 | font-style: normal;
56 | }
57 |
58 | /* lisp close bracket */
59 | .clo {
60 | color: #000000;
61 | font-weight: bold;
62 | font-style: normal;
63 | }
64 |
65 | /* a markup tag name */
66 | .tag {
67 | color: #006400;
68 | font-weight: normal;
69 | font-style: normal;
70 | }
71 |
72 | /* a markup attribute name */
73 | .atn {
74 | color: #006400;
75 | font-weight: normal;
76 | font-style: normal;
77 | }
78 |
79 | /* a markup attribute value */
80 | .atv {
81 | color: #006400;
82 | font-weight: normal;
83 | font-style: normal;
84 | }
85 |
86 | /* a declaration */
87 | .dec {
88 | color: #000000;
89 | font-weight: bold;
90 | font-style: normal;
91 | }
92 |
93 | /* a variable name */
94 | .var {
95 | color: #000000;
96 | font-weight: normal;
97 | font-style: normal;
98 | }
99 |
100 | /* a function name */
101 | .fun {
102 | color: #000000;
103 | font-weight: bold;
104 | font-style: normal;
105 | }
106 |
107 | /* Specify class=linenums on a pre to get line numbering */
108 | ol.linenums {
109 | margin-top: 0;
110 | margin-bottom: 0;
111 | }
112 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/static/styles/prettify-tomorrow.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Theme */
2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3 | /* Pretty printing styles. Used with prettify.js. */
4 | /* SPAN elements with the classes below are added by prettyprint. */
5 | /* plain text */
6 | .pln {
7 | color: #4d4d4c; }
8 |
9 | @media screen {
10 | /* string content */
11 | .str {
12 | color: #718c00; }
13 |
14 | /* a keyword */
15 | .kwd {
16 | color: #8959a8; }
17 |
18 | /* a comment */
19 | .com {
20 | color: #8e908c; }
21 |
22 | /* a type name */
23 | .typ {
24 | color: #4271ae; }
25 |
26 | /* a literal value */
27 | .lit {
28 | color: #f5871f; }
29 |
30 | /* punctuation */
31 | .pun {
32 | color: #4d4d4c; }
33 |
34 | /* lisp open bracket */
35 | .opn {
36 | color: #4d4d4c; }
37 |
38 | /* lisp close bracket */
39 | .clo {
40 | color: #4d4d4c; }
41 |
42 | /* a markup tag name */
43 | .tag {
44 | color: #c82829; }
45 |
46 | /* a markup attribute name */
47 | .atn {
48 | color: #f5871f; }
49 |
50 | /* a markup attribute value */
51 | .atv {
52 | color: #3e999f; }
53 |
54 | /* a declaration */
55 | .dec {
56 | color: #f5871f; }
57 |
58 | /* a variable name */
59 | .var {
60 | color: #c82829; }
61 |
62 | /* a function name */
63 | .fun {
64 | color: #4271ae; } }
65 | /* Use higher contrast and text-weight for printable form. */
66 | @media print, projection {
67 | .str {
68 | color: #060; }
69 |
70 | .kwd {
71 | color: #006;
72 | font-weight: bold; }
73 |
74 | .com {
75 | color: #600;
76 | font-style: italic; }
77 |
78 | .typ {
79 | color: #404;
80 | font-weight: bold; }
81 |
82 | .lit {
83 | color: #044; }
84 |
85 | .pun, .opn, .clo {
86 | color: #440; }
87 |
88 | .tag {
89 | color: #006;
90 | font-weight: bold; }
91 |
92 | .atn {
93 | color: #404; }
94 |
95 | .atv {
96 | color: #060; } }
97 | /* Style */
98 | /*
99 | pre.prettyprint {
100 | background: white;
101 | font-family: Menlo, Monaco, Consolas, monospace;
102 | font-size: 12px;
103 | line-height: 1.5;
104 | border: 1px solid #ccc;
105 | padding: 10px; }
106 | */
107 |
108 | /* Specify class=linenums on a pre to get line numbering */
109 | ol.linenums {
110 | margin-top: 0;
111 | margin-bottom: 0; }
112 |
113 | /* IE indents via margin-left */
114 | li.L0,
115 | li.L1,
116 | li.L2,
117 | li.L3,
118 | li.L4,
119 | li.L5,
120 | li.L6,
121 | li.L7,
122 | li.L8,
123 | li.L9 {
124 | /* */ }
125 |
126 | /* Alternate shading for lines */
127 | li.L1,
128 | li.L3,
129 | li.L5,
130 | li.L7,
131 | li.L9 {
132 | /* */ }
133 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/container.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Extends
17 |
18 |
21 |
22 |
23 |
24 | Mixes In
25 |
26 |
29 |
30 |
31 |
32 | Requires
33 |
34 |
37 |
38 |
39 |
43 | Classes
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
55 | Namespaces
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
67 |
68 |
69 | Members
70 |
71 |
72 |
73 |
74 |
75 |
76 |
80 |
81 | Methods
82 |
83 |
84 |
85 |
86 |
87 |
88 |
92 | Type Definitions
93 |
94 |
97 |
98 |
102 |
103 |
106 |
107 |
108 |
112 | Events
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/details.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
10 |
11 | Properties:
12 |
13 |
14 |
15 |
16 |
17 |
18 | Version:
19 |
20 |
21 |
22 |
23 | Since:
24 |
25 |
26 |
27 |
28 | Inherited From:
29 |
32 |
33 |
34 |
35 | Deprecated:
39 |
40 |
41 |
42 | Author:
43 |
44 |
47 |
48 |
49 |
50 |
51 | Copyright:
52 |
53 |
54 |
55 |
56 | License:
57 |
58 |
59 |
60 |
61 | Default Value:
62 |
63 |
64 |
65 |
66 |
67 |
68 | Tutorials:
69 |
70 |
73 |
74 |
75 |
76 |
77 | See:
78 |
79 |
82 |
83 |
84 |
85 |
86 | To Do:
87 |
88 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/example.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/examples.tmpl:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/exceptions.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Type
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/fires.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/layout.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | EasyRTC Client JsDocs
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Client API - Class easyrtc_ft
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | Documentation generated by JSDoc on
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/mainpage.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/members.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | Example 1? 's':'' ?>
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/method.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | Type:
22 |
27 |
28 |
29 |
30 | This:
31 |
32 |
33 |
34 |
35 | Parameters:
36 |
37 |
38 |
39 |
40 |
41 |
42 | Fires:
43 |
46 |
47 |
48 |
49 | Throws:
50 | 1) { ?>
56 |
57 |
59 |
60 |
61 | Returns:
62 | 1) { ?>
68 |
69 |
71 |
72 |
73 | Example 1? 's':'' ?>
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/params.tmpl:
--------------------------------------------------------------------------------
1 |
40 |
41 |
42 |
43 |
44 |
45 | Name
46 |
47 |
48 | Type
49 |
50 |
51 | Argument
52 |
53 |
54 |
55 | Default
56 |
57 |
58 | Description
59 |
60 |
61 |
62 |
63 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | <optional>
84 |
85 |
86 |
87 | <nullable>
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | Properties
102 |
103 |
104 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/properties.tmpl:
--------------------------------------------------------------------------------
1 |
40 |
41 |
42 |
43 |
44 |
45 | Name
46 |
47 |
48 | Type
49 |
50 |
51 | Argument
52 |
53 |
54 |
55 | Default
56 |
57 |
58 | Description
59 |
60 |
61 |
62 |
63 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | <optional>
84 |
85 |
86 |
87 | <nullable>
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | Properties
102 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/returns.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Type
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/source.tmpl:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/tutorial.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0) { ?>
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/client_jsdoc_templates2/tmpl/type.tmpl:
--------------------------------------------------------------------------------
1 |
5 |
6 | |
7 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/readme.md:
--------------------------------------------------------------------------------
1 | EasyRTC Scripts Folder
2 | ======================
3 |
4 | Any scripts needed for the development and testing of EasyRTC should find their way here.
5 |
6 | Nothing here should be needed by end users.
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/update_client_easyrtc_docs.bat:
--------------------------------------------------------------------------------
1 | jsdoc -d ..\..\docs\client_html_docs -t client_jsdoc_templates ..\..\api\easyrtc_int.js
2 | rename ..\..\docs\client_html_docs\window.Easyrtc.html easyrtc.html
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/update_client_easyrtc_docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | jsdoc -d ../../docs/client_html_docs -t client_jsdoc_templates ../../api/easyrtc_int.js --verbose
3 | mv -f ../../docs/client_html_docs/Easyrtc.html ../../docs/client_html_docs/easyrtc.html
4 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/update_client_easyrtc_ft_docs.bat:
--------------------------------------------------------------------------------
1 | jsdoc -d ..\..\docs\client_html_docs -t client_jsdoc_templates2 ..\..\api\easyrtc_ft.js
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/update_client_easyrtc_ft_docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | jsdoc -d ../../docs/client_html_docs -t client_jsdoc_templates2 ../../api/easyrtc_ft.js --verbose
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/update_server_docs.bat:
--------------------------------------------------------------------------------
1 | jsdoc -d ..\..\docs\server_html_docs\ ..\..\lib\easyrtc_public_obj.js ..\..\lib\easyrtc_default_event_listeners.js
2 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/dev/scripts/update_server_docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | jsdoc -d ../../docs/server_html_docs/ ../../lib/easyrtc_public_obj.js ../../lib/easyrtc_default_event_listeners.js --verbose
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/client_html_docs/scripts/linenumber.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var counter = 0;
3 | var numbered;
4 | var source = document.getElementsByClassName('prettyprint source');
5 |
6 | if (source && source[0]) {
7 | source = source[0].getElementsByTagName('code')[0];
8 |
9 | numbered = source.innerHTML.split('\n');
10 | numbered = numbered.map(function(item) {
11 | counter++;
12 | return ' ' + item;
13 | });
14 |
15 | source.innerHTML = numbered.join('\n');
16 | }
17 | })();
18 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/client_html_docs/scripts/prettify/lang-css.js:
--------------------------------------------------------------------------------
1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/client_html_docs/styles/prettify-jsdoc.css:
--------------------------------------------------------------------------------
1 | /* JSDoc prettify.js theme */
2 |
3 | /* plain text */
4 | .pln {
5 | color: #000000;
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 |
10 | /* string content */
11 | .str {
12 | color: #006400;
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
17 | /* a keyword */
18 | .kwd {
19 | color: #000000;
20 | font-weight: bold;
21 | font-style: normal;
22 | }
23 |
24 | /* a comment */
25 | .com {
26 | font-weight: normal;
27 | font-style: italic;
28 | }
29 |
30 | /* a type name */
31 | .typ {
32 | color: #000000;
33 | font-weight: normal;
34 | font-style: normal;
35 | }
36 |
37 | /* a literal value */
38 | .lit {
39 | color: #006400;
40 | font-weight: normal;
41 | font-style: normal;
42 | }
43 |
44 | /* punctuation */
45 | .pun {
46 | color: #000000;
47 | font-weight: bold;
48 | font-style: normal;
49 | }
50 |
51 | /* lisp open bracket */
52 | .opn {
53 | color: #000000;
54 | font-weight: bold;
55 | font-style: normal;
56 | }
57 |
58 | /* lisp close bracket */
59 | .clo {
60 | color: #000000;
61 | font-weight: bold;
62 | font-style: normal;
63 | }
64 |
65 | /* a markup tag name */
66 | .tag {
67 | color: #006400;
68 | font-weight: normal;
69 | font-style: normal;
70 | }
71 |
72 | /* a markup attribute name */
73 | .atn {
74 | color: #006400;
75 | font-weight: normal;
76 | font-style: normal;
77 | }
78 |
79 | /* a markup attribute value */
80 | .atv {
81 | color: #006400;
82 | font-weight: normal;
83 | font-style: normal;
84 | }
85 |
86 | /* a declaration */
87 | .dec {
88 | color: #000000;
89 | font-weight: bold;
90 | font-style: normal;
91 | }
92 |
93 | /* a variable name */
94 | .var {
95 | color: #000000;
96 | font-weight: normal;
97 | font-style: normal;
98 | }
99 |
100 | /* a function name */
101 | .fun {
102 | color: #000000;
103 | font-weight: bold;
104 | font-style: normal;
105 | }
106 |
107 | /* Specify class=linenums on a pre to get line numbering */
108 | ol.linenums {
109 | margin-top: 0;
110 | margin-bottom: 0;
111 | }
112 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/client_html_docs/styles/prettify-tomorrow.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Theme */
2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3 | /* Pretty printing styles. Used with prettify.js. */
4 | /* SPAN elements with the classes below are added by prettyprint. */
5 | /* plain text */
6 | .pln {
7 | color: #4d4d4c; }
8 |
9 | @media screen {
10 | /* string content */
11 | .str {
12 | color: #718c00; }
13 |
14 | /* a keyword */
15 | .kwd {
16 | color: #8959a8; }
17 |
18 | /* a comment */
19 | .com {
20 | color: #8e908c; }
21 |
22 | /* a type name */
23 | .typ {
24 | color: #4271ae; }
25 |
26 | /* a literal value */
27 | .lit {
28 | color: #f5871f; }
29 |
30 | /* punctuation */
31 | .pun {
32 | color: #4d4d4c; }
33 |
34 | /* lisp open bracket */
35 | .opn {
36 | color: #4d4d4c; }
37 |
38 | /* lisp close bracket */
39 | .clo {
40 | color: #4d4d4c; }
41 |
42 | /* a markup tag name */
43 | .tag {
44 | color: #c82829; }
45 |
46 | /* a markup attribute name */
47 | .atn {
48 | color: #f5871f; }
49 |
50 | /* a markup attribute value */
51 | .atv {
52 | color: #3e999f; }
53 |
54 | /* a declaration */
55 | .dec {
56 | color: #f5871f; }
57 |
58 | /* a variable name */
59 | .var {
60 | color: #c82829; }
61 |
62 | /* a function name */
63 | .fun {
64 | color: #4271ae; } }
65 | /* Use higher contrast and text-weight for printable form. */
66 | @media print, projection {
67 | .str {
68 | color: #060; }
69 |
70 | .kwd {
71 | color: #006;
72 | font-weight: bold; }
73 |
74 | .com {
75 | color: #600;
76 | font-style: italic; }
77 |
78 | .typ {
79 | color: #404;
80 | font-weight: bold; }
81 |
82 | .lit {
83 | color: #044; }
84 |
85 | .pun, .opn, .clo {
86 | color: #440; }
87 |
88 | .tag {
89 | color: #006;
90 | font-weight: bold; }
91 |
92 | .atn {
93 | color: #404; }
94 |
95 | .atv {
96 | color: #060; } }
97 | /* Style */
98 | /*
99 | pre.prettyprint {
100 | background: white;
101 | font-family: Menlo, Monaco, Consolas, monospace;
102 | font-size: 12px;
103 | line-height: 1.5;
104 | border: 1px solid #ccc;
105 | padding: 10px; }
106 | */
107 |
108 | /* Specify class=linenums on a pre to get line numbering */
109 | ol.linenums {
110 | margin-top: 0;
111 | margin-bottom: 0; }
112 |
113 | /* IE indents via margin-left */
114 | li.L0,
115 | li.L1,
116 | li.L2,
117 | li.L3,
118 | li.L4,
119 | li.L5,
120 | li.L6,
121 | li.L7,
122 | li.L8,
123 | li.L9 {
124 | /* */ }
125 |
126 | /* Alternate shading for lines */
127 | li.L1,
128 | li.L3,
129 | li.L5,
130 | li.L7,
131 | li.L9 {
132 | /* */ }
133 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/easyrtc_authentication.md:
--------------------------------------------------------------------------------
1 | EasyRTC: Authentication
2 | =======================
3 |
4 | By default EasyRTC allows all connections, however it can be locked down to work against a variety of authentication methods. Most commonly this is done by sending a username and credential upon connecting to the server.
5 |
6 | Even if authentication is not needed, setting the username can be used to create a visible alternative to the easyrtcid.
7 |
8 | Setting Username and Credential in JS Client
9 | --------------------------------------------
10 |
11 | **easyrtc.setUsername()**
12 |
13 | - Use before connecting to the server via `easyrtc.connect()` or `easyrtc.easyApp()`
14 | - Shared to other connections in the same room
15 | - Can be used for setting a visible name (instead of easyrtcid)
16 | - To avoid sharing username, embed it inside the credential via `easyrtc.setCredential()`
17 | - Restricted by regular expression
18 | - Default is to allow up to 64 of any characters.
19 | - In client JS, set `easyrtc.usernameRegExp`
20 | - In server, set option `usernameRegExp`
21 | - Usernames should not be considered unique to a connection. One user could have multiple connections open.
22 | - Value is sent to the server "authenticate" event listener
23 |
24 |
25 | easyrtc.setUsername("handsomeJack");
26 |
27 |
28 | **easyrtc.setCredential()**
29 |
30 | - Use before connecting to the server via `easyrtc.connect()` or `easyrtc.easyApp()`
31 | - Can contain any JSONable object
32 | - Value is sent to the server "authenticate" event listener
33 |
34 |
35 | easyrtc.setCredential({
36 | "password":"345RTC!",
37 | "realm":"easyrtc.com",
38 | "apikey":"d834kds81vs189s10kkd4"
39 | });
40 |
41 |
42 | Checking Authentication On Server
43 | ---------------------------------
44 |
45 | **Using "authenticate" Event Listener**
46 |
47 | The "authenticate" event is fired during the initial connection. The listener is provided with full details about the connection, so it may decide whether to authenticate or disconnect them.
48 |
49 | In this simplistic example, any clients connecting to the adminSite application will be denied unless they have a username of "handsomeJack". Any clients connecting to any other application will be let through.
50 |
51 |
52 | var onAuthenticate = function(socket, easyrtcid, appName, username, credential, easyrtcAuthMessage, next){
53 | if (appName == "adminSite" && username != "handsomeJack"){
54 | next(new easyrtc.util.ConnectionError("Failed our private auth."));
55 | }
56 | else {
57 | next(null);
58 | }
59 | };
60 |
61 | easyrtc.events.on("authenticate", onAuthenticate);
62 |
63 |
64 | **Listener Parameters:**
65 |
66 | - **socket**
67 | - Socket.io object for the specific socket connection
68 | - The IP Address of the connection is available from `socket.handshake.address.address`
69 | - If using a proxy, the IP may be available from `socket.handshake.headers['x-forwarded-for']`
70 | - Referer *may* be available from `socket.handshake.headers.referer`
71 | - The socket can be disconnected using `socket.disconnect()` however it is recommended to call next() with an error
72 | - **easyrtcid**
73 | - A unique identifier given to this connection
74 | - **appName**
75 | - The requested EasyRTC application. Useful for application specific authentication.
76 | - **username**
77 | - Shared to other connections in the same room
78 | - Can be used for setting a visible name (instead of easyrtcid)
79 | - To avoid sharing username, embed it inside the credential via `easyrtc.setCredential()`
80 | - Restricted by regular expression
81 | - Default is to allow up to 64 of any characters.
82 | - In client JS, set `easyrtc.usernameRegExp`
83 | - In server, set option `usernameRegExp`
84 | - **credential**
85 | - Depending on authentication method, may be used for storing passwords, realms, hashes, apikeys, etc.
86 | - Can be any JSONable object
87 | - Type checking should be performed
88 | - **easyrtcAuthMessage**
89 | - Includes the complete authentication message sent by the client
90 | - May be used to deny authentication based on requested rooms, api fields, etc.
91 | - **next**
92 | - A callback function which should be called once (and only once)
93 | - If client should be authenticated, call with a null parameter
94 | - `next(null);`
95 | - If client should not be authenticated, call with an Error for the parameter
96 | - `next(new easyrtc.util.ConnectionError("Failed our private auth."));`
97 |
98 | For more information about EasyRTC server events, see [easyrtc_server_events.md](easyrtc_server_events.md)
99 |
100 |
101 | If You Run Into Problems
102 | ------------------------
103 | Please feel free to post on our discussion forum:
104 |
105 | - [https://easyrtc.com/forums/](https://easyrtc.com/forums/)
106 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/easyrtc_server_events.md:
--------------------------------------------------------------------------------
1 | EasyRTC Server: Events
2 | ======================
3 |
4 | Customizing the server behavior of an EasyRTC application is done by creating listeners and associating them with EasyRTC events.
5 |
6 |
7 | Event Methods
8 | -------------
9 |
10 | The EasyRTC `events` object is directly accessible via the `easyrtc` object. As a convienience it is also a child of the `pub`, `appObj`, `connectionObj`, `sessionObj`, `roomObj`, and `connectionRoomObj`.
11 |
12 |
13 | ### Setting Event Listeners
14 |
15 | Setting event listeners in EasyRTC is similar to the node.js events module method. Any differences are noted below.
16 |
17 | easyrtc.events.on(eventName, listener);
18 |
19 | - All EasyRTC events are limited to a single listener.
20 | - Setting a listener removes any current listeners, including default EasyRTC listeners.
21 |
22 |
23 | ### Resetting Event To Default Listener
24 |
25 | easyrtc.events.setDefaultListener(eventName);
26 |
27 | - Removes a custom listener from an event and then restores the EasyRTC default Listener
28 |
29 | ### Emit an Event
30 |
31 | easyrtc.events.emit(event, [arg1], [arg2], [...], [callback|next]);
32 |
33 | - See individual event documentation for parameter details.
34 |
35 | ### Emit a Default Event
36 |
37 | Setting a listener overrides the default EasyRTC listener. Depending on your application you may wish to release control back to the default EasyRTC listener.
38 |
39 | easyrtc.events.emitDefault(event, [arg1], [arg2], [...], [callback|next]);
40 |
41 | - Default event names are the same as public event names.
42 | - The parameter list is the same as the public listener. This includes the callback if present.
43 |
44 |
45 | EasyRTC Event Callback Convention
46 | ---------------------------------
47 |
48 | Many EasyRTC listeners include a callback as the last parameter. Conventions will differ depending on if it is named 'next' or 'callback'.
49 |
50 | - **next**
51 | - Informs EasyRTC that your listener is done processing and to move onto the next stage of the operation.
52 | - Expects a single 'err' parameter which should be null unless there is an error which should stop the operation and be logged.
53 |
54 | - **callback**
55 | - Informs EasyRTC that your listener is done processing and to move onto the next stage of the operation.
56 | - The first parameter is always an 'err' type which should be null unless there is an error which should stop the operation and be logged.
57 | - See individual event documentation for the remaining parameters.
58 |
59 |
60 | Event Documentation
61 | -------------------
62 |
63 | The best spot (currently) to see all the available events is by reading the default event listeners documentation. This will give you an idea of the events, parameters, and default behavior.
64 |
65 | - /docs/server_html_docs/module-easyrtc_default_event_listeners-eventListener.html
66 |
67 |
68 | If You Run Into Problems
69 | ------------------------
70 | Please feel free to post on our discussion forum:
71 |
72 | - [https://easyrtc.com/forums/](https://easyrtc.com/forums/)
73 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/easyrtc_server_ice.md:
--------------------------------------------------------------------------------
1 | EasyRTC Server: ICE Configuration
2 | =================================
3 |
4 | WebRTC utilizes a technique called [ICE, Interactive Connectivity Establishment](http://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment), to traverse NAT's and firewalls. As part of the ICE process, the browser may utilize [STUN](http://en.wikipedia.org/wiki/STUN) and [TURN](http://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT) servers. The addresses to STUN and TURN servers are sent to the browser via an ICE configuration.
5 |
6 | STUN servers generally require very little bandwidth, thus there are many free servers available. On the other hand, TURN does incur significant processing and bandwidth costs. There are some free TURN services for development, but for production you will need a commercial or self-hosted solution.
7 |
8 | It is estimated that 85-90% of connections do not require TURN, however that still leaves a significant percentage which does require it.
9 |
10 |
11 | TURN Details:
12 | -------------
13 |
14 | - UDP - The UDP based TURN server is the preferred and most common.
15 | - TCP - Connecting to a TCP based TURN server introduces a bit more latency and network overhead, but gets through more firewalls.
16 | - Append "?transport=tcp" to the end of the url
17 | - Use port 443 or port 80 to get through port-blocking firewalls
18 | - Old method was to provide username @beginning of the domain. Now uses separate username field.
19 |
20 |
21 | Setting appIceConfig Option
22 | ---------------------------
23 |
24 | The appIceConfig option accepts an array containing zero or more URL's to STUN and TURN servers along with additional authentication details. It is useful when setting a common configuration for all connections.
25 |
26 | **Example ICE Servers Array**
27 |
28 |
29 | var myIceServers = [
30 | {"url":"stun:[ADDRESS]:[PORT]"},
31 | {
32 | "url":"turn:[ADDRESS]:[PORT]",
33 | "username":"[USERNAME]",
34 | "credential":"[CREDENTIAL]"
35 | },
36 | {
37 | "url":"turn:[ADDRESS]:[PORT][?transport=tcp]",
38 | "username":"[USERNAME]",
39 | "credential":"[CREDENTIAL]"
40 | }
41 | ];
42 |
43 |
44 | **Setting appIceServers Across Server**
45 |
46 | easyrtc.setOption("appIceServers", myIceServers);
47 |
48 |
49 | **Can be Application Specific**
50 | Run setOption() from the application object to give a unique configuration for the specific application.
51 |
52 | appObj.setOption("appIceServers", myIceServers);
53 |
54 |
55 | **Order Maters**
56 | - The first URL(s) should be to STUN servers
57 | - Followed by a UDP TURN server. This should catch the majority of peer connections unable to handle STUN
58 | - Finally a TCP TURN server can handle those connections which are behind port blocking firewalls.
59 |
60 |
61 | Creating Listener for Event "getIceConfig"
62 | ------------------------------------------
63 |
64 | Create a custom listener for the event "getIceConfig" in cases where a custom ICE configuration needs to be delivered on a per connection basis. This may be needed for authentication, localization, or load balancing.
65 |
66 | In this example we are supplying a custom username for the TURN server.
67 |
68 | easyrtc.on("getIceConfig", function(connectionObj, callback){
69 | var myIceServers=[
70 | {"url":"stun:stun.easyrtc.com:3478"},
71 | {
72 | "url": "turn:turn.easyrtc.com:3478",
73 | "username": connectionObj.getUsername(),
74 | "credential": "345yRTC!"
75 | }
76 | ];
77 |
78 | callback(null, myIceServers);
79 | });
80 |
81 | For more information about EasyRTC server events, see [easyrtc_server_events.md](easyrtc_server_events.md)
82 |
83 |
84 | Note: TURN Does Not Solve All Connection Problems
85 | -------------------------------------------------
86 |
87 | Even with TURN, a WebRTC peer connections can fail.
88 |
89 | - Firewalls with packet or header inspection may block traffic
90 | - Disconnection issues
91 | - Low bandwith
92 | - High latency
93 | - Packet loss
94 | - Poor client processing power
95 |
96 |
97 | If You Run Into Problems
98 | ------------------------
99 | Please feel free to post on our discussion forum:
100 |
101 | - [https://easyrtc.com/forums/](https://easyrtc.com/forums/)
102 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/easyrtc_server_ssl.md:
--------------------------------------------------------------------------------
1 | EasyRTC Server: Using SSL
2 | =========================
3 |
4 | Being a signaling server, EasyRTC sends many message in plain text between the client and server. It is a good idea to connect to EasyRTC via SSL.
5 |
6 | Benefits of using SSL:
7 | ----------------------
8 |
9 | - Increase end user confidence
10 | - Secure signaling traffic from eavesdroppers
11 | - In Chrome: Browser remembers camera and microphone sharing preference for site. Does not re-ask at each - visit.
12 | - In Chrome: Enables screen sharing API
13 |
14 |
15 | Obtaining and Installing an SSL Certificate:
16 | --------------------------------------------
17 |
18 | [SSL certificates](https://www.google.com/#q=SSL+certificates) can be obtained from several different providers. Before applying, you will need to generate a CSR (Certificate Signing Request). The most common software used for generating CSR's and handling SSL is [OpenSSL](http://www.openssl.org/), There are many operating system specific guides available for how to use SSL on your server.
19 |
20 | [Self signed certificates](http://www.selfsignedcertificate.com/) are a free method of creating a certificate suitable for development. A warning will occur when browsing your site.
21 |
22 |
23 | Setting Up Node.JS For SSL:
24 | ---------------------------
25 |
26 | Node.JS provides [the https module](http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener) which uses SSL. This method is easy and useful for development and lower traffic sites. For higher traffic, the site can be more responsive if SSL is handled by a SSL gateway or load balancing server.
27 |
28 |
29 | Example server.js file using SSL:
30 | ---------------------------------
31 |
32 | // Load required modules
33 | var https = require("https"); // https server core module
34 | var fs = require("fs"); // file system core module
35 | var express = require("express"); // web framework external module
36 | var io = require("socket.io"); // web socket external module
37 | var easyrtc = require("easyrtc"); // EasyRTC external module
38 |
39 | // Setup and configure Express http server. Expect a subfolder called "static" to be the web root.
40 | var httpApp = express();
41 | httpApp.use(express.static(__dirname + "/static/"));
42 |
43 | // Start Express https server on port 8443
44 | var webServer = https.createServer(
45 | {
46 | key: fs.readFileSync("/pathtokeys/domain.key"),
47 | cert: fs.readFileSync("/pathtokeys/domain.crt")
48 | },
49 | httpApp).listen(8443);
50 |
51 | // Start Socket.io so it attaches itself to Express server
52 | var socketServer = io.listen(webServer, {"log level":1});
53 |
54 | // Start EasyRTC server
55 | var rtc = easyrtc.listen(httpApp, socketServer);
56 |
57 |
58 | Using an SSL Gateway or Load Balancing server:
59 | ----------------------------------------------
60 |
61 | For performance, load balancing, or firewall reasons you may wish to use an SSL gateway or load balancer. These often entail the gateway handling SSL, then routing requests to an EasyRTC server in a virtual private network. The gateway should be set to include the X-Forwarded-For http header. There are many solutions for doing this, each with their own instructions.
62 |
63 |
64 | If You Run Into Problems
65 | ------------------------
66 | Please feel free to post on our discussion forum:
67 |
68 | - [https://easyrtc.com/forums/](https://easyrtc.com/forums/)
69 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/easyrtc_upcoming_features.md:
--------------------------------------------------------------------------------
1 | EasyRTC: Upcoming Features
2 | ==========================
3 |
4 | There are many exciting features we are looking to add to EasyRTC in upcoming releases.
5 |
6 |
7 | General Features
8 | ----------------
9 |
10 | - Better statitstics gathering
11 | - Better WebRTC capabilities discovery
12 |
13 |
14 | Client JS Specific Features
15 | ---------------------------
16 |
17 | - Better cross browser support
18 | - More power for applications to influence WebRTC connections
19 | - Send a message to a specific username (Can already target easyrtcid's and rooms)
20 | - Named media streams
21 |
22 |
23 | Server Specific Features
24 | ------------------------
25 |
26 | - Option to minimize easyrtc.js
27 | - Better JSON validation method (thinking of using Swagger)
28 | - Easier programming methods
29 | - Additional events related to call monitoring
30 |
31 |
32 | Demos
33 | -----
34 |
35 | - More demos!
36 |
37 |
38 | Other
39 | -----
40 |
41 | - As the specifications and browsers are improved, we'll follow.
42 |
43 |
44 | Any Features You Would Like?
45 | ----------------------------
46 |
47 | Please feel free to post on our discussion forum:
48 |
49 | * [https://easyrtc.com/forums/](https://easyrtc.com/forums/)
50 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/easyrtc_with_other_servers.md:
--------------------------------------------------------------------------------
1 | EasyRTC: Using Alongside Other Servers
2 | ======================================
3 |
4 | EasyRTC supports working alongside of Apache, IIS, and other web servers. In these cases, your web application would use EasyRTC to just handle signaling. All html and other files would continue to be hosted on the current web server.
5 |
6 |
7 | Configuration Notes:
8 | --------------------
9 | - EasyRTC can be set to use a different port to avoid conflicts (such as 8080)
10 | - In client code, you must tell EasyRTC the socket.io URL prior to running `easyrtc.easyApp()` or `easyrtc.connect()`
11 | - `easyrtc.setSocketUrl("");`
12 | - eg: `easyrtc.setSocketUrl("//mydomain.com:8080");`
13 | - If the EasyRTC server is simply on a different port you can use:
14 | - `easyrtc.setSocketUrl(":");`
15 | - eg: `easyrtc.setSocketUrl(":8080");`
16 | - If your web server is running SSL, then EasyRTC should too
17 | - Ensure that all client API files resolve properly from your HTML. If API's remain hosted on the EasyRTC server your HTML may need to explicitly link to them. Commonly linked to API files are:
18 | - /easyrtc/easyrtc.js
19 | - /easyrtc/easyrtc.css
20 | - /easyrtc/easyrtc_ft.js (optional file transfer api)
21 | - /socket.io/socket.io.js
22 | - Optional: Host API directories on the web server so all JavaScript calls are from the same server. The folders containing client side API's are:
23 | - `/node_modules/easyrtc/api/`
24 | - `/node_modules/socket.io/node_modules/socket.io-client/dist/`
25 |
26 |
27 | Walkthrough for Simple Audio Video Demo
28 | ---------------------------------------
29 |
30 | Here are some steps to running the simple audio video demo from your web server. This is assuming you are running locally with your web server on port 80, and EasyRTC on port 8080.
31 |
32 | 1. Copy the EasyRTC /demos folder to your web root (or a sub folder)
33 | 2. Edit `demo_audio_video_simple.html`
34 | - Replace all instances of `/easyrtc/` with `//localhost:8080/easyrtc/`
35 | 3. Edit `js/demo_audio_video_simple.js`
36 | - Insert the following to be the first line within the connect() function:
37 | `easyrtc.setSocketUrl(":8080");`
38 | 4. Start your webserver and EasyRTC server
39 | 5. In your browser visit:
40 | http://localhost/demos/demo_audio_video_simple.html
41 |
42 | Your own WebRTC app can then be developed in a similar fashion.
43 |
44 |
45 | If You Run Into Problems
46 | ------------------------
47 | Please feel free to post on our discussion forum:
48 |
49 | - [https://easyrtc.com/forums/](https://easyrtc.com/forums/)
50 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Bold-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Bold-webfont.eot
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Bold-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Bold-webfont.woff
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-BoldItalic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-BoldItalic-webfont.eot
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-BoldItalic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-BoldItalic-webfont.woff
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Italic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Italic-webfont.eot
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Italic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Italic-webfont.woff
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Light-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Light-webfont.eot
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Light-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Light-webfont.woff
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-LightItalic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-LightItalic-webfont.eot
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-LightItalic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-LightItalic-webfont.woff
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Regular-webfont.eot
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xirdev/xsdk/5a38e83f0ba7023d171e430cb9524d21a774725d/thirdparty/easyrtc/docs/server_html_docs/fonts/OpenSans-Regular-webfont.woff
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | JSDoc: Home
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Home
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | Modules Classes
54 |
55 |
56 |
57 |
58 |
59 | Documentation generated by JSDoc 3.3.3 on Tue Oct 20 2015 10:53:18 GMT-0700 (PDT)
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/module-easyrtc_default_event_listeners.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | JSDoc: Module: easyrtc_default_event_listeners
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Module: easyrtc_default_event_listeners
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
Event listeners used by EasyRTC. Many of these can be overridden using server options.
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | Author:
81 |
82 |
83 | Priologic Software, info@easyrtc.com
84 |
85 |
86 |
87 |
88 |
89 | Copyright:
90 | Copyright 2015 Priologic Software. All rights reserved.
91 |
92 |
93 |
94 | License:
95 | BSD v2, see LICENSE file in module root folder.
96 |
97 |
98 |
99 |
100 |
101 | Source:
102 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 | Classes
139 |
140 |
141 | eventListener
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 | Modules Classes
168 |
169 |
170 |
171 |
172 |
173 | Documentation generated by JSDoc 3.3.3 on Tue Oct 20 2015 10:53:18 GMT-0700 (PDT)
174 |
175 |
176 |
177 |
178 |
179 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/module-easyrtc_public_obj-pub.events.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | JSDoc: Class: events
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Class: events
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
new events()
48 |
49 |
50 |
51 |
52 |
53 |
54 | EasyRTC Event handling object which contain most methods for interacting with EasyRTC events. For convenience, this class has also been attached to the application, connection, session, and room classes.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | Source:
97 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 | Modules Classes
155 |
156 |
157 |
158 |
159 |
160 | Documentation generated by JSDoc 3.3.3 on Tue Oct 20 2015 10:53:18 GMT-0700 (PDT)
161 |
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/module-easyrtc_public_obj-pub.util.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | JSDoc: Class: util
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Class: util
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
new util()
48 |
49 |
50 |
51 |
52 |
53 |
54 | General utility functions are grouped in this util object. For convenience, this class has also been attached to the application, connection, session, and room classes.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | Source:
97 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 | Modules Classes
155 |
156 |
157 |
158 |
159 |
160 | Documentation generated by JSDoc 3.3.3 on Tue Oct 20 2015 10:53:18 GMT-0700 (PDT)
161 |
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/scripts/linenumber.js:
--------------------------------------------------------------------------------
1 | /*global document */
2 | (function() {
3 | var source = document.getElementsByClassName('prettyprint source linenums');
4 | var i = 0;
5 | var lineNumber = 0;
6 | var lineId;
7 | var lines;
8 | var totalLines;
9 | var anchorHash;
10 |
11 | if (source && source[0]) {
12 | anchorHash = document.location.hash.substring(1);
13 | lines = source[0].getElementsByTagName('li');
14 | totalLines = lines.length;
15 |
16 | for (; i < totalLines; i++) {
17 | lineNumber++;
18 | lineId = 'line' + lineNumber;
19 | lines[i].id = lineId;
20 | if (lineId === anchorHash) {
21 | lines[i].className += ' selected';
22 | }
23 | }
24 | }
25 | })();
26 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/scripts/prettify/lang-css.js:
--------------------------------------------------------------------------------
1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
3 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/styles/prettify-jsdoc.css:
--------------------------------------------------------------------------------
1 | /* JSDoc prettify.js theme */
2 |
3 | /* plain text */
4 | .pln {
5 | color: #000000;
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 |
10 | /* string content */
11 | .str {
12 | color: #006400;
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
17 | /* a keyword */
18 | .kwd {
19 | color: #000000;
20 | font-weight: bold;
21 | font-style: normal;
22 | }
23 |
24 | /* a comment */
25 | .com {
26 | font-weight: normal;
27 | font-style: italic;
28 | }
29 |
30 | /* a type name */
31 | .typ {
32 | color: #000000;
33 | font-weight: normal;
34 | font-style: normal;
35 | }
36 |
37 | /* a literal value */
38 | .lit {
39 | color: #006400;
40 | font-weight: normal;
41 | font-style: normal;
42 | }
43 |
44 | /* punctuation */
45 | .pun {
46 | color: #000000;
47 | font-weight: bold;
48 | font-style: normal;
49 | }
50 |
51 | /* lisp open bracket */
52 | .opn {
53 | color: #000000;
54 | font-weight: bold;
55 | font-style: normal;
56 | }
57 |
58 | /* lisp close bracket */
59 | .clo {
60 | color: #000000;
61 | font-weight: bold;
62 | font-style: normal;
63 | }
64 |
65 | /* a markup tag name */
66 | .tag {
67 | color: #006400;
68 | font-weight: normal;
69 | font-style: normal;
70 | }
71 |
72 | /* a markup attribute name */
73 | .atn {
74 | color: #006400;
75 | font-weight: normal;
76 | font-style: normal;
77 | }
78 |
79 | /* a markup attribute value */
80 | .atv {
81 | color: #006400;
82 | font-weight: normal;
83 | font-style: normal;
84 | }
85 |
86 | /* a declaration */
87 | .dec {
88 | color: #000000;
89 | font-weight: bold;
90 | font-style: normal;
91 | }
92 |
93 | /* a variable name */
94 | .var {
95 | color: #000000;
96 | font-weight: normal;
97 | font-style: normal;
98 | }
99 |
100 | /* a function name */
101 | .fun {
102 | color: #000000;
103 | font-weight: bold;
104 | font-style: normal;
105 | }
106 |
107 | /* Specify class=linenums on a pre to get line numbering */
108 | ol.linenums {
109 | margin-top: 0;
110 | margin-bottom: 0;
111 | }
112 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/docs/server_html_docs/styles/prettify-tomorrow.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Theme */
2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3 | /* Pretty printing styles. Used with prettify.js. */
4 | /* SPAN elements with the classes below are added by prettyprint. */
5 | /* plain text */
6 | .pln {
7 | color: #4d4d4c; }
8 |
9 | @media screen {
10 | /* string content */
11 | .str {
12 | color: #718c00; }
13 |
14 | /* a keyword */
15 | .kwd {
16 | color: #8959a8; }
17 |
18 | /* a comment */
19 | .com {
20 | color: #8e908c; }
21 |
22 | /* a type name */
23 | .typ {
24 | color: #4271ae; }
25 |
26 | /* a literal value */
27 | .lit {
28 | color: #f5871f; }
29 |
30 | /* punctuation */
31 | .pun {
32 | color: #4d4d4c; }
33 |
34 | /* lisp open bracket */
35 | .opn {
36 | color: #4d4d4c; }
37 |
38 | /* lisp close bracket */
39 | .clo {
40 | color: #4d4d4c; }
41 |
42 | /* a markup tag name */
43 | .tag {
44 | color: #c82829; }
45 |
46 | /* a markup attribute name */
47 | .atn {
48 | color: #f5871f; }
49 |
50 | /* a markup attribute value */
51 | .atv {
52 | color: #3e999f; }
53 |
54 | /* a declaration */
55 | .dec {
56 | color: #f5871f; }
57 |
58 | /* a variable name */
59 | .var {
60 | color: #c82829; }
61 |
62 | /* a function name */
63 | .fun {
64 | color: #4271ae; } }
65 | /* Use higher contrast and text-weight for printable form. */
66 | @media print, projection {
67 | .str {
68 | color: #060; }
69 |
70 | .kwd {
71 | color: #006;
72 | font-weight: bold; }
73 |
74 | .com {
75 | color: #600;
76 | font-style: italic; }
77 |
78 | .typ {
79 | color: #404;
80 | font-weight: bold; }
81 |
82 | .lit {
83 | color: #044; }
84 |
85 | .pun, .opn, .clo {
86 | color: #440; }
87 |
88 | .tag {
89 | color: #006;
90 | font-weight: bold; }
91 |
92 | .atn {
93 | color: #404; }
94 |
95 | .atv {
96 | color: #060; } }
97 | /* Style */
98 | /*
99 | pre.prettyprint {
100 | background: white;
101 | font-family: Consolas, Monaco, 'Andale Mono', monospace;
102 | font-size: 12px;
103 | line-height: 1.5;
104 | border: 1px solid #ccc;
105 | padding: 10px; }
106 | */
107 |
108 | /* Specify class=linenums on a pre to get line numbering */
109 | ol.linenums {
110 | margin-top: 0;
111 | margin-bottom: 0; }
112 |
113 | /* IE indents via margin-left */
114 | li.L0,
115 | li.L1,
116 | li.L2,
117 | li.L3,
118 | li.L4,
119 | li.L5,
120 | li.L6,
121 | li.L7,
122 | li.L8,
123 | li.L9 {
124 | /* */ }
125 |
126 | /* Alternate shading for lines */
127 | li.L1,
128 | li.L3,
129 | li.L5,
130 | li.L7,
131 | li.L9 {
132 | /* */ }
133 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/index.js:
--------------------------------------------------------------------------------
1 | // The EasyRTC server files are in the lib folder
2 | module.exports = require('./lib/easyrtc_server');
--------------------------------------------------------------------------------
/thirdparty/easyrtc/lib/easyrtc_private_obj.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @file Maintains private object used within EasyRTC for holding in-memory state information
3 | * @module easyrtc_private_obj
4 | * @author Priologic Software, info@easyrtc.com
5 | * @copyright Copyright 2015 Priologic Software. All rights reserved.
6 | * @license BSD v2, see LICENSE file in module root folder.
7 | */
8 |
9 | // var _ = require("underscore"); // General utility functions external module
10 | var defaultOptions = require("./easyrtc_default_options"); // EasyRTC global variable
11 | var g = require("./general_util"); // General utility functions local module
12 |
13 | var e = {};
14 |
15 | e.version = g.getPackageData("version");
16 | e.serverStartOn = Date.now();
17 | e.option = g.deepCopy(defaultOptions);
18 | e.app = {};
19 |
20 | module.exports = e;
21 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/lib/easyrtc_server.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @file Entry library for EasyRTC server. Houses the primary listen function.
3 | * @author Priologic Software, info@easyrtc.com
4 | * @copyright Copyright 2015 Priologic Software. All rights reserved.
5 | * @license BSD v2, see LICENSE file in module root folder.
6 | */
7 |
8 | var g = require("./general_util"); // General utility functions local module
9 | g.checkModules(); // Check to ensure all required modules are available
10 |
11 | var _ = require("underscore"); // General utility functions external module
12 | var pub = require("./easyrtc_public_obj"); // EasyRTC public object
13 |
14 |
15 | /**
16 | * Listener for starting the EasyRTC server. The successCallback can be used to determine when EasyRTC is fully running.
17 | *
18 | * @param {Object} httpApp express http object. Allows EasyRTC to interact with the http server.
19 | * @param {Object} socketServer socket.io server object. Allows EasyRTC to interact with the socket server.
20 | * @param {Object} options EasyRTC options object. Sets configurable options. If null, than defaults will be used.
21 | * @param {function(Error, Object)} listenCallback Called when the start up routines are complete. In form of successCallback(err, pub). The parameter 'err' will null unless an error occurs and 'pub' is the EasyRTC public object for interacting with the server.
22 | */
23 | exports.listen = function(httpApp, socketServer, options, listenCallback) {
24 | pub.util.logInfo("Starting EasyRTC Server (v" + pub.getVersion() +") on Node (" + process.version + ")");
25 |
26 | // Set server object references in public object
27 | pub.httpApp = httpApp;
28 | pub.socketServer = socketServer;
29 |
30 | if (options){
31 | pub.util.logDebug("Overriding options", options);
32 |
33 | for (var optionName in options) {
34 | pub.setOption(optionName, options[optionName]);
35 | }
36 | }
37 |
38 | pub.util.logDebug("Emitting event 'startup'");
39 | pub.events.emit("startup", function(err) {
40 | if (err) {
41 | pub.util.logError("Error occurred upon startup", err);
42 | if(_.isFunction(listenCallback)) {
43 | listenCallback(err, null);
44 | }
45 | }
46 | else {
47 | pub.util.logInfo("EasyRTC Server Ready For Connections (v"+ pub.getVersion() + ")");
48 | if(_.isFunction(listenCallback)) {
49 | listenCallback(err, pub);
50 | }
51 | }
52 | });
53 | };
54 |
55 |
56 | /**
57 | * Returns an EasyRTC options object with a copy of the default options.
58 | *
59 | * @returns {Object} EasyRTC options object
60 | */
61 | exports.getDefaultOptions = function() {
62 | var defaultOptions = require("./easyrtc_default_options");
63 | return g.deepCopy(defaultOptions);
64 | };
65 |
66 |
67 | /**
68 | * Sets listener for a given EasyRTC event. Only one listener is allowed per event. Any other listeners for an event are removed before adding the new one.
69 | *
70 | * @private
71 | * @param {String} event Listener name.
72 | * @param {Function} listener Function
73 | */
74 | exports.on = function(event, listener) {
75 | if (event && _.isFunction(listener)) {
76 | pub.events.removeAllListeners(event);
77 | pub.events.on(event, listener);
78 | }
79 | else {
80 | pub.util.logError("Unable to add listener to event '" + event + "'");
81 | }
82 | };
83 |
84 |
85 | /**
86 | * Removes all listeners for an event. If there is a default EasyRTC listener, it will be added.
87 | *
88 | * @private
89 | * @param {String} event Listener name.
90 | */
91 | exports.removeAllListeners = function(event) {
92 | if (event) {
93 | pub.events.removeAllListeners(event);
94 | pub.events.setDefaultListener(event);
95 | }
96 | };
97 |
98 |
99 | /**
100 | * Returns the listeners for an event.
101 | *
102 | * @private
103 | * @param {String} event Listener name.
104 | */
105 | exports.listeners = pub.events.listeners;
106 |
107 |
108 | /**
109 | * Expose all event functions
110 | */
111 | exports.events = pub.events;
112 |
113 |
114 | /**
115 | * Expose public utility functions
116 | */
117 | exports.util = pub.util;
118 |
119 |
120 | /**
121 | * Sets individual option.
122 | *
123 | * @param {Object} option Option name
124 | * @param {Object} value Option value
125 | * @returns {Boolean} true on success, false on failure
126 | */
127 | exports.setOption = pub.setOption;
128 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/lib/general_util.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @file General utility functions not specific to EasyRTC
3 | * @module general_util
4 | * @author Priologic Software, info@easyrtc.com
5 | * @copyright Copyright 2015 Priologic Software. All rights reserved.
6 | * @license BSD v2, see LICENSE file in module root folder.
7 | */
8 |
9 | var util = require("util");
10 |
11 | var g = {};
12 |
13 |
14 | /**
15 | * Performs a deep copy of an object, returning the duplicate.
16 | * Do not use on objects with circular references.
17 | *
18 | * @param {Object} input Input variable (or object) to be copied.
19 | * @returns {Object} New copy of variable.
20 | */
21 | g.deepCopy = function(input) {
22 | if (input == null
23 | || typeof input != "object"
24 | || (input.constructor != Object && input.constructor != Array)
25 | ) {
26 | return input;
27 | }
28 |
29 | if (
30 | input.constructor == Boolean
31 | || input.constructor == Date
32 | || input.constructor == Function
33 | || input.constructor == Number
34 | || input.constructor == RegExp
35 | || input.constructor == String
36 | ) {
37 | return new input.constructor(input);
38 | }
39 |
40 | if (input instanceof Array) {
41 | var copy = [];
42 | for (var i = 0, len = input.length; i < len; i++) {
43 | copy[i] = g.deepCopy(input[i]);
44 | }
45 | return copy;
46 | }
47 |
48 | if (input instanceof Object) {
49 | var copy = {};
50 | for (var key in input) {
51 | if (input.hasOwnProperty(key)) {
52 | copy[key] = g.deepCopy(input[key]);
53 | }
54 | }
55 | return copy;
56 | }
57 | return null;
58 | };
59 |
60 |
61 | /**
62 | * Returns a field from the package.json file in the module root.
63 | * Giving null field name will return the full contents of the file.
64 | * If a field name is provided, it will return null if the field not found.
65 | *
66 | * @param {Object} fieldName Name of field you wish to return.
67 | * @returns {Object} Value of the given field, or the full contents of the file if a null field is given.
68 | */
69 | g.getPackageData = function(fieldName) {
70 | var packageFile = require("../package");
71 | if (!fieldName) {
72 | return g.deepCopy(packageFile);
73 | }
74 | else if (packageFile[fieldName]) {
75 | return g.deepCopy(packageFile[fieldName]);
76 | }
77 | else {
78 | return null;
79 | }
80 | };
81 |
82 |
83 | /* An abstract error object which should be easy to extend for custom Error classes.
84 | *
85 | * @copyright Based on code in article by Dustin Seno.
86 | *
87 | * @param {String} Custom error message.
88 | * @param {Object} Constructor property.
89 | *
90 | */
91 | g.AbstractError = function(msg, constr){
92 | Error.captureStackTrace(this, constr || this);
93 | this.message = msg || "Error";
94 | };
95 | util.inherits(g.AbstractError, Error);
96 | g.AbstractError.prototype.name = "Abstract Error";
97 |
98 |
99 | /**
100 | * Reads package.json and ensures all required modules are installed. Will exit if one or more is not found.
101 | */
102 | g.checkModules = function () {
103 | try {
104 | var easyrtcPackage = require("../package");
105 | }
106 | catch( e ) {
107 | console.log("ERROR: Could not load package.json from project root. This file is required for reading project properties.");
108 | process.exit(1);
109 | }
110 |
111 | var moduleExists = function (modName) {
112 | try { return require.resolve(modName); }
113 | catch( e ) { return false; }
114 | };
115 |
116 | var isModuleMissing = false;
117 | for (var key in easyrtcPackage.dependencies) {
118 | if (!moduleExists(key)) {
119 | isModuleMissing = true;
120 | console.log("ERROR: Missing module '" + key + "'");
121 | }
122 | }
123 |
124 | if (isModuleMissing) {
125 | console.log("ERROR: Required modules are not installed. Run 'npm install' from command line.");
126 | process.exit(1);
127 | }
128 |
129 | delete require.cache[easyrtcPackage];
130 | };
131 |
132 |
133 | module.exports = g;
--------------------------------------------------------------------------------
/thirdparty/easyrtc/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "easyrtc",
3 | "version" : "1.0.15",
4 | "homepage" : "http://www.easyrtc.com/",
5 | "author" : "Priologic Software Inc. (http://priologic.com/)",
6 | "description" : "EasyRTC enables quick development of webRTC",
7 | "contributors": [
8 | "Doug Pelton ",
9 | "Rod Apeldoorn ",
10 | "Eric Davies "
11 | ],
12 |
13 | "keywords": [
14 | "webRTC",
15 | "easy",
16 | "EasyRTC",
17 | "RTC",
18 | "server"
19 | ],
20 |
21 | "repository": {
22 | "type" : "git",
23 | "url" : "https://github.com/priologic/easyrtc.git"
24 | },
25 |
26 | "bugs": {
27 | "url" : "https://github.com/priologic/easyrtc/issues"
28 | },
29 |
30 | "main" : "index",
31 |
32 | "dependencies" : {
33 | "async" : "0.2.x",
34 | "colors" : "*",
35 | "underscore": "1.5.x"
36 | },
37 |
38 | "analyze" : false,
39 |
40 | "license" : "BSD2",
41 |
42 | "engines": {
43 | "node" : ">=0.8"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/server_example/README.md:
--------------------------------------------------------------------------------
1 | EasyRTC Server Example
2 | ======================
3 |
4 | This folder contains all the files you'll need to create a simple server with EasyRTC, Express, and Socket.io. You can copy these files where you wish.
5 |
6 | Files and Folders:
7 | ------------------
8 |
9 | - package.json - Provides project information allowing npm to find and install required modules.
10 | - server.js - Server code.
11 | - /static/ - Root folder for web server. Put html files here!
12 |
13 |
14 | Installing Required Modules:
15 | ----------------------------
16 |
17 | - Type `npm install` in console.
18 | - This will read the package.json file to find and install the required modules including EasyRTC, Express, and Socket.io.
19 | - Required modules will go into a new 'node_modules' subfolder
20 |
21 |
22 | Running the Server:
23 | -------------------
24 |
25 | - Type `node server` in console.
26 |
27 |
28 | Viewing the examples:
29 | ---------------------
30 |
31 | - In your WebRTC enabled browser, visit your server address including the port. By default port 8080 is used.
32 | - http://localhost:8080/
--------------------------------------------------------------------------------
/thirdparty/easyrtc/server_example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "easyrtc_server_example",
3 | "version" : "0.1.6",
4 | "author" : "Priologic Software Inc. (http://priologic.com/)",
5 | "description" : "Simple EasyRTC server example which includes EasyRTC, Express, and Socket.io",
6 |
7 | "private" : true,
8 |
9 | "scripts": {
10 | "start" : "node server.js"
11 | },
12 |
13 | "dependencies" : {
14 | "easyrtc" : "1.0.x",
15 | "express" : "*",
16 | "socket.io" : "0.9.x"
17 | },
18 |
19 | "license" : "BSD2",
20 |
21 | "engines": {
22 | "node" : ">=0.8"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/server_example/server.js:
--------------------------------------------------------------------------------
1 | // Load required modules
2 | var http = require("http"); // http server core module
3 | var express = require("express"); // web framework external module
4 | var io = require("socket.io"); // web socket external module
5 | var easyrtc = require("../"); // EasyRTC external module
6 |
7 | // Setup and configure Express http server. Expect a subfolder called "static" to be the web root.
8 | var httpApp = express();
9 | httpApp.use(express.static(__dirname + "/static/"));
10 |
11 | // Start Express http server on port 8080
12 | var webServer = http.createServer(httpApp).listen(8080);
13 |
14 | // Start Socket.io so it attaches itself to Express server
15 | var socketServer = io.listen(webServer, {"log level":1});
16 |
17 | easyrtc.setOption("logLevel", "debug");
18 |
19 | // Overriding the default easyrtcAuth listener, only so we can directly access its callback
20 | easyrtc.events.on("easyrtcAuth", function(socket, easyrtcid, msg, socketCallback, callback) {
21 | easyrtc.events.defaultListeners.easyrtcAuth(socket, easyrtcid, msg, socketCallback, function(err, connectionObj){
22 | if (err || !msg.msgData || !msg.msgData.credential || !connectionObj) {
23 | callback(err, connectionObj);
24 | return;
25 | }
26 |
27 | connectionObj.setField("credential", msg.msgData.credential, {"isShared":false});
28 |
29 | console.log("["+easyrtcid+"] Credential saved!", connectionObj.getFieldValueSync("credential"));
30 |
31 | callback(err, connectionObj);
32 | });
33 | });
34 |
35 | // To test, lets print the credential to the console for every room join!
36 | easyrtc.events.on("roomJoin", function(connectionObj, roomName, roomParameter, callback) {
37 | console.log("["+connectionObj.getEasyrtcid()+"] Credential retrieved!", connectionObj.getFieldValueSync("credential"));
38 | easyrtc.events.defaultListeners.roomJoin(connectionObj, roomName, roomParameter, callback);
39 | });
40 |
41 |
42 | // Start EasyRTC server
43 | var rtc = easyrtc.listen(httpApp, socketServer, null, function(err, rtcRef) {
44 | console.log("Initiated");
45 |
46 | rtcRef.events.on("roomCreate", function(appObj, creatorConnectionObj, roomName, roomOptions, callback) {
47 | console.log("roomCreate fired! Trying to create: " + roomName);
48 |
49 | appObj.events.defaultListeners.roomCreate(appObj, creatorConnectionObj, roomName, roomOptions, callback);
50 | });
51 | });
52 |
--------------------------------------------------------------------------------
/thirdparty/easyrtc/server_example/static/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | EasyRTC - Server Root
5 |
8 |
9 |
10 | You have installed EasyRTC!
11 |
12 | This is your server's Web Root
13 |
14 | This is the easiest location to put your own static html files for developing WebRTC applications.
15 |
16 | In the meantime we'll forward you to the EasyRTC Demo page ...
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------