Author: sebawagner
Date: Fri Mar  2 10:26:30 2012
New Revision: 1296115

URL: http://svn.apache.org/viewvc?rev=1296115&view=rev
Log:
OPENMEETINGS-45 New Audio/Video Components Fix event messages, replace some 
icons in participants list

Added:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/accept.png
   (with props)
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/delete.png
   (with props)
Removed:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/button_ok.png
Modified:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/library.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/commonVideoViewContentSWF10.lzx
    
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/WhiteBoardService.java
    
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx?rev=1296115&r1=1296114&r2=1296115&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx 
(original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx 
Fri Mar  2 10:26:30 2012
@@ -549,419 +549,424 @@
         }
     </method>
     
-    <method name="roomClosed">
-        <![CDATA[
-        
-            if ($debug) Debug.write("canvas.currentRoomObject 
",canvas.currentRoomObject);
-            
-            new 
lz.redirectBox(canvas,{redirectURL:canvas.currentRoomObject.redirectURL});
-        
-        ]]>
-    </method>
+       <method name="roomClosed">
+           <![CDATA[
+               if ($debug) Debug.write("canvas.currentRoomObject 
",canvas.currentRoomObject);
+               new 
lz.redirectBox(canvas,{redirectURL:canvas.currentRoomObject.redirectURL});
+           ]]>
+       </method>
                  
         
 
-
-<method name="parseLanugageObject" args="obj">
-
-    ////Debug.write('parseLanugageObject: ',obj);
-    ////Debug.write('parseLanugageObject: ',obj.childNodes);
-    <![CDATA[
-    var t = new Array();
-    for (var i=0;i<obj.childNodes.length;i++){
-        for (var k=0;k<obj.childNodes[i].childNodes.length;k++){
-            ////Debug.write(obj.childNodes[i].childNodes[k]);
-            var t2 = new Array();
-            
t2[obj.childNodes[i].childNodes[k].childNodes[0].nodeName]=obj.childNodes[i].childNodes[k].childNodes[0].childNodes[0].data;
-            
t2[obj.childNodes[i].childNodes[k].childNodes[1].nodeName]=obj.childNodes[i].childNodes[k].childNodes[1].childNodes[0].data;
-            t.push(t2);
-        }
-    }
-    setLabelObject(t);
-    canvas.initScreen();
-    //Debug.write(t);
-    ]]>
-</method>
-
-<!-- Data Source Definition -->
-<dataset name="getSessionVarsData" request="false" proxied="false"
-    querytype="POST" src="${ 
'http://'+canvas.rtmphost+'/webrooms/checksession.php' }" 
-    type="http" >
-    <handler name="ondata" args="value">
-    
-        //Debug.write(value);
-        
canvas.setAttribute('currentcourse',value.childNodes[0].childNodes[0].childNodes[0].childNodes[0].data);
-        canvas.setAttribute('currentcourseName',canvas.currentcourse);
-        
canvas.setAttribute('currentcourseNameLong',value.childNodes[0].childNodes[0].childNodes[1].childNodes[0].data);
-        
canvas.setAttribute('currentlanguage',value.childNodes[0].childNodes[0].childNodes[8].childNodes[0].data);
-
-        
canvas.setAttribute('currentusename',value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data+'
 '+value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
-        
-        
canvas.setAttribute('user_id',value.childNodes[0].childNodes[1].childNodes[0].childNodes[0].data);
-        
canvas.setAttribute('firstName',value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
-        
canvas.setAttribute('lastName',value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data);
-        
canvas.setAttribute('mail',value.childNodes[0].childNodes[1].childNodes[3].childNodes[0].data);
-        canvas.setAttribute('lastLogin','');
-        
canvas.setAttribute('official_code',value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
-        canvas.setAttribute('picture_uri','');
-        
canvas.setAttribute('language',value.childNodes[0].childNodes[1].childNodes[7].childNodes[0].data);
-
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[0].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[3].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[4].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[6].childNodes[0].data);
-        
//Debug.write(value.childNodes[0].childNodes[1].childNodes[7].childNodes[0].data);
-        
-        switch (canvas.currentlanguage){
-            case 'english':
-            break;
-            case 'german':
-            break;
-            case 'french':
-            break;          
-            default:
-            canvas.setAttribute('currentlanguage','english');
-            break;
-        }
-        
-        var addIt='conf';
-        if (!canvas.isConference){
-            addIt='meet'
-        }
-        
canvas.setAttribute('currentcourse',canvas.rtmphost+canvas.currentcourse+addIt);
-        
canvas.setAttribute('currentuser',value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
-        
-        canvas.setAttribute('loadingmessage','loading language data');
-        canvas.languageData.doRequest();
-    </handler>
-</dataset>
-
-<method name="addBrowserTabHistory" args="value">
-    <![CDATA[
-    //Debug.write("addBrowserTabHistory: ",value);
-    _browserhistory.addItem(value);
-    this.browserTabHistory.push(value);
-    ]]>
-</method>
-  
-<!---
-@doc The function does compare the new moderator list with the old and 
prepares the list 
-       the removeModeratorList is used in the performance optimized user list 
of the restricted 
-       room type to re-render the list items only if really something has 
changed in any 
-       of the user list items
- -->
-<method name="analyzeModerationList" args="newList">
-    <![CDATA[
-    
-       canvas.newModeratorList = new Array();
-       canvas.removeModeratorList = new Array();
-       
-       if (canvas.currentModeratorList != null) {
-           for (var i=0;i<canvas.currentModeratorList.length;i++) {
-                canvas.currentModeratorList[i].found = false;
-           }
-       
-           for (var i=0;i<canvas.currentModeratorList.length;i++) {
-                
-                for (var k=0;k<newList.length;k++) {
-                    if (newList[k].publicSID == 
canvas.currentModeratorList[i].publicSID) {
-                        canvas.currentModeratorList[i].found = true;
-                    }
-                }
-            }
-        }
-        
-        for (var k=0;k<newList.length;k++) {
-            newList[k].found = false;
-        }
-       
-        for (var k=0;k<newList.length;k++) {
-               if (canvas.currentModeratorList != null) {
-                for (var i=0;i<canvas.currentModeratorList.length;i++) {
-                    if (newList[k].publicSID == 
canvas.currentModeratorList[i].publicSID) {
-                        newList[k].found = true;
-                    }
-                }
-               }
-        }
-        
-        for (var k=0;k<newList.length;k++) {
-            if (!newList[k].found) {
-                canvas.newModeratorList.push(newList[k]);
-            }
-        }
-        
-        if (canvas.currentModeratorList != null) {
-            for (var i=0;i<canvas.currentModeratorList.length;i++) {
-                
-                if (!canvas.currentModeratorList[i].found) {
-                    
canvas.removeModeratorList.push(canvas.currentModeratorList[i])
-                }
-            }
-        }
-        
-        if ($debug) Debug.write("newModeratorList :: 
",canvas.newModeratorList);
-        if ($debug) Debug.write("removeModeratorList :: 
",canvas.removeModeratorList);
-    ]]>
-</method>
-
-<!---
-       Updates the "ismoderator" flag
-       the setAttribute method will broadcast an event to all event listeners 
that 
-       did subscribe using the "onismoderator" handler with reference to 
canvas !
-       For example in the userlist's of the roomtypes
- -->
-<method name="updateModerationFlag">
-    <![CDATA[
-        if ($debug) 
Debug.write("updateModerationFlag",canvas.currentModeratorList);
-        var isCurrentModerator = false;
-        for (var i=0;i<canvas.currentModeratorList.length;i++) {
-            var item = canvas.currentModeratorList[i];
-            if (canvas.publicSID == item.publicSID) {
-                isCurrentModerator = true;
-            }
-        }
-        this.setAttribute('ismoderator',isCurrentModerator);
-    ]]>
-</method> 
-
-<!---
-       Checks if a certain publicSID is a moderator
- -->
-<method name="getIsModeratorByPublicSID" args="publicSID">
-    <![CDATA[
-        for (var i=0;i<canvas.currentModeratorList.length;i++) {
-            var item = canvas.currentModeratorList[i];
-            if (publicSID == item.publicSID) {
-                return true;
-            }
-        }
-        return false;
-    ]]>
-</method>
- 
-<!---
-       Load the invitation window
- -->
-<method name="doAction" args="action">
-    if (action == "invitation") {
-        new lz.inviteMainWindow(canvas.main_content._content.inner);
-    }
-</method>
-
-<!---
-       Sets the flags isAllowedToDraw, isAllowedToScreenShare, 
isAllowedToRemoteControl 
-       and broadcasts the three rights to SWF10 container
- -->
-<method name="setDrawAllowStatus" args="roomClientObj">
-    <![CDATA[
-        if ($debug) Debug.write("drawAllowStatus changes ###### ");
-        if (roomClientObj.publicSID==canvas.publicSID) {
-            canvas.setAttribute("isAllowedToDraw",roomClientObj.canDraw);
-            
canvas.setAttribute("isAllowedToScreenShare",roomClientObj.canShare);
-            
canvas.setAttribute("isAllowedToRemoteControl",roomClientObj.canRemote);
-            canvas.lc.send(canvas.vid_lc_name, "setDrawAllowStatus", 
roomClientObj.canDraw, roomClientObj.canShare, roomClientObj.canRemote);
-        }
-    ]]>
-</method>
-
-<!---
-       Sets the flag for the isAllowedToGiveExclusiveAudio status and 
broadcasts it to the 
-       SWF10 container
- -->
-<method name="setExclusiveAudioAllowStatus" args="roomClientObj">
-    <![CDATA[
-        if ($debug) Debug.write("giveExclusiveAudioStatus changes ###### ");
-        if (roomClientObj.publicSID==canvas.publicSID) {
-            
canvas.setAttribute("isAllowedToGiveExclusiveAudio",roomClientObj.canGiveAudio);
-            canvas.lc.send(canvas.vid_lc_name, "setExclusiveAudioAllowStatus", 
roomClientObj.canGiveAudio);
-        }
-    ]]>
-</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 = '/';
-    this.uploadmoduleimgfolder += foldername;
-    this.setAttribute('uploadmoduleimgfolder',this.uploadmoduleimgfolder);
-    ]]>
-</method>
-    
-    
-<!-- country validation -->
-<method name="validateCountry" args="str">
-    ////Debug.write("validateCountry: ",str);
-    str = str.toLowerCase();
-    <![CDATA[
-        if (str.length!=0){
-            var a = new Array();
-            for (var i=0;i<canvas.statesInitValues.length;i++){
-                var st = canvas.statesInitValues[i].name.toLowerCase();
-                if (st.startsWith(str))a.push(canvas.statesInitValues[i]);
-                
//this.addItem(canvas.statesInitValues[i].name,canvas.statesInitValues[i].state_id);
-            }
-            return a;
-        }
-    ]]> 
-</method>
-    
-<method name="getCountryRecord" args="id">
-    return canvas.statesInitValues[id];
-</method>
-    
-<handler name="onmousewheeldelta" reference="lz.Keys" args="d">
-    var obj = getCurrentMouseWheelObject();
-    ////Debug.write("onmousewheeldelta 12: ",d,obj);
-    <![CDATA[
-        if (obj!=null) {
-            obj.step(-d);
-        }
-    ]]>
-</handler>    
-
-<method name="reverseWordingsBySplit" args="str">
-    <![CDATA[
-        var words_arr = str.split( " " ); // an array of chars
-        for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse 
their order
-        {
-            str += words_arr[ words_arr.length - i - 1 ];
-            if (words_arr.length != 1) {
-                str += " ";
-            }
-        }
-        return str;
-        
-    ]]>
-</method> 
-
-<method name="reverseAll" args="str">
-    <![CDATA[
-        var words_arr = str.split( "" ); // an array of chars
-        for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse 
their order
-        {
-            str += words_arr[ words_arr.length - i - 1 ];
-            
-        }
-        return str;
-        
-    ]]>
-</method> 
-    
-<method name="reverseWords" args="str">
-    <![CDATA[
-        if ( str == "" || str == null ) return ""; // undefined
-        // first char indicates the main directive of str (rtl/ltr)
-        if ( isLTR( str.charCodeAt( 0 ) ) ) return str; // english or number
-        var words_arr = str.split( "" ); // an array of chars
-        for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse 
their order
-            str += words_arr[ words_arr.length - i - 1 ];
-        return str;
-    ]]>
-</method>
-    
-<method name="isLTR" args="c">
-    <![CDATA[
-        return ( c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 
122 );
-    ]]>
-</method>
-
-<method name="isHEB" args="c">
-    <![CDATA[
-        return ( c >= 224 && c <= 250 );
-    ]]>
-</method>    
-
-<method name="setTextAlign" args="obj,type">
-    switch ( type ) {
-        case "left" :
-            obj.setX( 0 );
-        break;
-        case "center" :
-            obj.setX( this.parent.width / 2 - this.getTextWidth() / 2 );
-        break;
-        case "right" :
-            obj.setX( this.parent.width - this.getTextWidth() );
-        break;
-    }
-</method>  
-
-<method name="initSharedObject">
-    if (canvas.sharedObject == null) {
-        if($debug) Debug.write("canvas.initSharedObject sharedObject IS null");
-        canvas.sharedObject = new lz.sharedObject();
-        canvas.sharedObject.getLocal('userdata');
-    }
-</method>
-
-<method name="getUserData">
-    canvas.initSharedObject();
-    var g = canvas.sharedObject.getData('userdata');
-    if (g==null) {
-        if($debug) Debug.write("sharedObject.getData IS null");
-        g = new Array();
-    }
-    return g;
-</method>
-
-<method name="setUserData" args="g">
-    canvas.initSharedObject();
-    canvas.sharedObject.setData('userdata', g);
-    canvas.sharedObject.flush();
-</method>
-
-<method name="setColorStyle" args="value">
-    var val = value;
-    if (val == "mediumseagreen"){
-        canvas.setAttribute('basebgcolorizer',"0x3CB371");
-        canvas.setAttribute('baseMousecolorizer',"0x66CC8E");
-        canvas.setAttribute('baseMouseOvercolorizer',"0x66CC8E");
-    } else if (val == "steelblue"){
-        canvas.setAttribute('basebgcolorizer',"0x4682B4");
-        canvas.setAttribute('baseMousecolorizer',"0x80AECC");
-        canvas.setAttribute('baseMouseOvercolorizer',"0x80AECC");
-    } else if (val == "redorange"){
-        canvas.setAttribute('basebgcolorizer',"0xFC8558");
-        canvas.setAttribute('baseMousecolorizer',"0xFDC4A6");
-        canvas.setAttribute('baseMouseOvercolorizer',"0xFDC4A6");
-    } else if (val == "lightsteelblue"){
-        canvas.setAttribute('basebgcolorizer',"0x3F5B9E");
-        canvas.setAttribute('baseMousecolorizer',"0xC4D5E6");
-        canvas.setAttribute('baseMouseOvercolorizer',"0xC4D5E6");
-    } else if (val == "goldenrod"){
-        canvas.setAttribute('basebgcolorizer',"0xDAA520");
-        canvas.setAttribute('baseMousecolorizer',"0xE8C064");
-        canvas.setAttribute('baseMouseOvercolorizer',"0xE8C064");
-    } else if (val == "silvergray"){
-        canvas.setAttribute('basebgcolorizer',"0xC4C8CC");
-        canvas.setAttribute('baseMousecolorizer',"0xC2C8CD");
-        canvas.setAttribute('baseMouseOvercolorizer',"0xC2C8CD");
-    } else if (val == "userdefined"){
-        canvas.setAttribute('basebgcolorizer', canvas.userbgcolorizer);
-        canvas.setAttribute('baseMousecolorizer', canvas.userMousecolorizer);
-        canvas.setAttribute('baseMouseOvercolorizer', 
canvas.userMouseOvercolorizer);
-    } else {
-        val = null;
-    }
-    
-    return val;
-</method>
+       
+       <method name="parseLanugageObject" args="obj">
+       
+           ////Debug.write('parseLanugageObject: ',obj);
+           ////Debug.write('parseLanugageObject: ',obj.childNodes);
+           <![CDATA[
+           var t = new Array();
+           for (var i=0;i<obj.childNodes.length;i++){
+               for (var k=0;k<obj.childNodes[i].childNodes.length;k++){
+                   ////Debug.write(obj.childNodes[i].childNodes[k]);
+                   var t2 = new Array();
+                   
t2[obj.childNodes[i].childNodes[k].childNodes[0].nodeName]=obj.childNodes[i].childNodes[k].childNodes[0].childNodes[0].data;
+                   
t2[obj.childNodes[i].childNodes[k].childNodes[1].nodeName]=obj.childNodes[i].childNodes[k].childNodes[1].childNodes[0].data;
+                   t.push(t2);
+               }
+           }
+           setLabelObject(t);
+           canvas.initScreen();
+           //Debug.write(t);
+           ]]>
+       </method>
+       
+       <!-- Data Source Definition -->
+       <dataset name="getSessionVarsData" request="false" proxied="false"
+           querytype="POST" src="${ 
'http://'+canvas.rtmphost+'/webrooms/checksession.php' }" 
+           type="http" >
+           <handler name="ondata" args="value">
+           
+               //Debug.write(value);
+               
canvas.setAttribute('currentcourse',value.childNodes[0].childNodes[0].childNodes[0].childNodes[0].data);
+               canvas.setAttribute('currentcourseName',canvas.currentcourse);
+               
canvas.setAttribute('currentcourseNameLong',value.childNodes[0].childNodes[0].childNodes[1].childNodes[0].data);
+               
canvas.setAttribute('currentlanguage',value.childNodes[0].childNodes[0].childNodes[8].childNodes[0].data);
+       
+               
canvas.setAttribute('currentusename',value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data+'
 '+value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
+               
+               
canvas.setAttribute('user_id',value.childNodes[0].childNodes[1].childNodes[0].childNodes[0].data);
+               
canvas.setAttribute('firstName',value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
+               
canvas.setAttribute('lastName',value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data);
+               
canvas.setAttribute('mail',value.childNodes[0].childNodes[1].childNodes[3].childNodes[0].data);
+               canvas.setAttribute('lastLogin','');
+               
canvas.setAttribute('official_code',value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
+               canvas.setAttribute('picture_uri','');
+               
canvas.setAttribute('language',value.childNodes[0].childNodes[1].childNodes[7].childNodes[0].data);
+       
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[0].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[3].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[4].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[6].childNodes[0].data);
+               
//Debug.write(value.childNodes[0].childNodes[1].childNodes[7].childNodes[0].data);
+               
+               switch (canvas.currentlanguage){
+                   case 'english':
+                   break;
+                   case 'german':
+                   break;
+                   case 'french':
+                   break;          
+                   default:
+                   canvas.setAttribute('currentlanguage','english');
+                   break;
+               }
+               
+               var addIt='conf';
+               if (!canvas.isConference){
+                   addIt='meet'
+               }
+               
canvas.setAttribute('currentcourse',canvas.rtmphost+canvas.currentcourse+addIt);
+               
canvas.setAttribute('currentuser',value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
+               
+               canvas.setAttribute('loadingmessage','loading language data');
+               canvas.languageData.doRequest();
+           </handler>
+       </dataset>
+       
+       <method name="addBrowserTabHistory" args="value">
+           <![CDATA[
+           //Debug.write("addBrowserTabHistory: ",value);
+           _browserhistory.addItem(value);
+           this.browserTabHistory.push(value);
+           ]]>
+       </method>
+         
+       <!---
+       @doc The function does compare the new moderator list with the old and 
prepares the list 
+               the removeModeratorList is used in the performance optimized 
user list of the restricted 
+               room type to re-render the list items only if really something 
has changed in any 
+               of the user list items
+        -->
+       <method name="analyzeModerationList" args="newList">
+           <![CDATA[
+           
+              canvas.newModeratorList = new Array();
+              canvas.removeModeratorList = new Array();
+              
+              if (canvas.currentModeratorList != null) {
+                  for (var i=0;i<canvas.currentModeratorList.length;i++) {
+                       canvas.currentModeratorList[i].found = false;
+                  }
+              
+                  for (var i=0;i<canvas.currentModeratorList.length;i++) {
+                       
+                       for (var k=0;k<newList.length;k++) {
+                           if (newList[k].publicSID == 
canvas.currentModeratorList[i].publicSID) {
+                               canvas.currentModeratorList[i].found = true;
+                           }
+                       }
+                   }
+               }
+               
+               for (var k=0;k<newList.length;k++) {
+                   newList[k].found = false;
+               }
+              
+               for (var k=0;k<newList.length;k++) {
+                       if (canvas.currentModeratorList != null) {
+                       for (var i=0;i<canvas.currentModeratorList.length;i++) {
+                           if (newList[k].publicSID == 
canvas.currentModeratorList[i].publicSID) {
+                               newList[k].found = true;
+                           }
+                       }
+                       }
+               }
+               
+               for (var k=0;k<newList.length;k++) {
+                   if (!newList[k].found) {
+                       canvas.newModeratorList.push(newList[k]);
+                   }
+               }
+               
+               if (canvas.currentModeratorList != null) {
+                   for (var i=0;i<canvas.currentModeratorList.length;i++) {
+                       
+                       if (!canvas.currentModeratorList[i].found) {
+                           
canvas.removeModeratorList.push(canvas.currentModeratorList[i])
+                       }
+                   }
+               }
+               
+               if ($debug) Debug.write("newModeratorList :: 
",canvas.newModeratorList);
+               if ($debug) Debug.write("removeModeratorList :: 
",canvas.removeModeratorList);
+           ]]>
+       </method>
+       
+       <!---
+               Updates the "ismoderator" flag
+               the setAttribute method will broadcast an event to all event 
listeners that 
+               did subscribe using the "onismoderator" handler with reference 
to canvas !
+               For example in the userlist's of the roomtypes
+        -->
+       <method name="updateModerationFlag">
+           <![CDATA[
+               if ($debug) 
Debug.write("updateModerationFlag",canvas.currentModeratorList);
+               var isCurrentModerator = false;
+               for (var i=0;i<canvas.currentModeratorList.length;i++) {
+                   var item = canvas.currentModeratorList[i];
+                   if (canvas.publicSID == item.publicSID) {
+                       isCurrentModerator = true;
+                   }
+               }
+               
+               //Only send this event if the current user moderators status 
changes
+               if (isCurrentModerator != this.ismoderator) {
+                       canvas.lc.send(canvas.vid_lc_name, 
"updateModerationFlag", isCurrentModerator);
+               }
+               
+               // do always spread this event, we need to broadcast the 
"onismoderator" event
+               // so that we can update the status of other users in the user 
list
+               this.setAttribute('ismoderator',isCurrentModerator);
+           ]]>
+       </method> 
+       
+       <!---
+               Checks if a certain publicSID is a moderator
+        -->
+       <method name="getIsModeratorByPublicSID" args="publicSID">
+           <![CDATA[
+               for (var i=0;i<canvas.currentModeratorList.length;i++) {
+                   var item = canvas.currentModeratorList[i];
+                   if (publicSID == item.publicSID) {
+                       return true;
+                   }
+               }
+               return false;
+           ]]>
+       </method>
+        
+       <!---
+               Load the invitation window
+        -->
+       <method name="doAction" args="action">
+           if (action == "invitation") {
+               new lz.inviteMainWindow(canvas.main_content._content.inner);
+           }
+       </method>
+       
+       <!---
+               Sets the flags isAllowedToDraw, isAllowedToScreenShare, 
isAllowedToRemoteControl 
+               and broadcasts the three rights to SWF10 container
+        -->
+       <method name="setDrawAllowStatus" args="roomClientObj">
+           <![CDATA[
+               if ($debug) Debug.write("drawAllowStatus changes ###### ");
+               if (roomClientObj.publicSID==canvas.publicSID) {
+                   
canvas.setAttribute("isAllowedToDraw",roomClientObj.canDraw);
+                   
canvas.setAttribute("isAllowedToScreenShare",roomClientObj.canShare);
+                   
canvas.setAttribute("isAllowedToRemoteControl",roomClientObj.canRemote);
+                   canvas.lc.send(canvas.vid_lc_name, "setDrawAllowStatus", 
roomClientObj.canDraw, roomClientObj.canShare, roomClientObj.canRemote);
+               }
+           ]]>
+       </method>
+       
+       <!---
+               Sets the flag for the isAllowedToGiveExclusiveAudio status and 
broadcasts it to the 
+               SWF10 container
+        -->
+       <method name="setExclusiveAudioAllowStatus" args="roomClientObj">
+           <![CDATA[
+               if ($debug) Debug.write("giveExclusiveAudioStatus changes 
###### ");
+               if (roomClientObj.publicSID==canvas.publicSID) {
+                   
canvas.setAttribute("isAllowedToGiveExclusiveAudio",roomClientObj.canGiveAudio);
+                   canvas.lc.send(canvas.vid_lc_name, 
"setExclusiveAudioAllowStatus", roomClientObj.canGiveAudio);
+               }
+           ]]>
+       </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 = '/';
+           this.uploadmoduleimgfolder += foldername;
+           
this.setAttribute('uploadmoduleimgfolder',this.uploadmoduleimgfolder);
+           ]]>
+       </method>
+           
+           
+       <!-- country validation -->
+       <method name="validateCountry" args="str">
+           ////Debug.write("validateCountry: ",str);
+           str = str.toLowerCase();
+           <![CDATA[
+               if (str.length!=0){
+                   var a = new Array();
+                   for (var i=0;i<canvas.statesInitValues.length;i++){
+                       var st = canvas.statesInitValues[i].name.toLowerCase();
+                       if 
(st.startsWith(str))a.push(canvas.statesInitValues[i]);
+                       
//this.addItem(canvas.statesInitValues[i].name,canvas.statesInitValues[i].state_id);
+                   }
+                   return a;
+               }
+           ]]> 
+       </method>
+           
+       <method name="getCountryRecord" args="id">
+           return canvas.statesInitValues[id];
+       </method>
+           
+       <handler name="onmousewheeldelta" reference="lz.Keys" args="d">
+           var obj = getCurrentMouseWheelObject();
+           ////Debug.write("onmousewheeldelta 12: ",d,obj);
+           <![CDATA[
+               if (obj!=null) {
+                   obj.step(-d);
+               }
+           ]]>
+       </handler>    
+       
+       <method name="reverseWordingsBySplit" args="str">
+           <![CDATA[
+               var words_arr = str.split( " " ); // an array of chars
+               for ( var i = 0, str = ""; i < words_arr.length; i++ ) // 
reverse their order
+               {
+                   str += words_arr[ words_arr.length - i - 1 ];
+                   if (words_arr.length != 1) {
+                       str += " ";
+                   }
+               }
+               return str;
+               
+           ]]>
+       </method> 
+       
+       <method name="reverseAll" args="str">
+           <![CDATA[
+               var words_arr = str.split( "" ); // an array of chars
+               for ( var i = 0, str = ""; i < words_arr.length; i++ ) // 
reverse their order
+               {
+                   str += words_arr[ words_arr.length - i - 1 ];
+                   
+               }
+               return str;
+               
+           ]]>
+       </method> 
+           
+       <method name="reverseWords" args="str">
+           <![CDATA[
+               if ( str == "" || str == null ) return ""; // undefined
+               // first char indicates the main directive of str (rtl/ltr)
+               if ( isLTR( str.charCodeAt( 0 ) ) ) return str; // english or 
number
+               var words_arr = str.split( "" ); // an array of chars
+               for ( var i = 0, str = ""; i < words_arr.length; i++ ) // 
reverse their order
+                   str += words_arr[ words_arr.length - i - 1 ];
+               return str;
+           ]]>
+       </method>
+           
+       <method name="isLTR" args="c">
+           <![CDATA[
+               return ( c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && 
c <= 122 );
+           ]]>
+       </method>
+       
+       <method name="isHEB" args="c">
+           <![CDATA[
+               return ( c >= 224 && c <= 250 );
+           ]]>
+       </method>    
+       
+       <method name="setTextAlign" args="obj,type">
+           switch ( type ) {
+               case "left" :
+                   obj.setX( 0 );
+               break;
+               case "center" :
+                   obj.setX( this.parent.width / 2 - this.getTextWidth() / 2 );
+               break;
+               case "right" :
+                   obj.setX( this.parent.width - this.getTextWidth() );
+               break;
+           }
+       </method>  
+       
+       <method name="initSharedObject">
+           if (canvas.sharedObject == null) {
+               if($debug) Debug.write("canvas.initSharedObject sharedObject IS 
null");
+               canvas.sharedObject = new lz.sharedObject();
+               canvas.sharedObject.getLocal('userdata');
+           }
+       </method>
+       
+       <method name="getUserData">
+           canvas.initSharedObject();
+           var g = canvas.sharedObject.getData('userdata');
+           if (g==null) {
+               if($debug) Debug.write("sharedObject.getData IS null");
+               g = new Array();
+           }
+           return g;
+       </method>
+       
+       <method name="setUserData" args="g">
+           canvas.initSharedObject();
+           canvas.sharedObject.setData('userdata', g);
+           canvas.sharedObject.flush();
+       </method>
+       
+       <method name="setColorStyle" args="value">
+           var val = value;
+           if (val == "mediumseagreen"){
+               canvas.setAttribute('basebgcolorizer',"0x3CB371");
+               canvas.setAttribute('baseMousecolorizer',"0x66CC8E");
+               canvas.setAttribute('baseMouseOvercolorizer',"0x66CC8E");
+           } else if (val == "steelblue"){
+               canvas.setAttribute('basebgcolorizer',"0x4682B4");
+               canvas.setAttribute('baseMousecolorizer',"0x80AECC");
+               canvas.setAttribute('baseMouseOvercolorizer',"0x80AECC");
+           } else if (val == "redorange"){
+               canvas.setAttribute('basebgcolorizer',"0xFC8558");
+               canvas.setAttribute('baseMousecolorizer',"0xFDC4A6");
+               canvas.setAttribute('baseMouseOvercolorizer',"0xFDC4A6");
+           } else if (val == "lightsteelblue"){
+               canvas.setAttribute('basebgcolorizer',"0x3F5B9E");
+               canvas.setAttribute('baseMousecolorizer',"0xC4D5E6");
+               canvas.setAttribute('baseMouseOvercolorizer',"0xC4D5E6");
+           } else if (val == "goldenrod"){
+               canvas.setAttribute('basebgcolorizer',"0xDAA520");
+               canvas.setAttribute('baseMousecolorizer',"0xE8C064");
+               canvas.setAttribute('baseMouseOvercolorizer',"0xE8C064");
+           } else if (val == "silvergray"){
+               canvas.setAttribute('basebgcolorizer',"0xC4C8CC");
+               canvas.setAttribute('baseMousecolorizer',"0xC2C8CD");
+               canvas.setAttribute('baseMouseOvercolorizer',"0xC2C8CD");
+           } else if (val == "userdefined"){
+               canvas.setAttribute('basebgcolorizer', canvas.userbgcolorizer);
+               canvas.setAttribute('baseMousecolorizer', 
canvas.userMousecolorizer);
+               canvas.setAttribute('baseMouseOvercolorizer', 
canvas.userMouseOvercolorizer);
+           } else {
+               val = null;
+           }
+           
+           return val;
+       </method>
 
 </library>

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/library.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/library.lzx?rev=1296115&r1=1296114&r2=1296115&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/library.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/library.lzx
 Fri Mar  2 10:26:30 2012
@@ -20,7 +20,9 @@
 -->
 <library>
     
-    <resource name="participants_isactive" src="resources/button_ok.png" />
+    <resource name="right_isactive_rsc" src="resources/accept.png" />
+    
+    <resource name="right_notactive_rsc" src="resources/delete.png" />
     
     <resource name="participants_isMod_rsc" src="resources/kdmconfig.png" />
     <resource name="participants_allow_drawing_rsc" 
src="resources/color_line.png" />

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx?rev=1296115&r1=1296114&r2=1296115&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx
 Fri Mar  2 10:26:30 2012
@@ -96,13 +96,6 @@
         ]]>          
     </method>
     
-    <!--
-        if (canvas.moderatorStreamID == this.refObj.streamid) {
-            this.isMod = true;
-        } else {
-            this.isMod = false;
-        }
-     -->
     <handler name="onismoderator" reference="canvas" args="m">
         if ($debug) Debug.write("###### ismoderator ",m);
         <![CDATA[
@@ -460,7 +453,7 @@
     
     <view name="_miniIcons" x="113" y="22" height="18">
         
-        <miniIcons name="_isMod" x="0" width="16" 
resource="participants_isactive" 
+        <miniIcons name="_isMod" x="0" width="16" 
resource="right_isactive_rsc" 
                    height="16" showhandcursor="false">
             <handler name="onclick">
                 <![CDATA[
@@ -485,7 +478,7 @@
             <labelTooltip name="_text" text="" />
         </miniIcons>
         
-        <miniIcons name="_isModAddbutton" opacity="0.5" x="0" width="16" 
resource="participants_isactive" 
+        <miniIcons name="_isModAddbutton" opacity="0.5" x="0" width="16" 
resource="right_notactive_rsc" 
                    height="16" showhandcursor="true">
             <handler name="onclick">
                 <![CDATA[
@@ -504,7 +497,7 @@
             <labelTooltip name="_text" labelid="676" />
         </miniIcons>
             
-        <miniIcons name="_canDraw" x="20" width="16" 
resource="participants_isactive" 
+        <miniIcons name="_canDraw" x="20" width="16" 
resource="right_isactive_rsc" 
                    height="16" showhandcursor="false" >
             <handler name="onclick">
                 <![CDATA[
@@ -522,7 +515,7 @@
         </miniIcons>
         
         <miniIcons name="_canDrawModerator" x="20" width="16" opacity="0.5"
-                   resource="participants_isactive" height="16" 
showhandcursor="true">
+                   resource="right_notactive_rsc" height="16" 
showhandcursor="true">
             <handler name="onclick">
                 //Do it 
                 if ($debug) Debug.write("Do it");
@@ -531,7 +524,7 @@
             <labelTooltip labelid="611" />
         </miniIcons>
         
-        <miniIcons name="_allowShare" x="40" width="16" 
resource="participants_isactive" 
+        <miniIcons name="_allowShare" x="40" width="16" 
resource="right_isactive_rsc" 
                    height="16" showhandcursor="false" >
             <handler name="onclick">
                 <![CDATA[
@@ -549,7 +542,7 @@
         </miniIcons>
         
         <miniIcons name="_denyShare" x="40" width="16" opacity="0.5"
-                   resource="participants_isactive" height="16" 
showhandcursor="true">
+                   resource="right_notactive_rsc" height="16" 
showhandcursor="true">
             <handler name="onclick">
                 //Do it 
                 if ($debug) Debug.write("Do it");
@@ -559,7 +552,7 @@
         </miniIcons>
         
         
-        <miniIcons name="_allowRemote" x="60" width="16" 
resource="participants_isactive" 
+        <miniIcons name="_allowRemote" x="60" width="16" 
resource="right_isactive_rsc" 
                    height="16" showhandcursor="false" >
             <handler name="onclick">
                 <![CDATA[
@@ -577,7 +570,7 @@
         </miniIcons>
         
         <miniIcons name="_denyRemote" x="60" width="16" opacity="0.5"
-                   resource="participants_isactive" height="16" 
showhandcursor="true">
+                   resource="right_notactive_rsc" height="16" 
showhandcursor="true">
             <handler name="onclick">
                 //Do it 
                 if ($debug) Debug.write("Do it");
@@ -586,7 +579,7 @@
             <labelTooltip labelid="1078" />
         </miniIcons>
 
-        <miniIcons name="_allowExclusiveAudio" x="80" width="16" 
resource="participants_isactive"
+        <miniIcons name="_allowExclusiveAudio" x="80" width="16" 
resource="right_isactive_rsc"
                    height="16" showhandcursor="false" >
             <handler name="onclick">
                 <![CDATA[
@@ -603,7 +596,7 @@
         </miniIcons>
 
         <miniIcons name="_denyExclusiveAudio" x="80" width="16" opacity="0.5"
-                   resource="participants_isactive" height="16" 
showhandcursor="true">
+                   resource="right_notactive_rsc" height="16" 
showhandcursor="true">
             <handler name="onclick">
                 parent.parent.setCanGiveAudio.doCall();
             </handler>

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/accept.png
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/accept.png?rev=1296115&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/accept.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/delete.png
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/delete.png?rev=1296115&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/resources/delete.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/commonVideoViewContentSWF10.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/commonVideoViewContentSWF10.lzx?rev=1296115&r1=1296114&r2=1296115&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/commonVideoViewContentSWF10.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/swf10/commonVideoViewContentSWF10.lzx
 Fri Mar  2 10:26:30 2012
@@ -41,6 +41,9 @@
             // client.videoOnMove = this.videoOnMove; function not in use ?! 
swagner 04.02.2012
             client.updateMuteStatusVideoView = this.updateMuteStatusVideoView;
             client.ismoderatorChanged = this.ismoderatorChanged;
+            // update rights to SWF10 client
+            client.updateModerationFlag = this.updateModerationFlag;
+            client.setDrawAllowStatus = this.setDrawAllowStatus
 
             var lc:LocalConnection = new LocalConnection();
             lc.connect(canvas.vid_lc_name);
@@ -408,12 +411,13 @@
         ]]>
     </method>
 
+       <!---
+               Clear all views, probably this is caleld whenever a user leaves 
the room for example
+        -->
     <method name="clearAll">
         <![CDATA[
             if ($debug) Debug.write("clearAll", this.subviews);
-            //var baseContent = this.subviews[0].close();
             while(this.subviews.length > 0) {
-                //if ($debug) Debug.write(this.subviews[0]);
                 this.subviews[0]._chatvideoinner._videostream._stop();
                 this.subviews[0].destroy();
             }
@@ -423,7 +427,29 @@
         ]]>
     </method>
     
+    <!---
+       Update the ismoderator flag, there is no need to check here which user
+       this happened already before sending it to the SWF10 app
+     -->
+    <method name="updateModerationFlag" args="moderator">
+       <![CDATA[
+               if ($debug) Debug.write("updateModerationFlag :: ",moderator);
+               this.setAttribute('ismoderator',moderator);
+       ]]>
+    </method>
     
+    <!---
+       Update the canDraw,canShare,canRemote flag, there is no need to check 
here which user
+       this happened already before sending it to the SWF10 app
+     -->
+    <method name="setDrawAllowStatus" args="canDraw,canShare,canRemote">
+       <![CDATA[
+               if ($debug) Debug.write("setDrawAllowStatus :: 
",canDraw,canShare,canRemote);
+               canvas.setAttribute("isAllowedToDraw",canDraw);
+            canvas.setAttribute("isAllowedToScreenShare",canShare);
+            canvas.setAttribute("isAllowedToRemoteControl",canRemote);
+       ]]>
+    </method>
         
     <!--
     function not in use ?! swagner 04.02.2012

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/WhiteBoardService.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/WhiteBoardService.java?rev=1296115&r1=1296114&r2=1296115&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/WhiteBoardService.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/WhiteBoardService.java
 Fri Mar  2 10:26:30 2012
@@ -240,7 +240,7 @@ public class WhiteBoardService implement
                                                newMessage.put(0, 
"updateDrawStatus");
                                                newMessage.put(1, rcl);
                                                this.scopeApplicationAdapter
-                                                               
.sendMessageWithClient(newMessage);
+                                                               
.sendMessageWithClientWithSyncObject(newMessage, true);
 
                                        } else {
                                                return false;
@@ -282,7 +282,7 @@ public class WhiteBoardService implement
                                                newMessage.put(0, 
"updateDrawStatus");
                                                newMessage.put(1, rcl);
                                                this.scopeApplicationAdapter
-                                                               
.sendMessageWithClient(newMessage);
+                                                               
.sendMessageWithClientWithSyncObject(newMessage, true);
 
                                        } else {
                                                return false;
@@ -324,7 +324,7 @@ public class WhiteBoardService implement
                                                newMessage.put(0, 
"updateDrawStatus");
                                                newMessage.put(1, rcl);
                                                this.scopeApplicationAdapter
-                                                               
.sendMessageWithClient(newMessage);
+                                                               
.sendMessageWithClientWithSyncObject(newMessage, true);
 
                                        } else {
                                                return false;
@@ -365,7 +365,7 @@ public class WhiteBoardService implement
                                        newMessage.put(0, 
"updateGiveAudioStatus");
                                        newMessage.put(1, rcl);
                                        this.scopeApplicationAdapter
-                                               
.sendMessageWithClient(newMessage);
+                                               
.sendMessageWithClientWithSyncObject(newMessage, true);
                                        } else {
                                                return false;
                                        }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java?rev=1296115&r1=1296114&r2=1296115&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
 Fri Mar  2 10:26:30 2012
@@ -2288,6 +2288,17 @@ public class ScopeApplicationAdapter ext
 
        public synchronized int sendMessageWithClient(Object newMessage) {
                try {
+                       sendMessageWithClientWithSyncObject(newMessage, false);
+
+               } catch (Exception err) {
+                       log.error("[sendMessageWithClient] ", err);
+                       return -1;
+               }
+               return 1;
+       }
+       
+       public synchronized int sendMessageWithClientWithSyncObject(Object 
newMessage, boolean sync) {
+               try {
                        IConnection current = Red5.getConnectionLocal();
                        RoomClient currentClient = this.clientListManager
                                        
.getClientByStreamId(current.getClient().getId());
@@ -2297,7 +2308,7 @@ public class ScopeApplicationAdapter ext
                        hsm.put("message", newMessage);
                        
                        //Sync to all users of current scope
-                       
syncMessageToCurrentScope("sendVarsToMessageWithClient", hsm, false);
+                       
syncMessageToCurrentScope("sendVarsToMessageWithClient", hsm, sync);
 
                } catch (Exception err) {
                        log.error("[sendMessageWithClient] ", err);


Reply via email to