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/03/10 05:28:43 UTC
svn commit: r1786290 - in /openmeetings/application:
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/
branches/3.2.x/openmeeting...
Author: solomax
Date: Fri Mar 10 05:28:43 2017
New Revision: 1786290
URL: http://svn.apache.org/viewvc?rev=1786290&view=rev
Log:
[OPENMEETINGS-1595] video on/off should work better
Modified:
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/commonVideoViewContentSWF10.lzx
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/baseVideoObject.lzx
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
Modified: openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java Fri Mar 10 05:28:43 2017
@@ -477,7 +477,7 @@ public class WhiteBoardService implement
log.debug("scope " + scope);
if (numberOfInitial == 0 && scope != null) {
- scopeAdapter.sendMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, false);
+ scopeAdapter.sendMessageToCurrentScope("" + roomId, "sendSyncCompleteFlag", wSyncLockObject, false);
}
// Check Image Loaders
@@ -493,7 +493,7 @@ public class WhiteBoardService implement
int numberOfImageLoaders = wbListManager.getWhiteBoardObjectSyncListByRoomid(roomId).size();
if (numberOfImageLoaders == 0 && scope != null) {
- scopeAdapter.sendMessageToCurrentScope("sendImagesSyncCompleteFlag", new Object[] { "remove" }, true);
+ scopeAdapter.sendMessageToCurrentScope("" + roomId, "sendImagesSyncCompleteFlag", new Object[] { "remove" }, true);
}
}
} catch (Exception err) {
Modified: openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Fri Mar 10 05:28:43 2017
@@ -1489,12 +1489,16 @@ public class ScopeApplicationAdapter ext
sendMessageToCurrentScope(remoteMethodName, newMessage, sendSelf, false);
}
+ public void sendMessageToCurrentScope(String scopeName, String remoteMethodName, Object newMessage, boolean sendSelf) {
+ sendMessageToCurrentScope(scopeName, remoteMethodName, newMessage, sendSelf, false);
+ }
+
public void sendToScope(final Long roomId, String method, Object obj) {
new MessageSender(getRoomScope("" + roomId), method, obj, this) {
@Override
public boolean filter(IConnection conn) {
Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
- return rcl.isScreenClient()
+ return rcl == null || rcl.isScreenClient()
|| rcl.getRoomId() == null || !rcl.getRoomId().equals(roomId) || userDao.get(rcl.getUserId()) == null;
}
}.start();
@@ -1530,7 +1534,16 @@ public class ScopeApplicationAdapter ext
* @param sendScreen send to the current client as well
*/
public void sendMessageToCurrentScope(final String remoteMethodName, final Object newMessage, final boolean sendSelf, final boolean sendScreen) {
- new MessageSender(remoteMethodName, newMessage, this) {
+ IConnection conn = Red5.getConnectionLocal();
+ if (conn == null) {
+ log.warn(String.format("[sendMessageToCurrentScope] -> 'Unable to send message using NULL connection' %s, %s", remoteMethodName, newMessage));
+ return;
+ }
+ sendMessageToCurrentScope(conn.getScope().getName(), remoteMethodName, newMessage, sendSelf, sendScreen);
+ }
+
+ public void sendMessageToCurrentScope(final String scopeName, final String remoteMethodName, final Object newMessage, final boolean sendSelf, final boolean sendScreen) {
+ new MessageSender(getRoomScope(scopeName), remoteMethodName, newMessage, this) {
@Override
public boolean filter(IConnection conn) {
IClient client = conn.getClient();
Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/commonVideoViewContentSWF10.lzx
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/commonVideoViewContentSWF10.lzx?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/commonVideoViewContentSWF10.lzx (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/commonVideoViewContentSWF10.lzx Fri Mar 10 05:28:43 2017
@@ -770,6 +770,7 @@
if ('n' != settings) {
var videoWindow = getVideoObjectByPublicSID(canvas.publicSID);
if (videoWindow != null && videoEnabled(settings) && videoEnabled(videoWindow.clientVars.avsettings)) {
+ // audio on/off with video enabled
var videoview = videoWindow._chatvideoinner._videostream;
if (settings == 'av' && videoWindow.clientVars.avsettings == 'v') {
videoview.muteMicro(false);
Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/baseVideoObject.lzx
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/baseVideoObject.lzx?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/baseVideoObject.lzx (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/baseVideoObject.lzx Fri Mar 10 05:28:43 2017
@@ -203,7 +203,7 @@
<method name="updateAVSettingsSymbol" args="rcl">
<![CDATA[
//FIXME: Set a Symbol whereve this Client is Audio(only)/Video(only), both or Profile Picture
- if ($debug) Debug.warn("updateAVSettingsSymbol TODO ",rcl);
+ if ($debug) Debug.warn("updateAVSettingsSymbol TODO ", rcl, this);
switch (rcl.avsettings) {
case "av":
this.setDefaultVideoSize(rcl.VWidth, rcl.VHeight);
@@ -213,6 +213,7 @@
if(!canvas.isInterview && this.minimized) {
this.reminimize();
}
+ this.deleteVideoConfProfilePic();
break;
case "a":
this.setAttribute("visible", true);
@@ -231,6 +232,7 @@
if(!canvas.isInterview && this.minimized) {
this.reminimize();
}
+ this.deleteVideoConfProfilePic();
break;
case "n":
if ($debug) Debug.write("Do not Publish A/V");
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Fri Mar 10 05:28:43 2017
@@ -259,6 +259,14 @@ public class Application extends Authent
}
}
+ private static boolean hasVideo(org.apache.openmeetings.db.entity.room.Client rcl) {
+ return rcl != null && rcl.getAvsettings().contains("v");
+ }
+
+ private static boolean hasVideo(Client c) {
+ return c != null && c.hasActivity(Activity.broadcastV);
+ }
+
@Override
public org.apache.openmeetings.db.entity.room.Client updateClient(org.apache.openmeetings.db.entity.room.Client rcl, boolean forceSize) {
if (rcl == null) {
@@ -306,7 +314,7 @@ public class Application extends Authent
if (client.hasActivity(Activity.broadcastV)) {
sb.append('v');
}
- if (!rcl.getIsBroadcasting()) {
+ if (!rcl.getIsBroadcasting() || hasVideo(rcl) != hasVideo(client)) {
rcl.setIsBroadcasting(true);
rcl.setBroadCastID(ScopeApplicationAdapter.nextBroadCastId());
}
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java Fri Mar 10 05:28:43 2017
@@ -477,7 +477,7 @@ public class WhiteBoardService implement
log.debug("scope " + scope);
if (numberOfInitial == 0 && scope != null) {
- scopeAdapter.sendMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, false);
+ scopeAdapter.sendMessageToCurrentScope("" + roomId, "sendSyncCompleteFlag", wSyncLockObject, false);
}
// Check Image Loaders
@@ -493,7 +493,7 @@ public class WhiteBoardService implement
int numberOfImageLoaders = wbListManager.getWhiteBoardObjectSyncListByRoomid(roomId).size();
if (numberOfImageLoaders == 0 && scope != null) {
- scopeAdapter.sendMessageToCurrentScope("sendImagesSyncCompleteFlag", new Object[] { "remove" }, true);
+ scopeAdapter.sendMessageToCurrentScope("" + roomId, "sendImagesSyncCompleteFlag", new Object[] { "remove" }, true);
}
}
} catch (Exception err) {
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Fri Mar 10 05:28:43 2017
@@ -1489,12 +1489,16 @@ public class ScopeApplicationAdapter ext
sendMessageToCurrentScope(remoteMethodName, newMessage, sendSelf, false);
}
+ public void sendMessageToCurrentScope(String scopeName, String remoteMethodName, Object newMessage, boolean sendSelf) {
+ sendMessageToCurrentScope(scopeName, remoteMethodName, newMessage, sendSelf, false);
+ }
+
public void sendToScope(final Long roomId, String method, Object obj) {
new MessageSender(getRoomScope("" + roomId), method, obj, this) {
@Override
public boolean filter(IConnection conn) {
Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
- return rcl.isScreenClient()
+ return rcl == null || rcl.isScreenClient()
|| rcl.getRoomId() == null || !rcl.getRoomId().equals(roomId) || userDao.get(rcl.getUserId()) == null;
}
}.start();
@@ -1530,7 +1534,16 @@ public class ScopeApplicationAdapter ext
* @param sendScreen send to the current client as well
*/
public void sendMessageToCurrentScope(final String remoteMethodName, final Object newMessage, final boolean sendSelf, final boolean sendScreen) {
- new MessageSender(remoteMethodName, newMessage, this) {
+ IConnection conn = Red5.getConnectionLocal();
+ if (conn == null) {
+ log.warn(String.format("[sendMessageToCurrentScope] -> 'Unable to send message using NULL connection' %s, %s", remoteMethodName, newMessage));
+ return;
+ }
+ sendMessageToCurrentScope(conn.getScope().getName(), remoteMethodName, newMessage, sendSelf, sendScreen);
+ }
+
+ public void sendMessageToCurrentScope(final String scopeName, final String remoteMethodName, final Object newMessage, final boolean sendSelf, final boolean sendScreen) {
+ new MessageSender(getRoomScope(scopeName), remoteMethodName, newMessage, this) {
@Override
public boolean filter(IConnection conn) {
IClient client = conn.getClient();
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1786290&r1=1786289&r2=1786290&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Fri Mar 10 05:28:43 2017
@@ -259,6 +259,14 @@ public class Application extends Authent
}
}
+ private static boolean hasVideo(org.apache.openmeetings.db.entity.room.Client rcl) {
+ return rcl != null && rcl.getAvsettings().contains("v");
+ }
+
+ private static boolean hasVideo(Client c) {
+ return c != null && c.hasActivity(Activity.broadcastV);
+ }
+
@Override
public org.apache.openmeetings.db.entity.room.Client updateClient(org.apache.openmeetings.db.entity.room.Client rcl, boolean forceSize) {
if (rcl == null) {
@@ -306,7 +314,7 @@ public class Application extends Authent
if (client.hasActivity(Activity.broadcastV)) {
sb.append('v');
}
- if (!rcl.getIsBroadcasting()) {
+ if (!rcl.getIsBroadcasting() || hasVideo(rcl) != hasVideo(client)) {
rcl.setIsBroadcasting(true);
rcl.setBroadCastID(ScopeApplicationAdapter.nextBroadCastId());
}