http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java index c1788f7..64409b7 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java @@ -1,81 +1,81 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License") + you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.openmeetings.db.util; - -import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4; - -import java.util.regex.Pattern; - -import org.apache.openmeetings.db.entity.user.User; - -public class FormatHelper { - /** - * taken from BidiUtils - * - * A regular expression for matching right-to-left language codes. See - * {@link #isRtlLanguage} for the design. - */ - private static final Pattern RtlLocalesRe = Pattern.compile("^(ar|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))" - + "(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)"); - - /** - * Check if a BCP 47 / III language code indicates an RTL language, i.e. - * either: - a language code explicitly specifying one of the right-to-left - * scripts, e.g. "az-Arab", or - * <p> - * - a language code specifying one of the languages normally written in a - * right-to-left script, e.g. "fa" (Farsi), except ones explicitly - * specifying Latin or Cyrillic script (which are the usual LTR - * alternatives). - * <p> - * The list of right-to-left scripts appears in the 100-199 range in - * http://www.unicode.org/iso15924/iso15924-num.html, of which Arabic and - * Hebrew are by far the most widely used. We also recognize Thaana, N'Ko, - * and Tifinagh, which also have significant modern usage. The rest (Syriac, - * Samaritan, Mandaic, etc.) seem to have extremely limited or no modern - * usage and are not recognized. The languages usually written in a - * right-to-left script are taken as those with Suppress-Script: - * Hebr|Arab|Thaa|Nkoo|Tfng in - * http://www.iana.org/assignments/language-subtag-registry, as well as - * Sindhi (sd) and Uyghur (ug). The presence of other subtags of the - * language code, e.g. regions like EG (Egypt), is ignored. - */ - public static boolean isRtlLanguage(String languageString) { - return languageString != null && RtlLocalesRe.matcher(languageString).find(); - } - - public static String formatUser(User u) { - return formatUser(u, false); - } - - // TODO check RIGHTS here (email might need to be hidden) - public static String formatUser(User u, boolean isHTMLEscape) { - String user = ""; - if (u != null) { - String email = u.getAddress() == null ? "" : u.getAddress().getEmail(); - if (u.getFirstname() == null && u.getLastname() == null) { - user = email; - } else { - user = String.format("\"%s %s\" <%s>", u.getFirstname(), u.getLastname(), email); - } - user = isHTMLEscape ? escapeHtml4(user) : user; - } - return user; - } -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License") + you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openmeetings.db.util; + +import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4; + +import java.util.regex.Pattern; + +import org.apache.openmeetings.db.entity.user.User; + +public class FormatHelper { + /** + * taken from BidiUtils + * + * A regular expression for matching right-to-left language codes. See + * {@link #isRtlLanguage} for the design. + */ + private static final Pattern RtlLocalesRe = Pattern.compile("^(ar|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))" + + "(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)"); + + /** + * Check if a BCP 47 / III language code indicates an RTL language, i.e. + * either: - a language code explicitly specifying one of the right-to-left + * scripts, e.g. "az-Arab", or + * <p> + * - a language code specifying one of the languages normally written in a + * right-to-left script, e.g. "fa" (Farsi), except ones explicitly + * specifying Latin or Cyrillic script (which are the usual LTR + * alternatives). + * <p> + * The list of right-to-left scripts appears in the 100-199 range in + * http://www.unicode.org/iso15924/iso15924-num.html, of which Arabic and + * Hebrew are by far the most widely used. We also recognize Thaana, N'Ko, + * and Tifinagh, which also have significant modern usage. The rest (Syriac, + * Samaritan, Mandaic, etc.) seem to have extremely limited or no modern + * usage and are not recognized. The languages usually written in a + * right-to-left script are taken as those with Suppress-Script: + * Hebr|Arab|Thaa|Nkoo|Tfng in + * http://www.iana.org/assignments/language-subtag-registry, as well as + * Sindhi (sd) and Uyghur (ug). The presence of other subtags of the + * language code, e.g. regions like EG (Egypt), is ignored. + */ + public static boolean isRtlLanguage(String languageString) { + return languageString != null && RtlLocalesRe.matcher(languageString).find(); + } + + public static String formatUser(User u) { + return formatUser(u, false); + } + + // TODO check RIGHTS here (email might need to be hidden) + public static String formatUser(User u, boolean isHTMLEscape) { + String user = ""; + if (u != null) { + String email = u.getAddress() == null ? "" : u.getAddress().getEmail(); + if (u.getFirstname() == null && u.getLastname() == null) { + user = email; + } else { + user = String.format("\"%s %s\" <%s>", u.getFirstname(), u.getLastname(), email); + } + user = isHTMLEscape ? escapeHtml4(user) : user; + } + return user; + } +}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-db/src/site/site.xml ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/site/site.xml b/openmeetings-db/src/site/site.xml index c26954e..0d9f35c 100644 --- a/openmeetings-db/src/site/site.xml +++ b/openmeetings-db/src/site/site.xml @@ -1,40 +1,40 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<project xmlns="http://maven.apache.org/DECORATION/1.7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.7.0 http://maven.apache.org/xsd/decoration-1.7.0.xsd" - name="Apache OpenMeetings Project"> - - <body> - <menu ref="parent"/> - <menu name="Project"> - <item name="About" href="/index.html" /> - <item name="Info" href="/project-info.html" /> - <item name="Summary" href="/project-summary.html" /> - <item name="License" href="/license.html" /> - <item name="Dependencies" href="/dependencies.html" /> - <item name="Dependency Convergence" href="/dependency-convergence.html" /> - <item name="RAT Report" href="/rat-report.html" /> - <item name="JavaDoc" href="/apidocs/index.html" target="_blank" /> - </menu> - </body> - <custom> - <reflowSkin> - <bottomNav maxSpan="12"> - <column>Parent Project</column> - <column>Project</column> - </bottomNav> - </reflowSkin> - </custom> -</project> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<project xmlns="http://maven.apache.org/DECORATION/1.7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.7.0 http://maven.apache.org/xsd/decoration-1.7.0.xsd" + name="Apache OpenMeetings Project"> + + <body> + <menu ref="parent"/> + <menu name="Project"> + <item name="About" href="/index.html" /> + <item name="Info" href="/project-info.html" /> + <item name="Summary" href="/project-summary.html" /> + <item name="License" href="/license.html" /> + <item name="Dependencies" href="/dependencies.html" /> + <item name="Dependency Convergence" href="/dependency-convergence.html" /> + <item name="RAT Report" href="/rat-report.html" /> + <item name="JavaDoc" href="/apidocs/index.html" target="_blank" /> + </menu> + </body> + <custom> + <reflowSkin> + <bottomNav maxSpan="12"> + <column>Parent Project</column> + <column>Project</column> + </bottomNav> + </reflowSkin> + </custom> +</project> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/components/miniIcons.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/components/miniIcons.lzx b/openmeetings-flash/src/main/swf/base/components/miniIcons.lzx index 747c0ea..6b06435 100644 --- a/openmeetings-flash/src/main/swf/base/components/miniIcons.lzx +++ b/openmeetings-flash/src/main/swf/base/components/miniIcons.lzx @@ -1,67 +1,67 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<library> - -<class name="miniIcons" extends="view" stretches="both"> - <attribute name="showhandcursor" value="true" type="boolean" /> - <handler name="onmouseover"> - if (this.showhandcursor) { - this.setAttribute("x",this.x-1); - this.setAttribute("y",this.y-1); - this.setAttribute("height",this.height+2); - this.setAttribute("width",this.width+2); - } - parent.parent.onmouseover.sendEvent(); - </handler> - <handler name="onmouseout"> - if (this.showhandcursor) { - this.setAttribute("x",this.x+1); - this.setAttribute("y",this.y+1); - this.setAttribute("height",this.height-2); - this.setAttribute("width",this.width-2); - } - parent.parent.onmouseout.sendEvent(); - </handler> -</class> - -<class name="miniIconsImage" extends="omImage" stretches="both"> - <attribute name="showhandcursor" value="true" type="boolean" /> - <handler name="onmouseover"> - if (this.showhandcursor) { - this.setAttribute("x",this.x-1); - this.setAttribute("y",this.y-1); - this.setAttribute("height",this.height+2); - this.setAttribute("width",this.width+2); - } - parent.parent.onmouseover.sendEvent(); - </handler> - <handler name="onmouseout"> - if (this.showhandcursor) { - this.setAttribute("x",this.x+1); - this.setAttribute("y",this.y+1); - this.setAttribute("height",this.height-2); - this.setAttribute("width",this.width-2); - } - parent.parent.onmouseout.sendEvent(); - </handler> -</class> - +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<library> + +<class name="miniIcons" extends="view" stretches="both"> + <attribute name="showhandcursor" value="true" type="boolean" /> + <handler name="onmouseover"> + if (this.showhandcursor) { + this.setAttribute("x",this.x-1); + this.setAttribute("y",this.y-1); + this.setAttribute("height",this.height+2); + this.setAttribute("width",this.width+2); + } + parent.parent.onmouseover.sendEvent(); + </handler> + <handler name="onmouseout"> + if (this.showhandcursor) { + this.setAttribute("x",this.x+1); + this.setAttribute("y",this.y+1); + this.setAttribute("height",this.height-2); + this.setAttribute("width",this.width-2); + } + parent.parent.onmouseout.sendEvent(); + </handler> +</class> + +<class name="miniIconsImage" extends="omImage" stretches="both"> + <attribute name="showhandcursor" value="true" type="boolean" /> + <handler name="onmouseover"> + if (this.showhandcursor) { + this.setAttribute("x",this.x-1); + this.setAttribute("y",this.y-1); + this.setAttribute("height",this.height+2); + this.setAttribute("width",this.width+2); + } + parent.parent.onmouseover.sendEvent(); + </handler> + <handler name="onmouseout"> + if (this.showhandcursor) { + this.setAttribute("x",this.x+1); + this.setAttribute("y",this.y+1); + this.setAttribute("height",this.height-2); + this.setAttribute("width",this.width-2); + } + parent.parent.onmouseout.sendEvent(); + </handler> +</class> + </library> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/components/miniIconsNew.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/components/miniIconsNew.lzx b/openmeetings-flash/src/main/swf/base/components/miniIconsNew.lzx index 2e4a1a2..30e2e17 100644 --- a/openmeetings-flash/src/main/swf/base/components/miniIconsNew.lzx +++ b/openmeetings-flash/src/main/swf/base/components/miniIconsNew.lzx @@ -1,47 +1,47 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<library> - - <class name="miniIconsNew" extends="view" > - <attribute name="innerResource" value="" type="string" /> - <handler name="onmouseover"> - if (this.showhandcursor) { - this.innnerView.setAttribute("x",this.innnerView.x-1); - this.innnerView.setAttribute("y",this.innnerView.y-1); - this.innnerView.setAttribute("height",this.innnerView.height+2); - this.innnerView.setAttribute("width",this.innnerView.width+2); - } - </handler> - <handler name="onmouseout"> - if (this.showhandcursor) { - this.innnerView.setAttribute("x",this.innnerView.x+1); - this.innnerView.setAttribute("y",this.innnerView.y+1); - this.innnerView.setAttribute("height",this.innnerView.height-2); - this.innnerView.setAttribute("width",this.innnerView.width-2); - } - </handler> - <view name="innnerView" resource="$once{ parent.innerResource }" stretches="both" - width="$once{ parent.width }" height="$once{ parent.height }"> - - </view> - </class> - +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<library> + + <class name="miniIconsNew" extends="view" > + <attribute name="innerResource" value="" type="string" /> + <handler name="onmouseover"> + if (this.showhandcursor) { + this.innnerView.setAttribute("x",this.innnerView.x-1); + this.innnerView.setAttribute("y",this.innnerView.y-1); + this.innnerView.setAttribute("height",this.innnerView.height+2); + this.innnerView.setAttribute("width",this.innnerView.width+2); + } + </handler> + <handler name="onmouseout"> + if (this.showhandcursor) { + this.innnerView.setAttribute("x",this.innnerView.x+1); + this.innnerView.setAttribute("y",this.innnerView.y+1); + this.innnerView.setAttribute("height",this.innnerView.height-2); + this.innnerView.setAttribute("width",this.innnerView.width-2); + } + </handler> + <view name="innnerView" resource="$once{ parent.innerResource }" stretches="both" + width="$once{ parent.width }" height="$once{ parent.height }"> + + </view> + </class> + </library> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/components/omImage.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/components/omImage.lzx b/openmeetings-flash/src/main/swf/base/components/omImage.lzx index 8694db1..f3ec381 100644 --- a/openmeetings-flash/src/main/swf/base/components/omImage.lzx +++ b/openmeetings-flash/src/main/swf/base/components/omImage.lzx @@ -1,52 +1,52 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<library> - -<class name="omImage" extends="image"> - <handler name="onsrc" method="loadOmSrc" /> - <handler name="oninit" method="loadOmImage" /> - - <method name="loadOmImage" args="ignore"> - <![CDATA[ - if (this.src != '' && this.src != null) { - canvas.loadImgBySrc(this, this.src, completeCallback); - } - ]]> - </method> - - <method name="completeCallback" args="event"> - //if($debug) Debug.write("[width, height] ", this.src, this.sprite.imgLoader.width, this.sprite.imgLoader.height, this.width, this.height); - this.sprite.imgLoader.width = this.width; - this.sprite.imgLoader.height = this.height; - </method> - - <method name="loadOmSrc" args="src"> - <![CDATA[ - //if ($debug) Debug.write("omImage::loadOmSrc src ", src); - if (src != null) { - this.setSource(src); - loadOmImage(null); - } - ]]> - </method> -</class> - -</library> +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<library> + +<class name="omImage" extends="image"> + <handler name="onsrc" method="loadOmSrc" /> + <handler name="oninit" method="loadOmImage" /> + + <method name="loadOmImage" args="ignore"> + <![CDATA[ + if (this.src != '' && this.src != null) { + canvas.loadImgBySrc(this, this.src, completeCallback); + } + ]]> + </method> + + <method name="completeCallback" args="event"> + //if($debug) Debug.write("[width, height] ", this.src, this.sprite.imgLoader.width, this.sprite.imgLoader.height, this.width, this.height); + this.sprite.imgLoader.width = this.width; + this.sprite.imgLoader.height = this.height; + </method> + + <method name="loadOmSrc" args="src"> + <![CDATA[ + //if ($debug) Debug.write("omImage::loadOmSrc src ", src); + if (src != null) { + this.setSource(src); + loadOmImage(null); + } + ]]> + </method> +</class> + +</library> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/components/omMiniIcon.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/components/omMiniIcon.lzx b/openmeetings-flash/src/main/swf/base/components/omMiniIcon.lzx index 7dfed47..44484cd 100644 --- a/openmeetings-flash/src/main/swf/base/components/omMiniIcon.lzx +++ b/openmeetings-flash/src/main/swf/base/components/omMiniIcon.lzx @@ -1,37 +1,37 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<library> - -<class name="omMiniIcon"> - <attribute name="imgUrl" value="" type="string" /> - - <handler name="oninit"> - canvas.loadImgBySrc(this, imgUrl, completeCallback); - </handler> - - <method name="completeCallback" args="event"> - //if ($debug) Debug.info("omMiniIcon::completeCallback: ", imgUrl, this.sprite.imgLoader.width, this.sprite.imgLoader.height, this.width, this.height); - this.sprite.imgLoader.width = this.width; - this.sprite.imgLoader.height = this.height; - </method> -</class> - -</library> +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<library> + +<class name="omMiniIcon"> + <attribute name="imgUrl" value="" type="string" /> + + <handler name="oninit"> + canvas.loadImgBySrc(this, imgUrl, completeCallback); + </handler> + + <method name="completeCallback" args="event"> + //if ($debug) Debug.info("omMiniIcon::completeCallback: ", imgUrl, this.sprite.imgLoader.width, this.sprite.imgLoader.height, this.width, this.height); + this.sprite.imgLoader.width = this.width; + this.sprite.imgLoader.height = this.height; + </method> +</class> + +</library> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/components/scrollbars/library.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/components/scrollbars/library.lzx b/openmeetings-flash/src/main/swf/base/components/scrollbars/library.lzx index 9ee00e1..a0af972 100644 --- a/openmeetings-flash/src/main/swf/base/components/scrollbars/library.lzx +++ b/openmeetings-flash/src/main/swf/base/components/scrollbars/library.lzx @@ -1,44 +1,44 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<library> - - <!-- APL Author sebawagner --> - <resource name="omscrolltrack_y_rsc" src="resources/y_scrolltrack.swf" /> - - <!-- APL Author sebawagner --> - <resource name="omscrollbar_ythumbmiddle_rsc" src="resources/scrollthumb_y_mid.swf" /> - <!-- APL Author sebawagner --> - <resource name="omscrollbar_ythumbtop_rsc" src="resources/scrollthumb_y_top.swf" /> - <!-- APL Author sebawagner --> - <resource name="omscrollbar_ythumbbottom_rsc" src="resources/scrollthumb_y_bottom.swf" /> - <!-- APL Author sebawagner --> - <resource name="omscrolltrack_x_rsc" src="resources/x_scrolltrack.swf" /> - <!-- APL Author sebawagner --> - <resource name="omscrollbar_xthumbmiddle_rsc" src="resources/scrollthumb_x_mid.swf" /> - <!-- APL Author sebawagner --> - <resource name="omscrollbar_xthumbleft_rsc" src="resources/scrollthumb_x_left.swf" /> - <!-- APL Author sebawagner --> - <resource name="omscrollbar_xthumbright_rsc" src="resources/scrollthumb_x_right.swf" /> - - <include href="om_vscrollbar.lzx"/> - <include href="om_hscrollbar.lzx"/> - -</library> +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<library> + + <!-- APL Author sebawagner --> + <resource name="omscrolltrack_y_rsc" src="resources/y_scrolltrack.swf" /> + + <!-- APL Author sebawagner --> + <resource name="omscrollbar_ythumbmiddle_rsc" src="resources/scrollthumb_y_mid.swf" /> + <!-- APL Author sebawagner --> + <resource name="omscrollbar_ythumbtop_rsc" src="resources/scrollthumb_y_top.swf" /> + <!-- APL Author sebawagner --> + <resource name="omscrollbar_ythumbbottom_rsc" src="resources/scrollthumb_y_bottom.swf" /> + <!-- APL Author sebawagner --> + <resource name="omscrolltrack_x_rsc" src="resources/x_scrolltrack.swf" /> + <!-- APL Author sebawagner --> + <resource name="omscrollbar_xthumbmiddle_rsc" src="resources/scrollthumb_x_mid.swf" /> + <!-- APL Author sebawagner --> + <resource name="omscrollbar_xthumbleft_rsc" src="resources/scrollthumb_x_left.swf" /> + <!-- APL Author sebawagner --> + <resource name="omscrollbar_xthumbright_rsc" src="resources/scrollthumb_x_right.swf" /> + + <include href="om_vscrollbar.lzx"/> + <include href="om_hscrollbar.lzx"/> + +</library> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/components/scrollbars/scrollbar_yresources.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/components/scrollbars/scrollbar_yresources.lzx b/openmeetings-flash/src/main/swf/base/components/scrollbars/scrollbar_yresources.lzx index bc08ffe..ed0b7f6 100644 --- a/openmeetings-flash/src/main/swf/base/components/scrollbars/scrollbar_yresources.lzx +++ b/openmeetings-flash/src/main/swf/base/components/scrollbars/scrollbar_yresources.lzx @@ -1,25 +1,25 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> -<library> - - - +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<library> + + + </library> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/remote/baseVideoStream.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/remote/baseVideoStream.lzx b/openmeetings-flash/src/main/swf/base/remote/baseVideoStream.lzx index 5c71fb5..7ca59ab 100644 --- a/openmeetings-flash/src/main/swf/base/remote/baseVideoStream.lzx +++ b/openmeetings-flash/src/main/swf/base/remote/baseVideoStream.lzx @@ -1,385 +1,385 @@ -<library> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<!--- - extends the Video-View with Streaming functions - --> - -<class name="baseVideoStream" extends="baseVideoView"> - - <switch> - <when property="$as3"> - <passthrough> - import flash.events.*; - import flash.net.*; - import flash.media.* - </passthrough> - </when> - </switch> - - <attribute name="yDebug" value="-20" type="number" /> - - <method name="getYDebug"> - this.yDebug += 20; - return this.yDebug; - </method> - - <!--- the NetStream Object - @keywords final --> - <attribute name="_ns" value="null" /> - - <!--- This value does indicate if this stream play or broadcasts - @keywords readonly --> - <attribute name="mode" value="play" type="string" /> - - <!--- This is the current buffer used, in Live Streaming this MUST be 0 - @keywords readonly --> - <attribute name="bufferTime" value="0" type="number" /> - - <!--- This is a reference to the current microphone, only set if broadcasting - @keywords readonly --> - <attribute name="micro" value="null" /> - - <!--- This is a reference to the current camara, only set if broadcasting - @keywords readonly --> - <attribute name="camera" value="null" /> - - <!--- Reference To the Sound Object - @keywords final --> - <attribute name="soundRef" value="null" /> - <!--- Reference To the Sound MovieClip - @keywords final --> - <attribute name="soundRefMC" value="null" /> - - <!--- Default mic gain --> - <attribute name="micGain" value="50" type="number"/> - - <attribute name="micMuted" value="false" /> - - <event name="onMetaDataEvent" /> - <event name="onPlayStatusEvent" /> - <event name="onCuePointEvent" /> - <event name="onAsyncError" /> - <event name="onNetStatus" /> - <event name="onIoError" /> - - <!-- save value for restart --> - <attribute name="streamName" type="string"/> - <attribute name="delay" /> - <!--- @keywords private --> - <method name="createStream"> - var tStream = this._findnc(); - if (!tStream.connected) { - if ($debug) Debug.warn("NetConnection is not connected"); - } - this._ns = new NetStream(tStream); - //see: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/NetStream.html - //according to the docs the construct to catch event has to be implemented like this. - var t = this; - var clientObject = new Object(); - clientObject.onMetaData = function(metadata:Object):void { - t.onMetaData(metadata); - }; - clientObject.onPlayStatus = function(metadata:Object):void { - t.onPlayStatus(metadata); - }; - clientObject.onCuePoint = function(metadata:Object):void { - t.onCuePoint(metadata); - }; - clientObject.ioError = function(error:Object):void { - t.ioError(error); - }; - clientObject.netStatus = function(status:Object):void { - t.netStatus(status); - }; - clientObject.asyncError = function(error:Object):void { - t.asyncError(error); - }; - this._ns.client = clientObject; - //this is a workaround, attaching the event to the client object does not work - this._ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus2); - </method> - - <method name="onNetStatus2" args="evt"> - if($debug) Debug.write("netStream_onNetStatus: " , evt.info.code, evt.target); - this.onNetStatus.sendEvent(evt.info); - </method> - - <method name="asyncError" args="error"> - if($debug) Debug.write("simpleNetStream asyncError",error); - this.onAsyncError.sendEvent(error); - </method> - - <method name="netStatus" args="status"> - if($debug) Debug.write("simpleNetStream netStatus",status); - this.onNetStatus.sendEvent(status); - </method> - - <method name="ioError" args="error"> - if($debug) Debug.write("simpleNetStream ioError",error); - this.onIoError.sendEvent(error); - </method> - - <method name="onCuePoint" args="info"><![CDATA[ - if($debug) Debug.write("simpleNetStream onCuePoint",info); - this.onCuePointEvent.sendEvent(info); - ]]></method> - - <method name="onPlayStatus" args="info"><![CDATA[ - if($debug) Debug.write("simpleNetStream onPlayStatus",info); - this.onPlayStatusEvent.sendEvent(info); - ]]></method> - - <method name="onMetaData" args="info"><![CDATA[ - if($debug) Debug.write("simpleNetStream onMetaData",info); - this.onMetaDataEvent.sendEvent(info); - ]]></method> - - <!--- Find the Flash NetConnection object. - @keywords private --> - <method name="_findnc"> - if (canvas.currentNC == null) { - if ($debug) Debug.warn("canvas.currentNC is NULL, maybe connection did fail?"); - } - return canvas.currentNC; - </method> - - <!--- - Plays a Video Stream, makes a new Instance of a NetStream, if previous NetStream - is still open it will first close that, used to subscribe to a live-stream - @param string streamName the streamname to play - @param number delay The time it should seek, for Live-Streams this value should be -1 - --> - <method name="playStream" args="_streamName, delay"> - <![CDATA[ - this.streamName = "" + _streamName; - this.delay = delay; - if (this._ns != null){ - this._stop(); - } - this.mode = "play"; - this.createStream(); - //invokes Method in baseVideoView which shows the stream - this.attachVideo(this._ns); - //FIXME: Commented out, cause this leads to Buffer-Full/Buffer-Empty Events - //after re-syncing the stream - //this.setBuffer(0.1); - if ($debug) Debug.write("Play Stream '" + streamName + "'"); - if (delay == 0) { - this._ns.play(streamName); - } else { - this._ns.play(streamName,delay); - } - ]]> - </method> - - <method name="justPlayStream" args="_streamName, delay"> - <![CDATA[ - this.streamName = "" + _streamName; - this.delay=delay; - if (this._ns!=null){ - if ($debug) Debug.write("STOP NS is NOT null ") - this._stop(); - } - this.mode = "play"; - this.createStream(); - //invokes Method in baseVideoView which shows the stream - this.attachVideo(this._ns); - //FIXME: Commented out, cause this leads to Buffer-Full/Buffer-Empty Events - //after re-syncing the stream - - this.setBuffer(6); - - if ($debug) Debug.write("Just Play Stream "+streamName); - - this._ns.play(streamName,delay); - ]]> - </method> - - <method name="prepare" args="mode, streamName, camReference, micReference"> - <![CDATA[ - if (this._ns != null){ - this._stop(); - } - this.mode = mode; - this.createStream(); - - if (camReference != null) { - this.setAttribute('camera', camReference); - this._ns.attachCamera(camReference); - //invokes Method in baseVideoView which shows the cam - this.attachCamera(camReference); - - var videoStreamSettings = null; - if ($debug) Debug.write("codecType=" + canvas.codecType); - if (canvas.codecType === "h264") { - videoStreamSettings = new H264VideoStreamSettings(); - videoStreamSettings.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_3_1); - } else { - videoStreamSettings = new VideoStreamSettings(); - } - videoStreamSettings.setQuality(camReference.bandwidth, camReference.quality); - videoStreamSettings.setKeyFrameInterval(camReference.keyFrameInterval); - if ($debug) Debug.write("::keyFrameInterval " + camReference.keyFrameInterval); - videoStreamSettings.setMode(camReference.width, camReference.height, camReference.fps); - this._ns.videoStreamSettings = videoStreamSettings; - } - if (micReference != null) { - this.setAttribute('micro', micReference); - this._ns.attachAudio(micReference); - //FIXME TODO muteMicro(this.micMuted); - } - this._ns.publish("" + streamName, (mode == "broadcast") ? "live" : mode); - ]]> - </method> - <!--- - BroadCasts a Stream - @param string streamName the streamname to broadcast - @param camera camReference a reference to the Camera-Object to stream - @param micropone micReference a reference to the Micropohne Object to stream - --> - <method name="broadcast" args="streamName,camReference,micReference"> - prepare("broadcast", streamName, camReference, micReference); - </method> - - <method name="record" args="streamName,camReference,micReference"> - prepare("record", streamName, camReference, micReference); - </method> - - <!--- - Stops playing or broadcasting a Stream and clears the Video-Object - --> - <method name="_stop"> - if ($debug) Debug.write("STOP: ",this.mode,this._ns); - //Stop NetStream - if (this._ns == null) return; - this.camera = null; - this.micro = null; - this._ns.attachCamera(null); - this._ns.attachAudio(null); - if (this.mode == "play") { - this.soundRefMC = null; - this.soundRef = null; - this._ns.pause(); - this._ns.close(); - //remove NetStream from Video-Object - this.clear(); - this._ns = null; - } else if (this.mode == "broadcast") { - this._ns.publish(false); - //remove NetStream from Video-Object - this.clear(); - this._ns.close(); - this._ns = null; - } else if (this.mode == "record") { - this._ns.publish(false); - //remove NetStream from Video-Object - this.clear(); - this._ns.close(); - this._ns = null; - } else { - this.clear(); - this._ns.close(); - this._ns = null; - if ($debug) Debug.warn("Not known Mode: ",this.mode,this); - } - </method> - - <method name="restart"> - this._stop(); - this.playStream(this.streamName ,this.delay); - </method> - - <method name="setBuffer" args="time"> - if ($debug) Debug.warn("setBuffer has no 1:1 equivalent in AS3 "); - return; - if(this._ns!=null){ - this.bufferTime = time; - this._ns.setBufferTime(time); - } else { - if ($debug) Debug.warn("setBuffer but no NetStream initialized",this); - } - </method> - - <!--- sets the Volume of the VideoStream - @param number volume Number between 0 and 100 - --> - <method name="setSoundVolume" args="volume"> - //if ($debug) Debug.write(":: setSoundVolume ", parent.parent.publicSID); - //this.soundRef.setVolume(volume); - if (this._ns!=null){ - this._ns.soundTransform = new SoundTransform(volume/100.0); - } - </method> - - <method name="muteMicro" args="mute"> - if ($debug) Debug.write(":: muteMicro ", mute, parent.parent.publicSID); - this.micMuted = mute; - if(this.micro != null) { - if(mute) { - if (this.micro.gain == 0) { - return; - } - if ($debug) Debug.write("Make Gain mute again from ",this.micro.gain); - this.setAttribute('micGain', this.micro.gain); - this.micro.gain = 0; - } else { - if ($debug) Debug.write("Make Gain loud again to ",this.micGain); - this.micro.gain = this.micGain; - } - } - </method> - - <!--- - pause or resumes the NetStream - @args pauseStatus true pause, false resume - --> - <method name="pause" args="pauseStatus"> - if ($debug) Debug.write("do Pause",pauseStatus); - if (this._ns==null){ - if ($debug) Debug.warn("No NetStream"); - return; - } - if (pauseStatus) { - this._ns.pause(); - } else { - this._ns.resume(); - } - </method> - - <!--- - Seek the stream to a flvTime - this might only work if there are keyframes in the FLV, normally it should - try to use the nearest keyframe available for the specified time. - --> - <method name="seekStream" args="flvTime"> - if ($debug) Debug.write("do seek",flvTime); - if (this._ns==null){ - if ($debug) Debug.warn("No NetStream"); - return; - } - this._ns.seek(flvTime); - </method> - -</class> - - -</library> +<library> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> + +<!--- + extends the Video-View with Streaming functions + --> + +<class name="baseVideoStream" extends="baseVideoView"> + + <switch> + <when property="$as3"> + <passthrough> + import flash.events.*; + import flash.net.*; + import flash.media.* + </passthrough> + </when> + </switch> + + <attribute name="yDebug" value="-20" type="number" /> + + <method name="getYDebug"> + this.yDebug += 20; + return this.yDebug; + </method> + + <!--- the NetStream Object + @keywords final --> + <attribute name="_ns" value="null" /> + + <!--- This value does indicate if this stream play or broadcasts + @keywords readonly --> + <attribute name="mode" value="play" type="string" /> + + <!--- This is the current buffer used, in Live Streaming this MUST be 0 + @keywords readonly --> + <attribute name="bufferTime" value="0" type="number" /> + + <!--- This is a reference to the current microphone, only set if broadcasting + @keywords readonly --> + <attribute name="micro" value="null" /> + + <!--- This is a reference to the current camara, only set if broadcasting + @keywords readonly --> + <attribute name="camera" value="null" /> + + <!--- Reference To the Sound Object + @keywords final --> + <attribute name="soundRef" value="null" /> + <!--- Reference To the Sound MovieClip + @keywords final --> + <attribute name="soundRefMC" value="null" /> + + <!--- Default mic gain --> + <attribute name="micGain" value="50" type="number"/> + + <attribute name="micMuted" value="false" /> + + <event name="onMetaDataEvent" /> + <event name="onPlayStatusEvent" /> + <event name="onCuePointEvent" /> + <event name="onAsyncError" /> + <event name="onNetStatus" /> + <event name="onIoError" /> + + <!-- save value for restart --> + <attribute name="streamName" type="string"/> + <attribute name="delay" /> + <!--- @keywords private --> + <method name="createStream"> + var tStream = this._findnc(); + if (!tStream.connected) { + if ($debug) Debug.warn("NetConnection is not connected"); + } + this._ns = new NetStream(tStream); + //see: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/NetStream.html + //according to the docs the construct to catch event has to be implemented like this. + var t = this; + var clientObject = new Object(); + clientObject.onMetaData = function(metadata:Object):void { + t.onMetaData(metadata); + }; + clientObject.onPlayStatus = function(metadata:Object):void { + t.onPlayStatus(metadata); + }; + clientObject.onCuePoint = function(metadata:Object):void { + t.onCuePoint(metadata); + }; + clientObject.ioError = function(error:Object):void { + t.ioError(error); + }; + clientObject.netStatus = function(status:Object):void { + t.netStatus(status); + }; + clientObject.asyncError = function(error:Object):void { + t.asyncError(error); + }; + this._ns.client = clientObject; + //this is a workaround, attaching the event to the client object does not work + this._ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus2); + </method> + + <method name="onNetStatus2" args="evt"> + if($debug) Debug.write("netStream_onNetStatus: " , evt.info.code, evt.target); + this.onNetStatus.sendEvent(evt.info); + </method> + + <method name="asyncError" args="error"> + if($debug) Debug.write("simpleNetStream asyncError",error); + this.onAsyncError.sendEvent(error); + </method> + + <method name="netStatus" args="status"> + if($debug) Debug.write("simpleNetStream netStatus",status); + this.onNetStatus.sendEvent(status); + </method> + + <method name="ioError" args="error"> + if($debug) Debug.write("simpleNetStream ioError",error); + this.onIoError.sendEvent(error); + </method> + + <method name="onCuePoint" args="info"><![CDATA[ + if($debug) Debug.write("simpleNetStream onCuePoint",info); + this.onCuePointEvent.sendEvent(info); + ]]></method> + + <method name="onPlayStatus" args="info"><![CDATA[ + if($debug) Debug.write("simpleNetStream onPlayStatus",info); + this.onPlayStatusEvent.sendEvent(info); + ]]></method> + + <method name="onMetaData" args="info"><![CDATA[ + if($debug) Debug.write("simpleNetStream onMetaData",info); + this.onMetaDataEvent.sendEvent(info); + ]]></method> + + <!--- Find the Flash NetConnection object. + @keywords private --> + <method name="_findnc"> + if (canvas.currentNC == null) { + if ($debug) Debug.warn("canvas.currentNC is NULL, maybe connection did fail?"); + } + return canvas.currentNC; + </method> + + <!--- + Plays a Video Stream, makes a new Instance of a NetStream, if previous NetStream + is still open it will first close that, used to subscribe to a live-stream + @param string streamName the streamname to play + @param number delay The time it should seek, for Live-Streams this value should be -1 + --> + <method name="playStream" args="_streamName, delay"> + <![CDATA[ + this.streamName = "" + _streamName; + this.delay = delay; + if (this._ns != null){ + this._stop(); + } + this.mode = "play"; + this.createStream(); + //invokes Method in baseVideoView which shows the stream + this.attachVideo(this._ns); + //FIXME: Commented out, cause this leads to Buffer-Full/Buffer-Empty Events + //after re-syncing the stream + //this.setBuffer(0.1); + if ($debug) Debug.write("Play Stream '" + streamName + "'"); + if (delay == 0) { + this._ns.play(streamName); + } else { + this._ns.play(streamName,delay); + } + ]]> + </method> + + <method name="justPlayStream" args="_streamName, delay"> + <![CDATA[ + this.streamName = "" + _streamName; + this.delay=delay; + if (this._ns!=null){ + if ($debug) Debug.write("STOP NS is NOT null ") + this._stop(); + } + this.mode = "play"; + this.createStream(); + //invokes Method in baseVideoView which shows the stream + this.attachVideo(this._ns); + //FIXME: Commented out, cause this leads to Buffer-Full/Buffer-Empty Events + //after re-syncing the stream + + this.setBuffer(6); + + if ($debug) Debug.write("Just Play Stream "+streamName); + + this._ns.play(streamName,delay); + ]]> + </method> + + <method name="prepare" args="mode, streamName, camReference, micReference"> + <![CDATA[ + if (this._ns != null){ + this._stop(); + } + this.mode = mode; + this.createStream(); + + if (camReference != null) { + this.setAttribute('camera', camReference); + this._ns.attachCamera(camReference); + //invokes Method in baseVideoView which shows the cam + this.attachCamera(camReference); + + var videoStreamSettings = null; + if ($debug) Debug.write("codecType=" + canvas.codecType); + if (canvas.codecType === "h264") { + videoStreamSettings = new H264VideoStreamSettings(); + videoStreamSettings.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_3_1); + } else { + videoStreamSettings = new VideoStreamSettings(); + } + videoStreamSettings.setQuality(camReference.bandwidth, camReference.quality); + videoStreamSettings.setKeyFrameInterval(camReference.keyFrameInterval); + if ($debug) Debug.write("::keyFrameInterval " + camReference.keyFrameInterval); + videoStreamSettings.setMode(camReference.width, camReference.height, camReference.fps); + this._ns.videoStreamSettings = videoStreamSettings; + } + if (micReference != null) { + this.setAttribute('micro', micReference); + this._ns.attachAudio(micReference); + //FIXME TODO muteMicro(this.micMuted); + } + this._ns.publish("" + streamName, (mode == "broadcast") ? "live" : mode); + ]]> + </method> + <!--- + BroadCasts a Stream + @param string streamName the streamname to broadcast + @param camera camReference a reference to the Camera-Object to stream + @param micropone micReference a reference to the Micropohne Object to stream + --> + <method name="broadcast" args="streamName,camReference,micReference"> + prepare("broadcast", streamName, camReference, micReference); + </method> + + <method name="record" args="streamName,camReference,micReference"> + prepare("record", streamName, camReference, micReference); + </method> + + <!--- + Stops playing or broadcasting a Stream and clears the Video-Object + --> + <method name="_stop"> + if ($debug) Debug.write("STOP: ",this.mode,this._ns); + //Stop NetStream + if (this._ns == null) return; + this.camera = null; + this.micro = null; + this._ns.attachCamera(null); + this._ns.attachAudio(null); + if (this.mode == "play") { + this.soundRefMC = null; + this.soundRef = null; + this._ns.pause(); + this._ns.close(); + //remove NetStream from Video-Object + this.clear(); + this._ns = null; + } else if (this.mode == "broadcast") { + this._ns.publish(false); + //remove NetStream from Video-Object + this.clear(); + this._ns.close(); + this._ns = null; + } else if (this.mode == "record") { + this._ns.publish(false); + //remove NetStream from Video-Object + this.clear(); + this._ns.close(); + this._ns = null; + } else { + this.clear(); + this._ns.close(); + this._ns = null; + if ($debug) Debug.warn("Not known Mode: ",this.mode,this); + } + </method> + + <method name="restart"> + this._stop(); + this.playStream(this.streamName ,this.delay); + </method> + + <method name="setBuffer" args="time"> + if ($debug) Debug.warn("setBuffer has no 1:1 equivalent in AS3 "); + return; + if(this._ns!=null){ + this.bufferTime = time; + this._ns.setBufferTime(time); + } else { + if ($debug) Debug.warn("setBuffer but no NetStream initialized",this); + } + </method> + + <!--- sets the Volume of the VideoStream + @param number volume Number between 0 and 100 + --> + <method name="setSoundVolume" args="volume"> + //if ($debug) Debug.write(":: setSoundVolume ", parent.parent.publicSID); + //this.soundRef.setVolume(volume); + if (this._ns!=null){ + this._ns.soundTransform = new SoundTransform(volume/100.0); + } + </method> + + <method name="muteMicro" args="mute"> + if ($debug) Debug.write(":: muteMicro ", mute, parent.parent.publicSID); + this.micMuted = mute; + if(this.micro != null) { + if(mute) { + if (this.micro.gain == 0) { + return; + } + if ($debug) Debug.write("Make Gain mute again from ",this.micro.gain); + this.setAttribute('micGain', this.micro.gain); + this.micro.gain = 0; + } else { + if ($debug) Debug.write("Make Gain loud again to ",this.micGain); + this.micro.gain = this.micGain; + } + } + </method> + + <!--- + pause or resumes the NetStream + @args pauseStatus true pause, false resume + --> + <method name="pause" args="pauseStatus"> + if ($debug) Debug.write("do Pause",pauseStatus); + if (this._ns==null){ + if ($debug) Debug.warn("No NetStream"); + return; + } + if (pauseStatus) { + this._ns.pause(); + } else { + this._ns.resume(); + } + </method> + + <!--- + Seek the stream to a flvTime + this might only work if there are keyframes in the FLV, normally it should + try to use the nearest keyframe available for the specified time. + --> + <method name="seekStream" args="flvTime"> + if ($debug) Debug.write("do seek",flvTime); + if (this._ns==null){ + if ($debug) Debug.warn("No NetStream"); + return; + } + this._ns.seek(flvTime); + </method> + +</class> + + +</library> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/remote/baseVideoStreamDevice.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/remote/baseVideoStreamDevice.lzx b/openmeetings-flash/src/main/swf/base/remote/baseVideoStreamDevice.lzx index da1717b..57073ff 100644 --- a/openmeetings-flash/src/main/swf/base/remote/baseVideoStreamDevice.lzx +++ b/openmeetings-flash/src/main/swf/base/remote/baseVideoStreamDevice.lzx @@ -1,172 +1,172 @@ -<library> - <!-- Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with this - work for additional information regarding copyright ownership. The ASF licenses - this file to you under the Apache License, Version 2.0 (the "License"); you - may not use this file except in compliance with the License. You may obtain - a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless - required by applicable law or agreed to in writing, software distributed - under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES - OR CONDITIONS OF ANY KIND, either express or implied. See the License for - the specific language governing permissions and limitations under the License. --> - - <!--- extends the baseVideoStream with functions to catch Device Events - this Class uses Events from the Base Class baseVideoStream onmicro and oncamera, - which are thrown, once a device was set --> - - <class name="baseVideoStreamDevice" extends="baseVideoStream"> - <switch> - <when property="$as3"> - <passthrough> - import flash.events.StatusEvent; - import flash.events.ActivityEvent; - import flash.external.ExternalInterface; - </passthrough> - </when> - </switch> - - <!--- Shows if there is Activity on the Microphone --> - <attribute name="micactive" value="false" type="boolean" /> - - <!--- Level delegate, used to track level changes. - @keywords private --> - <attribute name="_leveldel" - value="$once{new LzDelegate(this, '_updateLevel')}" /> - - <!--- Audio level, 0-100, the amount of sound detected by this microphone. - Reset to 0 when there is no audio (no activity or not allowed). - @keywords readonly --> - <attribute name="level" type="number" value="0" /> - - <!--- Shows if there is Activity on the Camera --> - <attribute name="camactive" value="false" type="boolean" /> - - <!--- Message to send to Clients --> - <attribute name="objMessage" value="null" /> - <!--- indicates if the message should be send, you can change the notification - level by changing the loudnessAcitviation in the public/config.xml --> - <attribute name="isgreater" value="false" type="boolean" /> - - <attribute name="doSendNotification" value="true" type="boolean" /> - - <!--- If true the component will send an event via LocalConnection when - sound is louder or less 5% --> - <attribute name="sendNotificationViaLocalConnection" value="true" - type="boolean" /> - - <event name="sendCameraStatus" /> - - <event name="sendMicroStatus" /> - - <handler name="oncamera" args="c"> - //if ($debug) Debug.write("Cam: ",c); - c.addEventListener(ActivityEvent.ACTIVITY, onActivity); - c.addEventListener(StatusEvent.STATUS, onStatus); - </handler> - - <method name="onStatus" args="stats"> - if ($debug) Debug.write("CamStatus: ",stats); - this.sendCameraStatus.sendEvent(stats.code); - </method> - - <method name="onActivity" args="event"> - this.setAttribute("camactive", event.activating); - </method> - - <handler name="onmicro" args="m"> - //if ($debug) Debug.write("onmicro: ",m); - var t = this; - //send mic active to true to start the onActivity callback Idle job - this.setAttribute("micactive", true); - m.addEventListener(ActivityEvent.ACTIVITY, onMicActivity); - m.addEventListener(StatusEvent.STATUS, onMicStatus); - </handler> - - <method name="onMicStatus" args="stats"> - if ($debug) Debug.write("onMicStatus 1: ",stats); - this.sendMicroStatus.sendEvent(stats.code); - </method> - - <method name="onMicActivity" args="event"> - if ($debug) Debug.write("onMicActivity: ",event); - </method> - - <!--- Handler for the Flash Microphone onActivity callback. - @keywords private --> - <handler name="onmicactive"> - <![CDATA[ - if (this.onlevel) { - if (this.micactive) { - this._leveldel.register(lz.Idle, "onidle"); - } else { - this._leveldel.unregisterAll(); - this.setAttribute("level", 0); - } - } - ]]> - </handler> - - <!--- Handler for updating the microphone activity level attribute. - @keywords private --> - <method name="_updateLevel" args="arg"> - <![CDATA[ - if (this.micro == null) { - return; - } - var level = this.micro.activityLevel; - if (level < 0) { - level = 0; - } - - if (level != this.level) { - this.setAttribute("level", level); - } - ]]> - </method> - - <!-- these methods send a Notification to all Connected users of a Room - about the onActivity-Change --> - <handler name="onlevel" args="level"> - <![CDATA[ - //if ($debug) Debug.write("onlevel ",this.level,level); - - if (!this.doSendNotification) { - return; - } - - //greater 5 means the green dot starts to blink if the loudness is greater then 5% - //it makes no sense to set this to zero as there will be 1000 of events send - //per minute to change the status just of this icon, swagner 12.02.2012 - var tVal = (level > 8); - - if (this.isgreater != tVal) { - //if ($debug) Debug.write("Level sendNotification ",this.isgreater,tVal,level); - this.isgreater = tVal; - this.sendNotification(); - } - ]]> - </handler> - - <method name="sendNotification"> - //if ($debug) Debug.write("Level sendNotification ",this.isgreater); - if (!this.sendNotificationViaLocalConnection) { - return; - } - if (parent.parent._loudness != null) { - parent.parent._loudness.setSpeaking(this.isgreater); - } - this.objMessage = new Array (); - this.objMessage[0] = 'audioActivity'; - this.objMessage[1] = this.isgreater; - this.objMessage[2] = parent.parent.publicSID; - ExternalInterface.call("audioActivity", parent.parent.publicSID, this.isgreater); - //if ($debug) Debug.write("Level sendNotification ",this.objMessage); - 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> - </class> -</library> +<library> + <!-- Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with this + work for additional information regarding copyright ownership. The ASF licenses + this file to you under the Apache License, Version 2.0 (the "License"); you + may not use this file except in compliance with the License. You may obtain + a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless + required by applicable law or agreed to in writing, software distributed + under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES + OR CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the License. --> + + <!--- extends the baseVideoStream with functions to catch Device Events + this Class uses Events from the Base Class baseVideoStream onmicro and oncamera, + which are thrown, once a device was set --> + + <class name="baseVideoStreamDevice" extends="baseVideoStream"> + <switch> + <when property="$as3"> + <passthrough> + import flash.events.StatusEvent; + import flash.events.ActivityEvent; + import flash.external.ExternalInterface; + </passthrough> + </when> + </switch> + + <!--- Shows if there is Activity on the Microphone --> + <attribute name="micactive" value="false" type="boolean" /> + + <!--- Level delegate, used to track level changes. + @keywords private --> + <attribute name="_leveldel" + value="$once{new LzDelegate(this, '_updateLevel')}" /> + + <!--- Audio level, 0-100, the amount of sound detected by this microphone. + Reset to 0 when there is no audio (no activity or not allowed). + @keywords readonly --> + <attribute name="level" type="number" value="0" /> + + <!--- Shows if there is Activity on the Camera --> + <attribute name="camactive" value="false" type="boolean" /> + + <!--- Message to send to Clients --> + <attribute name="objMessage" value="null" /> + <!--- indicates if the message should be send, you can change the notification + level by changing the loudnessAcitviation in the public/config.xml --> + <attribute name="isgreater" value="false" type="boolean" /> + + <attribute name="doSendNotification" value="true" type="boolean" /> + + <!--- If true the component will send an event via LocalConnection when + sound is louder or less 5% --> + <attribute name="sendNotificationViaLocalConnection" value="true" + type="boolean" /> + + <event name="sendCameraStatus" /> + + <event name="sendMicroStatus" /> + + <handler name="oncamera" args="c"> + //if ($debug) Debug.write("Cam: ",c); + c.addEventListener(ActivityEvent.ACTIVITY, onActivity); + c.addEventListener(StatusEvent.STATUS, onStatus); + </handler> + + <method name="onStatus" args="stats"> + if ($debug) Debug.write("CamStatus: ",stats); + this.sendCameraStatus.sendEvent(stats.code); + </method> + + <method name="onActivity" args="event"> + this.setAttribute("camactive", event.activating); + </method> + + <handler name="onmicro" args="m"> + //if ($debug) Debug.write("onmicro: ",m); + var t = this; + //send mic active to true to start the onActivity callback Idle job + this.setAttribute("micactive", true); + m.addEventListener(ActivityEvent.ACTIVITY, onMicActivity); + m.addEventListener(StatusEvent.STATUS, onMicStatus); + </handler> + + <method name="onMicStatus" args="stats"> + if ($debug) Debug.write("onMicStatus 1: ",stats); + this.sendMicroStatus.sendEvent(stats.code); + </method> + + <method name="onMicActivity" args="event"> + if ($debug) Debug.write("onMicActivity: ",event); + </method> + + <!--- Handler for the Flash Microphone onActivity callback. + @keywords private --> + <handler name="onmicactive"> + <![CDATA[ + if (this.onlevel) { + if (this.micactive) { + this._leveldel.register(lz.Idle, "onidle"); + } else { + this._leveldel.unregisterAll(); + this.setAttribute("level", 0); + } + } + ]]> + </handler> + + <!--- Handler for updating the microphone activity level attribute. + @keywords private --> + <method name="_updateLevel" args="arg"> + <![CDATA[ + if (this.micro == null) { + return; + } + var level = this.micro.activityLevel; + if (level < 0) { + level = 0; + } + + if (level != this.level) { + this.setAttribute("level", level); + } + ]]> + </method> + + <!-- these methods send a Notification to all Connected users of a Room + about the onActivity-Change --> + <handler name="onlevel" args="level"> + <![CDATA[ + //if ($debug) Debug.write("onlevel ",this.level,level); + + if (!this.doSendNotification) { + return; + } + + //greater 5 means the green dot starts to blink if the loudness is greater then 5% + //it makes no sense to set this to zero as there will be 1000 of events send + //per minute to change the status just of this icon, swagner 12.02.2012 + var tVal = (level > 8); + + if (this.isgreater != tVal) { + //if ($debug) Debug.write("Level sendNotification ",this.isgreater,tVal,level); + this.isgreater = tVal; + this.sendNotification(); + } + ]]> + </handler> + + <method name="sendNotification"> + //if ($debug) Debug.write("Level sendNotification ",this.isgreater); + if (!this.sendNotificationViaLocalConnection) { + return; + } + if (parent.parent._loudness != null) { + parent.parent._loudness.setSpeaking(this.isgreater); + } + this.objMessage = new Array (); + this.objMessage[0] = 'audioActivity'; + this.objMessage[1] = this.isgreater; + this.objMessage[2] = parent.parent.publicSID; + ExternalInterface.call("audioActivity", parent.parent.publicSID, this.isgreater); + //if ($debug) Debug.write("Level sendNotification ",this.objMessage); + 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> + </class> +</library> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1cb3518f/openmeetings-flash/src/main/swf/base/remote/baseVideoView.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/remote/baseVideoView.lzx b/openmeetings-flash/src/main/swf/base/remote/baseVideoView.lzx index 4d92d37..aa42c1a 100644 --- a/openmeetings-flash/src/main/swf/base/remote/baseVideoView.lzx +++ b/openmeetings-flash/src/main/swf/base/remote/baseVideoView.lzx @@ -1,104 +1,104 @@ -<library> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - - -<!--- - This class provides the basic functions for the video-output - - @START_CODE - <baseVideoView x="20" y="20" width="320" height="240" bgcolor="black" /> - @END_CODE - --> - -<class name="baseVideoView" width="${parent.width}" height="${parent.height}"> - <passthrough when="$as3"> - import flash.media.*; - import flash.net.NetConnection; - import flash.net.NetStream; - </passthrough> - - <attribute name="_sound" value="null"/> - <attribute name="__LZvideo" value="null"/> - - <method name="init"><![CDATA[ - super.init(); - var mc = new Video(this.width, this.height); - this.sprite.addChild(mc); - this.__LZvideo = mc; - this.applySizeToVid(); - ]]></method> - - <method name="applySizeToVid"> - var vid = this._getflashvideo(); - if(vid != null) { - vid.width = this.width; - vid.height = this.height; - } else { - if ($debug) Debug.warn("applySizeToVid IS NULL ",this.width,this.height); - } - </method> - - <handler name="onwidth" args="w"> - this.applySizeToVid(); - </handler> - - <handler name="onheight" args="h"> - //if ($debug) Debug.info("onheight ",this.width,this.height); - this.applySizeToVid(); - </handler> - - <method name="_getflashvideo"> - <![CDATA[ - if (__LZvideo == null) { - init(); - } - //if ($debug) Debug.write("_getflashvideo()"); - return this.__LZvideo; - ]]> - </method> - - <method name="attachCamera" args="camera"> - var vid = this._getflashvideo(); - vid.attachCamera(camera); - //if ($debug) Debug.write("Attaching video :: ", this, vid, camera); - </method> - - <!--- shows the Video (NetStream) in the View --> - <method name="attachVideo" args="video"> - var vid = this._getflashvideo(); - vid.attachNetStream(video); - </method> - - <method name="clear"> - if ($debug) Debug.write("Select unattach :3"); - if (this.__LZvideo != null) { - this.__LZvideo.attachCamera(null); - this.__LZvideo.attachNetStream(null); - this.__LZvideo.clear(); - this.sprite.removeChild(this.__LZvideo); - this.__LZvideo = null; - } - if ($debug) Debug.write("Select unattach : 4"); - </method> -</class> - - -</library> +<library> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> + + +<!--- + This class provides the basic functions for the video-output + + @START_CODE + <baseVideoView x="20" y="20" width="320" height="240" bgcolor="black" /> + @END_CODE + --> + +<class name="baseVideoView" width="${parent.width}" height="${parent.height}"> + <passthrough when="$as3"> + import flash.media.*; + import flash.net.NetConnection; + import flash.net.NetStream; + </passthrough> + + <attribute name="_sound" value="null"/> + <attribute name="__LZvideo" value="null"/> + + <method name="init"><![CDATA[ + super.init(); + var mc = new Video(this.width, this.height); + this.sprite.addChild(mc); + this.__LZvideo = mc; + this.applySizeToVid(); + ]]></method> + + <method name="applySizeToVid"> + var vid = this._getflashvideo(); + if(vid != null) { + vid.width = this.width; + vid.height = this.height; + } else { + if ($debug) Debug.warn("applySizeToVid IS NULL ",this.width,this.height); + } + </method> + + <handler name="onwidth" args="w"> + this.applySizeToVid(); + </handler> + + <handler name="onheight" args="h"> + //if ($debug) Debug.info("onheight ",this.width,this.height); + this.applySizeToVid(); + </handler> + + <method name="_getflashvideo"> + <![CDATA[ + if (__LZvideo == null) { + init(); + } + //if ($debug) Debug.write("_getflashvideo()"); + return this.__LZvideo; + ]]> + </method> + + <method name="attachCamera" args="camera"> + var vid = this._getflashvideo(); + vid.attachCamera(camera); + //if ($debug) Debug.write("Attaching video :: ", this, vid, camera); + </method> + + <!--- shows the Video (NetStream) in the View --> + <method name="attachVideo" args="video"> + var vid = this._getflashvideo(); + vid.attachNetStream(video); + </method> + + <method name="clear"> + if ($debug) Debug.write("Select unattach :3"); + if (this.__LZvideo != null) { + this.__LZvideo.attachCamera(null); + this.__LZvideo.attachNetStream(null); + this.__LZvideo.clear(); + this.sprite.removeChild(this.__LZvideo); + this.__LZvideo = null; + } + if ($debug) Debug.write("Select unattach : 4"); + </method> +</class> + + +</library>
