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
-~----------~----~----~----~------~----~------~--~---