You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2011/12/18 16:29:30 UTC

svn commit: r1220427 [2/2] - in /incubator/openmeetings/branches/video-components: ./ WebContent/languages/ WebContent/openmeetings/ WebContent/openmeetings/base/ WebContent/openmeetings/base/hibernate/ WebContent/openmeetings/modules/conference/ WebCo...

Modified: incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx (original)
+++ incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx Sun Dec 18 15:29:29 2011
@@ -12,6 +12,8 @@
 	<attribute name="colorArray" value="null" />
 	
 	<attribute name="allowUserQuestions" value="true" type="boolean" />
+
+    <attribute name="showsVideoInSeparateComponent" value="true" type="boolean" />
 	
 	<handler name="onallowUserQuestions" args="bool">
 		if (bool != null) {
@@ -44,7 +46,10 @@
         	//The user is already in the correct Scope
         	this.reconnectSuccess();
         }
+        _videoviewcontent.initVideoContainer(40, 100, 100);
 	</handler>
+
+    <commonVideoComponentAdapter name="_videoviewcontent"/>
                   
     <method name="reconnectSuccess">
         if ($debug) Debug.warn("User Reloged In ",canvas.becomemoderator);
@@ -159,63 +164,9 @@
 	<!-- invoked if another client logs into the room 
 	after choosing devices -->     
     <method name="setAVSettingsToClient" args="rcl">
-    	if ($debug) Debug.write("setAVSettingsToClient ",rcl.publicSID,rcl);
-    	var obj = this.getVideoObjectByPublicSID(rcl.publicSID);
-    	
-    	if (obj == null) {
-    		obj = this.getNewVideoObjectByPos(rcl.publicSID);
-    	}
-    	
-    	if ($debug) Debug.write("setAVSettingsToClient: ",obj,rcl.avsettings);
-		if (rcl.avsettings=="n"){
-            obj.setAttribute("visibility","hidden");
-			obj.setVideouserProfilePic(rcl);
-		} else if (rcl.avsettings=="a"){
-			obj.setVideouserProfilePic(rcl);
-			if (!obj.minimized) {
-				obj.minimize();
-			}
-            obj.setAttribute("visibility","visible");
-		} else {
-			obj.deleteVideoConfProfilePic();
-            obj.setAttribute("visibility","visible");
-		}
-		obj.clientVars = rcl;
-    	obj.updateAVSettingsSymbol(rcl);
+    	this._videoviewcontent.setAVSettingsToClient(rcl);
     </method> 
-    
 
-    <!--- get a baseVideoObject by a Users publicSID
-    	@param string publicSID publicSID
-   	 -->
-    <method name="getVideoObjectByPublicSID" args="publicSID">
-    	<![CDATA[
-    		//if ($debug) Debug.write("getVideoObjectByPublicSid SEARCH: ",publicSID);
-    		
-    		var videoContainer = parent.parent._videoviewcontent;
-            
-    		//for (var i=0;i<this._videoviewcontent.subviews.length;i++){
-    		//	if ($debug) Debug.write("getVideoObjectByBroadCastId6 broadcastId: ",this._videoviewcontent.subviews[i].broadcastId);
-    		//	if ($debug) Debug.write("getVideoObjectByBroadCastId7 streamid,user_id: ",this._videoviewcontent.subviews[i].clientVars.streamid,this._videoviewcontent.subviews[i].clientVars.user_id);
-    		//}
-    		
-    		for (var i=0;i<videoContainer.subviews.length;i++){
-    			//if ($debug) Debug.write("getVideoObjectByBroadCastId2 broadcastId VIEW: ",videoContainer.subviews[i].broadcastId);
-    			//if ($debug) Debug.write("getVideoObjectByBroadCastId3 broadcastId SEARCH: ",broadcastId);
-    			//if ($debug) Debug.write("getVideoObjectByBroadCastId4 obj: ",videoContainer.subviews[i]);
-    			//if ($debug) Debug.write("getVideoObjectByBroadCastId5 streamid,user_id: ",videoContainer.subviews[i].clientVars.streamid,videoContainer.subviews[i].clientVars.user_id);
-    			if (videoContainer.subviews[i].publicSID==publicSID){
-    				return videoContainer.subviews[i];
-    			}
-    		}
-    		
-    		if ($debug) Debug.warn(" - getVideoObjectByPublicSID - DID NOT FIND THE USER BY ",publicSID);
-            
-            return null;
-    		
-    	]]>
-    </method>   
-    
     <method name="addItemInitial" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
 		<![CDATA[
 			//if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
@@ -229,40 +180,14 @@
                 //if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
                 
 				if (object.isBroadcasting) {
-					
-    	            var myvideocontainer = this.getNewVideoObjectByPos(object.publicSID);
-    		  		myvideocontainer.clientVars = object;
-    		  		myvideocontainer.setAttribute('chatpartnername',object.firstname+' '+object.lastname);
-    		  		if ($debug) Debug.write("object.isBroadcasting object.avsettings: ",object.avsettings);
-    		  		if (object.avsettings=="n"){
-    	    			myvideocontainer.setVideouserProfilePic(object);
-                        //myvideocontainer.setAttribute("visibility","hidden");
-    	    		} else if (object.avsettings=="a"){
-    	    			myvideocontainer.setVideouserProfilePic(object);
-    	    			if ($debug) Debug.warn("start play");
-    	    			myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);
-                        myvideocontainer.setAttribute("visibility","visible");
-                        if (!myvideocontainer.minimized) {
-                            myvideocontainer.minimize();
-                        }
-    	    		} else {
-    	    			myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);	
-                        myvideocontainer.setAttribute("visibility","visible");
-    	    			if ($debug) Debug.warn("start play");
-    	    		}
-    	    		myvideocontainer.updateAVSettingsSymbol(object);
-                    return myvideocontainer;
-                    
+                    this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, -1);
 				} else {
-					return null;
+					this._videoviewcontent.createVideoObject(object.publicSID, false, -1);
 				}
 		  		
 			} else {
-                
                 //do add self too
                 this._participents.initialAddItem(object);
-                
-                return null;
             }
            
 		]]>
@@ -274,188 +199,57 @@
             
             //Do init only in case this stream is NOT the same as we are
 			if (streamid!=canvas.streamid){
-				
+				//if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
+
+				this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, -1);
+
 				//do add others
                 this._participents.addItem(object);
-                
-                //if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
-                
-				if (object.isBroadcasting) {
-					
-    	            var myvideocontainer = this.getNewVideoObjectByPos(object.publicSID);
-    		  		myvideocontainer.clientVars = object;
-    		  		myvideocontainer.setAttribute('chatpartnername',object.firstname+' '+object.lastname);
-    		  		if ($debug) Debug.write("object.avsettings: ",object.avsettings);
-    		  		if (object.avsettings=="n"){
-    	    			myvideocontainer.setVideouserProfilePic(object);
-                        //myvideocontainer.setAttribute("visibility","hidden");
-    	    		} else if (object.avsettings=="a"){
-    	    			myvideocontainer.setVideouserProfilePic(object);
-    	    			if ($debug) Debug.warn("start play");
-    	    			myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);
-                        myvideocontainer.setAttribute("visibility","visible");
-                        if (!myvideocontainer.minimized) {
-                            myvideocontainer.minimize();
-                        }
-    	    		} else {
-    	    			myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);	
-                        myvideocontainer.setAttribute("visibility","visible");
-    	    			if ($debug) Debug.warn("start play");
-    	    		}
-    	    		myvideocontainer.updateAVSettingsSymbol(object);
-                    return myvideocontainer;
-                    
-				} else {
-					return null;
-				}
-		  		
+
+                //return myvideocontainer;
 			} else {
-                
                 //do add self too
                 this._participents.addItem(object);
-                
-                return null;
             }
            
 		]]>
 	</method>
 	
 	<method name="addClientItem" args="connectedSince,isMod,streamid,username,room_id,formatedDate,position,color,object">
-		<![CDATA[
-		if ($debug) Debug.write("### initializeStreams addClientItem: ",connectedSince,isMod,streamid,username,room_id,formatedDate);
-		
-    		if (canvas.publicSID != object.publicSID){
-    			
-    			if (object.isBroadcasting) {
-                    var myvideocontainer = this.getNewVideoObjectByPos(object.publicSID);
-        	  		myvideocontainer.clientVars = object;
-        	  		myvideocontainer.setAttribute('chatpartnername',object.firstname+' '+object.lastname);
-        	  		if ($debug) Debug.write("addClientItem avsettings: ",object.avsettings);
-            		if (object.avsettings=="n" || object.avsettings=="a"){
-            			myvideocontainer.setVideouserProfilePic(object);
-            		}
-            		myvideocontainer.updateAVSettingsSymbol(object);
-    			}
-    			
-    		}
+        <![CDATA[
+        if ($debug) Debug.write("### initializeStreams addClientItem: ",connectedSince,isMod,streamid,username,room_id,formatedDate);
 
-    		//Do Add it anyway
-    		this._participents.addItem(object);
-		]]>
-	</method>
+        if (canvas.publicSID != object.publicSID){
+            this._videoviewcontent.createVideoObject(object.publicSID, false, -1);
+        }
+
+        //Do Add it anyway
+        this._participents.addItem(object);
+        ]]>
+    </method>
 		
     <!--
         invoked whenever a User starts to Stream Video in this Room, 
         interviewPodId has only a meaning in the Room Type Interview
      -->        
     <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId">
-		<![CDATA[
-			//if ($debug) Debug.write("startStream broadcastId: ",broadcastId);
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			
-			if (obj == null) {
-                obj = this.getNewVideoObjectByPos(publicSID);
-            }
-			
-			//if ($debug) Debug.write("startStream obj: ",obj);
-			if (obj != null ){
-				obj._chatvideoinner._videostream.playStream(broadcastId,-1);
-				obj.setAttribute('chatpartnername',firstname+' '+lastname);
-			} else {
-				if ($debug) Debug.warn("Could Not find the correct obj to startStream - This should not happen logically",publicSID);
-			}
-		]]>
+		this._videoviewcontent.startStream(publicSID,broadcastId,firstname,lastname,interviewPodId);
 	</method>
 
-	
-	<!-- 
-		This method returns an object of type videoObjectBroadcast
-		you can only publish you a/v with this object
-		@param string broadcastId broadcastId
-	 -->
-	<method name="getNewVideoObject" args="publicSID">
-		<![CDATA[
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			if (obj!=null){
-				this.broadCastViewRef = obj;
-			} else {
-                var videoContainer = parent.parent._videoviewcontent;
-                
-                //Get a Free VideoView Slot
-                var freePos = videoContainer.getVideoObjectFreePos(40, 100, 100);
-                
-				this.broadCastViewRef = new lz.videoObjectBroadcast(videoContainer,{
-	                    publicSID:publicSID,
-	                    x:freePos[0],y:freePos[1]
-                    });
-				
-				this.broadCastViewRef._chatvideoinner.r.destroy();
-				this.broadCastViewRef.setAttribute('chatpartnername',hib.userobject.firstname+' '+hib.userobject.lastname);
-			}
-			return this.broadCastViewRef;
-		]]>
-	</method>
-	
-	<!---
-		returns a new object of type videoObjectPlayBroadcast
-		you can only play a stream not publish you a/v with this object
-		@param string broadcastId broadcastId
-	 -->
-	<method name="getNewVideoObjectByPos" args="publicSID">
-		<![CDATA[
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			if (obj!=null){
-				return obj;
-			}
-			
-            var videoContainer = parent.parent._videoviewcontent;
-            
-            //Get a Free VideoView Slot
-            var freePos = videoContainer.getVideoObjectFreePos(40, 100, 100);
-            
-			return new lz.videoObjectPlayBroadcast(videoContainer,{
-                    publicSID:publicSID,
-                    x:freePos[0],y:freePos[1]
-                });
-		]]>
-	</method>
-	
-	<!--- 
-		invoked remotely by Red5-notification 
-		shows a green light if somebody is speaking
-		@param string broadcastId broadcastId
-		@param boolean bool show light on/off
-	-->
 	<method name="setSpeakingByPos" args="publicSID,bool">
-		<![CDATA[
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			if (bool){
-				obj._loudness.loudness.setAttribute('opacity',1);
-			} else {
-				obj._loudness.loudness.setAttribute('opacity',0.2);
-			}
-		]]>
-	</method>	
-	
-	<!--- 
-		stops the streaming but does not destroy the view
-		@param int broadcastId broadcastId
-	 -->
-	<method name="closeStreamClient" args="publicSID">
-		<![CDATA[
-			if ($debug) Debug.write("closeStreamclient: ",publicSID);
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			if ($debug) Debug.write("closeStreamclient obj: ",obj);
-			if (obj != null){
-				obj.resetValues();
-			}
-			return obj;
-		]]>
-	</method>
+        this._videoviewcontent.setSpeakingByPos(publicSID, bool);
+    </method>
+
+    <method name="closeStreamClient" args="publicSID">
+        this._videoviewcontent.closeStreamClient(publicSID);
+    </method>
+
+    <method name="resetAllValues">
+        this._videoviewcontent.resetAllValues();
+    </method>
 	
 	<method name="removeVideoByUser" args="userObject">
-		var obj = this.closeStreamClient(userObject.publicSID);
-		obj.destroy();
+		this._videoviewcontent.removeVideoByUser(userObject.publicSID);
 	</method>
 	
 	<!--- 
@@ -463,29 +257,8 @@
 		@param int broadcastId broadcastId
 	 -->
 	<method name="disconnectclient" args="publicSID">
-		<![CDATA[
-			//if ($debug) Debug.write("disconnectclient: ",publicSID);
-			
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-            var objList = this._participents.disconnectclient(publicSID);
-			
-			//if ($debug) Debug.write("disconnectclient obj: ",obj);
-			
-			if (obj != null){
-				obj.resetValues();
-				obj.destroy();
-			}
-            
-			return null;
-		]]>
-	</method>	
-	
-	<method name="resetAllValues">
-		var videoContainer = parent.parent._videoviewcontent;
-
-		for (var eg in videoContainer.subviews){
-			videoContainer.subviews[eg].resetValues();
-		}
+        this._videoviewcontent.disconnectclient(publicSID);
+        this._participents.disconnectclient(publicSID);
 	</method>
 	
 	<method name="updateMuteStatusVideoView" args="roomClient">

Modified: incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx (original)
+++ incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx Sun Dec 18 15:29:29 2011
@@ -12,82 +12,49 @@
 	So I think it is better if Users are forced to choose something from this list
 	
  -->
- 
-<class name="editRecordStream"  extends="labelExplorerBox" labelid="51"
-	width="300" height="250" x="14" y="-340" >
 
-    <attribute name="myvideocontainer" value="null" />
-    
-    <attribute name="chosenCam" value="null" />
-    <attribute name="chosenMic" value="null" />
+<class name="editRecordStream">
+
     <attribute name="chosenSetting" value="null" />
-    <attribute name="currentClient" value="null" />
-    
     <attribute name="remoteMessage" value="null" />
-    
-    <attribute name="isSyncUpdate" value="false" type="boolean" />
-    
-    <attribute name="doDefaultAnimation" value="true" type="boolean" />
-    
+    <attribute name="currentClient" value="null" />
+
+    <attribute name="syncUpdate" value="false" />
     <attribute name="isInterview" value="false" type="boolean" />
-    
-	<handler name="oninit">
-		<![CDATA[
-			if ($debug) Debug.write("this.myvideocontainer ",this.myvideocontainer);			
-			if ($debug) Debug.write("editrecordstream ###################### ");
-	        var g = canvas.getUserData();
-	        var save = g["savecamdata"];
-	        //Debug.write("save: ",save,g["cam"],g["mic"]);
-            
-	        //In case its an Audio-Only Room this box should not close automatically
-	        if (canvas.currentRoomObject.isAudioOnly) {
-	        	this._chooseDeviceAnimation.doStart();
-	        } else {
-	        	//In case the user presses the Sync Button this box should 
-                //not close automatically and do the user-prefered values
-                if(save && !this.isSyncUpdate) {
-                    this.chosenCam = g["cam"];
-                    this.chosenMic = g["mic"];
-                    this.chosenSetting = g["avstored"];
-                    this.remoteMessage = new Array();
-                    this.remoteMessage[0] = 'avsettings';
-                    this.remoteMessage[2] = this.chosenSetting;         
-                    this.getBroadCastId.doCall();       
-                } else {
-                    if (this.doDefaultAnimation) {
-                        this._chooseDeviceAnimation.doStart();
-                    }
-                }
-	        }
-	        
-            
-            
-        ]]>
-	</handler>
-    
-    <method name="storelocaldata">
+
+    <!---
+	Message to send to Clients
+	 -->
+	<attribute name="objMessage" value="null" />
+
+    <handler name="oninit">
         <![CDATA[
-        //Debug.write("sharedobject store ");
-        var g = canvas.getUserData();
-        g["cam"] = this.availibleCams.getValue();
-        g["mic"] = this.availibleMics.getValue();
-        g["avstored"] = this.availibleSettings.getValue();
-        g["savecamdata"] = this.holddatainSO.getValue();
-        canvas.setUserData(g);
+        //this.getBroadCastId.doCall();
+        var t = this;
+        canvas.lc.send(canvas.vid_lc_name, "createEditRecordStream", this.syncUpdate, this.isInterview);
+        canvas.stream_lc.lc_getBroadCastId = function(chosenSetting,remoteMessage) {
+            if ($debug) Debug.write("lc_getBroadCastId",chosenSetting,remoteMessage);
+            t.chosenSetting = chosenSetting;
+            t.remoteMessage = remoteMessage;
+            t.getBroadCastId.doCall();
+        };
+        canvas.stream_lc.sendNotification = function(objMessage) {
+            //if ($debug) Debug.write("Level sendNotification ",this.isgreater);
+            t.objMessage = objMessage;
+            t.sendMessage.doCall();
+        };
         ]]>
-    </method>   	
-    
-    <netRemoteCallHib name="getBroadCastId" funcname="getBroadCastId" 
-    				  remotecontext="$once{ canvas.thishib }" >  
+    </handler>
+
+    <netRemoteCallHib name="getBroadCastId" funcname="getBroadCastId"
+    				  remotecontext="$once{ canvas.thishib }" >
+
     	<handler name="ondata" args="value">
         	<![CDATA[
         		if ($debug) Debug.write("getBroadCastId",value,canvas.publicSID);
-        		if (parent.myvideocontainer == null) {
-                    parent.myvideocontainer = canvas._videocontainer.getNewVideoObject(canvas.publicSID);
-        		} else {
-        			parent.myvideocontainer.publicSID = canvas.publicSID;
-        		}
-        		
+
+        		canvas.stream_lc.send(canvas.stream_lc_callback_name, 'clb_getBroadCastId', value)
+
         		canvas.setAttribute("currentMicName", Microphone.names[parent.chosenMic]);
         		canvas.setAttribute("currentCamName", Camera.names[parent.chosenCam]);
         		
@@ -107,263 +74,20 @@
         	<![CDATA[
         		if ($debug) Debug.write("setUserAVSettings",value);
         		parent.currentClient = value;
-            	parent.doninitalize();
+            	//parent.doninitalize();
+            	canvas.stream_lc.send(canvas.stream_lc_callback_name, 'clb_setUserAVSettings', value);
             ]]>
         </handler>   
     </netRemoteCallHib>    
 
-    <method name="doninitalize">
-    	<![CDATA[
-    		var valCam = this.chosenCam;
-			var valMic = this.chosenMic;
-			var settings = this.chosenSetting;
-			var videoview = this.myvideocontainer._chatvideoinner._videostream;
-	    	if ($debug) Debug.write("this.myvideocontainer: ",this.myvideocontainer);
-	    	if ($debug) Debug.write(valCam,valMic,settings);
-			this.myvideocontainer.setAttribute('isremote',false);
-			
-			var _micro = Microphone.get(valMic);
-			//always to default gain to 50 because the Flash Plugin will remember the last time you've set the value
-			_micro.setGain(50);
-			//Microphone setUseEchoSupression(bool)
-			_micro.setUseEchoSuppression(true);
-			var _camera = Camera.get(valCam);
-			if ($debug) Debug.write("_camera.setMode: ",videoview.width,videoview.height,canvas.framesPerSecond,true);
-			
-			
-			//Microphone.set
-			if (canvas.vaquality=="best") {
-				_micro.setRate(canvas.microphoneRateBest);
-				if ($debug) Debug.write("_camera.setQuality BEST: ",this.isInterview,(canvas.bandwidthNeededBest*2),canvas.camQualityBest);
-				if (this.isInterview) {
-					_camera.setMode(videoview.width,videoview.height,24,true);
-					if ($debug) Debug.warn("IS INTERVIEW ");
-				    _camera.setQuality(0,98);
-				} else {
-					_camera.setMode(videoview.width,videoview.height,canvas.framesPerSecond,true);
-					if ($debug) Debug.warn("IS NO INTERVIEW ");
-					_camera.setQuality(canvas.bandwidthNeededBest,canvas.camQualityBest);
-				}
-			} else {
-				_camera.setMode(videoview.width,videoview.height,canvas.framesPerSecond,true);
-				_micro.setRate(canvas.microphoneRateNormal);
-				_micro.setSilenceLevel(canvas.loudnessAcitviation);
-				if ($debug) Debug.write("_camera.setQuality NORMAL: ",canvas.bandwidthNeededNormal,canvas.camQualityNormal);
-				_camera.setQuality(canvas.bandwidthNeededNormal,canvas.camQualityNormal);
-			}
-			
-	    	switch (settings){
-                case "s":
-                    this.myvideocontainer.setAttribute("visibility","hidden");
-                    break;
-                case "vs":
-                    videoview.broadcast(this.currentClient.broadCastID,_camera,null);
-                    this.myvideocontainer.setAttribute("visibility","visible");
-                    break;
-	    		case "av":
-	    			videoview.broadcast(this.currentClient.broadCastID,_camera,_micro);
-                    this.myvideocontainer.setAttribute("visibility","visible");
-	    			break;
-	    		case "a":
-	    			videoview.broadcast(this.currentClient.broadCastID,null,_micro);
-	    			
-	    			if (this.myvideocontainer.hidebyAudioOnly) {
-	    				this.myvideocontainer.setAttribute("visibility","hidden");
-	    			} else {
-	    				this.myvideocontainer.setAttribute("visibility","visible");
-	    				if (!this.myvideocontainer.minimized) {
-                            this.myvideocontainer.minimize();
-                        }
-	    			}
-                    
-	    			break;	 
-	    		case "v":
-	    			videoview.broadcast(this.currentClient.broadCastID,_camera,null);
-                    this.myvideocontainer.setAttribute("visibility","visible");
-	    			break;	
-	    		case "n":
-	    			if ($debug) Debug.write("Do not Publish A/V");
-                    //Prevent from Hiding the Box in Event Modus
-                    if (canvas.thishib.modus == "conference") {
-                        this.myvideocontainer.setAttribute("visibility","hidden");
-                    }
-	    			break;
-	    		default:
-	    			if ($debug) Debug.warn("no valid device Setup chosen");
-	    			break;
-	    	}
-
-	        this.myvideocontainer.setAttribute('chatpartnername',canvas.firstName+' '+canvas.lastName);
-	        
-	        this.close();
-        ]]>
-    </method>    
-    
-    <animator name="_chooseDeviceAnimation" start="false" attribute="y" to="40" duration="750" />
-
-    <labelText labelid="447" fontsize="11" x="10" y="20" width="$once{ parent.width-20 }" />
-    
-    <resetCombobox fontsize="11" name="availibleSettings" x="10" y="40" width="280" editable="false">
-        
-        <handler name="oninit">
-            <![CDATA[
-            
-                if (canvas.currentRoomObject.isAudioOnly) {
-                    this.addItem(canvas.getLabelName(449),"a");
-                    //this.addItem(canvas.getLabelName(845),"s");
-                    //this.addItem(canvas.getLabelName(846),"sv");
-                    this.addItem(canvas.getLabelName(451),"n");
-                } else {
-                	this.addItem(canvas.getLabelName(448),"av");
-                    this.addItem(canvas.getLabelName(449),"a");
-                    this.addItem(canvas.getLabelName(450),"v");
-                    //this.addItem(canvas.getLabelName(845),"s");
-                    //this.addItem(canvas.getLabelName(846),"sv");
-                    this.addItem(canvas.getLabelName(451),"n");
-                }
-            
-				//var r = "av";
-
-				var g = canvas.getUserData();
-				var cam = g["avstored"];
-				
-				var tItem = this.getItem(String(cam));  
-				if (tItem != null) {
-				    this.selectItem(String(cam));
-				} else {
-					this.selectItemAt(0);
-				}
-
-            ]]>
-        </handler>
-        
-        <handler name="onselect">
-        	<![CDATA[
-        		var camVisible = "visible";
-        		var micVisible = "visible";
-        		var textVisible = "hidden";
-	        	switch (this.getValue()){
-	        		case "av":
-	        			break;
-	        		case "a":
-	        			camVisible = "hidden";
-	        			break;	 
-	        		case "v":
-	        			micVisible = "hidden";
-	        			break;	
-	        		case "n":
-	        			camVisible = "hidden";
-	        			micVisible = "hidden";
-	        			textVisible = "visible";
-	        			break;
-	        		default:
-	        			if ($debug) Debug.warn("no valid device Setup chosen");
-	        			break;
-	        	}
-    			this.parent.availibleCamsLabel.setAttribute("visibility",camVisible);
-    			this.parent.availibleCams.setAttribute("visibility",camVisible);
-    			this.parent.availibleMicsLabel.setAttribute("visibility",micVisible);
-    			this.parent.availibleMics.setAttribute("visibility",micVisible);	   
-    			this.parent.infoTextNoAV.setAttribute("visibility",textVisible);
-        	]]>
-        </handler>
-    </resetCombobox>    
-     
-    <labelText name="availibleCamsLabel" labelid="52" fontsize="11" x="10" y="80" width="$once{ parent.width-20 }" />
-
-    <resetCombobox fontsize="11" name="availibleCams" x="10" y="100" width="280" editable="false">
-        <handler name="oninit">
-            <![CDATA[
-				//Get all availible Cam's
-				var tw = Camera.names;
-				var r = "";
-				for (var eg=0;eg<tw.length;eg++){
-					this.addItem(tw[eg],eg);
-					r=eg;
-				}
-				var g = canvas.getUserData();
-				var cam = g["cam"];
-				if (cam=='undefined' || cam =='' || cam == null) cam=r;
-				this.selectItem(String(cam));    
-
-            ]]>
-        </handler>
-    </resetCombobox>
-    
-    
-
-    <resetCombobox fontsize="11" name="availibleMics"  x="10" y="140" width="280" editable="false">
-        <handler name="oninit">
-            <![CDATA[
-	            //Get all availible Mic's
-	            var tw = Microphone.names;
-	            var r = "";
-	            for (var eg=0;eg<tw.length;eg++){
-	                r=eg;
-	                this.addItem(tw[eg],eg);
-	            }
-	            
-	            var g = canvas.getUserData();
-            	var mic = g["mic"];
-				if (mic=='undefined' || mic =='' || mic ==null) mic=r;
-				this.selectItem(String(mic));  
-            ]]>
-        </handler>
-    </resetCombobox>
-    
-    <labelText name="infoTextNoAV" labelid="452" multiline="true" width="280" 
-    		   fontsize="11" x="10" y="80" visibility="hidden" />
-               
-    <labelText name="availibleMicsLabel" labelid="53" fontsize="11" 
-    		   x="10" y="120" width="$once{ parent.width-20 }" />
-    
-    <!-- Remember Me -->    
-    <labelCheckbox name="holddatainSO" labelid="762" x="10" y="210" >
-        <handler name="oninit">
-            var g = canvas.getUserData();
-            var save = g["savecamdata"];
-            if ($debug) Debug.write("savecamdata save: ",save);
-            if(save) this.setValue(true);
-        </handler>         
-    </labelCheckbox>
-    
-    <simpleLabelButton fontsize="11" visibility="${ (parent.isInterview) ? 'visible' : 'hidden' }" 
-                       labelid="54" x="80" y="180" width="100">
-        <handler name="onclick">
-            this.parent.storelocaldata();
-            this.parent.chosenCam = parent.availibleCams.getValue();
-            this.parent.chosenMic = parent.availibleMics.getValue();
-            this.parent.chosenSetting = parent.availibleSettings.getValue();      
-            this.parent.remoteMessage = new Array();
-            this.parent.remoteMessage[0] = 'avsettings';
-            this.parent.remoteMessage[1] = "0";
-            this.parent.remoteMessage[2] = this.parent.chosenSetting;               
-            this.parent.getBroadCastId.doCall();
-        </handler>
-    </simpleLabelButton>
-    
-    <simpleLabelButton fontsize="11" visibility="${ (parent.isInterview) ? 'visible' : 'hidden' }" 
-                       labelid="918" x="190" y="180" width="100">
-        <handler name="onclick">
-            parent.close();
-        </handler>
-    </simpleLabelButton>
-    
-    <simpleLabelButton fontsize="11" visibility="${ (!parent.isInterview) ? 'visible' : 'hidden' }" 
-    				   labelid="54" x="190" y="180" width="100">
-        <handler name="onclick">
-        	this.parent.storelocaldata();
-        	this.parent.chosenCam = parent.availibleCams.getValue();
-        	this.parent.chosenMic = parent.availibleMics.getValue();
-        	this.parent.chosenSetting = parent.availibleSettings.getValue();      
-			this.parent.remoteMessage = new Array();
-			this.parent.remoteMessage[0] = 'avsettings';
-			this.parent.remoteMessage[1] = "0";
-			this.parent.remoteMessage[2] = this.parent.chosenSetting;              	
-            this.parent.getBroadCastId.doCall();
-        </handler>
-    </simpleLabelButton>
-
+    <netRemoteCallHib name="sendMessage" funcname="sendMessage"
+		remotecontext="$once{ canvas.thishib }" showLoading="false" >
+    	<netparam><method name="getValue"> return parent.parent.objMessage; </method></netparam>
+    </netRemoteCallHib>
+
+    <method name="close">
+        this.destroy();
+    </method>
 </class>
-    
+
 </library>

Modified: incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoContainer.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoContainer.lzx?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoContainer.lzx (original)
+++ incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoContainer.lzx Sun Dec 18 15:29:29 2011
@@ -14,6 +14,8 @@
 	
 	<!--- colors for each user -->
 	<attribute name="colorArray" value="null" />
+
+    <attribute name="showsVideoInSeparateComponent" value="true" type="boolean" />
 	
 	<handler name="oninit">
 		//set modus
@@ -175,10 +177,13 @@
 				this.broadCastViewRef = obj;
 			} else {
 				//Get a Free VideoView Slot
-				var freePos = this._videoviewcontent.getVideoObjectFreePos(36, 100, 100);
+				var neededWidth = 100;
+				var neededHeight = 100;
+				var neededOffsetLength = 36;
+				var freePos = this._videoviewcontent.getVideoObjectFreePos(neededOffsetLength, neededWidth, neededHeight);
 
 				this.broadCastViewRef = new lz.videoObjectBroadcast(this._videoviewcontent,{
-	                    publicSID:publicSID,
+	                    publicSID:publicSID, width:neededWidth,height:neededHeight,
 	                    x:freePos[0],y:freePos[1]
                     });
 				canvas.currentusercolor = this.colorArray[this.subviews.length];
@@ -202,10 +207,13 @@
 				return obj;
 			}
             //Get a Free VideoView Slot
-            var freePos = this._videoviewcontent.getVideoObjectFreePos(36, 100, 100);
+            var neededWidth = 100;
+            var neededHeight = 100;
+            var neededOffsetLength = 36;
+            var freePos = this._videoviewcontent.getVideoObjectFreePos(neededOffsetLength, neededWidth, neededHeight);
 
 			return new lz.videoObjectPlayBroadcast(this._videoviewcontent,{
-                    publicSID:publicSID,
+                    publicSID:publicSID, width:neededWidth,height:neededHeight,
                     x:freePos[0],y:freePos[1]
                 });
 		]]>

Modified: incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoObjectPlayBroadcast.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoObjectPlayBroadcast.lzx?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoObjectPlayBroadcast.lzx (original)
+++ incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/video/videoObjectPlayBroadcast.lzx Sun Dec 18 15:29:29 2011
@@ -24,6 +24,16 @@
      ]]>
    </handler>
 
+    <handler name="onpublicSID" args="value">
+        if (canvas.publicSID == value) {
+            this._toolbar._mute.setAttribute('visibility','hidden');
+            this.setSoundVolume(0);
+        } else {
+            this._toolbar._mute.setAttribute('visibility','visible');
+            this.setSoundVolume(100);
+        }
+    </handler>
+
 	<view name="_chatvideoinner" x="1" y="20"  
           width="${parent.width-2}" height="${parent.height-21}" >
         
@@ -44,6 +54,12 @@
         
 	</view>
 
+    <method name="setSoundVolume" args="volume">
+        if (this._chatvideoinner._videostream != null){
+            this._chatvideoinner._videostream.setVolume(volume);
+        }
+    </method>
+
 </class>
 
 </library>

Modified: incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/videoclassroom/videoContainerAudience.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/videoclassroom/videoContainerAudience.lzx?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/videoclassroom/videoContainerAudience.lzx (original)
+++ incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/conference/videoclassroom/videoContainerAudience.lzx Sun Dec 18 15:29:29 2011
@@ -17,6 +17,8 @@
 
 	<attribute name="allUsers" value="null" />
 	<attribute name="modLoaded" value="false" type="boolean" />
+
+    <attribute name="showsVideoInSeparateComponent" value="true" type="boolean" />
 	
 	<handler name="oninit">
 		canvas.thishib.modus = "audience";

Modified: incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/recording/video/videoContainerStream.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/recording/video/videoContainerStream.lzx?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/recording/video/videoContainerStream.lzx (original)
+++ incubator/openmeetings/branches/video-components/WebContent/openmeetings/modules/recording/video/videoContainerStream.lzx Sun Dec 18 15:29:29 2011
@@ -5,7 +5,7 @@
 		This class is using for video and audio panel of conference recording viewer.
 	 -->
 	 
-	<class name="videoContainerStream" extends="view" width="288" height="$once{ parent.height-22 }" >	
+	<class name="videoContainerStream" extends="view" width="288" height="$once{ parent.height-22 }" >
 		<handler name="oninit">
 			canvas._videocontainer=this;
 		</handler>

Modified: incubator/openmeetings/branches/video-components/build.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/build.xml?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/build.xml (original)
+++ incubator/openmeetings/branches/video-components/build.xml Sun Dec 18 15:29:29 2011
@@ -126,7 +126,7 @@
 	<!-- build webapp -->
 
 	<target name="dist" description="binary distribution of OpenMeetings"
-        depends="cleanForBinary, jar, compile.laszlo.main, enhance, signWebStartJars">
+        depends="cleanForBinary, jar, compile.laszlo.main, compile.laszlo.main.as3, enhance, signWebStartJars">
 
 	</target>
 
@@ -138,7 +138,7 @@
 
 	<!-- compiles the sources only with laszlo debug client -->
 	<target name="dist-debug" description="binary distribution of OpenMeetings"
-        depends="cleanForBinary, jar, compile.laszlo.main.debug, signWebStartJars">
+        depends="cleanForBinary, jar, compile.laszlo.main.debug, compile.laszlo.main.debug.as3, signWebStartJars">
 
 	</target>
 
@@ -452,6 +452,38 @@
 		</signjar>
 	</target>
 
+        <target name = "compile.laszlo.main.as3" depends="compile.laszlo.main.debug.as3">
+		<java classname = "org.openlaszlo.compiler.Main" fork = "true"
+	        newenvironment="true"
+	        failonerror="true"
+	        dir = "${laszlo.src.dir}"
+	        classpathref="laszlo.lib"
+	       >
+			<jvmarg value = "-DLPS_HOME=${laszlo.home}"/>
+			<jvmarg value = "-Dlzdebug=${laszlo.debug}"/>
+			<jvmarg value = "-Dlzproxied=${laszlo.proxied}"/>
+			<jvmarg value = "-Xms1024M"/>
+			<jvmarg value = "-Xmx1024M"/>
+            <arg line="--runtime=swf10 --dir ${out.dir.swf} --onerror warn main.as3.lzx" />
+		</java>
+	</target>
+
+        <target name = "compile.laszlo.main.debug.as3">
+		<java classname = "org.openlaszlo.compiler.Main" fork = "true"
+	        newenvironment="true"
+	        failonerror="true"
+	        dir = "${laszlo.src.dir}"
+	        classpathref="laszlo.lib"
+	       >
+			<jvmarg value = "-DLPS_HOME=${laszlo.home}"/>
+			<jvmarg value = "-Dlzdebug=${laszlo.debug}"/>
+			<jvmarg value = "-Dlzproxied=${laszlo.proxied}"/>
+			<jvmarg value = "-Xms1024M"/>
+			<jvmarg value = "-Xmx1024M"/>
+            <arg line="--runtime=swf10 --dir ${out.dir.swf} --onerror warn maindebug.as3.lzx" />
+		</java>
+	</target>
+
 	<target name = "compile.laszlo.main" depends="compile.laszlo.main.debug">
 		<java classname = "org.openlaszlo.compiler.Main" fork = "true"
 	        newenvironment="true"

Modified: incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ClientListManager.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ClientListManager.java?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ClientListManager.java (original)
+++ incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ClientListManager.java Sun Dec 18 15:29:29 2011
@@ -80,12 +80,30 @@ public class ClientListManager {
 		return null;
 	}
 
+    public synchronized List<RoomClient> getClientsByPublicSID(String publicSID) {
+		try {
+            log.debug(" :: getClientByPublicSID :: " + publicSID);
+			Query q = em.createQuery("select rc from RoomClient rc where rc.publicSID = :publicSID");
+			q.setParameter("publicSID", publicSID);
+            List<RoomClient> clients = q.getResultList();
+            if (!clients.isEmpty()) {
+                return clients;
+            }
+		} catch (Exception err) {
+			log.error("[getClientByPublicSID]", err);
+		}
+		return null;
+	}
+
 	public RoomClient getClientByPublicSID(String publicSID) {
 		try {
 			log.debug(" :: getClientByPublicSID :: " + publicSID);
 			Query q = em.createQuery("select rc from RoomClient rc where rc.publicSID = :publicSID");
 			q.setParameter("publicSID", publicSID);
-			return (RoomClient)q.getSingleResult();
+            List<RoomClient> clients = q.getResultList();
+            if (!clients.isEmpty()) {
+                return clients.get(0);
+            }
 		} catch (NoResultException nre) {
 			//expected
 		} catch (Exception err) {

Modified: incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java (original)
+++ incubator/openmeetings/branches/video-components/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java Sun Dec 18 15:29:29 2011
@@ -1260,19 +1260,24 @@ public class ScopeApplicationAdapter ext
 			IConnection current = Red5.getConnectionLocal();
 			// String streamid = current.getClient().getId();
 
-			RoomClient currentClient = this.clientListManager
-					.getClientByPublicSID(publicSID);
+            List<RoomClient> clients = this.clientListManager
+					.getClientsByPublicSID(publicSID);
 
-			if (currentClient == null) {
+			if (clients == null) {
 				return -1L;
 			}
 
-			currentClient.setIsBroadcasting(value);
-			currentClient.setInterviewPodId(interviewPodId);
+			for (RoomClient rcl : clients) {
+                rcl.setIsBroadcasting(value);
+			    rcl.setInterviewPodId(interviewPodId);
+
+                // Put the mod-flag to true for this client
+			    this.clientListManager.updateClientByStreamId(
+					rcl.getStreamid(), rcl);
+            }
 
-			// Put the mod-flag to true for this client
-			this.clientListManager.updateClientByStreamId(
-					currentClient.getStreamid(), currentClient);
+            // workaround for as3 interview room
+            RoomClient currentClient = clients.get(0);
 
 			// Notify all clients of the same scope (room)
 			Collection<Set<IConnection>> conCollection = current.getScope()

Modified: incubator/openmeetings/branches/video-components/src/app/org/openmeetings/servlet/outputhandler/DefaultIndex.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/branches/video-components/src/app/org/openmeetings/servlet/outputhandler/DefaultIndex.java?rev=1220427&r1=1220426&r2=1220427&view=diff
==============================================================================
--- incubator/openmeetings/branches/video-components/src/app/org/openmeetings/servlet/outputhandler/DefaultIndex.java (original)
+++ incubator/openmeetings/branches/video-components/src/app/org/openmeetings/servlet/outputhandler/DefaultIndex.java Sun Dec 18 15:29:29 2011
@@ -122,7 +122,7 @@ public class DefaultIndex extends Veloci
 			// Parse the Param for the SWF URL
 			String swf = httpServletRequest.getParameter("swf");
 			if (swf == null) {
-				ctx.put("SWF_URL", "main.swf8.swf");
+				ctx.put("SWF_URL", "main.as3.swf10.swf");
 			} else {
 				ctx.put("SWF_URL", swf);
 			}