Author: seba.wagner
Date: Mon Jan 26 01:07:40 2009
New Revision: 1854

Added:
    trunk/openmeetings_lps411/modules/conference/participents/
    trunk/openmeetings_lps411/modules/conference/participents/library.lzx
     
trunk/openmeetings_lps411/modules/conference/participents/participents.lzx
    trunk/openmeetings_lps411/modules/conference/participents/resources/
     
trunk/openmeetings_lps411/modules/conference/participents/resources/button_ok.png
    
(contents, props changed)
     
trunk/openmeetings_lps411/modules/conference/participents/resources/color_line.png
    
(contents, props changed)
Modified:
    trunk/openmeetings_lps411/config.xml
    trunk/openmeetings_lps411/main.lzx.lzr=swf8.swf
    trunk/openmeetings_lps411/maindebug.lzx.lzr=swf8.swf
     
trunk/openmeetings_lps411/modules/conference/conference/conferenceView.lzx
    trunk/openmeetings_lps411/modules/conference/library.lzx
    trunk/openmeetings_lps411/modules/conference/video/editRecordStream.lzx
    trunk/openmeetings_lps411/modules/conference/video/videoContainer.lzx

Log:
Part of:
Issue 489 allow simultaneous drawing on the whiteboard for  
non-moderators/all users / rework Moderation Role
=> added Participants Window

Modified: trunk/openmeetings_lps411/config.xml
==============================================================================
--- trunk/openmeetings_lps411/config.xml        (original)
+++ trunk/openmeetings_lps411/config.xml        Mon Jan 26 01:07:40 2009
@@ -99,7 +99,7 @@
      visible = yes
      hidden = no
   -->  
-<showRecording>visible</showRecording>
+<showRecording>hidden</showRecording>

  <!--


Modified: trunk/openmeetings_lps411/main.lzx.lzr=swf8.swf
==============================================================================
Binary files. No diff available.

Modified: trunk/openmeetings_lps411/maindebug.lzx.lzr=swf8.swf
==============================================================================
Binary files. No diff available.

Modified:  
trunk/openmeetings_lps411/modules/conference/conference/conferenceView.lzx
==============================================================================
---  
trunk/openmeetings_lps411/modules/conference/conference/conferenceView.lzx      
 
(original)
+++  
trunk/openmeetings_lps411/modules/conference/conference/conferenceView.lzx      
 
Mon Jan 26 01:07:40 2009
@@ -22,7 +22,7 @@
        </view> 
       -->

-    <videoContainer name="_videocontainer" />
+    <participents name="_videocontainer" />

  </class>


Modified: trunk/openmeetings_lps411/modules/conference/library.lzx
==============================================================================
--- trunk/openmeetings_lps411/modules/conference/library.lzx    (original)
+++ trunk/openmeetings_lps411/modules/conference/library.lzx    Mon Jan 26  
01:07:40 2009
@@ -10,5 +10,6 @@
        <include href="polls/" />
        <include href="videoclassroom/" />
        <include href="conference/" />
-       <include href="browser/"/>
+       <include href="browser/"/>
+    <include href="participents/" />
  </library>

Added: trunk/openmeetings_lps411/modules/conference/participents/library.lzx
==============================================================================
--- (empty file)
+++ trunk/openmeetings_lps411/modules/conference/participents/library.lzx       
 
Mon Jan 26 01:07:40 2009
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<library>
+
+    <resource name="participents_isMod_rsc" src="resources/button_ok.png"  
/>
+    <resource name="participents_isAllowedDrawing_rsc"  
src="resources/color_line.png" />
+
+    <include href="participents.lzx" />
+
+</library>

Added:  
trunk/openmeetings_lps411/modules/conference/participents/participents.lzx
==============================================================================
--- (empty file)
+++  
trunk/openmeetings_lps411/modules/conference/participents/participents.lzx      
 
Mon Jan 26 01:07:40 2009
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<library>
+
+<class name="participentList" extends="view"  width="$once{ parent.width  
}" height="$once{ parent.height }"
+       bgcolor="$once{ canvas.basebgcolorizer }" >
+    <!-- clip="true" -->
+
+    <view width="$once{ parent.width-2 }" height="$once{ parent.height-2 }"
+        x="1" y="1" bgcolor="white" />
+
+    <method name="addItem" args="object">
+        //Debug.write(object);
+        new lz.participentListItem(this._table.innerList,{
+                   user_id:object.user_id,
+                   firstname:object.firstname,
+                   lastname:object.lastname,
+                width:this.width-20,
+                   refObj:object,
+                   connectedSince:object.connectedSince,
+                   isMod:object.isMod,
+                   streamid:object.streamid,
+                   username:object.username,
+                   userroom:object.userroom,
+                   formatedDate:object.formatedDate
+            });
+    </method>
+
+    <method name="clearList">
+        this._table.destroy();
+        new lz.participentsTable(this,{name:'_table'});
+    </method>
+
+    <usersTable name="_table" />
+
+</class>
+
+<class name="participentsTable" extends="view" height="$once{  
parent.height-4 }"
+    bgcolor="white" x="2" y="2" clip="true" width="$once{ parent.width-4  
}" >
+        <innerlistView name="innerList" />
+    <vscrollbar />
+</class>
+
+<class name="miniIcons" extends="view" >
+    <handler name="onmouseover">
+        parent.parent.onmouseover.sendEvent();
+    </handler>
+    <handler name="onmouseout">
+        parent.parent.onmouseout.sendEvent();
+    </handler>
+</class>
+
+<!--
+    The Width of each item is set in the participentList-Class
+ -->
+<class name="participentListItem" extends="text" bgcolor="white"  
showhandcursor="false">
+
+    <attribute name="connectedSince" value="" type="string" />
+    <attribute name="isMod" value="" type="string" />
+    <attribute name="streamid" value="" type="string" />
+    <attribute name="username" value="" type="string" />
+    <attribute name="userroom" value="" type="string" />
+    <attribute name="formatedDate" value="" type="string" />
+    <attribute name="firstname" value="" type="string" />
+    <attribute name="lastname" value="" type="string" />
+    <attribute name="user_id" value="0" type="number" />
+    <attribute name="refObj" value="null" />
+
+    <handler name="oninit">
+        <![CDATA[
+            var downloadurl  
= 'http://'+canvas.rtmphostlocal+':'+canvas.red5httpport
+                     
+'/'+canvas.webAppRootKey+'/DownloadHandler?fileName=CHAT'
+                    +'&moduleName=chat&parentPath=&room_id='
+                    +'&remoteUserid='+this.user_id
+                    +'&sid='+canvas.sessionId;
+            this._userpic.setAttribute('src',downloadurl);
+
+            if (this.isMod) {
+                 
this._miniIcons._isMod.setAttribute("visibility","visible");
+            } else {
+                this._miniIcons._isMod.setAttribute("visibility","hidden");
+            }
+
+            if (canvas.publicSID == this.refObj.publicSID) {
+                 
this._miniIconsActions._restartDevice.setAttribute("visibility","visible");
+            } else {
+                 
this._miniIconsActions._restartDevice.setAttribute("visibility","hidden");
+            }
+
+            this._miniIcons._canDraw.setAttribute("visibility","hidden");
+        ]]>
+    </handler>
+
+    <handler name="onmouseover">
+        this.setAttribute('bgcolor',canvas.baseMousecolorizer);
+    </handler>
+
+    <handler name="onmouseout">
+        this.setAttribute('bgcolor',0xFFFFFF);
+    </handler>
+
+    <image name="_userpic" >
+        <handler name="onload">
+            parent.setAttribute('height',this.height);
+        </handler>
+    </image>
+
+    <labelText x="40" text="$once{ parent.firstname+' '+parent.lastname }"  
/>
+
+    <view name="_miniIcons" x="42" valign="bottom"  
layout="axis:x;spacing:2" height="18">
+        <miniIcons name="_isMod" resource="participents_isMod_rsc"  
showhandcursor="false">
+            <labelTooltip labelid="608" />
+        </miniIcons>
+        <miniIcons name="_canDraw"  
resource="participents_isAllowedDrawing_rsc" showhandcursor="false">
+            <labelTooltip labelid="609" />
+        </miniIcons>
+    </view>
+
+    <view name="_miniIconsActions" align="right" valign="bottom"  
layout="axis:x;spacing:2" height="18">
+        <miniIcons name="_restartDevice" resource="resyncuser_rsc"  
showhandcursor="true">
+            <handler name="onclick">
+                if ($debug)  
Debug.write("parent.parent.refObj.publicSID: ",parent.parent.refObj.publicSID);
+                var myvideocontainer =  
canvas._videocontainer.getNewVideoObject(parent.parent.refObj.publicSID);
+                myvideocontainer.resetValues();
+                new  
lz.editRecordStream(canvas.main_content._content.inner,{isSyncUpdate:true});
+            </handler>
+            <labelTooltip labelid="610" />
+        </miniIcons>
+    </view>
+</class>
+
+
+<class name="participents" extends="view" width="$once{ parent.width }"  
height="$once{ parent.height }">
+
+       <!--- 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 = "conference";
+               //color array
+               this.colorArray =  
[0x4174B1,0x00CC00,0xFFCC33,0xFF6633,0x4174B1,0x00CC00,0xFFCC33,0xFF6633,
+                                                        
0x4174B1,0x00CC00,0xFFCC33,0xFF6633,0x4174B1,0x00CC00,0xFFCC33,0xFF6633];
+               //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;
+        canvas.thishib.setAttribute('src',src);
+
+        if( $debug ) Debug.write("videoContainer:  
canvas.thishib: ",canvas.thishib.src,canvas.thishib);
+
+        canvas.thishib.reconnectionAction = true;
+        canvas.thishib.reconnectObjRef = this;
+        canvas.thishib.disconnect();
+       </handler>
+
+    <method name="reconnectSuccess">
+        if ($debug) Debug.write("User Reloged In");
+        //set default values and get already availible streams
+        this.setRoomValues.doCall();
+    </method>
+
+       <netRemoteCallHib name="setRoomValues" funcname="setRoomValues"  
remotecontext="$once{ canvas.thishib }" >
+       <netparam><method name="getValue">return  
hib.currentroomid;</method></netparam>
+               <handler name="ondata" args="value">
+                       //The onResult-Handler will be called be the 
rtmpconnection
+                       if ($debug) Debug.write("setRoomValues1: ",value);
+                       if ($debug) Debug.write("setRoomValues2: 
",hib.currentroomid);
+                       
+            if ($debug) Debug.write("+++++++++++++++++  
getClientListScope : ",value);
+            for (var i in value){
+               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].userroom,value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
+            }
+            //this content must be inited _after_ setting the default  
values
+            canvas.thishib.getCurrentModerator.doCall();
+            canvas._mymod.checkForRecording.doCall();
+            canvas._chatcontent.doInit();                              
+               </handler>      
+       </netRemoteCallHib>
+
+       <!-- 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 ($debug) Debug.write("setAVSettingsToClient: ",obj,rcl.avsettings);
+               if (rcl.avsettings=="n"){
+                       obj.setVideouserProfilePic(rcl);
+               } else if (rcl.avsettings=="a"){
+                       obj.setVideouserProfilePic(rcl);
+               } else {
+                       obj.deleteVideoConfProfilePic();        
+               }
+               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);
+               
+               //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._videoviewcontent.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 
(this._videoviewcontent.subviews[i].publicSID==publicSID){
+                               return this._videoviewcontent.subviews[i];
+                       }
+               }
+               
+       ]]>
+    </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,userroom,formatedDate);
+
+            //Do init only in case this stream is NOT the same as we are
+                       if (streamid!=canvas.streamid){
+                   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);
+                       } else if (object.avsettings=="a"){
+                               myvideocontainer.setVideouserProfilePic(object);
+                               if ($debug) Debug.warn("start play");
+                                
myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);
        
+                       } else {
+                                
myvideocontainer._chatvideoinner._videostream.playStream(object.broadCastID,-1);
        
+                               if ($debug) Debug.warn("start play");
+                       }
+                       myvideocontainer.updateAVSettingsSymbol(object);
+                               return myvideocontainer;
+                       }
+
+            //do also init self
+            this._participents.addItem(object);
+               ]]>
+       </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 (streamid!=canvas.streamid){
+            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);
+               }
+        this._participents.addItem(object);
+               ]]>
+       </method>
+               
+       <method name="startStream"  
args="publicSID,broadcastId,firstname,lastname">
+               <![CDATA[
+                       //if ($debug) Debug.write("startStream broadcastId: 
",broadcastId);
+                       var obj = this.getVideoObjectByPublicSID(publicSID);
+                       //if ($debug) Debug.write("startStream obj: ",obj);
+                       if (obj != null ){
+                               
obj._chatvideoinner._videostream.playStream(broadcastId,-1);
+                               obj.setAttribute('chatpartnername',firstname+' 
'+lastname);
+                       }
+               ]]>
+       </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 {
+                               //Get a Free VideoView Slot
+                var newx = this._videoviewcontent.subviews.length*136;
+                var newy = 0;
+                if (x>220) {
+                    newx = 0;
+                    newy += 140;
+                }
+                               this.broadCastViewRef = new  
lz.videoObjectBroadcast(this._videoviewcontent,{
+                           publicSID:publicSID,
+                           x:newx,y:newy
+                    });
+                               canvas.currentusercolor = 
this.colorArray[this.subviews.length];
+                               
this.broadCastViewRef._chatvideoinner.r.destroy();
+                               canvas.thishib.setAudienceModus.doCall();
+                                
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 newx = this._videoviewcontent.subviews.length*136;
+            var newy = 0;
+            if (x>220) {
+                newx = 0;
+                newy += 140;
+            }
+                       return new 
lz.videoObjectPlayBroadcast(this._videoviewcontent,{
+                    publicSID:publicSID,
+                    x:newx,y:newy
+                });
+               ]]>
+       </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();
+                       }
+               ]]>
+       </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);
+                       if ($debug) Debug.write("disconnectclient obj: ",obj);
+                       if (obj != null){
+                               obj.resetValues();
+                               obj.destroy();
+                       }
+                       return null;
+               ]]>
+       </method>       
+       
+       <method name="resetAllValues">
+               for (var eg in this._videoviewcontent.subviews){
+                       this._videoviewcontent.subviews[eg].resetValues();
+               }
+       </method>
+
+    <participentList name="_participents" />
+
+       <view name="_videoviewcontent">
+
+       </view>
+       
+</class>
+
+</library>

Added:  
trunk/openmeetings_lps411/modules/conference/participents/resources/button_ok.png
==============================================================================
Binary file. No diff available.

Added:  
trunk/openmeetings_lps411/modules/conference/participents/resources/color_line.png
==============================================================================
Binary file. No diff available.

Modified:  
trunk/openmeetings_lps411/modules/conference/video/editRecordStream.lzx
==============================================================================
--- trunk/openmeetings_lps411/modules/conference/video/editRecordStream.lzx     
 
(original)
+++ trunk/openmeetings_lps411/modules/conference/video/editRecordStream.lzx     
 
Mon Jan 26 01:07:40 2009
@@ -133,15 +133,19 @@
                switch (settings){
                        case "av":
                                
videoview.broadcast(this.currentClient.broadCastID,_camera,_micro);
+                     
this.myvideocontainer.setAttribute("visibility","visible");
                                break;
                        case "a":
                                
videoview.broadcast(this.currentClient.broadCastID,null,_micro);
+                     
this.myvideocontainer.setAttribute("visibility","visible");
                                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");
+                     
this.myvideocontainer.setAttribute("visibility","hidden");
                                break;
                        default:
                                if ($debug) Debug.warn("no valid device Setup 
chosen");

Modified:  
trunk/openmeetings_lps411/modules/conference/video/videoContainer.lzx
==============================================================================
--- trunk/openmeetings_lps411/modules/conference/video/videoContainer.lzx       
 
(original)
+++ trunk/openmeetings_lps411/modules/conference/video/videoContainer.lzx       
 
Mon Jan 26 01:07:40 2009
@@ -3,6 +3,8 @@

  <!---
          Container view including all audio/video - views for a Meeting
+
+        @keywords deprecated
   -->

  <class name="videoContainer" extends="view">

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to