Radical Chat Skinning Language (config.xml)
Configuration XML file describes design and functionality of the Radical Flash Chat. There are two main sections <Server>, <Skin>.
<Server> specifies the information necessary to establish connection to the stream server.
<Skin> specifies application look and feel.
<Skin> is divided into three layers.
BG - background layer which can contain images, buttons, html labels, ...
ML - main layer (or middle layer) which can contain only three very specific objects.
FG - foreground layer. Very similar to the BG layer, but in front of ML.
Source code of the config.xml
<?xml version="1.0" encoding="utf-8"?> <RadicalChat> <!-- Version of the configuration file. Necessary to preserve backward compatibility. No implicit default value. --> <Version>RadicalChat 1.0.0.1455</Version> <!-- Information about the stream server and how to establish connection. Optional section. --> <Server> <!-- Fully qualified URL or an IP address of the stream server machine. Default value - the same domain where the swf file (radicalchat.swf) is located. --> <RTMPServerURL>127.0.0.1</RTMPServerURL> <!-- Port. Default value - 1935. --> <RTMPServerPort>1935</RTMPServerPort> <!-- RTMP application. Default value - radicalchat. --> <RTMPApplication>radicalchat</RTMPApplication> </Server> <!-- Skin determines the main look and feel of the application. Obligatory section. --> <Skin> <!-- Global constraints for all layers. --> <GeneralProperties> <!-- Name must be set to _GP_ --> <Name>_GP_</Name> <Constraints> <!-- Min width of the canvas (flash player plugin). Useful when the flash player width is resizable, dependent on the web browser width. For example flash player width is 100% (in css). Int property - from 1 to 4096. Default value of minimum width - 100 pixels. --> <MinWidth>100</MinWidth> <!-- Min height of the canvas (flash player plugin). Useful when the flash player height is resizable, dependent on the web browser height. For example flash player height is 100% (in css). Int property - from 1 to 4096. Default value of minimum height - 100 pixels. --> <MinHeight>100</MinHeight> <!-- Max width of the canvas (flash player plugin). Useful when the flash player width is resizable, dependent on the web browser width. For example flash player width is 100% (in css). Int property - from 1 to 4096. Default value of maximum width - 4096 pixels. --> <MaxWidth>4096</MaxWidth> <!-- Max height of the canvas (flash player plugin). Useful when the flash player height is resizable, dependent on the web browser height. For example flash player height is 100% (in css). Int property - from 1 to 4096. Default value of maximum height - 4096 pixels. --> <MaxHeight>4096</MaxHeight> <!-- Enable voice operated switch. Very useful for videoconferencing applications where client does not have headphones. Flash player can eliminate loopback echo, sometime sound card support AEC (acoustic echo cancellation) but the developer can not depend on that. Therefore voice operated switch is the only option left to prevent acoustic echo for clients without headphones. See VOXSilenceVolume, AVOption.Audio.SilenceLevel, AVOpiton.Audio.SilenceAutoDetect. Boolean property - true, false. Default value - false. --> <VOXEnabled>false</VOXEnabled> <!-- If VOXEnabled is set to true then every time when one client is talking the others can hear only him/her. Volume of the videoplayer which is playing speakers audio is set to 100%. All other videoplayers volumes are set to volume*VOXSilenceVolumeMultiplication. Double property - from 0 to 1. Default value - 0. --> <VOXSilenceVolumeMultiplication>0.1</VOXSilenceVolumeMultiplication> <!-- If there is a local videoplayer which plays a stream
published by the current user - current user
may hear his own voice with a little delay. That might
be very unpleasant. MutePublishedSounds enables
or disables to play loopback sound.
Default value - true. --> <MutePublishedSounds>true</MutePublishedSounds> <!-- When TestIfCameraExists option is set then Radical Flash Chat will test if at least one camera is presented in the system. If it is not then text inside the tag TestIfCameraExists will be displayed --> <TestIfCameraExists> Camera was not found. Please connect camera to your computer and restart the web browser. </TestIfCameraExists> <!-- When TestIfMicrophoneExists option is set then Radical Flash Chat will test if at least one microphone is presented in the system. If it is not then text inside the tag TestIfMicrophoneExists will be displayed --> <TestIfMicrophoneExists> Microphone was not found. Please connect microphone to your computer and restart the web browser. </TestIfMicrophoneExists> <!-- buffer time in seconds for any played audio or video. Default value 0.1 --> <BufferTime>0.2</BufferTime> </Constraints> </GeneralProperties> <!-- Layers BG supports universal set of components (classes) derived from SkinObject. All elements there (images, buttons, HTMLTextLabels, VideoPlayers, CameraPreviews), can be subsequently modified or re-designed by “dynamic skinning”. --> <BG> <!--
Array of SkinObjects: BasicPanels, BasicButtons,
HTMLTexts, VideoPlayers, CameraPreviews.
--> </BG> <!-- Layer ML that lies in front of the layer BG and behind the layer FG. It contains support for only a few specialized classes (TextChat, ListOfUsers, ChatInput), which cannot be instantiated more than once at a time. --> <ML> !--
Array of SkinObjects: TextChat, ListOfUsers, ChatInput.
--> </ML> <!-- Layers FG supports universal set of components (classes) derived from SkinObject. All elements there (images, buttons, HTMLTextLabels, VideoPlayers, CameraPreviews), can be subsequently modified or re-designed by “dynamic skinning”. --> <FG> <!--
Array of SkinObjects: BasicPanels, BasicButtons,
HTMLTexts, VideoPlayers, CameraPreviews.
--> </FG> </Skin> </RadicalChat>
Latest news (source CNN):

