You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/04/30 17:29:57 UTC
[45/50] [abbrv] openmeetings git commit: [OPENMEETINGS-551] fallback
handling and volume slider are added
[OPENMEETINGS-551] fallback handling and volume slider are added
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/a600e321
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/a600e321
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/a600e321
Branch: refs/heads/master
Commit: a600e321f9dd4ccc8a1efe3cd7f2bb8ccf0877f0
Parents: a4d2a56
Author: Maxim Solodovnik <so...@apache.org>
Authored: Fri Apr 21 01:27:01 2017 +0000
Committer: Maxim Solodovnik <so...@apache.org>
Committed: Fri Apr 21 01:27:01 2017 +0000
----------------------------------------------------------------------
.../openmeetings/db/entity/basic/Client.java | 11 ++++--
.../flex/org/apache/openmeetings/OmVideo.as | 37 ++++++++++++--------
.../apache/openmeetings/web/room/RoomPanel.html | 12 +++++++
.../apache/openmeetings/web/room/RoomPanel.java | 29 ++++++++++-----
.../org/apache/openmeetings/web/room/room.js | 24 +++++++++++++
.../web/room/sidebar/RoomSidebar.java | 2 +-
openmeetings-web/src/main/webapp/css/room.css | 14 +++++++-
7 files changed, 102 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index 0f8fc82..19e9787 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -342,7 +342,7 @@ public class Client implements IClient {
return true;
}
- public JSONObject toJson() {
+ public JSONObject toJson(boolean self) {
JSONObject u = new JSONObject();
if (user != null) {
JSONObject a = new JSONObject();
@@ -356,7 +356,7 @@ public class Client implements IClient {
a.put("country", user.getAddress().getCountry());
}
}
- return new JSONObject()
+ JSONObject json = new JSONObject()
.put("user", u)
.put("uid", uid)
.put("rights", new JSONArray(rights))
@@ -364,7 +364,12 @@ public class Client implements IClient {
.put("pod", pod)
.put("broadcastId", broadcastId)
.put("width", width)
- .put("height", height);
+ .put("height", height)
+ .put("self", self);
+ if (self) {
+ json.put("cam", cam).put("mic", mic);
+ }
+ return json;
}
@Override
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as b/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
index 5538f46..c32e8a2 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
@@ -45,6 +45,7 @@ public class OmVideo {
public var height:int;
private var mode:String;
private var params:Object;
+ private var url:String;
private var fallback:Boolean;
public function OmVideo(ui:UIComponent, params:Object) {
@@ -97,9 +98,6 @@ public class OmVideo {
private function createStream():void {
debug("createStream: ");
ns = new NetStream(nc);
- //see: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/NetStream.html
- //according to the docs the construct to catch event has to be implemented like this.
- //var t = this;
ns.client = {
onMetaData: function(metadata:Object):void {
debug("onMetaData: ", metadata);
@@ -137,7 +135,6 @@ public class OmVideo {
if (cam != null) {
ns.attachCamera(cam);
- //invokes Method in baseVideoView which shows the cam
attachCamera(cam);
var videoStreamSettings:VideoStreamSettings = null;
@@ -166,17 +163,33 @@ public class OmVideo {
}
}
+ private function _connect(url:String):void {
+ nc.connect(url, {
+ uid: params.uid
+ , sid: params.sid
+ , nativeSsl: 'best' == params.proxyType
+ });
+ }
+
private function connect(callback:Function):void {
if (nc == null || !nc.connected) {
- var url:String = params.url; //TODO fallback
+ url = params.url;
debug("NetConnection is not connected", url);
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, function onConnectionStatus(e:NetStatusEvent):void {
debug("ConnectionStatus: " + e.info.code);
- if (e.info.code == "NetConnection.Connect.Success") {
- callback();
- } else {
- //TODO
+ switch (e.info.code) {
+ case 'NetConnection.Connect.Failed':
+ if (!fallback) {
+ fallback = true;
+ url = params.fallback;
+ _connect(url);
+ }
+ break;
+ case 'NetConnection.Connect.Success':
+ callback();
+ break;
+ //TODO other cases
}
});
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, function (event:AsyncErrorEvent):void {
@@ -197,11 +210,7 @@ public class OmVideo {
debug("id: " + id); //TODO save connection id
}
};
- nc.connect(url, {
- uid: params.uid
- , sid: params.sid
- , nativeSsl: 'best' == params.proxyType
- });
+ _connect(url);
} else {
callback();
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 87afb87..3f30083 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -46,6 +46,18 @@
<div id="user-video">
<div class="video"></div>
</div>
+ <div id="video-volume-btn">
+ <a class="ui-dialog-titlebar-volume ui-corner-all ui-state-default" href="#" title="volume" role="button" data-toggle="dropdown">
+ <span class="ui-icon ui-icon-triangle-2-n-s">volume</span>
+ </a>
+ <ul class="dropdown-menu video volume">
+ <li>
+ <div class="slider">
+ <div class="ui-slider-handle handle"></div>
+ </div>
+ </li>
+ </ul>
+ </div>
</div>
</wicket:panel>
</html>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 315acc0..0cf02f3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -161,7 +161,7 @@ public class RoomPanel extends BasePanel {
for (Client c: getRoomClients(getRoom().getId()) ){
boolean self = getClient().getUid().equals(c.getUid());
if (!self) {
- JSONObject json = c.toJson().put("sid", getSid()).put("self", self);
+ JSONObject json = c.toJson(self).put("sid", getSid());
// TODO we should check if client is screenShare, see onEvent newStream case.
target.appendJavaScript(String.format("VideoManager.play(%s);", json));
}
@@ -344,7 +344,7 @@ public class RoomPanel extends BasePanel {
log.error("Not existing user has stopped recording {} !!!!", uid);
return;
}
- c.getActivities().remove(Client.Activity.record);
+ c.remove(Client.Activity.record);
}
break;
case recordingStarted:
@@ -356,17 +356,30 @@ public class RoomPanel extends BasePanel {
log.error("Not existing user has started recording {} !!!!", recordingUser);
return;
}
- c.getActivities().add(Client.Activity.record);
+ c.set(Client.Activity.record);
}
break;
case sharingStoped:
- //TODO check sharingUser == ((TextRoomMessage)m).getText();
- sharingUser = null;
- menu.update(handler);
+ {
+ sharingUser = null;
+ Client c = getOnlineClient(((TextRoomMessage)m).getText());
+ if (c == null) {
+ log.error("Not existing user has started sharing {} !!!!", sharingUser);
+ return;
+ }
+ c.remove(Client.Activity.share);
+ menu.update(handler);
+ }
break;
case sharingStarted:
{
sharingUser = ((TextRoomMessage)m).getText();
+ Client c = getOnlineClient(sharingUser);
+ if (c == null) {
+ log.error("Not existing user has started sharing {} !!!!", sharingUser);
+ return;
+ }
+ c.set(Client.Activity.share);
menu.update(handler);
}
break;
@@ -374,7 +387,7 @@ public class RoomPanel extends BasePanel {
{
Client c = getOnlineClient(((TextRoomMessage)m).getText());
handler.appendJavaScript(String.format("VideoManager.update(%s);"
- , c.toJson().put("sid", getSid()).put("self", getClient().getUid().equals(c.getUid()))));
+ , c.toJson(getClient().getUid().equals(c.getUid())).put("sid", getSid())));
sidebar.update(handler);
menu.update(handler);
wb.update(handler);
@@ -386,7 +399,7 @@ public class RoomPanel extends BasePanel {
Client c = getOnlineClient(obj.getString("uid"));
boolean self = getClient().getUid().equals(c.getUid());
if (!self) {
- JSONObject json = c.toJson().put("sid", getSid()).put("self", self);
+ JSONObject json = c.toJson(self).put("sid", getSid());
if (obj.optBoolean("screenShare", false)) {
json.put("screenShare", true)
.put("uid", obj.getString("suid")) // unique screen-sharing ID
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
index cd182c0..1b2d687 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
@@ -63,6 +63,30 @@ var Video = (function() {
, dblclick: "collapse"
});
t = v.parent().find('.ui-dialog-titlebar').attr('title', name);
+ v.parent().find('.ui-dialog-titlebar-buttonpane').append($('#video-volume-btn').children().clone());
+ var volume = v.parent().find('.dropdown-menu.video.volume');
+ v.parent().find('.ui-dialog-titlebar-volume').click(function(e) {
+ e.stopImmediatePropagation();
+ volume.toggle();
+ }).dblclick(function(e) {
+ e.stopImmediatePropagation();
+ });
+ var handle = v.parent().find('.slider .handle');
+ v.parent().find('.slider').slider({
+ orientation: 'vertical'
+ , range: 'min'
+ , min: 0
+ , max: 100
+ , value: 60
+ , slide: function(event, ui) {
+ }
+ , create: function() {
+ handle.text($(this).slider("value"));
+ }
+ , slide: function(event, ui) {
+ handle.text(ui.value);
+ }
+ });
vc = v.find('.video');
vc.width(_w).height(_h);
//broadcast
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 168bea9..17b6973 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -414,7 +414,7 @@ public class RoomSidebar extends Panel {
}
Pod pod = c.getPod();
c.setPod(getRequest().getRequestParameters().getParameterValue(PARAM_POD).toOptionalInteger());
- if (pod != Pod.none && pod != c.getPod()) {
+ if (pod != null && pod != Pod.none && pod != c.getPod()) {
//pod has changed, no need to toggle
c.set(a);
} else {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a600e321/openmeetings-web/src/main/webapp/css/room.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index 04d3a2b..cf437c1 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -354,10 +354,22 @@
}
.ui-dialog.video, .ui-dialog.video .ui-dialog-titlebar, .ui-dialog.video .ui-dialog-content {
padding: 0;
+}
+.ui-dialog.video .ui-dialog-content {
overflow: hidden;
}
.ui-dialog.video .ui-dialog-titlebar {
- padding-left:10px
+ padding-left: 10px
+}
+.dropdown-menu.video.volume, .dropdown-menu.video.volume li {
+ width: 20px;
+ min-width: 20px;
+ border-radius: 0;
+ border: 0;
+ box-shadow: initial;
+ left: 50px;
+ top: -50px;
+ background-color: transparent;
}
.ui-dialog.video .title {
font-weight: bold;