Revision: 4248
Author:   seba.wagner
Date:     Sat Sep 17 08:15:38 2011
Log: Fix moderator mute functionality from user-list icon /Part of Issue 1481 and Issue 1512
Mute from within video box as well as other roomtypes are still todo.
http://code.google.com/p/openmeetings/source/detail?r=4248

Modified:
/trunk/singlewebapp/WebContent/openmeetings/base/components/turnoverlistpaged/listPagedContent.lzx /trunk/singlewebapp/WebContent/openmeetings/base/components/turnoverlistpaged/turnOverListPaged.lzx /trunk/singlewebapp/WebContent/openmeetings/base/hibernate/hibRtmpConnection.lzx
 /trunk/singlewebapp/WebContent/openmeetings/base/mainAttributes.lzx
 /trunk/singlewebapp/WebContent/openmeetings/base/mainMethods.lzx
/trunk/singlewebapp/WebContent/openmeetings/base/remote/baseVideoStreamDevice.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/eventuserlist/moderationMiniIcons.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/eventuserlist/moderationMiniIconsEventUserList.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/activitylist/activityList.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/_participents.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/library.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/participents.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/moderationMiniIconRestricted.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserListInner.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserListItem.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/baseVideoObject.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/library.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/videoObjectBroadcast.lzx /trunk/singlewebapp/WebContent/openmeetings/plugins/fileexplorer/fileExplorer.lzx /trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/components/turnoverlistpaged/listPagedContent.lzx Sat Apr 10 04:43:25 2010 +++ /trunk/singlewebapp/WebContent/openmeetings/base/components/turnoverlistpaged/listPagedContent.lzx Sat Sep 17 08:15:38 2011
@@ -42,7 +42,7 @@
            </method>

            <handler name="ony" args="y">
-               parent.parent.onMoveList.sendEvent(item);
+               parent.parent.onMoveList.sendEvent(y);
            </handler>

<method name="initItemsBySubItemNo" args="itemName,noSubItems,subItemClassName">
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/components/turnoverlistpaged/turnOverListPaged.lzx Wed Oct 20 13:58:45 2010 +++ /trunk/singlewebapp/WebContent/openmeetings/base/components/turnoverlistpaged/turnOverListPaged.lzx Sat Sep 17 08:15:38 2011
@@ -45,18 +45,19 @@
     <attribute name="showHScrollbar" value="visible" type="string"/>

     <handler name="oninit">
-        //this inits the items
-        this._innerlist._inn.initItems(this.listItemName);
-
-        if (this["_menu"]) {
-            this._menu._pre1.setAttribute('isEnabled',false);
-            this._menu._next2.setAttribute('isEnabled',false);
-            this._menu._next1.setAttribute('isEnabled',false);
-            this._menu._pre2.setAttribute('isEnabled',false);
-
-            this._menu._step.updateItemsListNumber.sendEvent();
-        }
-
+       <![CDATA[
+            //this inits the items
+            this._innerlist._inn.initItems(this.listItemName);
+
+            if (this["_menu"] && this["_menu"]["_pre1"]) {
+                this._menu._pre1.setAttribute('isEnabled',false);
+                this._menu._next2.setAttribute('isEnabled',false);
+                this._menu._next1.setAttribute('isEnabled',false);
+                this._menu._pre2.setAttribute('isEnabled',false);
+
+                this._menu._step.updateItemsListNumber.sendEvent();
+            }
+        ]]>
     </handler>

     <handler name="onclickedItem" args="obj" >
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/hibernate/hibRtmpConnection.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/base/hibernate/hibRtmpConnection.lzx Sat Sep 17 08:15:38 2011
@@ -1229,6 +1229,7 @@
<netparam><method name="getValue">return parent.publicSID;</method></netparam>
         </netRemoteCallHib>

+<!--
<netRemoteCallHib name="receiveExclusiveAudioFlag" funcname="receiveExclusiveAudioFlag"> <netparam><method name="getValue">return null;</method></netparam>
             <handler name="ondata" args="value">
@@ -1254,12 +1255,21 @@
                 ]]>
             </handler>
         </netRemoteCallHib>
+         -->

         <netRemoteCallHib name="switchMicMuted" funcname="switchMicMuted">
-            <attribute name="publicSID" value="0" type="string" />
+            <attribute name="publicSID" value="" type="string" />
+            <attribute name="mute" value="false" type="boolean" />
+            <method name="setMute" args="tPublicSID,tMute">
+               this.publicSID = tPublicSID;
+               this.mute = tMute;
+               this.doCall();
+            </method>
<netparam><method name="getValue">return parent.publicSID;</method></netparam> + <netparam><method name="getValue">return parent.mute;</method></netparam>
         </netRemoteCallHib>

+        <!--
<netRemoteCallHib name="receiveMicMuteSwitched" funcname="receiveMicMuteSwitched"> <netparam><method name="getValue">return null;</method></netparam>
             <handler name="ondata" args="value">
@@ -1274,7 +1284,8 @@
                 }
                 ]]>
             </handler>
-        </netRemoteCallHib>
+        </netRemoteCallHib>
+         -->

<netRemoteCallHib name="newRed5ScreenCursor" funcname="newRed5ScreenCursor"> <netparam><method name="getValue">return null;</method></netparam>
@@ -1638,8 +1649,11 @@
//Debug.write("syncinitLoader sendVarsToMessageWithClient: ",value.message[2]); //if (value.client.streamid!=canvas.streamid) canvas._drawarea.remoteSyncLoader();
                     }
+                } else if (value.message[0]=='updateMuteStatus'){
+                    canvas.setMuteStatus(value.message[1]);
                 } else if (value.message[0]=='updateDrawStatus'){
                        canvas.setDrawAllowStatus(value.message[1]);
+                       //Notify all Listeners for change of the item
canvas.setAttribute("drawAllowStatus",value.message[1]);
                 } else if (value.message[0]=='applyForModeration'){
                     //if (canvas.ismoderator) {
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/mainAttributes.lzx Mon Sep 12 11:03:36 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/base/mainAttributes.lzx Sat Sep 17 08:15:38 2011
@@ -108,6 +108,17 @@
  -->
 <attribute name="isAllowedToDraw" value="false" type="boolean" />

+<!--
+    this attribute holds an object of type RoomClient
+    the LAST RoomClient Object that has been changed the mute-status
+ -->
+<attribute name="micMutedStatusChangedItem" value="null" />
+
+<!--
+    this value indicates if this user is currently muted
+ -->
+<attribute name="micMuted" value="false" type="boolean" />
+
 <!--- URL/IP to use for the Server -->
 <attribute name="rtmphost" value="" type="string" />

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/mainMethods.lzx Mon Sep 12 11:03:36 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/base/mainMethods.lzx Sat Sep 17 08:15:38 2011
@@ -761,17 +761,32 @@
     }
 </method>

-<method name="setDrawAllowStatus" args="drawObj">
+<method name="setDrawAllowStatus" args="roomClientObj">
     <![CDATA[
         if ($debug) Debug.write("drawAllowStatus changes ###### ");
-        if (drawObj.publicSID==canvas.publicSID) {
-            canvas.setAttribute("isAllowedToDraw",drawObj.canDraw);
-            canvas.setAttribute("isAllowedToScreenShare",drawObj.canShare);
- canvas.setAttribute("isAllowedToRemoteControl",drawObj.canRemote);
+        if (roomClientObj.publicSID==canvas.publicSID) {
+            canvas.setAttribute("isAllowedToDraw",roomClientObj.canDraw);
+ canvas.setAttribute("isAllowedToScreenShare",roomClientObj.canShare); + canvas.setAttribute("isAllowedToRemoteControl",roomClientObj.canRemote);
         }
     ]]>
 </method>

+<method name="setMuteStatus" args="roomClientObj">
+       <![CDATA[
+ if ($debug) Debug.write("setMuteStatus changes ###### ",roomClientObj.micMuted);
+        //Check for self status
+        if (roomClientObj.publicSID==canvas.publicSID) {
+            canvas.setAttribute("micMuted",roomClientObj.micMuted);
+        }
+
+        canvas._videocontainer.updateMuteStatusVideoView(roomClientObj);
+
+        //Notify all Listeners for change of the item
+        canvas.setAttribute("micMutedStatusChangedItem",roomClientObj);
+    ]]>
+</method>
+
 <method name="addFolderSequence" args="foldername">
     <![CDATA[
     this.uploadmoduleimgfolder = '/';
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/remote/baseVideoStreamDevice.lzx Thu Jan 14 09:15:56 2010 +++ /trunk/singlewebapp/WebContent/openmeetings/base/remote/baseVideoStreamDevice.lzx Sat Sep 17 08:15:38 2011
@@ -101,9 +101,9 @@
                    if (!this.doSendNotification){
                        return;
                    }
-
+
//this.parent.parent.parent._loudness.loudness.setAttribute('text',this.level);
-                       if (this.level>canvas.loudnessAcitviation) {
+                       if (this.level>5) {
                                if (!this.isgreater) {
                                        this.isgreater = true;
                                        this.sendNotification();
@@ -114,8 +114,10 @@
                                        this.sendNotification();
                                }
                        }
+
                ]]>
-       </handler>
+       </handler>
+
        <method name="sendNotification">
                //if ($debug) Debug.write("Level sendNotification 
",this.isgreater);
                this.objMessage = new Array ();
@@ -124,10 +126,11 @@
                this.objMessage[2] = parent.parent.publicSID;
                this.sendMessage.doCall();
        </method>
+
     <netRemoteCallHib name="sendMessage" funcname="sendMessage"
                remotecontext="$once{ canvas.thishib }" showLoading="false" >
<netparam><method name="getValue"> return parent.parent.objMessage; </method></netparam>
-    </netRemoteCallHib>
+    </netRemoteCallHib>

 </class>

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/eventuserlist/moderationMiniIcons.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/eventuserlist/moderationMiniIcons.lzx Sat Sep 17 08:15:38 2011
@@ -128,7 +128,7 @@
         <labelTooltip name="_text" labelid="676" />
     </miniIcons>

- <miniIcons name="_canDraw" x="20" width="16" resource="participents_isDrawing_rsc" + <miniIcons name="_canDraw" x="20" width="16" resource="participents_allow_drawing_rsc"
                height="16" showhandcursor="false" >
        <attribute name="isActive" value="true" type="boolean" />
         <handler name="onclick">
@@ -150,7 +150,7 @@
     </miniIcons>

     <miniIcons name="_canDrawModerator" x="20" width="16" opacity="0.5"
- resource="participents_isDrawing_rsc" height="16" showhandcursor="true"> + resource="participents_allow_drawing_rsc" height="16" showhandcursor="true">
         <handler name="onclick">
             //Do it
             if (canvas.ismoderator) {
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/eventuserlist/moderationMiniIconsEventUserList.lzx Sun Jul 31 09:55:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/eventuserlist/moderationMiniIconsEventUserList.lzx Sat Sep 17 08:15:38 2011
@@ -99,7 +99,7 @@
         <labelTooltip name="_text" labelid="685" />
     </miniIcons>

- <miniIcons name="_canDraw" x="20" width="16" resource="participents_isDrawing_rsc" + <miniIcons name="_canDraw" x="20" width="16" resource="participents_allow_drawing_rsc"
                height="16" showhandcursor="false" >
         <attribute name="isActive" value="true" type="boolean" />
         <handler name="onclick">
@@ -111,7 +111,7 @@
     </miniIcons>

     <miniIcons name="_canDrawModerator" x="20" width="16" opacity="0.5"
- resource="participents_isDrawing_rsc" height="16" showhandcursor="true"> + resource="participents_allow_drawing_rsc" height="16" showhandcursor="true">
         <handler name="onclick">
             //Ask for Right to Draw on Whiteboard
             var tDate = new Date();
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/activitylist/activityList.lzx Sun Jul 31 09:55:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/activitylist/activityList.lzx Sat Sep 17 08:15:38 2011
@@ -156,7 +156,7 @@
         this.sendClearMessage(true);
     </method>

-    <view resource="participents_isDrawing_rsc" x="2" y="2" />
+    <view resource="participents_allow_drawing_rsc" x="2" y="2" />

     <labelText text="$once{ parent.message }" multiline="true" x="20"
                width="$once{ parent.width - 40 }" font="Helvetica"/>
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx Sun Sep 4 09:12:20 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx Sat Sep 17 08:15:38 2011
@@ -97,7 +97,7 @@
                height="${ parent.height-216 }" visibility="hidden" />

     <restrictedUserList name="_videocontainer" y="36"
-                          userNewVideoContainer="true" width="$once{ 
parent.width-10 }"
+                           width="$once{ parent.width-10 }"
                           height="${ parent.height-236 }" />

<view y="${ parent.height - 201 }" width="$once{ parent.width-10 }" height="2"
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/_participents.lzx Wed Aug 24 01:01:53 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/_participents.lzx Sat Sep 17 08:15:38 2011
@@ -79,7 +79,7 @@

         <view width="1" height="$once{ parent.parent.height }" x="20"
             bgcolor="$once{ canvas.basebgcolorizer }" />
- <view name="_icon_draw" x="22" y="3" resource="participents_isDrawing_rsc" onclick="" showhandcursor="false"> + <view name="_icon_draw" x="22" y="3" resource="participents_allow_drawing_rsc" onclick="" showhandcursor="false">
             <labelTooltip labelid="609" />
         </view>

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/library.lzx Mon Oct 12 03:58:23 2009 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/library.lzx Sat Sep 17 08:15:38 2011
@@ -4,7 +4,8 @@
     <resource name="participents_isactive" src="resources/button_ok.png" />

<resource name="participents_isMod_rsc" src="resources/kdmconfig.png" /> - <resource name="participents_isDrawing_rsc" src="resources/color_line.png" /> + <resource name="participents_allow_drawing_rsc" src="resources/color_line.png" /> + <resource name="participents_deny_drawing_rsc" src="resources/color_line_dis.png" />


     <include href="participents.lzx" />
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/participents.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/participents/participents.lzx Sat Sep 17 08:15:38 2011
@@ -122,7 +122,7 @@

         <view width="1" height="${ parent.parent.height }" x="20"
             bgcolor="$once{ canvas.basebgcolorizer }" />
- <view name="_icon_draw" x="22" y="3" resource="participents_isDrawing_rsc" onclick="" showhandcursor="false"> + <view name="_icon_draw" x="22" y="3" resource="participents_allow_drawing_rsc" onclick="" showhandcursor="false">
             <labelTooltip labelid="609" />
         </view>

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/moderationMiniIconRestricted.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/moderationMiniIconRestricted.lzx Sat Sep 17 08:15:38 2011
@@ -83,6 +83,17 @@
                        this._allowDevice.setAttribute("visibility","visible");
             this._denyDevice.setAttribute("visibility","hidden");
                }
+
+               if ($debug) Debug.write("Set micMuted ",parent.parent.micMuted);
+
+               if (parent.parent.micMuted) {
+                       this._muteDevice.setAttribute("visibility","hidden");
+            this._unMuteDevice.setAttribute("visibility","visible");
+               } else {
+                       this._muteDevice.setAttribute("visibility","visible");
+            this._unMuteDevice.setAttribute("visibility","hidden");
+               }
+
        </handler>

     <miniIcons name="_isMod" x="0" width="16" showhandcursor="true"
@@ -133,7 +144,7 @@
         <labelTooltip name="_text" labelid="676" />
     </miniIcons>

- <miniIcons name="_canDraw" x="20" width="16" resource="participents_isDrawing_rsc" + <miniIcons name="_canDraw" x="20" width="16" resource="participents_allow_drawing_rsc"
                height="16" showhandcursor="false" >
        <attribute name="isActive" value="true" type="boolean" />
         <handler name="onclick">
@@ -155,7 +166,7 @@
     </miniIcons>

     <miniIcons name="_canDrawModerator" x="20" width="16" opacity="0.5"
- resource="participents_isDrawing_rsc" height="16" showhandcursor="true"> + resource="participents_allow_drawing_rsc" height="16" showhandcursor="true">
         <handler name="onclick">
             //Do it
             if (canvas.ismoderator) {
@@ -185,7 +196,7 @@
         <labelTooltip name="_text" labelid="1068" />
     </miniIcons>

- <miniIcons name="_denyScreen" x="40" width="16" height="16" opacity="0.5"
+    <miniIcons name="_denyScreen" x="40" width="16" height="16"
                resource="screen_allow_rsc" showhandcursor="true">
         <handler name="onclick">
if ($debug) Debug.write("Allow Screen: ",parent.parent.parent.refObj.publicSID);
@@ -214,7 +225,7 @@
         <labelTooltip name="_text" labelid="1079" />
     </miniIcons>

- <miniIcons name="_denyRemote" x="60" width="16" height="16" opacity="0.5"
+    <miniIcons name="_denyRemote" x="60" width="16" height="16"
                resource="remote_allow_rsc" showhandcursor="true">
         <handler name="onclick">
if ($debug) Debug.write("Allow Screen: ",parent.parent.parent.refObj.publicSID);
@@ -227,7 +238,7 @@
         <labelTooltip labelid="1078" />
     </miniIcons>

- <miniIcons name="_allowDevice" x="80" width="40" height="16" opacity="0.5"
+    <miniIcons name="_allowDevice" x="80" width="40" height="16"
                   resource="av_allow_rsc" showhandcursor="true">
         <handler name="onclick">
if ($debug) Debug.write("ALLOW: ",parent.parent.parent.refObj.publicSID);
@@ -242,8 +253,7 @@
         <labelTooltip labelid="683" />
     </miniIcons>

-    <miniIcons name="_denyDevice" x="80" width="40" height="16"
-               resource="av_allow_rsc" showhandcursor="true">
+ <miniIcons name="_denyDevice" x="80" width="40" height="16" resource="av_deny_rsc" showhandcursor="true">
         <handler name="onclick">
if ($debug) Debug.write("ALLOW: ",parent.parent.parent.refObj.publicSID); //var myvideocontainer = canvas._videocontainer.getNewVideoObject(parent.parent.refObj.publicSID);
@@ -256,7 +266,32 @@
         <labelTooltip labelid="684" />
     </miniIcons>

-       <miniIcons name="_kickUser" x="120" width="16" height="16"
+ <miniIcons name="_muteDevice" x="120" width="16" height="16" resource="mute_btn_rsc" showhandcursor="true">
+        <handler name="onclick">
+ if ($debug) Debug.write("mute: ",parent.parent.parent.refObj.publicSID); + //canvas.thishib.giveExclusiveAudio.publicSID = parent.parent.parent.refObj.publicSID;
+            //canvas.thishib.giveExclusiveAudio.doCall();
+
+ canvas.thishib.switchMicMuted.setMute(parent.parent.parent.refObj.publicSID,true);
+
+        </handler>
+        <labelTooltip labelid="1384" />
+    </miniIcons>
+
+ <miniIcons name="_unMuteDevice" x="120" width="16" height="16" resource="unmute_btn_rsc"
+                  showhandcursor="true" visibility="hidden">
+        <handler name="onclick">
+ if ($debug) Debug.write("unmute: ",parent.parent.parent.refObj.publicSID); + //canvas.thishib.giveExclusiveAudio.publicSID = parent.parent.parent.refObj.publicSID;
+            //canvas.thishib.giveExclusiveAudio.doCall();
+
+ canvas.thishib.switchMicMuted.setMute(parent.parent.parent.refObj.publicSID,false);
+
+        </handler>
+        <labelTooltip labelid="1385" />
+    </miniIcons>
+
+       <miniIcons name="_kickUser" x="136" width="16" height="16"
                resource="kick_user_rsc" showhandcursor="true">
         <handler name="onclick">

@@ -298,15 +333,6 @@
         <labelTooltip labelid="1213" />
     </miniIcons>

-    <miniIcons name="_giveExclusiveAudio" x="136" width="16" height="16"
-               resource="mic_rsc" showhandcursor="true">
-        <handler name="onclick">
- if ($debug) Debug.write("give giveExclusiveAudio: ",parent.parent.parent.refObj.publicSID); - canvas.thishib.giveExclusiveAudio.publicSID = parent.parent.parent.refObj.publicSID;
-            canvas.thishib.giveExclusiveAudio.doCall();
-        </handler>
-        <labelTooltip labelid="1386" />
-    </miniIcons>
 </class>

 </library>
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx Wed Aug 24 01:01:53 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserList.lzx Sat Sep 17 08:15:38 2011
@@ -8,11 +8,6 @@
        <!--- 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"/>
-
        <!--- colors for each user -->
        <attribute name="colorArray" value="null" />

@@ -197,10 +192,7 @@
        <![CDATA[
//if ($debug) Debug.write("getVideoObjectByPublicSid SEARCH: ",publicSID);

-               var videoContainer = this._videoviewcontent;
-            if (this.userNewVideoContainer) {
-                videoContainer = parent.parent._videoviewcontent;
-            }
+               var videoContainer = parent.parent._videoviewcontent;

                //for (var i=0;i<this._videoviewcontent.subviews.length;i++){
// if ($debug) Debug.write("getVideoObjectByBroadCastId6 broadcastId: ",this._videoviewcontent.subviews[i].broadcastId);
@@ -387,10 +379,7 @@
                        if (obj!=null){
                                this.broadCastViewRef = obj;
                        } else {
-                var videoContainer = this._videoviewcontent;
-                if (this.userNewVideoContainer) {
-                    videoContainer = parent.parent._videoviewcontent;
-                }
+                var videoContainer = parent.parent._videoviewcontent;

                 //Get a Free VideoView Slot
var freePos = videoContainer.getVideoObjectFreePos(40, 100, 100);
@@ -419,10 +408,7 @@
                                return obj;
                        }

-            var videoContainer = this._videoviewcontent;
-            if (this.userNewVideoContainer) {
-                videoContainer = parent.parent._videoviewcontent;
-            }
+            var videoContainer = parent.parent._videoviewcontent;

             //Get a Free VideoView Slot
var freePos = videoContainer.getVideoObjectFreePos(40, 100, 100);
@@ -495,19 +481,24 @@
        </method>

        <method name="resetAllValues">
-               var videoContainer = this._videoviewcontent;
-        if (this.userNewVideoContainer) {
-            videoContainer = parent.parent._videoviewcontent;
-        }
+               var videoContainer = parent.parent._videoviewcontent;
+
                for (var eg in videoContainer.subviews){
                        videoContainer.subviews[eg].resetValues();
                }
        </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>

     <restrictedUserListInner name="_participents" />

-       <commonVideoViewContent name="_videoviewcontent" />
-
 </class>

 </library>
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserListInner.lzx Tue Sep 6 11:06:13 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserListInner.lzx Sat Sep 17 08:15:38 2011
@@ -307,6 +307,7 @@
list.subviews[i].setAttribute("canDraw",records[i].canDraw); list.subviews[i].setAttribute("canShare",records[i].canShare); list.subviews[i].setAttribute("canRemote",records[i].canRemote); + list.subviews[i].setAttribute("micMuted",records[i].micMuted); list.subviews[i].setAttribute("isMod",records[i].isMod); list.subviews[i].isBroadcasting = records[i].isBroadcasting; list.subviews[i].setAttribute("selfItem",records[i].selfItem);
@@ -332,6 +333,7 @@
                         list.subviews[i].setAttribute("canDraw",false);
                         list.subviews[i].setAttribute("canShare",false);
                         list.subviews[i].setAttribute("canRemote",false);
+                        list.subviews[i].setAttribute("micMuted",false);
                         list.subviews[i].setAttribute("isMod",false);
                         list.subviews[i].isBroadcasting = false;
                         list.subviews[i].setAttribute("selfItem",false);
@@ -393,6 +395,7 @@
item.setAttribute("canDraw",this.renderList[item.itemId].canDraw); item.setAttribute("canShare",this.renderList[item.itemId].canShare); item.setAttribute("canRemote",this.renderList[item.itemId].canRemote); + item.setAttribute("micMuted",this.renderList[item.itemId].micMuted); item.isBroadcasting = this.renderList[item.itemId].isBroadcasting; item.setAttribute("isMod",this.renderList[item.itemId].isMod); item.setAttribute("selfItem",this.renderList[item.itemId].selfItem);
@@ -426,6 +429,7 @@
                     item.setAttribute("canDraw",false);
                     item.setAttribute("canShare",false);
                     item.setAttribute("canRemote",false);
+                    item.setAttribute("micMuted",false);
                     item.setAttribute("isMod",false);
                     item.isBroadcasting = false;
                     item.setAttribute("selfItem",false);
@@ -455,6 +459,37 @@
             ]]>
         </handler>

+ <handler name="onmicMutedStatusChangedItem" reference="canvas" args="roomClientObj">
+               <![CDATA[
+
+ if ($debug) Debug.write(" :: onmicMutedStatusChangedItem :: ",roomClientObj.micMuted);
+
+                  //search for the user and update its drawStatusIcon
+                var vList = parent._table._innerlist._inn._inn.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+ if (vList[i].refObj.publicSID == roomClientObj.publicSID) {
+                        vList[i].refObj.micMuted = roomClientObj.micMuted;
+                        vList[i].micMuted = roomClientObj.micMuted;
+                        vList[i].updateModeratorIcons();
+                        break;
+                    }
+                }
+
+                var vList = parent._table.renderList;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].publicSID == roomClientObj.publicSID) {
+ parent._table.renderList[i].micMuted = roomClientObj.micMuted;
+                        break;
+                    }
+                }
+
+                parent._applyAndStatusIcons.updateIcons();
+
+               ]]>
+        </handler>
+
<handler name="ondrawAllowStatus" reference="canvas" args="drawObject">
             <![CDATA[

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserListItem.lzx Thu Jul 15 06:41:16 2010 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/restricted/restrictedUserListItem.lzx Sat Sep 17 08:15:38 2011
@@ -11,6 +11,7 @@
     <attribute name="canShare" value="false" type="boolean" />
     <attribute name="canRemote" value="false" type="boolean" />
     <attribute name="isBroadcasting" value="false" type="boolean" />
+    <attribute name="micMuted" value="false" type="boolean" />

     <attribute name="streamid" value="" type="string" />
     <attribute name="username" value="" type="string" />
@@ -29,13 +30,15 @@
     <attribute name="selfItem" value="false" type="boolean"/>

     <handler name="onisMod">
-       if (this.isMod) {
-            this._content.userStatus.setAttribute("frame",3);
-        } else if (this.refObj.canDraw) {
-            this._content.userStatus.setAttribute("frame",2);
-        } else {
-            this._content.userStatus.setAttribute("frame",1);
-        }
+       <![CDATA[
+               if (this.isMod) {
+                this._content.userStatus.setAttribute("frame",3);
+            } else if (this.refObj != null && this.refObj.canDraw) {
+                this._content.userStatus.setAttribute("frame",2);
+            } else {
+                this._content.userStatus.setAttribute("frame",1);
+            }
+        ]]>
     </handler>


=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/baseVideoObject.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/baseVideoObject.lzx Sat Sep 17 08:15:38 2011
@@ -21,6 +21,9 @@
        <!--- publicSID is a hash-value to identify a user -->
        <attribute name="publicSID" value="" type="string" />

+       <!--- publicSID is a hash-value to identify a user -->
+    <attribute name="micMuted" value="false" type="boolean" />
+
        <!--- @keywords private -->
        <attribute name="isremote" value="true" type="boolean" />

@@ -95,34 +98,13 @@
             }
             this._micView.bringToFront();
             if (this.isInterview) {
-                this.isShowMicMute = false;
-            } else if (canvas.ismoderator) {
-                this.isShowMicMute = true;
-            } else if (canvas.publicSID == this.publicSID) {
-                this.isShowMicMute = true;
-            } else {
                 this.isShowMicMute = false;
             }
-            if (this.isShowMicMute) {
-                this._micView.setAttribute("visibility", "visible");
-            } else {
-                this._micView.setAttribute("visibility", "hidden");
-            }
-            this.getHasAudioByPublicSID.doCall();
+
         ]]>

     </handler>

- <netRemoteCallHib name="getMicMutedByPublicSID" funcname="getMicMutedByPublicSID" remotecontext="${ canvas.thishib }"> - <netparam><method name="getValue">return parent.parent.publicSID;</method></netparam>
-        <handler name="ondata" args="value">
-            <![CDATA[
-            //The onResult-Handler will be called be the rtmpconnection
-            parent.setMicMuted(value);
-            ]]>
-        </handler>
-    </netRemoteCallHib>
-
        <handler name="ony">
                <![CDATA[

@@ -397,7 +379,7 @@
                </view>
        </view>

-    <view name="_micView" x="21" y="${parent.height - 20}">
+    <view name="_micView" x="21" y="${parent.height - 18}">
<miniIcons name="_micButton" width="14" height="14" resource="mute_micro_btn_rsc">
             <handler name="onclick">
                 <![CDATA[
@@ -536,21 +518,74 @@
         }
         ]]>
     </handler>
-
-    <method name="muteMicrophone" args="mute">
+
+    <!--
+        This will mute the Microphone only to the person that is speaking
+        if the gain is set to zero NOBODY will hear 'em
+     -->
+    <method name="muteMicrophone" args="roomClientObj">
+        <![CDATA[
+
+ if ($debug) Debug.write("############ muteMicrophone ",roomClientObj.micMuted);
+
+        if (this.publicSID == canvas.publicSID) {
+            if (roomClientObj.micMuted) {
+               if ($debug) Debug.write("############ SET GAIN 0");
+                this._chatvideoinner._videostream.micro.setGain(0);
+            } else {
+               if ($debug) Debug.write("############ SET GAIN 50");
+                this._chatvideoinner._videostream.micro.setGain(50);
+            }
+        }
+        this.isMutedByModerator = roomClientObj.micMuted;
+        this.setMicMuted(roomClientObj.micMuted);
+        ]]>
+    </method>
+
+    <!--
+        This will mute it only locally, that means on other screens
+        the user might be still online and loud
+     -->
+    <method name="silenceMicrophone" args="mute">
         <![CDATA[
-        var gain = this._chatvideoinner._videostream.micro.gain;
-        if (mute) {
-            this._chatvideoinner._videostream.micro.setGain(0);
+
+        if (this.isMutedByModerator) {
+               //errorlabelid
+               //FIXME: That is not true, you could restart audio/video ...
+ new lz.labelerrorPopup(canvas,{error:"This user is/You are muted by the moderator, you cannot mute or unmute it/yourself."});
+               return;
+        }
+        if (this.publicSID == canvas.publicSID) {
+               //self sound turned off
+               if (mute) {
+               new lz.confirmationSingle(canvas.main_content._content.inner,{
+ labelid:904,labeliderror:905, + refObj:this,showCheckBox:false});
+               } else {
+                       this._chatvideoinner._videostream.micro.setGain(50);
+               }
         } else {
-            this._chatvideoinner._videostream.micro.setGain(50);
-        }
+               if (mute) {
+                this._chatvideoinner._videostream.setVolume(0);
+            } else {
+                this._chatvideoinner._videostream.setVolume(100);
+            }
+        }
+
         this.setMicMuted(mute);
         ]]>
     </method>
+
+    <method name="sendConfirmation" args="bool" >
+       if ($debug) Debug.write("sendConfirmation :: ",bool);
+       if (bool) {
+            this._chatvideoinner._videostream.micro.setGain(0);
+       }
+    </method>

     <method name="setMicMuted" args="micMuted">
         <![CDATA[
+        this.micMuted = micMuted;
         if (micMuted) {
             this._micView._micButton._tip.setAttribute("labelid","1385");
             this._micView._micButton.setAttribute('frame',2);
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx Mon Sep 12 11:03:36 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/editRecordStream.lzx Sat Sep 17 08:15:38 2011
@@ -120,6 +120,8 @@
                        this.myvideocontainer.setAttribute('isremote',false);

                        var _micro = Microphone.get(valMic);
+ //always to default gain to 50 because the Flash Plugin will remember the last time you've set the value
+                       _micro.setGain(50);
                        var _camera = Camera.get(valCam);
if ($debug) Debug.write("_camera.setMode: ",videoview.width,videoview.height,canvas.framesPerSecond,true);

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/library.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/library.lzx Sat Sep 17 08:15:38 2011
@@ -17,6 +17,9 @@
                <frame src="resources/micro_off.png" />
        </resource>

+       <resource name="mute_btn_rsc" src="resources/micro_on.png" />
+       <resource name="unmute_btn_rsc" src="resources/micro_off.png" />
+
        <resource name="lz_recorder_play" src="resources/webstart_play.png" />

     <include href="videoUserProfilePic.lzx" />
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/videoObjectBroadcast.lzx Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/video/videoObjectBroadcast.lzx Sat Sep 17 08:15:38 2011
@@ -26,13 +26,31 @@
                          width="$once{parent.width}" 
height="$once{parent.height}" />
                <handler name="oninit">
                        this.r.setAttribute('frame',5);
-            this._videostream.micro.setGain(50);
                </handler>

                <baseVideoStreamDevice name="_videostream" mode="broadcast"
-                                                width="${parent.width}" 
height="${parent.height}" bgcolor="black" />
+                                                width="${parent.width}" 
height="${parent.height}" bgcolor="black">
+                       <handler name="onlevel">
+                <![CDATA[
+                    if (this.level > 0) {
+                       parent._activityLevel.bringToFront();
+ //parent._activityLevel.setAttribute("visibility","visible");
+                    }
+                    var fullLength = parent._activityLevel.height-2;
+ parent._activityLevel._activity.setAttribute("height",this.level*(fullLength/100));
+                ]]>
+            </handler>
+               </baseVideoStreamDevice>
+
+               <view name="_activityLevel" width="8" x="2" y="2" opacity="0.7"
+              height="${ parent.height - 40 }" bcolor="0xFFFFFF">
+ <view name="_activity" x="1" width="6" bgcolor="0x00FF00" height="0">
+
+            </view>
+        </view>

        </view>
+
 </class>


=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/plugins/fileexplorer/fileExplorer.lzx Sun Sep 4 07:44:47 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/plugins/fileexplorer/fileExplorer.lzx Sat Sep 17 08:15:38 2011
@@ -130,16 +130,18 @@

     <method name="loadFiles">
        <![CDATA[
-            //this.getFileExplorerByRoom.doCall();
- var downloadurl = 'http://'+canvas.rtmphostlocal+':'+canvas.red5httpport - +canvas.httpRootKey+'services/FileService/getFileExplorerByRoomSelfInternal?'
-                            +'SID='+canvas.sessionId
-                            +'&roomId='+hib.currentroomid;
-
-            this.getFileExplorerByRoomSelf.setAttribute("src",downloadurl);
- if ($debug) Debug.write("getFileExplorerByRoomSelf doRequest 1 ",downloadurl); - if ($debug) Debug.write("getFileExplorerByRoomSelf doRequest 2 ",downloadurl.src);
-            this.getFileExplorerByRoomSelf.doRequest();
+           if (this["getFileExplorerByRoomSelf"]) {
+                //this.getFileExplorerByRoom.doCall();
+ var downloadurl = 'http://'+canvas.rtmphostlocal+':'+canvas.red5httpport + +canvas.httpRootKey+'services/FileService/getFileExplorerByRoomSelfInternal?'
+                                +'SID='+canvas.sessionId
+                                +'&roomId='+hib.currentroomid;
+
+ this.getFileExplorerByRoomSelf.setAttribute("src",downloadurl); + if ($debug) Debug.write("getFileExplorerByRoomSelf doRequest 1 ",downloadurl); + if ($debug) Debug.write("getFileExplorerByRoomSelf doRequest 2 ",downloadurl.src);
+                this.getFileExplorerByRoomSelf.doRequest();
+           }
         ]]>
     </method>

=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java Thu Sep 15 21:42:15 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java Sat Sep 17 08:15:38 2011
@@ -1276,22 +1276,16 @@
                        for (Set<IConnection> conset : conCollection) {
                                for (IConnection conn : conset) {
                                        if (conn != null) {
-                                               RoomClient rcl = 
this.clientListManager
-                                                               
.getClientByStreamId(conn.getClient().getId());
+ RoomClient rcl = this.clientListManager.getClientByStreamId(conn.getClient().getId());
                                                if (rcl == null) {
                                                        // continue;
-                                               } else if 
(rcl.getIsScreenClient() != null
-                                                               && 
rcl.getIsScreenClient()) {
+ } else if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
                                                        // continue;
                                                } else {
-                                                       log.debug("Send Flag to 
Client: "
-                                                                       + 
rcl.getUsername());
+                                                       log.debug("Send Flag to 
Client: " + rcl.getUsername());
                                                        if (conn instanceof 
IServiceCapableConnection) {
-                                                               
((IServiceCapableConnection) conn).invoke(
-                                                                               
"setNewBroadCastingFlag",
-                                                                               
new Object[] { currentClient }, this);
-                                                               log.debug("sending 
setNewBroadCastingFlag to "
-                                                                               
+ conn);
+ ((IServiceCapableConnection) conn).invoke( "setNewBroadCastingFlag", new Object[] { currentClient }, this);
+                                                               log.debug("sending 
setNewBroadCastingFlag to " + conn);
                                                        }
                                                }
                                        }
@@ -1353,68 +1347,28 @@
                return -1L;
        }

-    public synchronized Long switchMicMuted(String publicSID) {
+ public synchronized Long switchMicMuted(String publicSID, boolean mute) {
                try {
                        log.debug("*..*switchMicMuted publicSID: " + publicSID);

-                       IConnection current = Red5.getConnectionLocal();
RoomClient currentClient = this.clientListManager.getClientByPublicSID(publicSID);
                        if (currentClient == null) {
                                return -1L;
                        }

-                       //reverse micMuted flag for this client
-            Boolean micMuted = currentClient.getMicMuted();
-            log.debug("*..*switchMicMuted micMuted: " + micMuted);
-            if (null == micMuted) {
-                micMuted = false;
-            }
-            currentClient.setMicMuted(!micMuted);
+            currentClient.setMicMuted(mute);
this.clientListManager.updateClientByStreamId(currentClient.getStreamid(), currentClient);

- Collection<Set<IConnection>> conCollection = current.getScope().getConnections();
-                       for (Set<IConnection> conset : conCollection) {
-                               for (IConnection conn : conset) {
-                                       if (conn != null) {
- RoomClient rcl = this.clientListManager.getClientByStreamId(conn.getClient().getId());
-                        if (rcl == null) {
-                                                       //continue;
- } else if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
-                                               //continue;
-                                       } else {
-                                                       log.debug("Send mic switched 
to Client: "+rcl.getUsername());
-                                                       if (conn instanceof 
IServiceCapableConnection) {
- ((IServiceCapableConnection) conn).invoke("receiveMicMuteSwitched",new Object[] { currentClient }, this);
-                                                               log.debug("sending 
receiveMicMuteSwitched to " + conn);
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-
+                       HashMap<Integer, Object> newMessage = new HashMap<Integer, 
Object>();
+                       newMessage.put(0, "updateMuteStatus");
+                       newMessage.put(1, currentClient);
+                       this.sendMessageWithClient(newMessage);
+
                } catch (Exception err) {
                        log.error("[switchMicMuted]",err);
                }
                return 0L;
        }
-
-    public synchronized Boolean getMicMutedByPublicSID(String publicSID) {
-        try {
-                       log.debug("*..*getMicMutedByPublicSID publicSID: " + 
publicSID);
-
- RoomClient currentClient = this.clientListManager.getClientByPublicSID(publicSID);
-                       if (currentClient != null) {
-                               //Put micMuted for this client
-               Boolean micMuted = currentClient.getMicMuted();
-                   log.debug("*..*getMicMutedByPublicSID micMuted: " + 
micMuted);
-
-               return micMuted == null ? false : true;
-                       }
-        } catch (Exception err) {
-                       log.error("[getMicMutedByPublicSID]",err);
-               }
-               return false;
-    }

        /**
         * Invoked by a User whenever he want to become moderator this is 
needed,

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