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 2012/02/02 12:23:12 UTC

svn commit: r1239548 [3/4] - in /incubator/openmeetings/trunk/singlewebapp/WebContent/src: base/hibernate/ modules/conference/ modules/conference/eventuserlist/ modules/conference/flexibleConferenceRoom/ modules/conference/interviewuserlist/ modules/co...

Added: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx?rev=1239548&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx (added)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx Thu Feb  2 11:23:11 2012
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<library>
+
+<class name="commonVideoComponentAdapter" extends="view">
+
+    <handler name="oninit">
+        canvas.videoComp_lc.lc_switchMicMuted = function(publicSID, tMute) {
+            if ($debug) Debug.write("lc_switchMicMuted", publicSID, tMute);
+            canvas.thishib.switchMicMuted.setMute(publicSID, tMute);
+        };
+    </handler>
+
+    <handler name="onismoderator" reference="canvas" args="m">
+        canvas.lc.send(canvas.vid_lc_name, "ismoderatorChanged", m);
+    </handler>
+
+    <!--
+        set size of video objects
+    -->
+    <method name="initVideoContainer" args="offsetLength,videoWidth,videoHeight">
+        canvas.lc.send(canvas.vid_lc_name, "initVideoContainer", canvas.publicSID,canvas.firstName,canvas.lastName,offsetLength,videoWidth,videoHeight);
+    </method>
+
+    <!--
+        Creates video object
+    -->
+    <method name="createVideo" args="publicSID,displayName,broadcastId,avsettings,interviewPodId">
+        canvas.lc.send(canvas.vid_lc_name, "createVideo", publicSID, displayName, broadcastId, avsettings, interviewPodId);
+    </method>
+
+    <method name="createVideoObject" args="publicSID,isBroadcasting,interviewPodId">
+        canvas.lc.send(canvas.vid_lc_name, "createVideoObject", publicSID, isBroadcasting, interviewPodId);
+    </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">
+        canvas.lc.send(canvas.vid_lc_name, "startStream", publicSID,broadcastId,firstname,lastname,interviewPodId);
+    </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">
+        canvas.lc.send(canvas.vid_lc_name, "setSpeakingByPos", publicSID, bool);
+    </method>
+
+    <!---
+        stops the streaming but does not destroy the view
+        @param int broadcastId broadcastId
+     -->
+    <method name="closeStreamClient" args="publicSID">
+        canvas.lc.send(canvas.vid_lc_name, "closeStreamClient", publicSID);
+    </method>
+
+    <!---
+        stops the streaming but and destroys the view
+        @param int broadcastId broadcastId
+     -->
+    <method name="disconnectclient" args="publicSID">
+        canvas.lc.send(canvas.vid_lc_name, "disconnectclient", publicSID);
+    </method>
+
+    <method name="resetAllValues">
+        canvas.lc.send(canvas.vid_lc_name, "resetAllValues");
+    </method>
+
+    <!-- invoked if another client logs into the room
+    after choosing devices -->
+    <method name="setAVSettingsToClient" args="rcl">
+        canvas.lc.send(canvas.vid_lc_name, "setAVSettingsToClient", rcl);
+    </method>
+
+    <method name="createEditRecordStream" args="syncUpdate"><![CDATA[
+        //this.syncUpdate = syncUpdate;
+        //h.getBroadCastId.doCall();
+        canvas.lc.send(canvas.vid_lc_name, "createEditRecordStream", syncUpdate);
+    ]]></method>
+
+    <method name="removeVideoByUser" args="publicSID">
+        canvas.lc.send(canvas.vid_lc_name, "removeVideoByUser", publicSID);
+    </method>
+
+    <!--
+        Mutes/unmutes a sound of user's video
+        with the publicSID
+    -->
+    <method name="muteSound" args="publicSID">
+        canvas.lc.send(canvas.vid_lc_name, "muteSound", publicSID);
+    </method>
+
+    <!--
+        Updates microphone's state of roomClient
+    -->
+    <method name="updateMuteStatusVideoView" args="roomClient">
+        canvas.lc.send(canvas.vid_lc_name, "updateMuteStatusVideoView", roomClient);
+    </method>
+
+</class>
+
+</library>

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/eventuserlist/eventUserList.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/eventuserlist/eventUserList.lzx?rev=1239548&r1=1239547&r2=1239548&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/eventuserlist/eventUserList.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/eventuserlist/eventUserList.lzx Thu Feb  2 11:23:11 2012
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+          
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -22,38 +22,40 @@
 
  
 <class name="eventUserList" extends="view" width="$once{ parent.width }" 
-	   height="${ parent.height-34 }">
+       height="${ parent.height-34 }">
 
-	<!--- holds a references to the videoview which is broadcasting -->
-	<attribute name="broadCastViewRef" value="null" />
-	
-	<!--
+    <!--- holds a references to the videoview which is broadcasting -->
+    <attribute name="broadCastViewRef" value="null" />
+    
+    <!--
        This is a variable to make it backwards compatible to the old room layout
      -->
-	<attribute name="userNewVideoContainer" value="false" type="boolean"/>
-	
-	<attribute name="listType" value="eventUserListTable" type="string" />
-	
-	<!--- colors for each user -->
-	<attribute name="colorArray" value="null" />
-	
-	<attribute name="allowUserQuestions" value="true" type="boolean" />
-	
-	<handler name="onallowUserQuestions" args="bool">
-		if (bool != null) {
-			if (!bool) {
-				this._participants._applyAndStatusIcons.destroy();
-			}
-		}
-	</handler>
-	
-	<handler name="oninit">
-		//set modus
-		canvas.thishib.modus = "audience";
-		
-		//set reference, this reference will be cleared at *ontabcontenctleave* event
-		canvas._videocontainer=this;
-		
+    <attribute name="userNewVideoContainer" value="false" type="boolean"/>
+    
+    <attribute name="listType" value="eventUserListTable" type="string" />
+    
+    <!--- colors for each user -->
+    <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) {
+            if (!bool) {
+                this._participents._applyAndStatusIcons.destroy();
+            }
+        }
+    </handler>
+    
+    <handler name="oninit">
+        //set modus
+        canvas.thishib.modus = "audience";
+        
+        //set reference, this reference will be cleared at *ontabcontenctleave* event
+        canvas._videocontainer=this;
+        
         // Reconnect User to its Room Id
         canvas.thishib.userScope = canvas.thishib.currentroomid;
         var src = hib.protocollName+'://'+canvas.rtmphostlocal+':'+hib.protocollPort+'/'+canvas.webAppRootKey+'/'+hib.userScope;
@@ -67,10 +69,11 @@
             canvas.thishib.reconnectObjRef = this;
             canvas.thishib.disconnect();
         } else {
-        	//The user is already in the correct Scope
-        	this.reconnectSuccess();
+            //The user is already in the correct Scope
+            this.reconnectSuccess();
         }
-	</handler>
+        _videoviewcontent.initVideoContainer(40, 396, 360);
+    </handler>
                   
     <method name="reconnectSuccess">
         if ($debug) Debug.warn("User Reloged In ",canvas.becomemoderator);
@@ -84,14 +87,14 @@
         <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
         <handler name="ondata" args="value">
             <![CDATA[
-	            if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
-	            canvas.becomeSuperModerator = false;
+                if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
+                canvas.becomeSuperModerator = false;
                 
                 parent.setRoomValues.applyDefaultModeration = canvas.becomemoderator;
                 canvas.becomeSuperModerator = canvas.becomemoderator;
                 
                 if (!canvas.becomeSuperModerator) {
-    	            for (var i=0;i<value.length;i++) {
+                    for (var i=0;i<value.length;i++) {
                         
                         if (value[i].user.user_id == canvas.user_id) {
                             parent.setRoomValues.applyDefaultModeration = true;
@@ -102,11 +105,11 @@
                         
                     }
                 }
-	            
+                
                 if ($debug) Debug.write("canvas.becomemoderator: ",canvas.becomemoderator);
                 if ($debug) Debug.write("canvas.becomeSuperModerator: ",canvas.becomeSuperModerator);
                 
-                canvas.currentusercolor = parent._participants.getColorForUser();
+                canvas.currentusercolor = parent._participents.getColorForUser();
                 
                 var organisation_id = 1;
             
@@ -118,15 +121,15 @@
                 }
                 
                 this.parent.setRoomValues.organisation_id = organisation_id;
-	            this.parent.setRoomValues.doCall();
+                this.parent.setRoomValues.doCall();
             
             ]]>
         </handler>
     </netRemoteCallHib>     
 
-  	<netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
-    	<attribute name="applyDefaultModeration" value="false" type="boolean" />
-    	<attribute name="organisation_id" value="0" type="number" />
+    <netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
+        <attribute name="applyDefaultModeration" value="false" type="boolean" />
+        <attribute name="organisation_id" value="0" type="number" />
         <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
         <netparam><method name="getValue">return parent.applyDefaultModeration;</method></netparam>
         <netparam><method name="getValue">return canvas.becomeSuperModerator;</method></netparam>
@@ -141,8 +144,8 @@
             //if ($debug) Debug.write("+++++++++++++++++ getClientListScope : ",value);
             
             if (roomStatus.roomFull) {
-            	canvas.thishib.showFullMessage = true;
-            	canvas.thishib.disconnect();
+                canvas.thishib.showFullMessage = true;
+                canvas.thishib.disconnect();
             }
             
             if (roomStatus.browserStatus.browserInited) {
@@ -153,331 +156,140 @@
             }
             
             var value = roomStatus.clientMap;
-			
+            
             //if ($debug) Debug.write("+++++++++++++++++ getClientListScope : ",value);
             for (var i in value){
-            	if ( value[i].streamid == canvas.streamid ) {
+                if ( value[i].streamid == canvas.streamid ) {
                     canvas.isAllowedToDraw = value[i].canDraw;
                 }
 
-            	//if ($debug) Debug.write("getClientListScope value: ",value[i]);
-        		this.parent.addItem(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
-        		              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
+                //if ($debug) Debug.write("getClientListScope value: ",value[i]);
+                this.parent.addItem(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
+                              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
             }
             //this content must be inited _after_ setting the default values
             canvas.thishib.getCurrentModeratorList.doCall(); 
             //FIXME Issue-1076
             canvas.thishib.checkLzRecording.doCall();
-            canvas._chatcontent.doInit();	
+            canvas._chatcontent.doInit();   
             ]]>
-		</handler>	
-  	</netRemoteCallHib>
+        </handler>  
+    </netRemoteCallHib>
 
-	<!-- invoked if another client logs into the room 
-	after choosing devices -->     
+    <!-- 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);
-    </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 = this._videoviewcontent;
-            if (this.userNewVideoContainer) {
-                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="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
-		<![CDATA[
-			if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
+        this._videoviewcontent.setAVSettingsToClient(rcl);
+    </method>
+
+    <method name="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
+        <![CDATA[
+            if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
             
             //Do init only in case this stream is NOT the same as we are
-			if (streamid!=canvas.streamid){
-				
-				//do add others
-                this._participants.addItem(object);
+            if (streamid!=canvas.streamid){
+                
+                //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");
-    	    		} else {
-    	    			myvideocontainer.setDefaultVideoSize(object.VWidth,object.VHeight);
-    	    			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;
-				}
-		  		
-			} else {
+                if (object.isBroadcasting) {
+                    this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, -1);
+                } else {
+                    this._videoviewcontent.createVideoObject(object.publicSID, false, -1);
+                }
+                
+            } else {
                 
                 //do add self too
-                this._participants.addItem(object);
+                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);
-    			}
-    			
-    		}
-
-    		//Do Add it anyway
-    		this._participants.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,width,height">
-		<![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.setDefaultVideoSize(width,height);
-				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);
-			}
-		]]>
-	</method>
-	
-	<method name="updateMuteStatusVideoView" args="roomClient">
-        <![CDATA[
-            var videoContainer = parent.parent._videoviewcontent;
-            for (var i=0;i<videoContainer.subviews.length;i++){
-                videoContainer.subviews[i].muteMicrophone(roomClient);
-            }
         ]]>
     </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 = this._videoviewcontent;
-                if (this.userNewVideoContainer) {
-                    videoContainer = parent.parent._videoviewcontent;
-                }
+    
+    <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){
                 
-                //Get a Free VideoView Slot
-                var freePos = videoContainer.getVideoObjectFreePos(40, 396, 360);
+                if (object.isBroadcasting) {
+                    this._videoviewcontent.createVideoObject(object.publicSID, false, -1);
+                }
                 
-				this.broadCastViewRef = new lz.videoObjectBroadcast(videoContainer,{
-	                    publicSID:publicSID,width:396,height:360,
-	                    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 = this._videoviewcontent;
-            if (this.userNewVideoContainer) {
-                videoContainer = parent.parent._videoviewcontent;
             }
+
+            //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">
+        this._videoviewcontent.startStream(publicSID,broadcastId,firstname,lastname,interviewPodId);
+    </method>
+    
+    <method name="updateMuteStatusVideoView" args="roomClient">
+        this._videoviewcontent.updateMuteStatusVideoView(roomClient);
+    </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">
+        this._videoviewcontent.setSpeakingByPos(publicSID, bool);
+    </method>   
+    
+    <!--- 
+        stops the streaming but does not destroy the view
+        @param int broadcastId broadcastId
+     -->
+    <method name="closeStreamClient" args="publicSID">
+        this._videoviewcontent.closeStreamClient(publicSID);
+    </method>
+    
+    <method name="removeVideoByUser" args="userObject">
+        this._videoviewcontent.removeVideoByUser(userObject.publicSID);
+    </method>
+    
+    <!--- 
+        stops the streaming but and destroys the view
+        @param int broadcastId broadcastId
+     -->
+    <method name="disconnectclient" args="publicSID">
+        <![CDATA[
+            //if ($debug) Debug.write("disconnectclient: ",publicSID);
             
-            //Get a Free VideoView Slot
-            var freePos = videoContainer.getVideoObjectFreePos(40, 396, 360);
-            
-			return new lz.videoObjectPlayBroadcast(videoContainer,{
-                    publicSID:publicSID,width:396,height:360,
-                    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>
-	
-	<method name="removeVideoByUser" args="userObject">
-		var obj = this.closeStreamClient(userObject.publicSID);
-		obj.destroy();
-	</method>
-	
-	<!--- 
-		stops the streaming but and destroys the view
-		@param int broadcastId broadcastId
-	 -->
-	<method name="disconnectclient" args="publicSID">
-		<![CDATA[
-			//if ($debug) Debug.write("disconnectclient: ",publicSID);
-			
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-            var objList = this._participants.getVideoObjectByPublicSID(publicSID);
-			
-			//if ($debug) Debug.write("disconnectclient obj: ",obj);
-			
-			if (obj != null){
-				obj.resetValues();
-				obj.destroy();
-			}
+            this._videoviewcontent.disconnectclient(publicSID);
+
+            var objList = this._participents.getVideoObjectByPublicSID(publicSID);
+
             if (objList != null){
                 objList.resetValues();
                 objList.destroy();
             }
-			return null;
-		]]>
-	</method>	
-	
-	<method name="resetAllValues">
-		var videoContainer = this._videoviewcontent;
-        if (this.userNewVideoContainer) {
-            videoContainer = parent.parent._videoviewcontent;
-        }
-		for (var eg in videoContainer.subviews){
-			videoContainer.subviews[eg].resetValues();
-		}
-	</method>
+            return null;
+        ]]>
+    </method>   
+    
+    <method name="resetAllValues">
+        this._videoviewcontent.resetAllValues();
+    </method>
     
-    <eventUserListInner name="_participants" listType="$once{ parent.listType }" />
+    <eventUserListInner name="_participents" listType="$once{ parent.listType }" />
+
+    <commonVideoComponentAdapter name="_videoviewcontent"/>
     
-	<commonVideoViewContent name="_videoviewcontent" />
-	
 </class>
 
-</library>
+</library>
\ No newline at end of file

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx?rev=1239548&r1=1239547&r2=1239548&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx Thu Feb  2 11:23:11 2012
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+          
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,45 +19,45 @@
   
 -->
 <library>
-	
+    
 <class name="dtmfButton" extends="button" width="20" height="20" >
-	<attribute name="dtmf" value="" type="string"/>
-	<handler name="onclick">
-		callDTMFButton(this,this.text);
-	</handler>
-	<method name="doNextSipNumber">
-		if ($debug) Debug.write("doNextSipNumber ",this.text);
-	</method>
+    <attribute name="dtmf" value="" type="string"/>
+    <handler name="onclick">
+        callDTMFButton(this,this.text);
+    </handler>
+    <method name="doNextSipNumber">
+        if ($debug) Debug.write("doNextSipNumber ",this.text);
+    </method>
 </class>
-	
+    
 <class name="debugPinCode" extends="labelExplorerBox" title="Enter PIN Code"
     docking="true" resizeable="false" closable="true" width="100" x="14" height="120">
-	
-	
-	<view y="24">
-		
-		<dtmfButton text="1" x="20" dtmf="1"/> 
-			<dtmfButton text="2" x="40" dtmf="2"/> 
-				<dtmfButton text="3" x="60" dtmf="3"/>
-				
-		<dtmfButton text="4" x="20" y="20" dtmf="4"/> 
-			<dtmfButton text="5" x="40" y="20" dtmf="5"/> 
-				<dtmfButton text="6" x="60" y="20" dtmf="6"/>
-				
-		<dtmfButton text="7" x="20" y="40" dtmf="7"/> 
-			<dtmfButton text="8" x="40" y="40" dtmf="8"/> 
-				<dtmfButton text="9" x="60" y="40" dtmf="9"/>
-				
-		<dtmfButton text="10" x="20" y="60" dtmf="10"/>
-		
-	</view>
-	
-	
+    
+    
+    <view y="24">
+        
+        <dtmfButton text="1" x="20" dtmf="1"/> 
+            <dtmfButton text="2" x="40" dtmf="2"/> 
+                <dtmfButton text="3" x="60" dtmf="3"/>
+                
+        <dtmfButton text="4" x="20" y="20" dtmf="4"/> 
+            <dtmfButton text="5" x="40" y="20" dtmf="5"/> 
+                <dtmfButton text="6" x="60" y="20" dtmf="6"/>
+                
+        <dtmfButton text="7" x="20" y="40" dtmf="7"/> 
+            <dtmfButton text="8" x="40" y="40" dtmf="8"/> 
+                <dtmfButton text="9" x="60" y="40" dtmf="9"/>
+                
+        <dtmfButton text="10" x="20" y="60" dtmf="10"/>
+        
+    </view>
+    
+    
 </class>
 
 <class name="baseConferenceRoom" extends="baseContentView" destroyByMethod="true" >
-	
-	<attribute name="roomobj" value="null" />
+    
+    <attribute name="roomobj" value="null" />
     
     <attribute name="meetingTimer" value="null" />
     
@@ -71,18 +71,19 @@
             if ($debug) Debug.write("roomobj: ",this.roomobj);
             
             canvas.currentRoomObject = this.roomobj;
+            canvas.lc.send(canvas.rtmp_lc_name,"setRoomValues",this.roomobj.roomtype.roomtypes_id,this.roomobj.rooms_id,this.roomobj);
             
             if (this.roomobj.isClosed) {
-            	canvas.roomClosed();
+                canvas.roomClosed();
             }
             
             if (this.roomobj.waitForRecording) {
-            	
-            	new lz.errorDialog(canvas,{
-                    	   labelid:1316,
-                    	   errortext:canvas.getLabelName(1315)
-                    	});
-            	
+                
+                new lz.errorDialog(canvas,{
+                           labelid:1316,
+                           errortext:canvas.getLabelName(1315)
+                        });
+                
             }
             
             canvas.currentRoomObject = this.roomobj;
@@ -91,92 +92,69 @@
             
             if (canvas.thishib.sip_enabled) {
                 if (sipIsEnabled()) {
-                	
-                	if ($debug) Debug.write("Dial SIP Number: ",canvas.currentRoomObject.sipNumber);
-                	
-                	//this.sipNumberAsArray = new Array();
-                	
-                	//var numberAsString = ""+;
-                	
-                	preCustomStartCallByCallTo(canvas.currentRoomObject.sipNumber);
-                	
-                	//new lz.debugPinCode(canvas);
-                	
-                	//for (var i=0;i<numberAsString.length;i++) {
-                	//	var charString = numberAsString.charAt(i);
-                	//	if ($debug) Debug.write("Dial charString: ",charString);
-                	//	if (charString == "+") {
-                	//		this.sipNumberAsArray.push(Number("0"));
-                	//	} else {
-                	//		this.sipNumberAsArray.push(Number(charString));
-                	//	}
-                	//	
-                	//}
-                	//
-                	//this.startDialing();
-                	
+                    
+                    if ($debug) Debug.write("Dial SIP Number: ",canvas.currentRoomObject.sipNumber);
+                    
+                    //this.sipNumberAsArray = new Array();
+                    
+                    //var numberAsString = ""+;
+                    
+                    preCustomStartCallByCallTo(canvas.currentRoomObject.sipNumber);
+                    
+                    //new lz.debugPinCode(canvas);
+                    
+                    //for (var i=0;i<numberAsString.length;i++) {
+                    //  var charString = numberAsString.charAt(i);
+                    //  if ($debug) Debug.write("Dial charString: ",charString);
+                    //  if (charString == "+") {
+                    //      this.sipNumberAsArray.push(Number("0"));
+                    //  } else {
+                    //      this.sipNumberAsArray.push(Number(charString));
+                    //  }
+                    //  
+                    //}
+                    //
+                    //this.startDialing();
+                    
                 } else {
-                	
-                	new lz.labelerrorPopup(canvas,{error:'SIP Applet is not ready!'});
-                	
+                    
+                    new lz.labelerrorPopup(canvas,{error:'SIP Applet is not ready!'});
+                    
                 }
             }
-            
-            if(this._chatPanelStrict){
-	            if (this.roomobj.hideChat == null || !this.roomobj.hideChat) {            
-	           	 	this._chatPanelStrict.setAttribute('visibility','visible');
-		    	} else {
-		    		this._chatPanelStrict.setAttribute('visibility','hidden');    		   		
-		    	}
-            }
-            
         ]]>
     </handler>
     
     <method name="startDialing">
-    	this.sipNumberIndex = 0;
-    	this.doNextSipNumber();
+        this.sipNumberIndex = 0;
+        this.doNextSipNumber();
     </method>
     
     <method name="doNextSipNumber">
-    	<![CDATA[
-        	if (this.sipNumberIndex < this.sipNumberAsArray.length) {
-        	
-            	var nextNumber = this.sipNumberAsArray[this.sipNumberIndex];
+        <![CDATA[
+            if (this.sipNumberIndex < this.sipNumberAsArray.length) {
+            
+                var nextNumber = this.sipNumberAsArray[this.sipNumberIndex];
                 
                 this.sipNumberIndex++;
                 
                 callDTMFButton(this,nextNumber);
                 
-        	} else {
-        		
-        		if ($debug) Debug.write("Number Completed - Start Dial Process");
-        		
-        		preCustomStartCall();
-        		
-        	}
+            } else {
+                
+                if ($debug) Debug.write("Number Completed - Start Dial Process");
+                
+                preCustomStartCall();
+                
+            }
         ]]>
     </method>
     
     <method name="ringring">
-    	if ($debug) Debug.write("ringring - ringring - ringring");
+        if ($debug) Debug.write("ringring - ringring - ringring");
     </method>
     
-    <handler name="onkeydown" reference="lz.Keys" args="keyCode">
-        if (canvas.GIVE_EXCLUSIVE_AUDIO_KEY == keyCode) {
-            if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {
-
-                var obj = canvas._videocontainer.getVideoObjectByPublicSID(canvas.publicSID);
-                if (null != obj) {
-                    obj._giveExclusiveAudioView._micButton.onclick.sendEvent();
-                }
-                return;
-            } else {
-                new lz.rpcErrorDialog(canvas.main_content._content.inner,{errorid:-54});
-            }
-        }
-    </handler>
     
 </class>
 
-</library>
+</library>
\ No newline at end of file

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx?rev=1239548&r1=1239547&r2=1239548&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx Thu Feb  2 11:23:11 2012
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+          
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,60 +19,60 @@
   
 -->
 <library>
-	
+    
 <class name="interviewListTable" extends="view" y="60" 
        height="${ parent.height-64-parent.moderationPanel.height }"
         bgcolor="0xFFFFFF" x="2" clip="true" width="$once{ parent.width-4 }" >
         <innerlistViewEventUserListTable name="innerList" />
     <vscrollbar />
-</class>	
+</class>    
 
 <class name="interviewListInner" extends="baseRoomInnerList"  
-	   width="$once{ parent.width }" height="${ parent.height }" 
+       width="$once{ parent.width }" height="${ parent.height }" 
        bgcolor="$once{ canvas.basebgcolorizer }" >
-	
-	<attribute name="selectedItem" value="null" />
-	
-    <attribute name="sortType" value="alphabetical" type="string" />	
-	
-	<handler name="oninit">
-		<![CDATA[
-			this.initList();
-		]]>
-	</handler>
-	
+    
+    <attribute name="selectedItem" value="null" />
+    
+    <attribute name="sortType" value="alphabetical" type="string" />    
+    
+    <handler name="oninit">
+        <![CDATA[
+            this.initList();
+        ]]>
+    </handler>
+    
     <!-- clip="true" -->
     
     <view width="$once{ parent.width-2 }" height="${ parent.height-2 }" 
         x="1" y="1" bgcolor="white" />
 
     <method name="addItem" args="object">
-    	<![CDATA[
+        <![CDATA[
             if ($debug) Debug.write("eventUserList addItem: ",object,object.publicSID);
             
             for (var i=0;i<this._table.innerList.subviews.length;i++) {
-            	if (this._table.innerList.subviews[i].refObj.publicSID == object.publicSID) {
-            		//if ($debug) Debug.warn("Already on List, do not add twice");
-            		return;
-            	}
+                if (this._table.innerList.subviews[i].refObj.publicSID == object.publicSID) {
+                    //if ($debug) Debug.warn("Already on List, do not add twice");
+                    return;
+                }
             }
             
             var lastname = object.lastname;
-	        if (object.isSuperModerator) {
-	            lastname += " *";
-	        }
+            if (object.isSuperModerator) {
+                lastname += " *";
+            }
             
             new lz.interviewUserListItem(this._table.innerList,{
-    	            user_id:object.user_id,
-    	            firstname:object.firstname,
+                    user_id:object.user_id,
+                    firstname:object.firstname,
                     isSuperModerator:object.isSuperModerator,
-    	            lastname:lastname,
-    	            refObj:object,
-    	            connectedSince:object.connectedSince,
-    	            isMod:object.isMod,
-    	            streamid:object.streamid,
-    	            username:object.username,
-    	            formatedDate:object.formatedDate
+                    lastname:lastname,
+                    refObj:object,
+                    connectedSince:object.connectedSince,
+                    isMod:object.isMod,
+                    streamid:object.streamid,
+                    username:object.username,
+                    formatedDate:object.formatedDate
                 });
             
             this.sortUserList();
@@ -112,8 +112,8 @@
         
     
     <method name="initList">
-    	new lz.interviewListTable(this,{name:'_table'});
-    	this.moderationPanel.bringToFront();
+        new lz.interviewListTable(this,{name:'_table'});
+        this.moderationPanel.bringToFront();
     </method>
     
     <method name="clearList">
@@ -127,17 +127,9 @@
     <method name="getVideoObjectByPublicSID" args="publicSID">
         <![CDATA[
             //if ($debug) Debug.write("getVideoObjectByPublicSid SEARCH: ",publicSID);
-            
-            //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<this._table.innerList.subviews.length;i++){
-                //if ($debug) Debug.write("getVideoObjectByBroadCastId2 broadcastId VIEW: ",this._videoviewcontent.subviews[i].broadcastId);
-                //if ($debug) Debug.write("getVideoObjectByBroadCastId3 broadcastId SEARCH: ",broadcastId);
-                //if ($debug) Debug.write("getVideoObjectByBroadCastId4 obj: ",this._videoviewcontent.subviews[i]);
-                //if ($debug) Debug.write("getVideoObjectByBroadCastId5 streamid,user_id: ",this._videoviewcontent.subviews[i].clientVars.streamid,this._videoviewcontent.subviews[i].clientVars.user_id);
+                //if ($debug) Debug.write("getVideoObjectByPublicSID : this._table.innerList.subviews[i]",this._table.innerList.subviews[i]);
                 if (this._table.innerList.subviews[i].refObj.publicSID==publicSID){
                     return this._table.innerList.subviews[i];
                 }
@@ -150,29 +142,29 @@
 
     <method name="selectItem" args="itemObj">
         <![CDATA[
-    	if ($debug) Debug.write("selectItem ",itemObj);
-    	
-    	if (canvas.ismoderator) {
+        if ($debug) Debug.write("selectItem ",itemObj);
+        
+        if (canvas.ismoderator) {
             if (this.selectedItem != null && this.selectedItem != itemObj) {
                 this.selectedItem.deselect();
             }
             
             this.selectedItem = itemObj;
             if (this.selectedItem.isSelected) {
-            	this.selectedItem.deselect();
+                this.selectedItem.deselect();
             } else {
-            	this.selectedItem.select();
+                this.selectedItem.select();
             }
-    	}
+        }
         ]]>
     </method>
 
     <view name="userStatus" layout="axis:y">
-    	<view>
-    		 <view resource="userstatus_multiframe_rsc" frame="1" />
-    		 <labelText x="16" labelid="677" />
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="1" />
+             <labelText x="16" labelid="677" />
         </view>
-    	<view>
+        <view>
              <view resource="userstatus_multiframe_rsc" frame="2" />
              <labelText x="16" labelid="678" />
         </view>
@@ -183,15 +175,15 @@
     </view>
     
     <moderationMiniIconsInterviewUserList name="_applyAndStatusIcons" 
-						  x="$once{ parent.width-this.width-4 }" y="2" />
+                          x="$once{ parent.width-this.width-4 }" y="2" />
     
     <!--
     <eventUserListTable name="_table" /> 
      -->
     <view name="moderationPanel" height="0" clip="true" 
-    	  y="${ parent.height - this.height - 2 }">
-    	
-    	<handler name="onismoderator" reference="canvas" args="m">
+          y="${ parent.height - this.height - 2 }">
+        
+        <handler name="onismoderator" reference="canvas" args="m">
             if ($debug) Debug.write("###### ismoderator ",m);
             <![CDATA[
                 //this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
@@ -206,24 +198,24 @@
                 for (var i=0;i<vList.length;i++) {
                     //vList[i].updateIconByMod();
                     if (vList[i].refObj.publicSID == drawObject.publicSID) {
-                    	vList[i].refObj.canDraw = drawObject.canDraw;
-                    	vList[i].updateIconByMod();
-                    	break;
+                        vList[i].refObj.canDraw = drawObject.canDraw;
+                        vList[i].updateIconByMod();
+                        break;
                     }
                 }
             ]]>
         </handler>
         
         <handler name="onlastBroadCastingUser" reference="canvas" args="userObject">
-        	<![CDATA[
-            	
-            	if (!userObject.isBroadcasting) {
-            		//Stop Broadcasting and close Dialog
-            		//Search, stop and remove video
-            		parent.parent.removeVideoByUser(userObject);
-            	}
-            	
-            	//search for the user and update its drawStatusIcon
+            <![CDATA[
+                
+                if (!userObject.isBroadcasting) {
+                    //Stop Broadcasting and close Dialog
+                    //Search, stop and remove video
+                    parent.parent.removeVideoByUser(userObject);
+                }
+                
+                //search for the user and update its drawStatusIcon
                 var vList = parent._table.innerList.subviews;
                 for (var i=0;i<vList.length;i++) {
                     //vList[i].updateIconByMod();
@@ -239,28 +231,28 @@
         </handler>
         
         <method name="updateIcons">
-        	<![CDATA[
-            	if (canvas.ismoderator) {
-            		this.showItem.doStart();
-            	} else {
-            		this.setAttribute("height",0);
-            	}
-            	var vList = parent._table.innerList.subviews;
-            	
-            	for (var i=0;i<vList.length;i++) {
-            		vList[i].updateIconByMod();
-            	}
-            	parent._applyAndStatusIcons.updateIcons();
-        	]]>
+            <![CDATA[
+                if (canvas.ismoderator) {
+                    this.showItem.doStart();
+                } else {
+                    this.setAttribute("height",0);
+                }
+                var vList = parent._table.innerList.subviews;
+                
+                for (var i=0;i<vList.length;i++) {
+                    vList[i].updateIconByMod();
+                }
+                parent._applyAndStatusIcons.updateIcons();
+            ]]>
         </method>
         
         <labelText labelid="912" width="270" x="0" multiline="true" y="0" />
-    	
-    	<animator name="showItem" attribute="height" 
-    			  to="60" duration="1000" start="false" />
+        
+        <animator name="showItem" attribute="height" 
+                  to="60" duration="1000" start="false" />
     </view>
 
 </class>
 
 
-</library>
+</library>
\ No newline at end of file

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx?rev=1239548&r1=1239547&r2=1239548&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx Thu Feb  2 11:23:11 2012
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+          
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -22,21 +22,23 @@
 
  
 <class name="interviewUserList" extends="view" width="$once{ parent.width }" 
-	   height="${ parent.height-34 }">
+       height="${ parent.height-34 }">
 
-	<!--- holds a references to the videoview which is broadcasting -->
-	<attribute name="broadCastViewRef" value="null" />
-	
-	<!--- colors for each user -->
-	<attribute name="colorArray" value="null" />
-	
-	<handler name="oninit">
-		//set modus
-		canvas.thishib.modus = "interview";
-		
-		//set reference, this reference will be cleared at *ontabcontenctleave* event
-		canvas._videocontainer=this;
-		
+    <!--- holds a references to the videoview which is broadcasting -->
+    <attribute name="broadCastViewRef" value="null" />
+    
+    <!--- colors for each user -->
+    <attribute name="colorArray" value="null" />
+
+    <attribute name="showsVideoInSeparateComponent" value="false" type="boolean" />
+    
+    <handler name="oninit">
+        //set modus
+        canvas.thishib.modus = "interview";
+        
+        //set reference, this reference will be cleared at *ontabcontenctleave* event
+        canvas._videocontainer=this;
+        
         // Reconnect User to its Room Id
         canvas.thishib.userScope = canvas.thishib.currentroomid;
         var src = hib.protocollName+'://'+canvas.rtmphostlocal+':'+hib.protocollPort+'/'+canvas.webAppRootKey+'/'+hib.userScope;
@@ -53,7 +55,9 @@
             //The user is already in the correct Scope
             this.reconnectSuccess();
         }
-	</handler>
+
+        _videoviewcontent.initVideoContainer(40, 281, 281);
+    </handler>
                   
     <method name="reconnectSuccess">
         if ($debug) Debug.warn("User Reloged In ",canvas.becomemoderator);
@@ -67,12 +71,12 @@
         <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
         <handler name="ondata" args="value">
             <![CDATA[
-	            if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
-	            canvas.becomeSuperModerator = false;
+                if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
+                canvas.becomeSuperModerator = false;
                 
                 parent.setRoomValues.applyDefaultModeration = canvas.becomemoderator;
                 
-	            for (var i=0;i<value.length;i++) {
+                for (var i=0;i<value.length;i++) {
                     
                     if (value[i].user.user_id == canvas.user_id) {
                         parent.setRoomValues.applyDefaultModeration = true;
@@ -82,11 +86,11 @@
                     }
                     
                 }
-	            
+                
                 if ($debug) Debug.write("canvas.becomemoderator: ",canvas.becomemoderator);
                 if ($debug) Debug.write("canvas.becomeSuperModerator: ",canvas.becomeSuperModerator);
                 
-                canvas.currentusercolor = parent._participants.getColorForUser();
+                canvas.currentusercolor = parent._participents.getColorForUser();
                 
                 var organisation_id = 1;
             
@@ -98,15 +102,15 @@
                 }
                 
                 this.parent.setRoomValues.organisation_id = organisation_id;
-	            this.parent.setRoomValues.doCall();
+                this.parent.setRoomValues.doCall();
             
             ]]>
         </handler>
     </netRemoteCallHib>     
 
-  	<netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
-    	<attribute name="applyDefaultModeration" value="false" type="boolean" />
-    	<attribute name="organisation_id" value="0" type="number" />
+    <netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
+        <attribute name="applyDefaultModeration" value="false" type="boolean" />
+        <attribute name="organisation_id" value="0" type="number" />
         <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
         <netparam><method name="getValue">return parent.applyDefaultModeration;</method></netparam>
         <netparam><method name="getValue">return canvas.becomeSuperModerator;</method></netparam>
@@ -133,357 +137,341 @@
             }
             
             var value = roomStatus.clientMap;
-			
+            
             //if ($debug) Debug.write("+++++++++++++++++ getClientListScope : ",value);
             for (var i in value){
-            	if ( value[i].streamid == canvas.streamid ) {
+                if ( value[i].streamid == canvas.streamid ) {
                     canvas.isAllowedToDraw = value[i].canDraw;
                 }
 
-            	//if ($debug) Debug.write("getClientListScope value: ",value[i]);
-        		this.parent.addItem(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
-        		              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
+                //if ($debug) Debug.write("getClientListScope value: ",value[i]);
+                this.parent.addItem(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
+                              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
             }
             //this content must be inited _after_ setting the default values
             canvas.thishib.getCurrentModeratorList.doCall(); 
             //FIXME Issue-1076
             canvas.thishib.checkLzRecording.doCall();
-            canvas._chatcontent.doInit();			
+            canvas._chatcontent.doInit();           
             ]]>
-		</handler>	
-  	</netRemoteCallHib>
+        </handler>  
+    </netRemoteCallHib>
 
-	<!-- invoked if another client logs into the room 
-	after choosing devices -->     
+    <!-- invoked if another client logs into the room 
+    after choosing devices -->     
     <method name="setAVSettingsToClient" args="rcl">
-    	if ($debug) Debug.write("setAVSettingsToClient ",rcl.publicSID,rcl);
-    	
-    	if (canvas.publicSID == rcl.publicSID) {
-    		//we do not throw this event back to the same user again!
-    		return;
-    	}
-    	
-    	var obj = this.getVideoObjectByPublicSID(rcl.publicSID);
-    	
-    	if (obj == null) {
-    		obj = this.getNewVideoObjectByPos(rcl.publicSID,rcl.interviewPodId);
-    	}
-    	
-    	if ($debug) Debug.write("setAVSettingsToClient: ",obj,rcl.avsettings);
-		if (rcl.avsettings=="n"){
+        if ($debug) Debug.write("setAVSettingsToClient ",rcl.publicSID,rcl);
+        
+        if (canvas.publicSID == rcl.publicSID) {
+            //we do not throw this event back to the same user again!
+            return;
+        }
+        
+        var obj = this.getVideoObjectByPublicSID(rcl.publicSID);
+        
+        if (obj == null) {
+            obj = this.getNewVideoObjectByPos(rcl.publicSID,rcl.interviewPodId);
+        }
+        
+        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);
+            obj.setVideouserProfilePic(rcl);
+        } else if (rcl.avsettings=="a"){
+            obj.setVideouserProfilePic(rcl);
             obj.setAttribute("visibility","visible");
-		} else {
-			obj.deleteVideoConfProfilePic();
+            if(rcl.publicSID != canvas.publicSID) {
+                this.startStream(rcl.publicSID, rcl.broadCastID, rcl.firstname, rcl.lastname, rcl.interviewPodId);
+            }
+        } else {
+            obj.deleteVideoConfProfilePic();
             obj.setAttribute("visibility","visible");
-		}
-		obj.clientVars = rcl;
-    	obj.updateAVSettingsSymbol(rcl);
+            if(rcl.publicSID != canvas.publicSID) {
+                this.startStream(rcl.publicSID, rcl.broadCastID, rcl.firstname, rcl.lastname, rcl.interviewPodId);
+            }
+        }
+        obj.clientVars = rcl;
+        obj.updateAVSettingsSymbol(rcl);
     </method> 
     
 
     <!--- get a baseVideoObject by a Users publicSID
-    	@param string publicSID publicSID
-   	 -->
+        @param string publicSID publicSID
+     -->
     <method name="getVideoObjectByPublicSID" args="publicSID">
-    	<![CDATA[
-    		//if ($debug) Debug.write("getVideoObjectByPublicSid SEARCH: ",publicSID);
-    		
-    		var videoContainer = canvas._drawarea._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);
-    		//}
-    		
-            //if ($debug) Debug.write("getVideoObjectByBroadCastId2 VIEW: ",canvas.publicSID);
-            
-    		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: ",videoContainer.subviews[i]._videoPlay.publicSID);
-    			//if ($debug) Debug.write("getVideoObjectByBroadCastId4: ",videoContainer.subviews[i]._videoBroadCast.publicSID);
-    			//if ($debug) Debug.write("getVideoObjectByBroadCastId5 streamid,user_id: ",videoContainer.subviews[i].clientVars.streamid,videoContainer.subviews[i].clientVars.user_id);
-    			if (videoContainer.subviews[i]._videoPlay.publicSID == publicSID){
-    				videoContainer.subviews[i]._videoPlay.setAttribute("visibility","visible");
-    				return videoContainer.subviews[i]._videoPlay;
-    			}
-    			if (videoContainer.subviews[i]._videoBroadCast.publicSID == publicSID){
-    				videoContainer.subviews[i]._videoPlay.setAttribute("visibility","visible");
+        <![CDATA[
+            //if ($debug) Debug.write("getVideoObjectByPublicSid SEARCH: ",publicSID);
+            
+            var videoContainer = canvas._drawarea._videoviewcontent;
+
+            for (var i=0;i<videoContainer.subviews.length;i++){
+                //if ($debug) Debug.write("getVideoObjectByPublicSID: videoContainer.subviews[i]._videoPlay",videoContainer.subviews[i]._videoPlay);
+                if (videoContainer.subviews[i]._videoPlay.publicSID == publicSID){
                     return videoContainer.subviews[i]._videoPlay;
                 }
-    		}
-    		
-    		if ($debug) Debug.warn(" - getVideoObjectByPublicSID - DID NOT FIND THE USER BY ",publicSID);
-            
+            }
+
+            if ($debug) Debug.warn(" - getVideoObjectByPublicSID - DID NOT FIND THE USER BY ",publicSID);
+
             return null;
-    		
-    	]]>
-    </method>       	
-
-	<method name="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
-		<![CDATA[
-			if ($debug) Debug.write("addItem :: ",object);
-			//if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
+            
+        ]]>
+    </method>           
+
+    <method name="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
+        <![CDATA[
+            if ($debug) Debug.write("addItem :: ",object);
+            //if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
             
             //Do init only in case this stream is NOT the same as we are
-			if (streamid!=canvas.streamid){
-				
-				//do add others
-                this._participants.addItem(object);
+            if (streamid!=canvas.streamid){
+                
+                //do add others
+                this._participents.addItem(object);
                 
                 if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting,object.interviewPodId);
                 
-				if (object.isBroadcasting) {
-					
-					if ($debug) Debug.write("###### object.isBroadcasting ########");
-					
-    	            var myvideocontainer = this.getNewVideoObjectByPos(object.publicSID,object.interviewPodId);
-    		  		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);
+                if (object.isBroadcasting) {
+                    
+                    if ($debug) Debug.write("###### object.isBroadcasting ########");
+                    
+                    var myvideocontainer = this.getNewVideoObjectByPos(object.publicSID,object.interviewPodId);
+                    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);
+                    } 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");
-    	    		} else {
-    	    			myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);	
+                    } else {
+                        myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);    
                         myvideocontainer.setAttribute("visibility","visible");
-    	    			if ($debug) Debug.warn("start play");
-    	    		}
-    	    		myvideocontainer.updateAVSettingsSymbol(object);
+                        if ($debug) Debug.warn("start play");
+                    }
+                    myvideocontainer.updateAVSettingsSymbol(object);
                     return myvideocontainer;
                     
-				} else {
-					return null;
-				}
-		  		
-			} else {
+                } else {
+                    return null;
+                }
+                
+            } else {
                 
                 //do add self too
-                this._participants.addItem(object);
+                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) {
+        ]]>
+    </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,object.interviewPodId);
-        	  		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);
-    			}
-    			
-    		}
-
-    		//Do Add it anyway
-    		this._participants.addItem(object);
-		]]>
-	</method>
-		
+                    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);
+                }
+                
+            }
+
+            //Do Add it anyway
+            this._participents.addItem(object);
+        ]]>
+    </method>
+        
     <!--
         invoked whenever a User starts to Stream Video in this Room
-     -->		
-	<method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId,width,height">
-		<![CDATA[
-			if ($debug) Debug.warn("startStream broadcastId: ",publicSID,broadcastId,firstname,lastname,interviewPodId);
-			
-			if (canvas.publicSID == publicSID) {
-				if ($debug) Debug.warn("startStream Event should never be thrown back to its sender");
-				return;
-			}
-			
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			
-			if (obj == null) {
+     -->        
+    <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId">
+        <![CDATA[
+            if ($debug) Debug.warn("startStream broadcastId: ",publicSID,broadcastId,firstname,lastname,interviewPodId);
+            
+            if (canvas.publicSID == publicSID) {
+                if ($debug) Debug.warn("startStream Event should never be thrown back to its sender");
+                return;
+            }
+            
+            var obj = this.getVideoObjectByPublicSID(publicSID);
+            
+            if (obj == null) {
                 obj = this.getNewVideoObjectByPos(publicSID,interviewPodId);
             }
-			
-			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);
-			}
-		]]>
-	</method>
+            
+            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);
+            }
+        ]]>
+    </method>
 
     <method name="updateMuteStatusVideoView" args="roomClient">
         <![CDATA[
+            this._videoviewcontent.updateMuteStatusVideoView(roomClient);
             var videoContainer = canvas._drawarea._videoviewcontent;
             for (var i=0;i<videoContainer.subviews.length;i++){
-            	videoContainer.subviews[i]._videoPlay.muteMicrophone(roomClient);
-            	videoContainer.subviews[i]._videoBroadCast.muteMicrophone(roomClient);
+                videoContainer.subviews[i]._videoPlay.muteMicrophone(roomClient);
+            }
+        ]]>
+    </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 {
+                
+                if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
+                if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
+                if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
+                if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
+                if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
+                
             }
+            return this.broadCastViewRef;
         ]]>
     </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 {
-                
-				if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
-				if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
-				if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
-				if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
-				if ($debug) Debug.error("getNewVideoObject :: ",publicSID);
-				
-			}
-			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,interviewPodId">
-		<![CDATA[
-		
+    
+    <!---
+        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,interviewPodId">
+        <![CDATA[
+        
             if ($debug) Debug.write("getNewVideoObjectByPos :: ",publicSID,interviewPodId);
-		
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-			
-			if ($debug) Debug.write("FOUND :: ",obj);
-			
-			if (obj!=null){
-				return obj;
-			}
-			
+        
+            var obj = this.getVideoObjectByPublicSID(publicSID);
+            
+            if ($debug) Debug.write("FOUND :: ",obj);
+            
+            if (obj!=null){
+                return obj;
+            }
+            
             var videoContainer = canvas._drawarea._videoviewcontent;
             
             for (var i=0;i<videoContainer.subviews.length;i++) {
-            	
-            	if (videoContainer.subviews[i].interviewPodId == interviewPodId) {
-            		videoContainer.subviews[i]._videoPlay.publicSID = publicSID;
-            		if ($debug) Debug.write("videoContainer.subviews[i] ",videoContainer.subviews[i]);
-            		videoContainer.subviews[i]._videoPlay.setAttribute("visibility","visible");
-            		return videoContainer.subviews[i]._videoPlay;
-            	}
-            	
+                
+                if (videoContainer.subviews[i].interviewPodId == interviewPodId) {
+                    videoContainer.subviews[i]._videoPlay.publicSID = publicSID;
+                    if ($debug) Debug.write("videoContainer.subviews[i] ",videoContainer.subviews[i]);
+                    videoContainer.subviews[i]._videoPlay.setAttribute("visibility","visible");
+                    return videoContainer.subviews[i]._videoPlay;
+                }
+                
             }
             
             if ($debug) Debug.error("Interview Room Error :: Could not find right Interview Pod [interviewPodId,publicSID] ",interviewPodId,publicSID);
             
-			return null;
-		]]>
-	</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 ($debug) Debug.write("setSpeakingByPos :: ",publicSID,bool,obj);
-			if (bool){
-				if (canvas.publicSID != publicSID) {
-					obj._loudness.loudness.setAttribute('opacity',1);
-				} else if (obj.parent._videoBroadCast.visibility == "visible") {
-					obj.parent._videoBroadCast._loudness.loudness.setAttribute('opacity',1);
-				}
-			} else {
-				if (canvas.publicSID != publicSID) {
-					obj._loudness.loudness.setAttribute('opacity',0.2);
-				} else if (obj.parent._videoBroadCast.visibility == "visible") {
-					obj.parent._videoBroadCast._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>
-	
-	<method name="removeVideoByUser" args="userObject">
-		var obj = this.closeStreamClient(userObject.publicSID);
-		obj.destroy();
-	</method>
-	
-	<!--- 
-		stops the streaming but and destroys the view
-		@param int broadcastId broadcastId
-	 -->
-	<method name="disconnectclient" args="publicSID">
-		<![CDATA[
-			//if ($debug) Debug.write("disconnectclient: ",publicSID);
-			
-			var obj = this.getVideoObjectByPublicSID(publicSID);
-            var objList = this._participants.getVideoObjectByPublicSID(publicSID);
-			
-			//if ($debug) Debug.write("disconnectclient obj: ",obj);
-			
-			if (obj != null){
-				if ($debug) Debug.write("disconnectclient objList: ",objList);
-				obj.resetValues();
-				//We will only hide this here cause we will need it again!
-				obj.setAttribute("visibility","hidden");
-			}
+            return null;
+        ]]>
+    </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[
+            if ($debug) Debug.write("setSpeakingByPos :: ",publicSID,bool,obj);
+
+            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>
+    
+    <method name="removeVideoByUser" args="userObject">
+        var obj = this.closeStreamClient(userObject.publicSID);
+        obj.destroy();
+    </method>
+    
+    <!--- 
+        stops the streaming but and destroys the view
+        @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.getVideoObjectByPublicSID(publicSID);
+            
+            //if ($debug) Debug.write("disconnectclient obj: ",obj);
+            
+            if (obj != null){
+                if ($debug) Debug.write("disconnectclient obj: ",obj);
+                obj.resetValues();
+                //We will only hide this here cause we will need it again!
+                obj.setAttribute("visibility","hidden");
+            }
             if (objList != null){
-            	if ($debug) Debug.write("disconnectclient objList: ",objList);
+                if ($debug) Debug.write("disconnectclient objList: ",objList);
                 objList.resetValues();
                 objList.destroy();
             }
-			return null;
-		]]>
-	</method>	
-	
-	<method name="resetAllValues">
-		var videoContainer = canvas._drawarea._videoviewcontent;
-		for (var eg in videoContainer.subviews){
-			videoContainer.subviews[eg].resetValues();
-		}
-	</method>
+            return null;
+        ]]>
+    </method>   
+    
+    <method name="resetAllValues">
+        var videoContainer = canvas._drawarea._videoviewcontent;
+        for (var eg in videoContainer.subviews){
+            videoContainer.subviews[eg].resetValues();
+        }
+    </method>
+    
+    <interviewListInner name="_participents" />
     
-    <interviewListInner name="_participants" />
+    <commonVideoComponentAdapter name="_videoviewcontent"/>
     
-	<commonVideoViewContent name="_videoviewcontent"/>
-	
 </class>
 
 </library>

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx?rev=1239548&r1=1239547&r2=1239548&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx Thu Feb  2 11:23:11 2012
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+          
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,28 +19,28 @@
   
 -->
 <library>
-	
+    
 
 <class name="interviewVideoChooseUser" extends="guiPresenter" resizeable="false"
     width="220" height="100" closable="true" labelid="910" y="10" minimizable="false">
-	
-	<attribute name="refObj" value="null" />
-	
-	<handler name="oninit">
-		this.getClientListScope.doCall();
-	</handler>
-	
-	<!--
+    
+    <attribute name="refObj" value="null" />
+    
+    <handler name="oninit">
+        this.getClientListScope.doCall();
+    </handler>
+    
+    <!--
     public synchronized HashMap<String,RoomClient> getClientListScope()
      -->
-	<netRemoteCallHib name="getClientListScope" funcname="getClientListScope" 
-					  remotecontext="$once{ canvas.thishib }" >   
+    <netRemoteCallHib name="getClientListScope" funcname="getClientListScope" 
+                      remotecontext="$once{ canvas.thishib }" >   
         <handler name="ondata" args="value">
-        	<![CDATA[
+            <![CDATA[
                 if ($debug) Debug.write("+++++++++++++++++ getClientListScope : ",value);
                 
                 for (var i in value) {
-                	parent._users.addItem(value[i].firstname+','+value[i].lastname+' ['+value[i].username+']',value[i].publicSID);
+                    parent._users.addItem(value[i].firstname+','+value[i].lastname+' ['+value[i].username+']',value[i].publicSID);
                 }
                 
                 parent._users.selectItemAt(0);
@@ -48,11 +48,11 @@
             ]]>
         </handler>  
     </netRemoteCallHib>
-	
-	<labelText labelid="911" x="2" y="22"/>
-	
-	<resetCombobox name="_users" x="2" y="42" width="$once{ parent.width-4 }"/>
-	
+    
+    <labelText labelid="911" x="2" y="22"/>
+    
+    <resetCombobox name="_users" x="2" y="42" width="$once{ parent.width-4 }"/>
+    
     <simpleLabelButton labelid="61" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">
         <handler name="onclick">
             this.parent.close();
@@ -61,44 +61,55 @@
     
     <simpleLabelButton labelid="60" width="100" x="$once{ parent.width - 210 }" y="$once{ parent.height - 26 }">
         <handler name="onclick">
-        	var valueCombobox = parent._users.getValue();
+            var valueCombobox = parent._users.getValue();
             if (this.parent.refObj.sendConfirmation(valueCombobox)) {
-            	this.parent.close();
+                this.parent.close();
             }
         </handler>
     </simpleLabelButton>   
-	
+    
 </class>
  
 <class name="interviewVideoBox" extends="view" width="322" height="281" bgcolor="0x000000">
 
     <attribute name="interviewPodId" value="0" type="number" />
+
+    <!--<handler name="onx" args="x">-->
+        <!--if ($debug) Debug.write("# x", this.getAttributeRelative('x', canvas));-->
+        <!--canvas.lc.send(canvas.vid_lc_name, "videoOnMove", this.interviewPodId, this.getAttributeRelative('x', canvas), this.getAttributeRelative('y', canvas));-->
+    <!--</handler>-->
     
     <method name="startInterView">
-    	if ($debug) Debug.write("startInterView :: ");
-    	new lz.editRecordStream(this,{isInterview:true,
-                	   myvideocontainer:this._videoBroadCast,
-                	   doDefaultAnimation:false,
-                	   align:'center',valign:'middle'
-                	});
+        if ($debug) Debug.write("startInterView :: ");
+        //canvas._videocontainer._videoviewcontent.createVideoObject(canvas.publicSID, true, this.interviewPodId);
+        var t = this;
+        canvas.videoComp_lc.onStartBroadcast = function(broadCastID, settings) {
+            //TODO: settings
+            if ($debug) Debug.write("onStartBroadcast :: ", broadCastID, settings);
+            t._videoPlay.setAttribute('chatpartnername',canvas.firstName+' '+canvas.lastName);
+            t._videoPlay._chatvideoinner._videostream.playStream(broadCastID, -1);
+            t._videoPlay.setAttribute("visibility","visible");
+            t._videoPlay.setAttribute("publicSID", canvas.publicSID);
+        };
+        new lz.editRecordStream(this,{isInterview:true});
     </method>
 
     <method name="sendConfirmation" args="publicSID">
-    	if ($debug) Debug.write("sendConfirmation :: ",publicSID);
-    	
-    	canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = publicSID;
+        if ($debug) Debug.write("sendConfirmation :: ",publicSID);
+        
+        canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = publicSID;
         canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
         canvas.thishib.setBroadCastingFlag.interviewPodId = this.interviewPodId;
         canvas.thishib.setBroadCastingFlag.doCall(); 
         
-    	//this.sendMessageWithClientByPublicSID.publicSID = publicSID;
-    	//this.sendMessageWithClientByPublicSID.messageObject = new Object();
-    	//this.sendMessageWithClientByPublicSID.messageObject["message"] = "allowInterview";
-    	//this.sendMessageWithClientByPublicSID.messageObject["action"] = "showVideoDeviceSettings";
-    	//this.sendMessageWithClientByPublicSID.messageObject["interviewPodId"] = this.interviewPodId;
-    	//this.sendMessageWithClientByPublicSID.doCall();
-    	
-    	return true;
+        //this.sendMessageWithClientByPublicSID.publicSID = publicSID;
+        //this.sendMessageWithClientByPublicSID.messageObject = new Object();
+        //this.sendMessageWithClientByPublicSID.messageObject["message"] = "allowInterview";
+        //this.sendMessageWithClientByPublicSID.messageObject["action"] = "showVideoDeviceSettings";
+        //this.sendMessageWithClientByPublicSID.messageObject["interviewPodId"] = this.interviewPodId;
+        //this.sendMessageWithClientByPublicSID.doCall();
+        
+        return true;
     </method>
     
     <!--
@@ -118,28 +129,24 @@
         </handler>  
     </netRemoteCallHib>
     
-	<simpleLabelButton labelid="910" height="30" valign="middle" align="center"
-			   visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }">
-		<handler name="onclick" args="refObj">
-			new lz.interviewVideoChooseUser(canvas,{
-				           isInterview:true,
-            			   x:this.getAttributeRelative("x",canvas)-10,
-            			   y:this.getAttributeRelative("y",canvas)-20,
-            			   width:this.width+20,
-            			   refObj:parent
-            			});
-		</handler>
-	</simpleLabelButton>
-    	
-    	
+    <simpleLabelButton labelid="910" height="30" valign="middle" align="center"
+               visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }">
+        <handler name="onclick" args="refObj">
+            new lz.interviewVideoChooseUser(canvas,{
+                           isInterview:true,
+                           x:this.getAttributeRelative("x",canvas)-10,
+                           y:this.getAttributeRelative("y",canvas)-20,
+                           width:this.width+20,
+                           refObj:parent
+                        });
+        </handler>
+    </simpleLabelButton>
+        
+        
     <videoObjectPlayBroadcast name="_videoPlay" isInterview="true" visibility="hidden" 
-    						  width="$once{ parent.width }" height="$once{ parent.height }" />
+                              width="$once{ parent.width }" height="$once{ parent.height }" />
     
     
-    <videoObjectBroadcast name="_videoBroadCast" isInterview="true" visibility="hidden" 
-                              width="$once{ parent.width }" height="$once{ parent.height }" />
-	
-	
 </class>